Month: April 2017

Bulbs For Next Year

The fall planted bulbs are in bloom, and we know what grew well here (and what didn’t — wild tulips survive well here, but the big, beautiful Dutch tulips become a rodent buffet. I’ve tried mixing them with other bulbs to no avail. As much as I love the Dutch tulips, I’m not buying more this year.). It’s time to put in an order for this Autumn. I order bulbs from both ColorBlends and Old House Gardens. This year we’ll be planting daffodils:

  

And some more crocus bulbs to scatter throughout the lawn:

DIY Hop Arbor

Our hops are finally strung! I ordered coir rope that is used by most hop growers – hopefully this doesn’t snap like the twine we used last year. Last year, all of the ropes slid together at the top. Which stretched the ropes (and probably didn’t do anything to keep the twine in one piece). This year, used 3/4″ PVC piping (yet another Home Depot purchase not being used as intended) and drilled holes through which the ropes are strung.

 

It was a lot easier to get the strings up this year – we ran each individual rope through its hole and tied the stakes to each end. Then pulled the wire that runs between the two trees up and secured it onto the tree branches.

Some of our vines were long enough to wrap onto the coir rope — so we’ve got hops climbing their ropes:

Why Some Jobs Matter

A week or two ago, Paul Krugman published an article titled “Why Don’t All Jobs Matter?” in which he explored the different narratives behind the decline of mining and manufacturing jobs and the decline of retail jobs. He tried very hard to avoid focusing on the sexist and classist snobbery behind the difference. To some degree, losing low paying jobs that frequently lack benefits is not as bad as losing decently paying jobs that include health benefits and pensions (although court ruling that allow companies to raid pension plans for operating cash basically rendered pension plans an empty promise).

All jobs don’t matter in public discourse because people lack respect for the retail, cell center, hospitality, etc staffs with which they directly interact. Mining and manufacturing jobs were afforded this mythos because the majority of people never interact with these employees. A sentiment echoed today in a newsletter from Sherrod Brown’s office:

“I heard from those miners and their families in Steubenville. I talked with them, and heard their stories – stories of years of backbreaking, dangerous work, but work that had dignity. They put in their time to earn better lives for their families, and they deserve the full health care and pensions they were promised.”

“Work that had dignity”!? And calling out that they “put in their time to earn better lives for their families”!? I hope he didn’t intend to imply that all of these other sectors lack dignity and working in them are not actually attempts to earn better lives for a family too. I wish they would at least pretend to care about all of the non-white non-male people who are losing their jobs too (hey, politicians … white dudes are probably losing non-mining and non-manufacturing jobs too … if that helps you care).

Fifty years ago, a high school graduate knew he could show up at the GE Locomotive plant in Erie, PA and have a job for life. And the downfall of American manufacturing has eliminated that path. But women in the same city knew they could show up at the GTE office on the other side of town, get hired on in operator services, and have a job for life too. They, too, no longer have such certainty (nor can they be positive that either GE or Verizon are even hiring).

Not a lot of people grow up dreaming of being a sales clerk or fast food counter worker – but I doubt people dream of being an entry level manufacturing line worker either. People enter into the field and work their way up — and, yeah, “working you way up” in the steel plant involved a lot of physical work whereas becoming a low level manager at a store or a call center team lead involved a lot of time and mental effort.

It’s not a job – it’s a period in time associated with the job. When coal powered industrial revolutions, white men had power and everyone else knew their place. Sadly, failure to bring back the “good” manufacturing and mining jobs may not doom Trump to perceived failure so long as his policies punish non-white non-male people.

Curried Egg Salad

I had planned to make a curried egg salad (shredded carrots, diced onions, diced hard boiled eggs, Greek yogurt, and Penzey’s sweet curry powder) so we could use up the Easter eggs. Got the flatbread cooked. Everything was diced up & ready to go in a bowl. Got another bowl for the yogurt (when you use curry POWDER, mixing it into the yogurt first to make sure it’s all smooth & hydrated makes a really nice sauce. For some reason stirring in yogurt and then adding curry powder makes a mess. I think it’s because powder bits cling to the chunks of food & never get hydrated). Grabbed the yogurt container from the fridge … and it’s almost empty. Umm … hungry people, food ready for the curry sauce. So I decided to try making mayo again (that’s what the recipe calls for anyway). I’ve tried a few times, and never gotten anything vaguely useful.

So I searched for a never breaking mayo recipe and got something that actually worked for me:

http://www.inspiredtaste.net/25943/homemade-mayonnaise-recipe/

They add some Dijon mustard to the egg/vinegar mixture & uses the whole egg instead of just the yolk. Which means you don’t end up with spare egg whites that you’ve got to use somewhere (although they do freeze just fine). There’s certainly some flavour from the Dijon (and colour – it’s not a pure white cream), but it’s tasty.

Permaculture

I’m intrigued by the idea of permaculture gardening — creating landscape installations that are planted once and are then self-sufficient. For growing food, it is a slow process — the tomatoes we plant this year will produce this year. The fruit, nut, asparagus, etc that we plant this year … we’ll get some in two or three years at the earliest (some nut trees take a decade to produce!). But they’ll keep producing year after year. In some cases, they’ll even spread.

We planted some apple and peach trees from Trees of Antiquity last year – and then found out it was a cicada year (i.e. a really bad year to have new trees). Well, most of our new trees made it. This year, I want to start some asparagus and nut trees.

I selected hazelnuts to start — first, we all love hazelnuts. And it really doesn’t make much sense to put effort into growing something you won’t enjoy. But they also produce nuts in 2-5 years. I ordered them from Willis Orchard — I’ve read good and bad reviews of the place, but the shipped prices were great and I read a lot of bad reviews about pretty much any nursery or orchard. Hazard of shipping live products.

The trees were small, but I knew that when I purchased them. I love how these bare root trees where shipped. There’s some gooey gel stuff around the bare roots that keeps the trees hydrated (esp good when you are SUPER slow about planting your bare root trees!).

We’re starting asparagus from seed — it takes longer, but I was able to get unique strains unavailable as crowns. I picked up some berry seeds too – no idea if they’ll actually grow (this is more of an experiment than an attempt to cover the yard with cane fruits and cranberries). And strawberries — Home Depot had a whole bunch of strawberry plants well before it was reasonable to plant them … but they were beautiful plants on clearance. They’re still potted and located close to the house to keep warm.

I also want to replace our ornamental grasses with something useful (and hopefully something that doesn’t spread into the lawn and create an unmowable fibrous mass). Maybe a patch of oats that can reseed themselves.

H1B Misuse

There aren’t a whole lot of Trump’s policies with which I have any agreement. The H1B program, however, is one that most certainly gets abused at the expense of American workers. Working in IT fields, I have seen a lot of questionable sponsorships. Questionable … well, if you don’t know the whole story (how long the company has been trying to hire a qualified citizen, or the entire scope of ‘qualified’), you may have a feeling that Americans are being overlooked in favor of cheaper foreign labor. But it’s just a feeling.

I have, however, seen outright fraud within the system. Well meaning fraud, but fraud just the same. The most egregious example was more than a decade ago. There was a Russian woman who worked on one of the internal help desks. Not quite the entry level “follow the online flow chart & read it to the caller” kind of help desks for which IT Support may be known … but a help desk just the same. She and half a dozen other people staffed the line. Because her visa sponsorship indicated that she had a unique skill set that the company could not staff with an American worker … well, someone questioned how such a uniquely skilled worker would have half a dozen American coworkers doing the exact same thing.

Now she was a very nice woman and I really hoped she got to stay in the country in spite of the visa irregularity being investigated … like she got reclassified into some other visa for people who just wanted to live here. Instead, the company created a new title and position for her. A higher profile position with more authority that paid more money … but, honestly, she still wasn’t doing anything I couldn’t have found dozens of other people in the area to do. It was data mining. Data mining that she had to learn how to perform once she took the position … and if the criterion was “someone who was capable of learning to generate reports from PC inventory data” the list of local, available, citizens who were perfectly qualified for the job. People who were OUT of work at the time and would have loved that made up job.

I never reported this visa fraud. It’s one thing to object to theoretical abuse of the system; it is quite another thing to get a person who you like deported. And there-in is the problem with reforming the H1B system … what do you do with the people who are already here under false pretenses? Like the Mexican restaurant owner who got deported a few weeks ago … that’s academically the right answer. But it ignores the human impact to the academic solution. Is it really the Right Thing to tear someone away from their community, from relationships they’ve had for a decade, from their home because they have violated the law?

But is it right to essentially reward them? To allow someone who had a fraudulent H1B first dibs on regular work visas at the expense of people who followed the proper process to get into the visa queue? To increase the regular work visa cap for the year to allow improper H1Bs to be converted? If I had a good answer, I’d have gotten myself hired on by DoJ or ICE. But there’s no way to both avoid personal grief while not rewarding the individual for not following the law.

I’m hoping Trump’s new initiative orders more stringent review of the claims being made on visa sponsorship forms. Maybe even something like the Patent office where individuals somewhat knowledgeable about the field determine the veracity of the claim. Leaving the current visa holders alone – at least until their visa comes up for renewal – is about the best compromise I could conceive.

Compiling Open ZWave On Fedora 25

Mostly writing this down for me, next time we need to run Open ZWave and try to build the latest version:

Download libmicrohttpd
Gunzip & untar it
cd libmicrohttpd
./configure
make
make install

Download and build the open-zwave library

mkdir /opt/ozw
cd /opt/ozw
git clone https://github.com/OpenZWave/open-zwave.git
cd open-zwave-master
make

Find error in build that says you don’t have libudev.h, install systemd-devel (dnf install systemd-devel) & try that make again.

Download open-zwave-control-panel
cd /opt/ozw
git clone https://github.com/OpenZWave/open-zwave-control-panel.git
cd open-zwave-control-panel-master

Open the Makefile and find the following line:
OPENZWAVE := ../

Change it to:
OPENZWAVE := ../open-zwave-master

Then find the section that says:
# for Linux uncomment out next three lines
LIBZWAVE := $(wildcard $(OPENZWAVE)/*.a)
#LIBUSB := -ludev
#LIBS := $(LIBZWAVE) $(GNUTLS) $(LIBMICROHTTPD) -pthread $(LIBUSB) -lresolv

# for Mac OS X comment out above 2 lines and uncomment next 5 lines
#ARCH := -arch i386 -arch x86_64
#CFLAGS += $(ARCH)
#LIBZWAVE := $(wildcard $(OPENZWAVE)/cpp/lib/mac/*.a)
LIBUSB := -framework IOKit -framework CoreFoundation
LIBS := $(LIBZWAVE) $(GNUTLS) $(LIBMICROHTTPD) -pthread $(LIBUSB) $(ARCH) -lresolv

And switch it around to be Linux … the Makefile becomes:
# for Linux uncomment out next three lines
LIBZWAVE := $(wildcard $(OPENZWAVE)/*.a)
LIBUSB := -ludev
LIBS := $(LIBZWAVE) $(GNUTLS) $(LIBMICROHTTPD) -pthread $(LIBUSB) -lresolv

# for Mac OS X comment out above 2 lines and uncomment next 5 lines
#ARCH := -arch i386 -arch x86_64
#CFLAGS += $(ARCH)
#LIBZWAVE := $(wildcard $(OPENZWAVE)/cpp/lib/mac/*.a)
#LIBUSB := -framework IOKit -framework CoreFoundation
#LIBS := $(LIBZWAVE) $(GNUTLS) $(LIBMICROHTTPD) -pthread $(LIBUSB) $(ARCH) -lresolv

ln -sd ../open-zwave/config
make

Then you can run it:
./ozwcp -p 8889

./ozwcp: error while loading shared libraries: libmicrohttpd.so.12: cannot open shared object file: No such file or directory

strace it (strace ./ozwcp -p 8889)

open(“/lib64/tls/x86_64/libmicrohttpd.so.12”, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat(“/lib64/tls/x86_64”, 0x7ffefb50d660) = -1 ENOENT (No such file or directory)
open(“/lib64/tls/libmicrohttpd.so.12”, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat(“/lib64/tls”, {st_mode=S_IFDIR|0555, st_size=4096, …}) = 0
open(“/lib64/x86_64/libmicrohttpd.so.12”, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat(“/lib64/x86_64”, 0x7ffefb50d660) = -1 ENOENT (No such file or directory)
open(“/lib64/libmicrohttpd.so.12”, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat(“/lib64”, {st_mode=S_IFDIR|0555, st_size=122880, …}) = 0
open(“/usr/lib64/tls/x86_64/libmicrohttpd.so.12”, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat(“/usr/lib64/tls/x86_64”, 0x7ffefb50d660) = -1 ENOENT (No such file or directory)
open(“/usr/lib64/tls/libmicrohttpd.so.12”, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat(“/usr/lib64/tls”, {st_mode=S_IFDIR|0555, st_size=4096, …}) = 0
open(“/usr/lib64/x86_64/libmicrohttpd.so.12”, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat(“/usr/lib64/x86_64”, 0x7ffefb50d660) = -1 ENOENT (No such file or directory)
open(“/usr/lib64/libmicrohttpd.so.12”, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat(“/usr/lib64”, {st_mode=S_IFDIR|0555, st_size=122880, …}) = 0

Huh … not looking in the right place. I’m sure there’s a right way to sort this, but we’re using Open ZWave for a couple of minutes to test some ZWave security stuff. Not worth the time:

ln -s /usr/local/lib/libmicrohttpd.so.12.41.0 /usr/lib64/libmicrohttpd.so.12

Try again (./ozwcp -p 8889). Voila, “2017-04-17 20:35:05.223 Always, OpenZwave Version 1.4.0 Starting Up”. Use your browser to hit http://<ipaddress>:8888 to access the Open ZWave Control Panel.

Sauteed Hop Shoots

Our salad course for Easter was a sauteed hop salad. We have both cascade and centennial hops, and the ones that are in the ground have grown incredibly in the past week or so. Before the snow, we had little sprouts barely nudging through soil. Now some of our vines are two feet long!

So I missed the really tender early sprouts. I sauteed the thicker stems in a little olive oil, lemon juice, and garlic. Then garnished with fresh hop leaves. It was really good – and I only used about half of the trimmings.