Ciao EMC Isilon, hello BlackSky

Friday, June 17th will be my last day at EMC Isilon. It’s been a fun 5.5 years but for a variety of reasons it’s time to move on to new adventures. I’ve had the pleasure of working with some amazing people on some superbly-interesting projects and I wish them all the best on the cool stuff they’re working on next. (To Infinity and beyond!)

Monday, June 27th I start work at BlackSky Global (BSG) where I’ll have the pleasure of working with Jane Vail and Eric Rybczynski again. I’m being brought on to build up their validation team1 and drive their end-to-end testing alongside Eric.

BSG began courting me last August but that was just two months into my sabbatical and I decided the sabbatical wasn’t something I could give up. I am unbelievably fortunate that they were unable to fill the position and still have a place for me now.

I’m excited to be working at my first startup and at a company solving complex problems in space, [say it with me] the final frontier.

An unexpected bonus is that BSG is only a 10-minute walk from my house down a long flight of stairs, making my morning commute a bus-free breeze. The walk back home, on the other hand, is going to be a 15-minute straight-up Stairmaster workout. Buns of steel, here I come!


1 This is in no way soliciting existing EMC (and soon, Dell) employees to join us, unless today’s date is after 2017/06/17.

Distributed Proofreaders Foundation Board

Last month Distributed Proofreaders volunteers voted for new board members of the Distributed Proofreaders Foundation (DPF), the 501(c)3 non-profit organization that governs DP. I was honored to be one of four new board members, serving a 3-year term effective June 1st. I am further honored that my fellow DPF board members voted me as the board President for the upcoming year.

I look forward to working alongside the other board members and the General Manager as we serve the DP community by providing vision and direction while keeping our hands firmly outside of day-to-day operational issues, which are under the GM’s purview.


[Disclaimer: Thoughts presented in my blog are mine alone, and do not represent the thoughts of the DPF board unless explicitly stated otherwise.]

Any 3rd-party candidate results in a Republican president

Today’s civics pop quiz: What happens if 3 or more candidates run for President and none of them get a majority of the electoral votes?

No really, what happens? Surely our constitution covers this, right?

Of course it does! Say hello to this part of the 12th Amendment:

The person having the greatest Number of votes for President, shall be the President, if such number be a majority of the whole number of Electors appointed; and if no person have such majority, then from the persons having the highest numbers not exceeding three on the list of those voted for as President, the House of Representatives shall choose immediately, by ballot, the President. But in choosing the President, the votes shall be taken by states, the representation from each state having one vote; a quorum for this purpose shall consist of a member or members from two-thirds of the states, and a majority of all the states shall be necessary to a choice.

See, it isn’t as though presidential candidates need to get the most electoral votes of all candidates to become president, they need a majority of the available votes. If no one candidate gets a majority the House of Representatives, currently controlled by the Republicans, gets to choose the next President of the United States among the 3 candidates who received the most votes (this write-up covers the nuances of that in much better detail). Interestingly, this last happened in 1824.

Pretty much any way you slice it, this makes any 3rd party candidate a disastrous scenario for Democrats this November.

For instance, if Sanders were to run as an independent he would peel off votes from Clinton making it unlikely either one of them will get the required majority, allowing the House to select Trump as President.

This means Democrats want Republicans to rally around Trump, not reject him. If, outside the Republican party, the Republicans put up a moderate 3rd-party candidate, that candidate could pull enough votes away from Clinton and Trump to prevent either of them getting a majority. Then the House steps in and selects this 3rd-party candidate as President.

This is why if Clinton gets the Democratic nomination we desperately need Bernie to not run as a 3rd party candidate and for us Bernie supporters to rally around Clinton in the general election rather than a 3rd party candidate.

This is also one of the reasons the US has the two-party system it does.

Installing yaz for PHP on Ubuntu

Numerous sites on the internet have answered the basic question of “how do I install yaz for PHP on Ubuntu”. Which basically boils down to some flavor of:

PHP 5.x

sudo apt-get install yaz
sudo apt-get install pecl      # Ubuntu pre-16.04
sudo apt-get install php-pear  # Ubuntu 16.04 and later
sudo pecl install yaz

Then add the following line to /etc/php5/apache2/php.ini:

extension=yaz.so

PHP 7.0

sudo apt-get install yaz
sudo apt-get install php7.0-dev php7.0-pear
# might just be php-dev and php-pear on your OS (eg: Ubuntu 16.04)
sudo pecl install yaz

Then add the following line to /etc/php/7.0/apache2/php.ini:

extension=yaz.so

But wait, that fails

Sadly, the pecl install will fail with the error:

checking for yaz-config... NONE
configure: error: YAZ not found (missing NONE)
ERROR: `/tmp/pear/temp/yaz/configure --with-yaz' failed

All the search results for this error solve it by downloading the yaz source code and compiling and installing it outside the package manager, which is non-ideal.

The missing piece is that yaz-config is included with the libyaz4-dev package:

sudo apt-get install libyaz4-dev

Interestingly, this yaz install blog post does explicitly calls out the need for the -dev packages, but doesn’t include the error when you don’t have it. Hopefully this blog post will tie the two bits together for future people perplexed by this.

Update 2018-06-03: Updated to include PHP 7.0 instructions for Ubuntu 16.04 and later.