The Twittersphere is blowing up with outrage over Wednesday's Hannity present, the place–should you consider the hype–host Sean Hannity informed witnesses in Particular Counsel Robert Mueller's investigation to destroy proof earlier than being pressured to show over supplies to Mueller's crew. Hannity talked about numerous strategies of doing so, together with wiping onerous drives and bodily damaging gadgets [see the video above beginning around the 3:00 mark].
Media retailers and attorneys are having a area day with this.
So, might the favored Fox Information host get in bother with the legislation for recommending such issues?
In fact not, as a result of it didn't occur. As President Donald Trump would possibly say, it's Faux Information.
Later within the present, when Hannity referenced this once more, he even stated he was kidding and not likely advising individuals to do that, however critics are conveniently leaving that half out.
For these desirous to accuse Hannity of encouraging crimes or occasion being responsible of 1 himself, sarcasm isn't towards the legislation.


Saarinen, Gottlieb Eliel (1873–1950). Finnish-born American architect. He practised with Herman Gesellius and Armas Lindgren from 1896 to 1905, and with Gesellius only until 1907, when he worked on his own, emigrating to the USA in 1923. He established his first American office at Evanston, IL (1923–4), later (1924) moving to Ann Arbor, MI, where he also taught at the School of Architecture, University of Michigan. The firm was joined by his son, Eero Saarinen, in 1937, and then by J. Robert Swanson (1900–81), who was a partner from 1941 to 1947. His early work in Finland was in the National Romantic style to express Finnish identity (when Neo-Classicism was perceived as the architectural language of Tsarist Russia), and was influenced by late Gothic Revival, English Arts-and-Crafts architecture, and contemporary work in the USA, notably the round-arched buildings of H. H. Richardson. Saarinen, Gesellius, and Lindgren designed the Finnish Pavilion for the Exposition Universelle, Paris, of 1900, adding touches of vaguely oriental exoticism. Influences from the Vienna Sezession were apparent in the Hvitträsk Studio House, Kirkkonummi, near Helsinki (begun 1902), designed for the firm as an idealistic variation on English Arts-and-Crafts themes, with a strong input of American vernacular, Shingle style, Jugendstil, and national Finnish elements.
In 1904 Saarinen himself won the competition to design the Helsinki Central Railway Station (erected 1910–14), one of the finest termini of the period, comparable with Leipzig (1905) and Stuttgart (1911—which was influenced by the Helsinki exemplar), having massive masonry walls and a noble composition strongly influenced by the school of Otto Wagner and the work of the Wiener Werkstätte, notably Hoffmann. He came second in the competition to design the Chicago Tribune Building (1922), which made his name in the USA and led to the commission to design the Cranbrook Academy of Art, Bloomfield Hills, MI. Saarinen designed the Cranbrook School for Boys (1926–30) and the Kingswood School for Girls (1929–30) there, followed by the Institute of Science (1931–3), and Museum and Library (1940–3). This beautiful series of Picturesque buildings was evolved in collaboration with his second wife, Louise ( Loja) Gesellius (1879–1968), and is freely eclectic, incorporating Expressionist, round-arched, and vernacular elements. He was President of the Cranbrook Academy of Art from 1932 to 1942, and was joined by his son, Eero, and by Charles Eames, who both taught there. His published works include The Cranbrook Development (1931), The City: Its Growth, Its Decay, Its Future (1943), Search for Form (1948), and The Search for Form in Art and Architecture (1985).
"Saarinen, Gottlieb Eliel." A Dictionary of Architecture and Landscape Architecture. . Encyclopedia.com. 23 Apr. 2019 <https://www.encyclopedia.com>.
Eliel Saarinen (ĕl´ēĕl sä´rĬnĕn), 1873–1950, Finnish-American architect and city planner, resident of the United States after 1923. In Finland, Saarinen's most celebrated building was the railway station in Helsinki. He took second prize in the Chicago Tribune Tower competition in 1922. At the Cranbrook Foundation in Bloomfield Hills, Mich., he designed several buildings and also headed the Academy of Art. His other major works include the Crow Island Elementary School, Winnetka, Ill. (1939); two churches in Columbus, Ind. (1941–42), and Minneapolis, Minn. (1949), and the music shed for the Berkshire Festival (now Tanglewood Music Festival) at Lenox and Stockbridge, Mass. His later designs were made in collaboration with his son, Eero Saarinen.
"Saarinen, Eliel." The Columbia Encyclopedia, 6th ed.. . Encyclopedia.com. 23 Apr. 2019 <https://www.encyclopedia.com>.


text:
require'combos_permutedirs/helpers/cast_float'
require'combos_permutedirs/helpers/cast_string'
require'combos_permutedirs/helpers/combine_options'

redpajama_set_name: RedPajamaGithub


Piles'O'Tiles is a fun and addictive mahjongg game, suitable for all ages. The game has many new additions to the traditional mahjongg game, including different board layouts, customizable tilesets, and competitive scoring between players. The game has tileset support for the visually impaired. Version 2.4 features: game code has been optimized further, several small bugs removed.


text:
<?xml version="1.0" encoding="utf-8"?>
<labels>
	Африка
	Океания
	Америки
	Азия
	Европа
	Восточная Азия
	Юго-восточная Азия
	Южная и Центральная Азия
	Западная Азия
	Южная Европа
	Восточная Европа
	Северная Европа
	Западная Европа
	Нормандские острова
	Остров Мэн
	Южная Америка
	Центральная Америка
	Северная Америка
	Карибские острова
	Западная Африка
	Восточная Африка
	Северная Африка
	Центральная Африка
	Южная Африка
	Австралия и Новая Зеландия
	Меланезия
	Регион Микронезии
	Полинезия
</labels>


What was supposed to be a 5-6 week wait to receive my UFO Zeus handle has turned into 11 weeks and counting. Juan told me that the new lead time is 10-12 weeks. At least it's been shipped but the tracking website doesn't update very often.
if6was9 wrote: What was supposed to be a 5-6 week wait to receive my UFO Zeus handle has turned into 11 weeks and counting. Juan told me that the new lead time is 10-12 weeks. At least it's been shipped but the tracking website doesn't update very often.
I live in Thailand, and delivery time usually takes at the very most, might be 3 weeks, if I have purchased off of the Bay, and one month has lapsed, I usually contact them, and get things going for a "case" for lost items. Out of 10 years, have only had a small percentage of items never delivered, 5-7 items, which I feel is pretty damn good.
Where do you live, and where was it being sent from, did you buy off the Bay?
Last edited by pundi64 on Tue Jan 12, 2016 5:24 pm, edited 2 times in total.
I hope he's got it by now, since it was over two years ago he posted!


text:
Tales of the Cocktail Foundation is a non-profit organization that Educates, Advances, and Supports the global hospitality industry and creates lasting impacts in our host communities.
Tickets Buy
About Tales of the Cocktail Foundation
History of Tales of the Cocktail
Past Tales Events & Awards
Tales on Tour
Tales of the Cocktail
Spirited Awards
Daiquiri Season
Toddy Season
Dame Hall of Fame
Cocktail Apprentice Program
Apply for Press Credentials
Official Cocktail Competition
Submit A Seminar
Grants Process
LOI Example
From behind-the-scenes distillery tours to in-depth profiles and interviews, we're highlighting the most interesting people, products, places and ideas in the spirits industry.
Home / In-Depth / How Up-and-Coming Spirits Brands Use Crowdfunding to Get Off the Ground
How Up-and-Coming Spirits Brands Use Crowdfunding to Get Off the Ground
Grassroots investors chip in to give entrepreneurs a boost into the big time.
Jake Emen
Photo by Natasha Moustache
Whether you're a bartender or a cocktail connoisseur, if you want to see a specific brand or category flourish, you can have a direct say in the matter. Not just by putting a bottle on the shelf or bringing a bottle home. Today, anyone can literally invest in a brand.
Welcome to the world of spirits brand crowdfunding.
Take Avuá Cachaça, for example, a hand-crafted Brazilian spirit made from sugar cane which has a current WeFunder campaign looking to initially raise between $50,000 and $100,000, with a long-term goal of up to $500k. (Its makers have raised $22,000 at the time of this story.) Avuá is offering revenue-share crowdfunding and will pay 5 percent of its quarterly revenues back to investors, up to 200 percent of the initial investment. In other words, the people behind Avuá are offering — although they certainly can't promise —a chance to double your money. The minimum investment is $100, and they're offering a range of perks at different thresholds.
"This is a relatively new means of raising money for early stage businesses through friends, family and followers who may not be accredited investors under past SEC regulations," says Peter Nevenglosky, co-founder and president of Avuá Cachaça. "It [Title III of the JOBS Act, which went into effect in May 2016] allows for smaller companies to access a wider pool of fans and supporters to help fuel their business outside the challenging venture capital investment models and for everyday investors to diversify their portfolios in ways they have not been able to in the past."
This isn't the same thing as Kickstarter. There, you may get that "perk" or buy an early version of the product or whatever else, but you don't get your money back, let alone get it back with profit.
"Kickstarter is essentially a donation for a small token," Nevenglosky says. "But actually in our case, it's a revenue share model."
A new way to raise money
So why would a spirits brand choose to raise capital this way? "There are two main reasons: One, crowdfunding allows us to build a group of passionate supporters of Avuá as we grow who are invested financially and emotionally in our journey," Nevenglosky explains. "And two, it gets us access to needed capital for growth of working capital — getting Avuá to your bars as fast as the demand hits — and human resources while retaining ownership of decision-making, and a long-term perspective on brand growth."
That means they didn't have to sell equity, or a stake in the business, in order to raise funds. Equity crowdfunding exists as well, and of course there's the world of venture capital, more familiar to tech companies in Silicon Valley than spirits brands.
"Venture capital firms typically look for a 200-300 percent growth rate and a quick exit — something that is not sustainable in our opinion for building a long-term healthy brand and achieving our mission of elevating the cachaça category globally," Nevenglosky says. "We believe the crowdfunding model will help us build this brand the right way for the long run."
Other brands have taken the crowdfunding approach as well, including Chareau, Cleveland Whiskey and Barrow's Intense Ginger Liqueur.
"We launched an equity crowdfunding campaign within 30 days of the enactment of Title III of the JOBS Act," says Josh Morton, CEO and co-founder of Barrow's Intense. JOBS, by the way, stands for Jumpstart Our Business Startups. "We were one of the first companies to take advantage of Title III, and the first craft spirit to make a Title III offering on WeFunder. We came up with the term 'craft investing,' because it epitomized this innovative and new form of investing that allows any individual to invest in small craft companies — not just big funds and the ultra rich."
Barrow's raised approximately $300,000 from 550 investors in their campaign, and it sees similar benefits to crowdfunding as Nevenglosky does. "So much of our business is about building brand awareness," explains Eve Alintuck, co-owner and vice president of Barrow's. "And investors are one of the best catalysts for growth. Equity crowdfunding investors are engaged and ready to help the company … Combining capital-raise efforts with brand advocacy is an efficient use of resources for our small brand."
There are challenges to pursuing crowdfunding, of course, particularly for a brand such as Barrow's. "We had several procedural hurdles that we had to overcome because we were one of the first companies to take advantage of the new law," Morton explains. "The tax filing was a lot more complicated than we anticipated. There are many ways to structure your offering. The one we chose … was simpler for the investor to understand what they were getting for their investment."
That's a challenge that Avuá is currently experiencing. "It is early for us — we only launched the raise in mid-June — but I would say the challenge is the lack of understanding around this type of investment," Nevenglosky says. "Making it clear that it requires only $100 minimum and what you get out in return has been the challenge. The flip side is it allows so many more people to get behind what we are doing that have not been able to in the past."
For brands that have already seen success, like Barrow's, it's been worthwhile. "Even with the hiccups, though, we would recommend it to other spirits companies," Morton says. "We're happy to give advice to anyone thinking about it as an option so they can benefit from our experience and hopefully avoid some of these headaches."
Other brands are using different funding strategies. Black Star Co-op in Austin, Texas, is the first-ever co-op owned and managed brewery and pub. There are no complaints about the beer selection there because many of the individuals drinking it are the same ones who are making it.
Industry-specific venture capital works, too
Then there's Distill Ventures, a drinks accelerator which has committed more than $72 million to over 15 brands. They also now have a focus on non-alcoholic drinks, including Seedlip, the first distilled non-alcoholic spirit. Diageo is the investor providing funds into Distill Ventures, but DV is still independent.
Distill Ventures is bringing a spirits-specific venture capital platform to the table, solving an issue that many brands have had with the tech-filled VC world. "Finding angel investors is difficult because most angels do not have expertise in this space; the majority are in finance or tech," Morton explains.
"We believe the best entrepreneurs can always raise money, but to go the distance in the drinks industry, money alone is not enough," says Dan Gasper, co-founder and COO of Distill Ventures. "We founded DV because we believe the right recipe for supporting entrepreneurs is the combination of funding, mentoring and access to a network of expertise."
Diageo is able to offers its global reach, massive networks and experience to the DV team's entrepreneurial expertise. "We understand the mindset of the entrepreneur because we are entrepreneurs ourselves with more than 120 years of drinks and start-up experience across the core of the team," Gasper says. "This allows us to share a first-hand perspective on the challenges and opportunities that face entrepreneurs scaling their business in the drinks industry."
With DV, a spirits brand receives mentoring and an extensive collection of resources, in addition to potentially ongoing, large-scale cash infusions. Of course, brands give up equity in exchange, and investments include call options for Diageo to buy the business in the future. But it's another option for entrepreneurs.
So what's a spirits brand supposed to do? It depends on how much cash needs to be raised, whether or not the team is willing to give up equity in the company to get that capital, and what the short-term and long-term goals for the brand and its owners are. There's no right or wrong answer, and there's no shortage of options to consider.
[Full disclosure: The author has made an investment in Avuá's campaign.]
Jake Emen is a spirits, travel, and food writer who's been published in USA Today, GQ, Vice Munchies, Roads & Kingdoms, and elsewhere. Follow him on the socials at @ManTalkFood.
Posted 1 year, 6 months ago:
The Scotch Bar Surge
Maccabeats by Dreidel
Sleighing it at the Miracle on 7th Street Pop-Up in D.C.
Drinking Beyond Amsterdam
A Toast to HERStory
On the Influence of Wood on Flavor
A Bitter Pill to Swallow: Don't use your Citrus Juice Immediately
1.⚜UPDATE: Tales of the Cocktail 2019 & Tropical Storm Barry ⚜
2.6 Classic Vermouth Cocktails That Deserve Your Respect
3.The Bartender's Guide to Taking Care of Your Feet, Part Two: Shoes
4.TOP 4 FINALISTS FOR THE 13TH ANNUAL SPIRITED AWARDS® ANNOUNCED
5.TOP 10 NOMINEES FOR THE 13TH ANNUAL SPIRITED AWARDS® ANNOUNCED
Tales of the Cocktail Foundation is a non-profit organization, the global leader in spirits education, and a platform to address issues facing the industry. The mission of the Foundation is to Educate, Advance, and Support the global hospitality community through programs that benefit individuals and organizations in the industry and to create lasting impacts in our host communities.
info@talesofthecocktail.org
Copyright © 2019 Tales of the Cocktail. All rights reserved.

redpajama_set_name: RedPajamaCommonCrawl


text:
Gerard James Stokes (1955 – 8 December 2020) was a New Zealand rugby league footballer who played in the 1970s and 1980s, and coached in the 1980s through to the 2010s, who represented New Zealand. He was a coach of the Serbian national side, and father of England international cricketer Ben Stokes.

Playing career
Stokes began playing rugby league early in life. In high school, he would sneak out of his boarding school in New Zealand every Saturday morning to play rugby league for Canterbury. He was a Schoolboy Kiwi in 1971 before later representing New Zealand in four non-Test matches on the 1982 tour of Australia and playing for Workington Town in 1982–83. In one match, Stokes dislocated his finger, and asked for an amputation in order to play again more quickly.

Coaching career
In 1994, he was appointed coach of the new Canterbury Country Cardinals in the Lion Red Cup. The team made the finals in 1994, but finished tenth in 1995.

In 1996, he was appointed head coach of the Canterbury Rugby League representative side, facing irregular provincial competition. In 2000, he coached the Canterbury Bulls to a victory in the inaugural Bartercard Cup grand final. He was also named New Zealand coach of the year that season.

He applied to coach New Zealand in 2001 but was overlooked for Gary Freeman. Instead he was appointed Assistant Coach and a co-selector, working under Freeman, and in 2003 he was in charge of the New Zealand 'A' tour of Great Britain.

In 2002, Stokes moved north and coached the Wellington Franchise in the Bartercard Cup. He re-applied for the job at the end of the 2003 season but wanted too much money and so was not reappointed.

Instead, at the end of the New Zealand 'A' tour, he was offered the opportunity to stay in England and coach his old club, Workington Town. The club was in a state of disrepair and only seven players were contracted to the club. Stokes rebuilt the squad. However he was later fired by the club over an alleged disciplinary breach, despite being cleared by a RFL investigation. The club later agreed to a £14,000 pay-off days before a court case brought by Stokes was due to be heard.

In early 2008, he was offered the job of coaching Whitehaven, Workington Town's bitter local rivals, after coach Paul Crarey left the club citing personal health issues.

In late 2008, he travelled to Serbia and helped the national side prepare for the RLEF Euro Med Challenge. This move quickly proved beneficial to his club side as Whitehaven signed young Serbian national Soni Radovanović in January 2009. Stokes was sacked in August 2010, after winning only 1 game in 14, with a disastrous record 13 game losing streak that ultimately led to Whitehaven's relegation from the Championship.

In 2013, he and wife Deb had moved from rugby league and back to Christchurch to a job working with young offenders; they were also involved in the restoration of Christchurch following the 2011 earthquake.

Personal life
Stokes had two children from his first marriage, to Ferne Caldwell,
and a son (England international cricket player Ben Stokes) with his second wife, Deb. In August 2020 Stokes revealed that he had been diagnosed with brain cancer in January 2020. He died at his home in Christchurch on 8 December 2020, aged 65.

References

1955 births
2020 deaths
Canterbury rugby league team coaches
Canterbury rugby league team players
Deaths from brain tumor
Deaths from cancer in New Zealand
Marist-Western Suburbs players
New Zealand national rugby league team players
New Zealand rugby league administrators
New Zealand rugby league coaches
New Zealand rugby league players
Place of birth missing
Rugby league props
Serbia national rugby league team coaches
Wellington rugby league team coaches
Workington Town coaches
Workington Town players
New Zealand expatriate sportspeople in Serbia
New Zealand expatriate rugby league players
Expatriate rugby league players in England
New Zealand expatriate sportspeople in England

redpajama_set_name: RedPajamaWikipedia


Thread: Yankees "seem ready to pounce for Manny Ramirez, "love the idea of Manny"
SI.com's Jon Heyman says the Yankees aren't optimistic about signing Mark Teixeira, and "seem ready to pounce for Manny Ramirez." He says the Yankees "love the idea of Manny."
Heyman notes that Teixeira signing with the Red Sox would be ideal for Manny and Scott Boras, since Boston is not a possibility for Ramirez. The Angels might have heightened interest in Manny if they are unable to sign Tex.
Guido is going to be smitten by this.
I have to admit the possibility of him hitting behind AROD is a bit enticing..
Not happening. This is Boras floating his BS out there.
That's what people said about Ted Williams too. Its amazing what seeing one of the top 5 hitters of the past 50 years will do once he dons your jersey.
Manny is a putz, but he's a putz who can hit better than anyone I've ever seen, and a goofy, nonthreatening one at that. There is a big big difference between Manny, and say Elijah Dukes, or, for that matter, most of the thugs in the NFL.
Its funny, all those "I play the game the right way" and "respect the game" players, managers, and fans (yes, I am looking at you Beckett) certainly don't mind having Manny hit for them.
I am 70% in favor of doing this.
That is a good lineup. Manny behind A-Rod is very dangerous.
2. Manny will be motivated to slaughter the Red Sox.
The only problem to me is, we will have to deal Matsui. Trading him will be difficult. He's getting paid 13m next year, and just had knee surgery. We can't hold onto 2 DH's, especially considering both Damon and Posada will need time at DH. Yankees will have to be willing to eat some of that money. Fortunately Matsui only has 1 more year on that contract, and when healthy can hit.
Or they trade Nady. He's much more tradeable. Remember, Hideki also as a NT clause.
I would not rule out them trading Nady if the sign Manny and put him in RF..
Yeah, but I don't want either Matsui or Manny in the outfield. I'm big on defense.
Have to put some big incentives in Manny's contract.
Would love to see a Manny Damon Matsui outfield defensively. Wow that would be entertaining.
That's great, but what are we getting out of a guy who has had 2 knee surgeries in the past two seasons and makes 13 Million? I like Nady and would rather have him out there, but Matsui is not a very tradeable commodity right now.
Oh crap, now the Melky/Cameron thread and this one have converged into the same topic, and I am too lazy to write out my reply again about defense.
Basically, that offense and pitching staff will win you lots more games than the defense with Cameron.
I guess I would keep all 3 of them. Matsui will be one expensive pitch hitter, but I do not want Matsui or Manny in the outfield. See this is why this deal doesn't get one. After get all these pitchers, we can't have an awful awful defensive outfield.
Well, this team hasn't been good defensively in a while, at least in the outfield. For a long time now we've had great hitters and not great fielders out there.
Damon- Cabrera/Gardner- Abreu/Nady was a good defensive outfield, at least average.
Tyler, I think you are seriously overvaluing defense. Or rather, the value of Cameron and Nady on defense vs. Manny and one of them on offense.
Damon Cameron Nady isn't nearly a good enough defense to make up for their relative league average-ness.
I would try and construct a team with..
Matsui has some value, especially for 1 year.
You're dead on with your assessment. Manny upgrades our offense in a big way, he's as clutch as they get and he'll take all the pressure off A-Rod. He's a headcase but he'll be a motivated headcase who will be obsessed with beating Boston.
Matsui can be dealt. Yankees will probably have to eat a good portion of what's left on his deal. Maybe Joe Torre in LA will be interested. The guy can still hit.


text:
People vs. Adtech
You are currently browsing the archive for the Family category.
A happy 75th anniversary
August 19, 2021 in Family, Past, Personal, Photography | 4 comments
My parents (that's them, Eleanor and Allen Searls) were married on 17 August 1946, seventy-five years and two days ago. I would have posted something then, but I was busy—though not too busy to drop something in Facebook, where much of the readership for this blog, plus the writership of others listed in my old blogroll, has drifted in the Age of Social Media. Alas, blogging is less social than Facebook, Twitter, Instagram and the chatterteriat. But that doesn't stop me from blogging anyway.
The wedding took place in Minneapolis, for the convenience of Mom's family of second and third generation Swedish members of the homesteading diaspora, scattered then around Minnesota, North Dakota and Wisconsin. Pop was from New Jersey, and all his immediate kin were there and in New York. After the wedding the couple came east to briefly occupy the home they rented in North Bergen, New Jersey while mostly hanging at Grandma Searls' house in Fort Lee (where Pop grew up with his two sisters), and then a short drive west of there in Maywood, where Jan and I grew up. I was born less than a year later, and my sister Jan less than two years after that.
In a comment under my Facebook post, Jan writes,
Mom from ND and Pop from NJ met in Alaska in the middle of WWII. He'd already served in the Costal Artillery in the early 30s but after D-Day came home to join up. They courted by mail after the war while he was with SHAEFE (he loved that acronym: Supreme HQ Allied Expeditionary Forces Europe), and Mom with the Red Cross at a Naval Hospital in Oregon. When he got home, she flew to NJ for 6 days of courtship – at a small shack at the NJ shore with Pop's entire family! He came to MN the night before the wedding. They fell in love with the dream of having a family and future together, and always said they really fell in love with each other on their honeymoon and were devoted to each other. Mom was 33, Pop was 38, and they'd already lived lives of adventure, full of friends and family. We grew up knowing were blessed to have them as our parents.
I've added links. The Shack is still there, by the way.
Alas, Mom passed in '03 and Pop in '79. But they were exceptionally fine parents and grandparents. Not all kids are so lucky.
So, a belated toast, in pixels.
Home is where one's butt is
July 13, 2020 in california, conferencing, Digital Life, Family, Friends, Social, Travel | Permalink
I don't want to explain why we're bivouac'd at a friend's house in San Marino. What matters, for the purpose of this post, is that we wouldn't be here if it weren't for the Covid-19 pandemic.
But hey, it's a nice house in a nice town. My only complaint is that there's nothing resembling an office desk or chair here. I've coped by collecting my ass and my electronics within an arrangement of mostly antique furniture. That's what you see in the screenshot above. (From my most recent Floss Weekly podcast.) The rest of the house looks kinda like the set of Knives Out.
I start with this setting because a friend asked me to write my own version of what Francine @Hardaway published today in Releasing My Former Life. (It's a good piece. Go read it. I also thank Francine for turning me on to #Clubhouse. It is reportedly invite-only and apparently website-less, but I'm hoping she or a reader can get me one. Or two.)
So, what to report?
Well, in pre-pandemic times my wife and I were on the road at least a third of the time, so we're used to operating out of hotel rooms, conference spaces and seats by the gates of departing flights at airports. So living in places other than home is not odd for us. It is odd to go around wearing masks in public while keeping our distance, as if everyone had just farted; but we hardly go out at all. We provision the kitchen here with runs to Trader Joe's or Costco on days when they open early for geezers, and that only happens every couple weeks or so. Also, this region isn't one of those in denial of the pandemic. People here tend to have Fauci-compliant public health practices.
In the early mornings or late evenings, when it's not 95° outside, I do venture out for walks of 2-3 miles or more in the neighborhood. The roads are wide here, and the pedestrian traffic is light, so I leave the mask off most of the time. There are also lots of amazing trees and gardens, so I'll pause to admire those and post occasional photos of interesting stuff on Instagram. (This kind of thing, by the way, comprises almost my entire experience of Instagram.)
While paying work has taken a hit, I remain overcommitted to all the obligations I had before the pandemic arrived, plus a couple new ones, such as the Floss Weekly podcast. It bothers me that I'm not as efficient or as effective in that work as I'd like, but being bothered about it isn't the same as being depressed or anxious. It just kinda sucks.
Dorothy Parker said (or is said to have said) that she preferred the company of younger men "because their stories are shorter." I am mindful of that. I also know it's way too easy to talk about infirmities that accumulate, lengthen and get more complicated with age. So I avoid writing, thinking or talking about being old, even though it keeps me up at night, mostly because I have to pee.
I'm optimistic about the long-run future, though the short run will surely get worse before it gets better. (Bad things happen when people die at wartime rates and large hunks of the economy are turned off.) I could say more about that, but I won't, because—
There is far more than enough political writing and talk. Sure, I fantasize about speaking up, because I do think I have some useful things to say. I just don't expect what I say to make a bit of difference. The noise level is so high right now, and the effect level of any given tweet or post is so low, that I'm disinclined to say much. Add that to what I said here in 2014 and here two months ago, and you'll see why I'd mostly rather work on other stuff.
The main thing for me right now is Customer Commons. If it succeeds, it will be the most leveraged thing I've ever done, meaning the best for the world. If you're interested in helping, drop me an email. First name at last name dot com. Thanks.
An evacuated view on the #ThomasFire
December 13, 2017 in Broadcasting, data, Family, Geography, Life, Photography, problems, ThomasFire, Travel, tv, weather, wildfire | Permalink
Here's the latest satellite fire detection data, restricted to just the last twelve hours of the Thomas Fire, mapped on Google Earth Pro: That's labeled 1830 Mountain Standard Time (MST), or 5:30pm Pacific, about half an hour ago as I write this.
And here are the evacuation areas:
Our home is in the orange Voluntary Evacuation area. So we made a round trip from LA to prepare the house as best we could, gather some stuff and go. Here's a photo album of the trip, and one of the last sights we saw on our way out of town:
This, I believe, was a fire break created on the up-slope side of Toro Canyon. Whether purely preventive or not, it was very impressive.
And here is a view of the whole burn area, which stretches more than forty miles from west to east (or from Montecito to Fillmore):
Here you can see how there is no fresh fire activity near Lake Casitas and Carpinteria, which is cool (at least relatively). You can also see how Ojai and Carpinteria were saved, how Santa Barbara is threatened, and how there are at least five separate fires around the perimeter. Three of those are in the back country, and I suspect the idea is to let those burn until they hit natural fire breaks or the wind shifts and the fires get blown back on their own burned areas and fizzle out there.
The main area of concern is at the west end of the fire, above Santa Barbara, in what they call the front country: the slope on the ocean's side of the Santa Ynez Mountains, which run as a long and steep spine, rising close to 4000 feet high in the area we care about here. (It's higher farther west.)
This afternoon I caught a community meeting on KEYT, Santa Barbara's TV station, which has been very aggressive and responsible in reporting on the fire. I can't find a recording of that meeting now on the station's website, but I am watching the station's live 6pm news broadcast now, devoted to a news conference at the Ventura County Fairgrounds. (Even though I'm currently at a house near Los Angeles, I can watch our TV set top box remotely through a system called Dish Anywhere. Hats off to Dish Network for providing that ability. In addition to being cool, it's exceptionally handy for evacuated residents whose homes still have electricity and a good Internet connection. I thank Southern California Edison and Cox for those.)
On KEYT, Mark Brown of @Cal_Fire just spoke about Plans A, B and C, one or more of which will be chosen based on how the weather moves. Plan C is the scariest (and he called it that), because it involves setting fire lines close to homes, intentionally scorching several thousand acres to create an already-burned break, to stop the fire. "The vegetation will be removed before the fire has a chance to take it out, the way it wants to take it out," he says.
Okay, that briefing just ended. I'll leave it there.
So everybody reading this knows, we are fine, and don't need to be at the house while this is going on. We also have great faith that 8000 fire fighting personnel and all their support systems will do the job and save our South Coast communities. What they've done so far has been nothing short of amazing, given the enormous geographical extent of this fire, the exceptionally rugged nature of the terrain, the record dryness of the vegetation, and other disadvantages. A huge hat tip to them.
Everybody should have a surprise birthday party as surreal and wonderful as this one
July 30, 2017 in Awesome, Family, Personal, Photography | 2 comments
The scene above is what greeted me when I arrived at what I expected to be a small family dinner last night: dozens of relatives and old friends, all with of my face.
For one tiny moment, I thought I might be dead, and loved ones were gathered to greet me. But the gates weren't pearly. They were the back doors of Rosys at the Beach in Morgan Hill last night. Rosy is one of my five sisters in law. She and most of her sibs, including their two additional brothers, their kids and grandkids were there, along with many friends, including ones I've known since North Carolina in the early '70s.
More about it all later (since I'm busy with continuing festivities). In the meantime I want to thank everybody, starting with my wife, who did such a great job of making the whole evening wonderful. Also for operating in complete faith that I would be clueless to the secrecy involved.
A milepost in an increasingly exclusive demographic club
July 29, 2017 in Family, Personal | 2 comments
Because I'm busy today, I'll re-post what I wrote about my birthday five years ago, because it's no less true now. Here goes…
I worked in retailing, wholesaling, journalism and radio when I was 18-24.
I co-founded an advertising agency when I was 25-34. Among the things I studied while working in that age bracket were Nielsen and Arbitron ratings for radio and TV. Everything those companies had to say was fractioned into age brackets.
The radio station I did most of that work for was WQDR in Raleigh, one of the world's first album rock stations. Its target demographic was 18-34. It's a country station now, aimed at 25-54.
Other "desirable" demographics for commercial media are 18-49 and 25-49.
The demographic I entered between the last sentence and this one, 65+, is the last in the usual demographic series and the least desirable to marketers, regardless of the size of the population in it, and the disposable wealth it is ready to spend.
Thus I have now fallen over the edge of a demographic cliff, at the bottom of which is little of major interest to marketers, unless they're hawking the cushy human equivalent of parking lots. You know: cruises, golf, "lifestyle communities," "erectile dsyfunction," adult diapers, geriatric drugs, sensible cars, dementia onset warnings…
For individuals, demographics are absurd. None of us are an age, much less a range of them. We're animals who live and work and have fun and do stuff. Eventually we croak, but if we stay healthy we acquire wisdom and experience, and find ourselves more valuable over time.
Yet we become less employable as we climb the high end of the demographic ladder, but not because we can't do the work. It's mostly because we look old and our tolerance for bullshit is low. Even our own, which is another bonus.
Nearly 100% of the people I work with are younger than me, usually by a generation or two. I almost never feel old among them. Sometimes I joke about it, but I really don't care. It helps to have been around. It helps to know how fast and well the mighty rise, and then fall. It helps to see what comes and stays, and to know why those things matter more than what comes and goes. It helps to know there are sand dunes older than any company born on the Internet.
For most of my life I've worked in the most amazing industry the world has ever hosted. Technology is a miracle business. Lots of good new things come and go, but three aren't sand dunes. They're staying for the duration. I knew they would when I saw each arrive and then fail to leave. They were things nobody owned, everybody could use and anybody could improve. For all three reasons they supported boundless economic growth and other benefits to society. They are:
The personal computer
The smartphone.
All three were genies that granted wishes without end, and weren't going back in their bottles.
True, they all had problems and caused many more. They were like people that way. But these two graces — computing and worldwide communication ease — in your pocket or purse, are now as normal as wearing shoes. Nobody owns the design for those either. Also, everyone can use them and anyone can improve them. That's pretty freaking cool, even though it's hardly appreciated.
I could go on but better to leave you with what I said to Dorie Clark about what the Net will be like in five years. I've gotta sleep before we hit the road early in the morning to celebrate the beginning of the rest of my life. May yours be at least as long. And as good.
Consumers can't help health care. Customers can.
November 9, 2016 in Broadcasting, Business, Family, Friends, Health | 5 comments
Economically speaking, the American healthcare system is not built for patients, because patients aren't the ones paying for it directly. Insurance companies are.
See, health care in the U.S. is mostly a B2B insurance business. It is only B2C when insurance doesn't cover expenses to the patient. And even then, insurance still pays for it when patients don't.
The history of the U.S. health care industry is one essentially of regulatory capture by the insurance industry, which today is a vast interlocked cabal of insurance companies and kieretsus of hardware, software and service providers.
And, because this system is mostly disconnected from the controlling effects of direct accountability to patients (which we might have had if the system had been B2C), costs and inefficiencies within the system have grown out of control. To say the least of it.
It is therefore a mistake to assume that patient involvement in the system is "consumerism" in either of its common meanings: 1) acquisition of goods and services in ever-increasing amounts, or 2) The protection or promotion of the interests of consumers.
We tend to make this mistake whenever we conflate customers and consumers. We do this most commonly in businesses that offer B2C services paid for in a B2B way—as we have in the insurance business called healthcare. The split between the two is real, but treated as if it is not. Thus we have companies going on about how much they care about their consumers, users or patients, who they say have a "choice," when in fact they have little or none.
Thus it is a mistake to assume that patients have any direct economic influence over what they get from health care providers whose primary customers are insurance companies. It really doesn't matter is the care is provisioned through an "integrated clinical practice" (Mayo Clinic) "integrated managed care consortium" (e.g. Kaiser Permanente), "healthcare delivery system" (e.g. Cone Health), "managed healthcare group" (UnitedHealth, Anthem, Aetna), a "federation" of the same (Blue Cross Blue Shield) or a plain old "health insurance company" (Humana), the business is almost entirely upstream of the point where care is provided: inside the insurance business that gets paid to fund the whole mess.
The main exceptions in this system are Medicare and Medicaid, which are basically government-run insurance businesses.
Companies with internal splits between their customers and consumers tend to be blind to what its consumers actually want or need — or can bring to the market's table on their own — because money comes from somewhere else. It's conflationary shell game, making it easy to think and say the consumer is actually a customer, or like a customer, when they're not, because all the economic action is taking place elsewhere.
I've seen this for decades in commercial broadcasting, and with publishers whose primary customers are advertisers rather than those who "consume" what is now called "content" (as if it were nothing more than container cargo), even if those consumers in some cases (such as with newspapers and magazines) are paying subscribers. The primary customers are still advertisers and their agents.
I'm seeing it today in the cabal of perpetrators and beneficiaries of the four dimensional shell game that online advertising has become. This is why its members, all B2B businesses, miss the clear signal "users," "consumers" and "the audience" are sending with ad blocking and tracking protection.
The only way we can begin to fix the U.S. healthcare system is by making patients as powerful and engaging as they would be if they were full-fledged customers of the care they receive, rather than mere consumers of services. And this can only begin with better ways for each of us to take control of our own health care data (which is valuable to those services), and how it is used by services mostly paid for by others.
The best approach I have seen so far to this challenge is HIE of One, a project of two MDs, Adrian Gropper and Michael Chen. HIE stands for Health Information Exchange, which Adrian and Michael describe as "a patient-centered health record based on the FHIR and HEART interoperability standards."
Here is the main reason I like its chances: it is based on open source code already in development. This means many developers can step in and help raise its barn, for all of us.
If you're a developer, and you care about the health of your self, your friends and family, and the human species, I highly recommend stepping up and stepping in. I can't think of any #VRM project with more leverage on the good of the world—as well as one country's most essential yet fucked-up service economy.
BYSMD
April 2, 2016 in Culture, Family, Friends, Fun, Geography, North Carolina, Personal, Places, Strange stuff, Travel | Permalink
Once, in the early '80s, on a trip from Durham to some beach in North Carolina, we stopped to use the toilets at a roadhouse in the middle of nowhere. In the stall where I sat was a long conversation, in writing, between two squatters debating some major issue of the time. Think of the best back-and-forth you've ever read in a comment thread and you'll get a rough picture of what this was like.
So I sat there, becoming engrossed and amazed at the high quality of the dialog — and the unlikelihood of it happening where it was.
Until I got to the bottom. There, ending the conversation, were the penultimate and ultimate summaries, posed as a question and answer:
Q: Why do people feel compelled to settle their differences on bathroom walls?
A. Because you suck my dick.
That story became legendary in our family and social network, to such a degree that my then-teenage daughter and her girlfriends developed a convention of saying "Because you suck my dick" whenever an argument went on too long and wasn't going anywhere. This was roughly the same as dropping a cow: a way to end a conversation with an absurdity.
The whole thing came back to me when I read Pro-Trump Chalk Messages Cause Conflicts on College Campuses in the NYTimes today. The story it suggests is that this kind of thing regresses toward a mean that is simply mean. Or stupid. For example,
Wesleyan University issued a moratorium in 2003, after members of the faculty complained that they were being written about in sexually explicit chalk messages.
So I'm thinking we need a name for this, or at least an initialism. So I suggest BYSMD.
Where the dead receive guests
September 27, 2015 in Family, Geography, Geology, history, Past | 2 comments
This is about visiting my great-great grandfather, Thomas Trainor, dead since 1876 and reposing in Calvary Cemetery in Queens, New York. Thomas and a friend bought the Trainor family plot, two graves wide, in 1852. It now lies roughly in the center of what's called "Old Calvary," the oldest section of the largest cemetery in the country. More than three people are buried there.
Calvary is familiar as the vast forest of monuments and headstones flanking the intersection of the Brooklyn Queens Expressway (I-278) and the Long Island (I-495) Expressway. Also as the place where the Godfather got planted in the movie.
Thomas was himself one of seven children. His parents were Thomas (or John) and Hanna (née Hockey) Trainor, said to be of Letterkenny, County Donegal, Ireland. He was born in 1804 and sailed to Boston at the height of the 1819 typhus epidemic at age 15, accompanied by his uncle, also a Trainor. By one account the uncle died soon after arriving, but by another he lived long enough to marry and widow the old aunt Thomas buried first in the family plot.
There is a gap in the record between the time Thomas arrived as a teen and when he came to own land in New York (around Poughkeepsie), meet Mary Ann McLaughlin, and established the saddle and carriage-building business described on his business card above. The family home, we know, was at 228 East 122nd Street in Harlem, at a time when most of the city's roads were still dirt. (Here's the Streetview today.) His business, at 124 West Broadway, was at the corner of Duane on the east edge of what is now Tribeca. Mary Ann did the carriage interiors when she not also producing children. Family lore also has it that Thomas trained first as a servant indentured to Mary Ann's dad. Also that this is false.
What I found at Calgary, after a long search (having been given bad instructions at first by an otherwise helpful guy at the cemetery office), was this headstone:
Clearly this is the Trainor plot: Section 1W, Range 6, Plot U. (Nice of some stones to have that engraving. Most don't.) And I know Margaret Mayer was Thomas's youngest daughter, known to us kids growing up as Grandma Searls' "Aunt Mag." Here she is:
Grandma Searls was the third of five children, all daughters, of Henry Roman Englert and Catherine "Kitty" Trainor, the fourth of Thomas and Mary Ann's seven kids. Henry was the head of New York's Steel and Copperplate Engravers Union, and the family home was in the South Bronx at 742 East 142nd Street. When Kitty died at age 39, Aunt Mag became a second mom to Kitty's four surviving daughters.
But who was Grace F. Adams? And why are there no dates, or names other than those two, neither of whom died with the Trainor surname?
Some answers came when I got home and looked through the typed records of Catherine Burns, daughter of Florence, Grandma Searls' younger sister. These were scanned by Catherine's son Martin (my second cousin), and shared along with many other pictures I've put up on the Web.
There I discovered that Grace Adams is the granddaughter of Aunt Mag, who was born in 1855, two years before her mother died, and lived for another 89 years. She married Joseph Mayer in 1881, the year before Grandma Searls (née Ethel F. Englert) was born. (Joseph, who died in 1927, is buried elsewhere at Calgary.) Mag and Joseph's daughter Frances, born in 1888, married George Shannon. (After Geroge died in 1923, she married John Heslin, who also predeceased her without fathering more children.) Frances and George produced Gertrude Doris Shannon and Grace Shannon. Gertrude, born in 1918, married Thomas Doonan in 1937, and had four kids: Thomas Jr., Margaret, Rosemary and John. They and their descendants are third, fourth and fifth cousins of mine.
But the connection to the headstone is Grace Shannon, born in 1919. She married an Adams (first name unknown), and produced two daughters, Candice and Denise, born respectively in 1953 and 1957. They are third cousins of mine (sharing great-great grandparents). Candice married Joseph Flasch and produced two known children, Joseph and Shannon Marie.
So Grace Shannon is the Grace F. Adams on the headstone. Since died in 1966 at just 45 years old, and the headstone (or monument, in the parlance of the cemetery business) is clearly of relatively recent vintage, I am guessing it was was placed by one or both of Grace F. Adams' daughters. I am also guessing that they knew this was a Trainor plot, with lots of Trainors in it, but didn't want to go into the details, especially since some of them are hazy. Hence the names of the two ancestors they knew and cared most about, under the Trainor heading.
I'm saying all this in hope that one or more of them will find this post and fill us in.
What the only headstone at the Trainor plot understates is that bodies of nine family members (and perhaps one other) are stacked in just two graves:
Their order of burial also recalls a series of tragedies. First in the ground was an elderly aunt, apparently the widow of the uncle who came over with Thomas from Ireland. Next was Thomas's wife, Mary Ann, age 36. Then went three of their seven children: 1 year old Thomas Jr., 16 year old Charles, and then 31 year old Hannah Crowley. Not included is an infant daughter, Ella, buried elsewhere.
The story of Charles is family legend, but accounts differ. They agree that he ran away at 16, twice, to fight in the Civil War. One report says he was killed carrying a flag. Another says he was wounded and died in an army hospital. By that story he was visited by his father after a search made long and difficult by Charles's decision to register under an assumed name that only he and the Union Army knew. When Thomas found Charles, the boy was almost unrecognizable behind a full red beard. According to that story (the one in which Charles wasn't killed in battle), the doctors promised Thomas that his boy would be home by Christmas. There seems to be agreement that Charles died on Thanksgiving Day, and arrived home in a box. Grandma Searls (a niece of Charles through his sister Catherine) said Charles arrived home on Christmas Day.
All family accounts agree that Charles was planted in the Trainor plot at Calvary. The Cemetery records do not agree. Instead it lists Hannah Kennedy as an occupant of the Trainor plot. According to that listing, she was Charles' age when she died the same year. So there are three possibilities here. The first is that Hannah was a family acquaintance who just happened to die at the same age as Charles and in the same year. The second is that the cemetery made a mistake in recording the burial. The third is that both are buried there, and only Hannah's burial is recorded. I favor the second possibility because it's the most plausible. Today we'd call it a data entry error.
When I asked the guy at the Calvary office how burying stacked bodies in a single grave worked in an age when they didn't use vaults, he said something like, "They just dig down until they find the top of the coffin below. Or they stop when they find remains or what they suspect are remains, and set the next coffin on top."
What they find, if a coffin is absent, would depend on the soil. In the red-dirt South, where there is a lot of acid in the soil, I am told there tends to be nothing left after a few years but buttons and shoelace grommets. But in other soils, such as in France, where they relocated all the remains in all of Paris's cemeteries into quarries under the city (now called the catacombs) from the late 1700s to mid 1800s, all the bones stay in perfect shape. (I visited there in '10. Amazing place.)
When I was in Letterkenny a few years ago, I thought I would try to find some trace of the Trainors who stayed behind. Turns out Trainor is a fairly common name that roughly means laborer, or strong man, in the original Gaelic Thréinfhir. There are also many variants, including Armstrong. So I took my curiosity to the Parochial House across from St. Eunan's Cathedral in Letterkenny, and was rebuked by one of the priests there. Didn't I know the Irish Catholic Church was underground in the early 1800s, while all of Ireland was under England's thumb and enduring one famine and plague after another? In other words, "Don't bother askin'."
He did at least point me to a graveyard near Old Town, across the River Swilly. It was in use two centuries ago, when Great-great Grandpa Thomas was growing up there, and might contain some Trainors or Hockeys, he said. When we went by, however, it was raining heavily, and there was a funeral underway — one of the first there in a long time, we were told by one of those attending. So we gave up.
For what it's worth, I've looked a bit into Donegal genealogy records for evidence of Trainors, or Thréinfirs, and found nothing. But the Trainors may not have been from Letterkenny, or Donegal. I've heard variously that they were from County Monaghan, or Cork. A search here brings up 85,651 birth records for Thomas Trainor in Monaghan. Seems mighty high, but maybe I'm doing it wrong.
Last year I took my wife on what she called "a really bad idea for a date" (as was the Letterkenny side trip): visiting the graves of other relatives on Grandma's father's side:
Christian Englert (my great-great grandfather, same generation as Thomas Trainor), his wife Jacobina (née Rung) Englert, and five others in the next generation, including four who died young (aged 33, 29, 1 and 10 months). Only three of those are marked on the headstone. Here they are in roughly 1869.
Christian's son, Henry Roman Englert, his wife Kitty Trainor (one of the sibs not buried in Calvary), Henry's second wife (Teresa Antonelli), and three from the next generation, all of whom died young and are stacked into three graves in one plot below a small wedge-shaped headstone that identifies Henry alone.
I couldn't find a third grave site, possibly not marked, containing Henry's brother Andrew and (stacked atop him) a daughter or niece, Annie Englert. This one may not be marked.
Martin tells me that the four Englert sisters and others of their generation would often visit the graves of their mother and siblings, even before their father, Henry, died in 1943. I am sure that none of those graves would have been marked. It also seems strange to me that they (or somebody) only marked Henry's after he died, without mention of the five others below.
Anyway, I've shared documents and pictures of Trainors here, Englerts here, and Dwyers (Martin's family) here.
All of this inquiry also has me thinking about what cemeteries are for. Clearly the idea of organizing the dead under plaques, stones and monuments is to honor and host those who miss them, or who wish at least to respect them, as I did for all those piled-up Trainors last Saturday.
I suppose the original purpose of burial was to hold the stink down, or to recycle nutrients where the process can't be seen. (Beats watching vultures and less grand creatures do the job.) Whatever it was, it seems kind of wasteful and obsolete at this point.
Over dinner a few years ago, Kevin Kelly told me that nobody we know, including ourselves, will be remembered in a thousand years — or even a hundred or two. Each of us at most is an Ozymandias, or a Shelley, who wrote his famous sonnet before drowning at 29. Here it is:
I met a traveller from an antique land
Who said: "Two vast and trunkless legs of stone
Stand in the desert. Near them, on the sand,
Half sunk, a shattered visage lies, whose frown,
And wrinkled lip, and sneer of cold command,
Tell that its sculptor well those passions read
Which yet survive, stamped on these lifeless things,
The hand that mocked them and the heart that fed:
And on the pedestal these words appear:
'My name is Ozymandias, king of kings:
Nothing beside remains. Round the decay
Of that colossal wreck, boundless and bare
The lone and level sands stretch far away."
I was the traveler on Saturday. New York was, for that day, my antique land. Around the Trainor graves Calvary seemed boundless, though hardly bare, covered by ranks of headstones, statues and thick granite houses for the above-ground dead: lifeless things, all. Lone it also seemed, since I saw not one other pedestrian (and just one other car) during the hours I wandered there, on a day that could hardly have been more sunny, mild and welcoming.
All of it seemed to certify, as does the hand of Ozymandias' sculptor, the full depth of departure: that all will be forgotten, and only stone pedestals for absent memories will remain.
The job of the living, I believe, is to leave the world better than we found it. That's all. Whether we do that job or not, we are still obliged to leave. That's a lesson I learned from my mother, after she died:
So many times I think about something I'd love to share with Mom or Pop, then remember they're gone. Often I hear Mom's voice: firm, instructive and loving as ever. Give to the living, she says. That's what love is for. Her lesson: Death makes us give love to the living. She was a teacher. Still is.
And so are they all, even if now we know next to nothing about them.
What's up with @TMobile in North Carolina?
September 1, 2015 in Business, Family, Gear, infrastructure, Internet, North Carolina, Places, Strange stuff, Technology, VRM | 9 comments
I took that screen shot at the excellent Oakleaf restaurant in Pittsboro, NC a few days ago. Note the zero bars (or dots) of telephone service, and the very respectable (tested!) data service. To confirm what the hollow dots said, I tried to make a call. Didn't work.
This seems to be a new thing for T-Mobile in North Carolina, where I spent much of this summer — or at least in the parts of it where I visited.
The company's mobile phone coverage is pretty lousy to begin with, on the whole: great on highways and in the larger towns; but spotty when you head into the suburbs and countryside. What changed is the sudden near-disappearance of voice phone coverage in some places where it had worked before, and the improvement at the same time of data coverage.
At my sister's house, near a major interstate highway, I could use my phone on the porch or in the yard, but not indoors, where I'd see the most dreaded two words in mobile telephony: "no service." Or at least that was the case in July and early August.
Then something strange happened. I started getting data service indoors at her house, and in other places where before there was nothing. But all I got was data, identified by that little "LTE." Telephony was five empty dots. At my sister's place I also couldn't make or get a call out in the yard, on the street, or anywhere in the neighborhood. But the data service was now terrific.
So I'm wondering if this is just me, or if T-Mobile is lately favoring data over telephony in some places. Anybody know? (I note that T-Mobile's coverage maps only seem to deal with data, not telephony. But maybe I'm missing something.)
By the way, I should add that I wouldn't trade T-Mobile for any other carrier right now, because I travel a lot outside the country. In addition to fine coverage in New York, Boston, and all the places I tend to go in California, T-Mobile gives me free data roaming and texting everywhere I go, and 20¢/minute on the phone. Yes, the data rates tend to be 2G rather than 3G or 4G/LTE. But it tends to be good enough most of the time. It also makes me tolerant of a less-than-ideal coverage footprint here in the U.S.
Tags: Mobile phone
Raising a glass to @AtwatersBakery
December 28, 2014 in Business, Culture, Family, food, Geography, Places | 3 comments
No sooner do I publish Let's bring the cortado / piccolo to America than I discover it has already arrived at Atwater's in Baltimore:
And here's how it's featured on the coffee menu:
@AtwatersBakery at Belvedere Square Market was already our favorite place to grab a bite in Baltimore. (Here's a menu.) Could be they already offered cortados and I didn't know. Usually we go there for the bakery's homey and original breads, soups and sandwiches. But either way, I hope their embrasure of the cortado is a harbinger of a larger trend.
Anyway, if you're in The Monumental City, check 'em out. They have six locations, so it shouldn't be too hard.
Tags: Baltimore, Maryland
Powered by WordPress and Tarski


SGS FIMKO OY is a company located in Finland, 00211 HELSINKI at P.O. BOX 30. SGS FIMKO OY has an ACTIVE entity status and an ISSUED LEI code. The Legal Entity Identifier code of SGS FIMKO OY is 213800AFMRTLWRYOL574. The legal form of this company is 9999.


text:
Q: NHibernate Criteria query with Postgresql Timestamp column, .NET DateTime truncating milliseconds in query parameters I have a NHibernate criteria query as follows:
using (var unitOfWork = this.UnitOfWorkFactory.CreateUnitOfWork())
{
    const string fromstring = "2013-01-29 23:30:33.5993";
    var from = DateTime.Parse(fromstring);

    const string tostring = "2013-01-29 23:30:33.63434";
    var to = DateTime.Parse(tostring);

    var criteria = unitOfWork.Session.CreateCriteria<DataModel>();

    criteria.Add(Restrictions.Ge("Created", from));
    criteria.Add(Restrictions.Le("Created", to));

    items = criteria.List<DataModel>();
}

I'm using Postgresql, here's the table mapping:
-- Table: data

-- DROP TABLE data;

CREATE TABLE data
(
  id integer NOT NULL DEFAULT nextval('data__sequence'::regclass),
  created timestamp without time zone NOT NULL,
  CONSTRAINT itemsupdatelog_pkey PRIMARY KEY (id )
)
WITH (
  OIDS=FALSE
);
ALTER TABLE data
  OWNER TO ubuntu;

And the NHibernate mapping:
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="Data" namespace="Data.Models">
  <class name="DataModel" table="Data" mutable="false">
    <id name="Id">
      <generator class="sequence">
        <param name="sequence">Data__Sequence</param>
      </generator>
    </id>

    <property name="Created" not-null="true" type="Timestamp" />

  </class>
</hibernate-mapping>

I can confirm that the data in the tables looks good (i.e. there ARE most definitely milliseconds on all the Created values, and when I query the values OUT of the db using NHibernate, the DateTime objects have the correct milliseconds).
However, when I use NHProf to examine the query, NHibernate is NOT sending the correct milliseconds in the query:
    SELECT this_.Id            as Id1_0_,
       this_.Created       as Created1_0_,
FROM   Data this_
WHERE  this_.Created >= '2013-01-29T23:30:33.00' /* :p1 */
       and this_.Created <= '2013-01-29T23:30:33.00' /* :p2 */
ORDER  BY this_.Created desc

Any ideas?

A: UPDATE:
The issue appears to be in NHProf. SQL reported by NHProf :
SELECT this_.Id      as Id0_0_,
   this_.Created as Created0_0_
FROM   data this_
WHERE  this_.Created >= '2013-01-29T23:30:33.00' /* :p0 */
       and this_.Created <= '2013-01-29T23:30:33.00' /* :p1 */

SQL reported in postgres log :
SELECT this_.Id as Id0_0_, this_.Created as Created0_0_
FROM data this_
WHERE this_.Created >= ((E'2013-01-29 23:30:33.599300')::timestamp)
and this_.Created <= ((E'2013-01-29 23:30:33.634340')::timestamp)

To double check I inserted a row which falls between the milliseconds in the query:
insert into data (created) values ('2013-01-29 23:30:33.600')

And this row is returned.

redpajama_set_name: RedPajamaStackExchange


text:
Q: PHP - Date Format to include a string I am trying to format a PHP date to be of the following format:
Wednesday 3rd November 2021 at 11:01am
My code is below:
$date = new DateTime($dateOfChange);
$date = $date->format('l jS F Y "at" g:ia');
I have tried:
$date = $date->format('l jS F Y "at" g:ia'); // displays: "am01"
$date = $date->format('l jS F Y at g:ia'); // displays: am01
I can't see a relevant section in the documentation (https://www.php.net/manual/en/datetime.format.php)

A: This should do the trick...
$date->format('l jS F Y \a\t g:ia');

You need to escape characters that are not intended to be used for date values.
Note that if you're using " instead of ' for your format string you'll need to double escape n, t and r characters as PHP will interpret them as newlines, tabs etc...
For example:
$date->format("l jS F Y \a\\t g:ia");


text:
Alzheimer's disease is one of the cruelest and costliest crises of the 21st century. It impacts all aspects of a person's life: employment, family, personality, memory and the ability to function. As the nation's sixth leading cause of death and the only disease in the top ten with no prevention or cure, the number of families affected is increasing exponentially.
For the Harvard's, Alzheimer's struck when Andy was terminated as Director of Dartmouth's Outdoor Programs for reasons later determined to be effects of the disease. Younger-Onset strikes in the middle of family and professional life. The Americans with Disabilities Act does not protect persons with this often-unrecognized disease unless diagnosed before they're fired.
"Our individual success depended not on our making it, but on someone making it. If anyone makes the summit, we've all made the summit."
- Andy Harvard about the East Face of Everest
Alzheimer's Association 2018 Alzheimer's Disease Facts and Figures
Alzheimer's hits us all, directly or indirectly. But fighting the disease is like climbing Everest. At first, people say, "It's impossible." Until it isn't. With teamwork, determination, and leadership, nothing is impossible.
Check out ongoing Alzheimer's research and resources, and catch up with our latest news and media.
Learn With Us >


text:
Tag Bratislava, Slovakia
BKP & Scaron's brick expansion for a twentieth-century working-class home
Expansion of a working-class home offers BKP&Scaron an opportunity to experiment in the classic way with formal idioms and the structure of the building itself.
Wagnerian-inspired concrete house designed by B.K.P.Š. Architects
The Slovakian firm B.K.P.Š. has built a concrete house along a sloping lot in the capital city of Bratislava, designed to dominate the landscape.
The Ecocapsule micro-home opens to the public in Bratislava
After the 2018 launch of the prototype of its mobile micro-home, the Slovakian company, also called Ecocapsule is now ready to get serious. The first micro-home is available for rent to the general public in Bratislava, providing the opportunity to live in a sustainable, autonomous housing pod.
Studio Perspektiv creates new WebSupport interiors in Bratislava
The Studio Perspektiv designers, who have been involved in the interior design of work environments for years, have completed the new design of WebSupport offices in Bratislava, Slovakia.
Ecocapsule, a mobile, self-sufficient micro-home
A few days ago, the Slovakian company Ecocapsule presented the first model of its self-sufficient, mobile, namesake micro-home range.


text:
Q: Streamsets Javascript scripting error loading JQuery I am trying to load JQuery in the Streamsets Javascript Scripting Origin to query rest api and getting an error. The code looks like below and java load permission was given in /etc/sdc/sdc-security.policy. Anyone have sample Streamsets javascript code to query rest api?
load('file:///opt/streamsets-datacollector/resources/jquery-3.5.1.min.js');

var settings = {
  "url": "https://example.com/abc?parm1=123&parm2=456",
  "method": "GET",
  "timeout": 0,
  "headers": {
    "Accept": "application/vnd.mds.provider+json;version=0.3",
    "Authorization": "Bearer some-token-xxxxx"
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Below is the stack error:
com.streamsets.pipeline.api.StageException: SCRIPTING_10 - Script error in user script: javax.script.ScriptException: TypeError: Cannot read property "createElement" from undefined in file:/opt/streamsets-datacollector/resources/jquery-3.5.1.min.js at line number 2
    at com.streamsets.pipeline.stage.origin.scripting.AbstractScriptingSource.produce(AbstractScriptingSource.java:137)
    at com.streamsets.pipeline.api.base.configurablestage.DPushSource.produce(DPushSource.java:44)
    at com.streamsets.datacollector.runner.StageRuntime.lambda$execute$1(StageRuntime.java:270)
    at com.streamsets.datacollector.runner.StageRuntime.execute(StageRuntime.java:244)
    at com.streamsets.datacollector.runner.StageRuntime.execute(StageRuntime.java:279)
    at com.streamsets.datacollector.runner.SourcePipe.process(SourcePipe.java:79)
    at com.streamsets.datacollector.execution.runner.common.ProductionPipelineRunner.runPushSource(ProductionPipelineRunner.java:426)
    at com.streamsets.datacollector.execution.runner.common.ProductionPipelineRunner.run(ProductionPipelineRunner.java:388)
    at com.streamsets.datacollector.runner.Pipeline.run(Pipeline.java:533)

A: JQuery is usually used for HTML document traversal. You should look into using HTTP Client origin instead to invoke the REST API endpoint.
Cheers,
Dash


Caroline works in the events team, creating content for the annual programme of events and conferences. She currently leads on conferences and events relating to public health, digital health, patient experience, community services, older people and primary care.
Before joining the Fund in 2012, Caroline spent more than 10 years working on a wide range of events and conferences in the public and third sectors. As well as health, she has worked in local government and education and has experience working for and with public sector organisations to develop successful engagement events.


text:
const bodyParser = require('body-parser');
const crypto = require('crypto');
const express = require('express');
const request = require('request');

/* Base application functionality */

let app = express();
app.set('view engine', 'pug');
app.use(bodyParser.urlencoded({ extended: true }));
app.use('/now/app/static/', express.static('public'));

let spotifyKey;
authenticateSpotify(process.env.SPOTIFY_CLIENT, process.env.SPOTIFY_SECRET);

app.get('/now', (req, res) => {
  let title = 'Descent';
  let users = [
    'iJason_',
    'jefferyd',
    'foreverautumn',
    'robinlisle',
    'ben-xo',
    'good_bone',
    'pellitero',
    'Nesquen',
    'hjbardenhagen',
    'Kvasmeister',
    'jakeledoux'
  ];
  let user = users[Math.floor(Math.random() * users.length)];

  res.render('landing', { title, user });
});

app.post('/now', (req, res) => {
  let user = encodeURIComponent(req.body.user || req.body.defaultUser);

  res.redirect(`/now/${user}`);
});

app.get('/now/:user', (req, res) => {
  let title = 'Descent';
  let user = decodeURIComponent(req.params.user.substring(0, 20));

  res.render('now', { title, user });
});

app.get('/now/app/config', (req, res) => {
  let title = 'Descent Configuration';

  res.render('config', { title });
});

app.post('/now/app/config/set', (req, res) => {
  let cookies = [
    {
      'name': 'background',
      'options': ['artist', 'album', 'transparent', 'none']
    },
    {
      'name': 'blur',
      'options': ['true', 'false']
    },
    {
      'name': 'defaultBackground'
    },
    {
      'name': 'units',
      'options': ['imperial', 'metric']
    },
    {
      'name': '24hr',
      'options': ['true', 'false']
    },
    {
      'name': 'weekday',
      'options': ['true', 'false']
    },
    {
      'name': 'seconds',
      'options': ['true', 'false']
    },
    {
      'name': 'lastUser'
    },
    {
      'name': 'weatherOn',
      'options': ['true', 'false']
    },
    {
      'name': 'datetimeOn',
      'options': ['true', 'false']
    },
    {
      'name': 'extendedOn',
      'options': ['true', 'false']
    }
  ];

  for (let cookie of cookies) {
    let name = cookie.name;
    let options = cookie.options;
    let selected = req.body[name];

    if (selected === undefined || (options !== undefined && !options.includes(selected)))
      continue;

    res.cookie(name, selected, { maxAge: 315360000000 });
  }

  let user = req.body.lastUser;

  if (user === undefined || user === null) {
    res.redirect('/now');
    return;
  }

  res.redirect(`/now/${user}`);
});

/* Hue functionality */

app.get('/now/app/hue', (req, res) => {
  let title = 'Descent Hue Setup';

  res.render('hue', { title, hueClientId: process.env.HUE_CLIENT,
    hueAppId: process.env.HUE_ID });
});

app.get('/now/app/hue/authorize', (req, res) => {
  let code = req.query.code;
  let refreshToken = req.query.refreshToken;
  authenticateHue(code, refreshToken, auth => {
    if (auth) {
      res.cookie('hueAccessToken', auth.accessToken, { maxAge: auth.accessTokenExpiry });
      res.cookie('hueRefreshToken', auth.refreshToken, { maxAge: auth.refreshTokenExpiry });
      res.cookie('hueUsername', auth.username, { maxAge: auth.accessTokenExpiry });
    }

    res.redirect('/now/app/hue');
  });
});

function authenticateHue(code, refreshToken, callback) {
  if (!code && !refreshToken) {
    console.warn('Error authenticating with Hue: No authorization code or refresh token');
    callback();
    return;
  }

  let clientId = process.env.HUE_CLIENT;
  let clientSecret = process.env.HUE_SECRET;
  if (!clientId || !clientSecret) {
    console.warn('Error authenticating with Hue: Missing client ID or secret');
    callback();
    return;
  }

  let url = code ? `https://api.meethue.com/oauth2/token?code=${code}&grant_type=authorization_code` : 'https://api.meethue.com/oauth2/refresh?grant_type=refresh_token';
  request.post(url, (err, res) => {
    if (err || res.statusCode !== 401) {
      console.warn('Error authenticating with Hue: No initial challenge');
      callback();
      return;
    }

    let authHeader = res.headers['www-authenticate'];
    let realm = authHeader.match(/realm="(.+?)"/)[1];
    let nonce = authHeader.match(/nonce="(.+?)"/)[1];
    let uriSuffix = code ? 'token' : 'refresh';
    let digest = calculateHueDigest(clientId, clientSecret, realm, nonce, uriSuffix);

    let auth = `Digest username="${clientId}", realm="${realm}", nonce="${nonce}", uri="/oauth2/${uriSuffix}", response="${digest}"`;
    let headers = { 'Authorization': auth };

    let form = code ? undefined : { refresh_token: refreshToken };

    request.post(url, { headers, form }, (err, res, body) => {
      if (err || res.statusCode !== 200) {
        console.warn(`Error authenticating with Hue: Digest failure: ${body}`);
        callback();
        return;
      }

      let data = JSON.parse(body);
      let accessToken = data.access_token;
      let accessTokenExpiry = (parseInt(data.access_token_expires_in) - 300) * 1000;
      let refreshToken = data.refresh_token;
      let refreshTokenExpiry = (parseInt(data.refresh_token_expires_in) - 300) * 1000;
      let tokenType = data.token_type;

      hueWhitelistApplication(accessToken, (username) => {
        let auth = { accessToken, accessTokenExpiry, refreshToken, refreshTokenExpiry, tokenType, username };
        callback(auth);
      });
    });
  });
}

function calculateHueDigest(clientId, clientSecret, realm, nonce, uriSuffix) {
  let hash1Data = `${clientId}:${realm}:${clientSecret}`;
  let hash1 = crypto.createHash('md5').update(hash1Data).digest('hex');

  let hash2Data = `POST:/oauth2/${uriSuffix}`;
  let hash2 = crypto.createHash('md5').update(hash2Data).digest('hex');

  let digestData = `${hash1}:${nonce}:${hash2}`;
  let digest = crypto.createHash('md5').update(digestData).digest('hex');

  return digest;
}

function hueWhitelistApplication(accessToken, callback) {
  let url = 'https://api.meethue.com/bridge/0/config';
  let headers = { 'Authorization': `Bearer ${accessToken}`, 'Content-Type': 'application/json' };
  let body = JSON.stringify({ linkbutton: true });
  request.put(url, { headers, body }, (err, res, body) => {
    url = 'https://api.meethue.com/bridge/';
    body = JSON.stringify({ devicetype: 'Descent' });

    request.post(url, { headers, body }, (err, res, body) => {
      let data = JSON.parse(body);
      callback(data[0].success.username);
    });
  });
}

app.post('/now/app/hue/api/groups', (req, res) => {
  let accessToken = req.body.accessToken;
  let username = req.body.username;

  let url = `https://api.meethue.com/bridge/${username}/groups`;
  let headers = { 'Authorization': `Bearer ${accessToken}` };
  request(url, { headers }, (err, res2, body) => {
    let data = JSON.parse(body);
    res.json(data);
  });
});

app.post('/now/app/hue/api/light', (req, res) => {
  let accessToken = req.body.accessToken;
  let username = req.body.username;

  let id = req.body.id;
  let colorX = req.body.colorX;
  let colorY = req.body.colorY;

  let url = `https://api.meethue.com/bridge/${username}/lights/${id}/state`;
  let headers = { 'Authorization': `Bearer ${accessToken}`, 'Content-Type': 'application/json' };
  let body = `{"xy": [${colorX},${colorY}]}`;
  request.put(url, { headers, body }, (err, res2, body) => {
    let data = JSON.parse(body);
    res.json(data);
  });
});

/* Spotify functionality */

class Track {
  constructor(success) {
    this.success = success === true;
  }
}

class Artist {
  constructor(success) {
    this.success = success === true;
  }
}

function authenticateSpotify(client, secret) {
  if (!client || !secret) {
    console.warn('Error getting Spotify authorization: No API credentials');
    return;
  }

  let authorization = Buffer.from(`${client}:${secret}`).toString('base64');
  let options = {
    url: 'https://accounts.spotify.com/api/token',
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded',
      'Authorization': `Basic ${authorization}`
    },
    body: 'grant_type=client_credentials'
  };
  request.post(options, (err, res, body) => {
    if (err || res.statusCode != 200) {
      console.warn(`Error getting Spotify authorization: ${err}`);
      spotifyKey = null;
      setTimeout(() => { authenticateSpotify(client, secret); }, 1800000);
      return;
    }

    let data = JSON.parse(body);
    spotifyKey = data.access_token;
    setTimeout(() => { authenticateSpotify(client, secret); }, data.expires_in * 1000);
  });
}

app.post('/now/app/spotify/track', (req, res) => {
  if (!spotifyKey) {
    console.warn('Error getting Spotify track: No API key');
    res.json(new Track());
    return;
  }

  let artist = encodeURIComponent(decodeURIComponent(req.body.artist));
  let title = encodeURIComponent(decodeURIComponent(req.body.title));
  let query = `${artist}%20-%20${title}`;

  let options = {
    url: `https://api.spotify.com/v1/search?q=${query}&type=track&limit=1`,
    headers: {
      'Authorization': `Bearer ${spotifyKey}`
    }
  };
  request(options, (err, res2, body) => {
    if (err || res2.statusCode != 200) {
      console.warn(`Error getting Spotify track: Invalid response: ${err}`);
      res.json(new Track());
      return;
    }

    let data = JSON.parse(body);
    if (data.tracks.total < 1) {
      console.warn('Error getting Spotify track: No results');
      res.json(new Track());
      return;
    }

    let track = data.tracks.items[0];
    track.success = true;

    res.json(track);
  });
});

app.post('/now/app/spotify/artist', (req, res) => {
  if (!spotifyKey) {
    console.warn('Error getting Spotify artist: No API key');
    res.json(new Artist());
    return;
  }

  let artist = encodeURIComponent(decodeURIComponent(req.body.artist));
  let query = artist;

  let options = {
    url: `https://api.spotify.com/v1/artists/${query}`,
    headers: {
      'Authorization': `Bearer ${spotifyKey}`
    }
  };
  request(options, (err, res2, body) => {
    if (err || res2.statusCode != 200) {
      console.warn(`Error getting Spotify artist: Invalid response: ${err}`);
      res.json(new Artist());
      return;
    }

    let data = JSON.parse(body);
    let artist = data;
    artist.success = true;

    res.json(artist);
  });
});

/* Weather (OpenWeatherMap and DarkSky) functionality */

class Weather {
  constructor(success) {
    this.success = success === true;
  }
}

app.post('/now/app/weather', (req, res) => {
  let lat = req.body.latitude;
  let lon = req.body.longitude;
  let units = decodeURIComponent(req.body.units);

  let dsKey = process.env.DARK_SKY_KEY;
  let owmKey = process.env.OPENWEATHERMAP_KEY;

  if (dsKey)
    getWeatherDarkSky(dsKey, lat, lon, units, (err, weather) => {
      if (err)
        console.warn(`Error getting Dark Sky weather: ${err}`);

      res.json(weather);
    });
  else if (owmKey)
    getWeatherOpenweathermap(owmKey, lat, lon, units, (err, weather) => {
      if (err)
        console.warn(`Error getting OpenWeatherMap weather: ${err}`);

      res.json(weather);
    });
  else {
    console.warn('Error getting weather: No API key');
    res.json(new Weather());
  }
});

function getWeatherDarkSky(key, lat, lon, units, callback) {
  units = units === 'imperial' ? 'us' : 'si';
  let urlLat = encodeURIComponent(lat);
  let urlLon = encodeURIComponent(lon);
  let url = `https://api.darksky.net/forecast/${key}/${urlLat},${urlLon}?units=${units}`;

  request(url, (err, res, body) => {
    if (err || res.statusCode != 200)
      callback(`Invalid response: ${err}`, new Weather());

    let data = JSON.parse(body);
    let icons = {
      'clear-day': 'day-sunny',
      'clear-night': 'night-clear',
      'rain': 'rain',
      'snow': 'snow',
      'sleet': 'sleet',
      'wind': 'cloudy-gusts',
      'fog': 'fog',
      'cloudy': 'cloudy',
      'partly-cloudy-day': 'day-cloudy',
      'partly-cloudy-night': 'night-alt-cloudy',
      'hail': 'hail',
      'thunderstorm': 'thunderstorm',
      'tornado': 'tornado'
    };

    let weather = new Weather(true);
    weather.summary = data.minutely.summary;
    weather.temperature = Math.round(data.currently.temperature);
    weather.apparentTemperature = Math.round(data.currently.apparentTemperature);
    weather.unit = units === 'us' ? 'F' : 'C';
    weather.icon = icons[data.currently.icon];

    callback(null, weather);
  });
}

function getWeatherOpenweathermap(key, lat, lon, units, callback) {
  let urlLat = encodeURIComponent(lat);
  let urlLon = encodeURIComponent(lon);
  let urlUnits = encodeURIComponent(units);
  let url = `http://api.openweathermap.org/data/2.5/weather?lat=${urlLat}&lon=${urlLon}&units=${urlUnits}&appid=${key}`;

  request(url, (err, res, body) => {
    if (err || res.statusCode != 200)
      callback(`Invalid response: ${err}`, new Weather());

    let data = JSON.parse(body);
    let icons = {
      '01d': 'day-sunny',
      '01n': 'night-clear',
      '02d': 'day-cloudy',
      '02n': 'night-cloudy',
      '03d': 'cloud',
      '03n': 'cloud',
      '04d': 'cloudy',
      '04n': 'cloudy',
      '09d': 'rain',
      '09n': 'rain',
      '10d': 'day-rain',
      '10n': 'night-rain',
      '11d': 'thunderstorm',
      '11n': 'thunderstorm',
      '13d': 'snow',
      '13n': 'snow',
      '50d': 'windy',
      '50n': 'windy'
    };
    let apparent;
    if (units === 'imperial')
      apparent = 35.74 + 0.6215 * data.main.temp - 35.75 * Math.pow(data.wind.speed, 0.16)
        + 0.4275 * data.main.temp * Math.pow(data.wind.speed, 0.16);
    else
      apparent = 13.12 + 0.6215 * data.main.temp - 11.37 * Math.pow(data.wind.speed, 0.16)
        + 0.3965 * data.main.temp * Math.pow(data.wind.speed, 0.16);

    let weather = new Weather(true);
    weather.summary = `${data.weather[0].description} currently`;
    weather.summary = `${weather.summary.substring(0, 1).toUpperCase()}${weather.summary.substring(1)}`;
    weather.temperature = Math.round(data.main.temp);
    weather.apparentTemperature = Math.round(apparent);
    weather.unit = units === 'imperial' ? 'F' : 'C';
    weather.icon = `wi wi-${icons[data.weather[0].icon]}`;

    callback(null, weather);
  });
}

/* Application runtime */

app.listen(process.env.DESCENT_PORT || 3000);


Primary Care. Objective is to create the connection with Personal Care Physician (PCP) / Medical Home. Preventive medicine rather than Emergency Care.
Ambercare elevates the standard by which healthcare and patient assistance in the home is delivered. Today, the state of healthcare is of concern to more Americans than ever. We are living longer, and when, or if we get sick or hurt, we are not being cared for in a hospital setting to the extent that was standard in the not-so-distant past. That's the good news, and the bad news. It means the need for high quality professional care administered "in the home" is at an all time high, and will continue to grow. In fact, there is a greater than 85% chance that someone in your family, if not yourself, will need home care of some kind in your lifetime. Careful, compasionate, professional and comprehensive care under yours or your loved one's own roof. That's Ambercare's calling. We provide a full spectrum of homecare services and hospice with complete support in home-delivered therapies and necessary medical supplies and equipment.


The show frequently shows nice views of the city of Leipzig.
I'm afraid that this is the only favorable remark I can make about this show. It is probably the worst murder mystery series I've ever seen. All cases are extremely unrealistic (much more than usual) but appear to be meant realistic. Each storyline has a complete turning point every five to ten minutes (makes 4-5 such surprising developments per episode). This means that the end is not usually predictable but despite that I could never feel any suspense.
The actors are unable to alleviate the abstruse and convoluted plots. Their characters are the generic combination of some young inspectors (presumably deemed attractive, of both genders) and a senior supervisor. None of them creates the impression of an authentic police officer. Again, this may be due to the hopeless stories. But maybe not.


Yes, I know it's been awhile since my last Midnight Horror Review, but between putting my grandmother in a nursing home, moving her belongings into a storage unit, and dealing with a flu/ cold bug, I haven't had a lot to time to watch any horror flicks until a few nights ago when I binged watched the Apocalypse: 4 in 1 Collection DVD (Not Rated; $19.98; 5 hrs 49 mins), which will be released on April 16th by Mill Creek Entertainment. The two-disc set features four made-for-SyFy television movies: Arachnoquake, Ghostquake, Miami Magma, and Weather Wars. There are no special features or bonus extras.
Let's start with the best first and work my way down to the worst that this release has to offer!
Arachnoquake first aired on SyFy in 2012. It's a B-spider flick from director G.E. Furst, who also serves as supervising producer for the other three titles on this release. Plus, Furst also acts in the movies as well. Ignore Arachnoquake's 2.9 rating on IMDb as the movie isn't that bad. It stars Bug Hall, Tracey Gold, Edward Furlong, Dane Rhodes, and Ethan Phillips. The plot centers around a dangerous species of giant fire-breathing spiders being unleashed after several earthquakes occur in New Orleans. An alcoholic tour guide ends up leading a group of tourists in a quest to kill the "queen" spider, who basically controls the life of all the other spiders.
Ghostquake aired on SyFy in 2012 under the title Haunted High. Jeffery Scott Lando directed this horror-comedy, which stars M.C. Gainey, Lauren Whitney Pennington, Jonathan Baron, Mark Donato, Shawn Phillips, and Danny Trejo. Charisma Carpenter has a cameo as a librarian. The plot centers around a time capsule at a private high school being knocked open, which releases the ghosts of a cult leader, Danforth, and his female assistant. Danforth unleashes a series of supernatural earthquakes that traps several students and teachers inside the school.
Weather Wars aired on SyFy in 2011 under the title Storm War. Directed by Todor Chapkanov, the disaster flick stars Jason London, Wes Brown, Erin Cahill, and Stacy Keach. The plot is ridiculously dumb! It involves a recently fired scientist seeking revenge on the government by unleashing a series of dangerous lighting strikes across Washington D.C. Only two people in the entire city who can stop him are his estranged sons!
Miami Magma aired on SyFy in 2011. Directed by Todor Chapkanov, this boring disaster flick stars Rachel Hunter, Cleavant Derricks, Melissa Ordway, Griff Furst, and Brad Dourif (more like a cameo). Thanks to an oil company that's been illegally drilling, a super-volcano erupts underneath Miami. Vulcanologist Antoinette Vitrini (played by Rachel Hunter) and her much younger sister attempt to expose the oil company.
SyFy makes some of the worst movies and three of them happens to be on the Apocalypse: 4 in 1 Collection. The only one with any likeable quality is Archnoquake, which features an excellent cast, some funny dialogue, and some goofy CGI effects.
Ghostquake would have been a decent film if it had a bigger budget and a better director. Miami Magma and Weather Wars are horrible. Don't expect a grand disaster flick with tons of special effects because there are none! Well, except for lighting strikes and lots of steam. I don't recommend watching these films.
The picture quality and sound quality for the disc containing Arachnoquake and Ghostquake is pretty decent, but the there are some pixelation issues on the second disc for Weather Wars and Miami Magma; though it's nothing too extreme.
The DVD comes with a digital code that can only redeemed and streamed on Mill Creek Entertainment's website. Unfortunately, the digital code was missing from the DVD that was sent to me, so I have no way to review the streaming quality for these films.
While I did enjoy watching Archnoquake, I'm only giving this DVD a 2 out of 5 rating! It doesn't deserve anything more or less.
I'm over the flu, but my allergies have been bothering me, mostly due to the weather.
I loved horror flicks when I was a kid and I still enjoy watching them.


White Tile cabinets seem discount subway tile clean and fresh. We understand that a trendy Tile would be the one that is clean and fresh, appropriate? White Tile cupboards might be followed perfectly with vibrant appliances discount subway tile and Tile instruments. Certainly, white discount subway tile color is fantastic for background. White Tile cabinets can complete virtually any Tile with unique colours. White Tile is of course one of them. White Tile cabinets to sure move nicely with white counter tops, white appliances, whitened Tile seats and Subway tile online cheap buy subway tiles online canada. White Tile cabinets may be put in virtually any types of Tile, including traditional, classic and modern.
Spherical or sq Tile table often used to the standard style and many of these are painted white discount glass subway tile or never painted at all. Adirondack seats with floral and lace table cloth will complement white table such as discount glass subway tile at country traditional property.
These drapes came from various possibilities discount subway tile backsplash of design, style, colors, and even layouts. If you can not find the drape that you prefer on the sector, create your own personal Tile curtain can be a ideal answer for you. Generating Tile curtain isn't as tough as you believe. As long as you have the plan and you understand just how you can sew and then utilize fabric, then you could be able to create curtain for the Tile on your own chosen. You are able to surf the net to locate the design of Subway tile online cheap buy subway tiles online canada that you can use to make your very own curtain.
Elaine Griffin favors this particular paint on account of the white shade from this paint has warmer textures having darkness of grey or beige also. It's best white painteven for the walls. Alessandra Branca located this paint over twenty decades back. She sensed amazing with the warm white with this paint. If your Tile has a lot of lighting, this paint is best white paint for Tile cabinets.
Are you currently confused to select the best Tile cabinet to place inside your Tile? You're suggested to know about Subway tile online cheap buy subway tiles online canada. The styles of Tile cabinet can supply you with recommendations to have a Tile cabinet that fit together with your Tile design and style. Below several styles of Tile cupboard you need to be aware of. It has good appearance because made of premium quality timber. It becomes very popular because so plain but versatile.
Contemporary appliances are must-have in-all Subway tile online cheap buy subway tiles online canada. These things are those which may unite the look and makes all mix well collectively. What's more, Tile is about functionality. Modern home equipment together with the newest attributes will definitely assist you to realize this objective.
When you moved right into flat, likely you have the flat with color faded cupboards. It's more economical in the event you use contact paper to pay for both the cabinets compared to using the paint. Contact newspaper additionally obtainable in a range of colours and layouts, you may select what you may would like. Just make certain this touch do not damage the cupboard when you eliminate it.


text:
Дежо (Дежё) Сабо (; 10 июня 1879 года, Клаузенбург, Австро-Венгрия — 5 января 1945 года, Будапешт) — венгерский лингвист и писатель, известный националистическими и антисемитскими взглядами. Сабо был одним из первых «пионеров Мадьярской народнической литературы». В 1935 году был одним из номинантов на Нобелевскую премию по литературе.

Биография
Сабо переехал в Будапешт в 1918 году. Он начал публиковать короткие очерки в литературном ревю Nyugat. Первоначально поддержал Венгерскую революцию 1918 года. Артур Кёстлер, в то время учившийся в старшей школе, вспоминал Сабо как одного из новых учителей, назначенных в его школу революционным режимом: «застенчивый, разговаривающий тихо, несколько рассеянный человек, он рассказывал нам о чём-то более далеком, чем Луна: повседневной жизни наемных сельскохозяйственных рабочих в сельской местности».

Поддержка революции была, однако, краткой, и вскоре Сабо превратился в откровенного и неистового противника недолговечной Венгерской советской республики, провозглашенной Белой Куном.

Сабо быстро приобрёл известность и заметное влияние и зарекомендовал себя как плодотворный писатель. Впервые внимание широкой публики он заслужил своим трёхтомным романом 1919 года «Az elsodort falu» («Разрушенная деревня»), экспрессионистским произведением, пропагандирующим идею, что истоки венгерского возрождения следует искать в крестьянстве, а не в среднем классе, который Сабо считал «испорченным менталитетом ассимилированных немцев и евреев» Эта книга пользовалась значительным влиянием в период «белого террора» после подавления коммунистической революции. Хотя позже он опубликовал ещё множество книг, вершиной его литературных достижений считалась первая.

Сабо называется первым «интеллектуальным антисемитом среди венгерских писателей». Он был постоянным автором журнала Virradat, одного из самых радикальных антисемитских периодических изданий межвоенного периода, в котором опубликовал за три года не менее 44 статей. Эти статьи рисовали весьма апокалиптическую картину и были выдержаны в алармистских тонах, выговаривая венгерскому народа за его «немощность».

Идет постоянная дискуссия о том, призывал ли Сабо к физическому уничтожение венгерских евреев. По словам Иегуды Мартона, израильско-венгерского ученого, автора статьи о Сабо в «Еврейской энциклопедии», писатель прямо призвал к уничтожению на встрече с общественностью в 1921 году. С другой стороны, апологеты писателя обращают внимание, что в «Разрушенной деревне» Миклош (ключевая фигура этого произведения) говорит старому еврею: «Если бы ты только знал, что вся моя злость проистекает из того, что я понимаю, как мы зависим друг от друга, из моей к тебе любви». Подобное высказывание несовместимо с утверждением, что автор хочет убить всех евреев. Несомненно, что Сабо в своих сочинениях жёстко нападал на евреев. Это подорвать их положение в венгерском обществе и, можно сказать, способствовало уничтожение евреев в 1944 года — независимо от того, требовал ли этого сам Сабо.

Одновременно Сабо разделял антигерманские настроения, и в 1923 году начал кампанию по искоренению германского влияния в Венгрии. После 1932 года он был также откровенно против Скрещённых стрел, партии венгерских фашистов, не отказываясь от своих антисемитских взглядов.

Такое сочетание представлений было связано с его собственными специфическими расизмом, который Сабо назвал «апофеозом венгерской расы».

Его влияние, значительное в 1920-е годы, пошел на убыль в следующем десятилетии. В 1935 году он был номинирован на Нобелевскую премию по литературе, однако комитет в этот год не вручил её никому.

Сабо умер в январе 1945 года, во время осады Будапешта Советской Армией.

Сочинения
 Az Elsodort Falu (1918)
 Csodálatos élet (1920)
 Jaj! (1925)
 Feltámadás Makucskán´ (1925)
 Karácsony Kolozsvárt (1931)

Примечания