Self hosting!

It has been a little rocky but we are finally self-hosting this week. It is going to probably be a disaster but I was reminded of this post today:

Have your team and yourself start using that minimum viable product, every day, all day long. This is way more than mere software development: it’s your whole life. If you aren’t living in the software you’re building, each day, every day, all day … things are inevitably going to end in tears for everyone involved. And honestly, if I have to explain this to you, guess what? You’re screwed.

The need to self-host using real customer configurations as soon as possible was “beaten” into me during my formative years in the software business (thanks Brad), and it is a vital step and exciting step.

I was most excited today because I accidentally left the system running and came back 3 hours later and it was still churning away! That is a great sign.

BTW if you want to help…we are hiring…drop me a note.

We’re hiring!

I buried this in a post the other day, bringing it to the fore. I am fortunate to be working with a small team of great technical and business leaders, and we are ready to expand. Drop us a note (or mail me directly) if you:

  • are excited about Raspberry Pis, the internet of things, embedded systems, and pervasive computing
  • have 2-5 years of hands-on experience in software development
  • have background with linux systems development, mobile development, or cloud/web development
  • as a bonus, have experience with image processing or computer vision
  • are interested in being part of small dynamic focused collaborative no-nonsense team
  • and are excited about joining an early stage startup with experienced technical and venture management

We are in the South Lake Union area of Seattle.

Recent Books — Goldfinch, Patrick Melrose, Divergent, Acceptance, etc

The Goldfinch by Donna Tartt. A wild trip thru a life marked by disasters, some external, some self-created, with a lot of introspection about life along the way. Dense but I couldn’t put it down.
The Patrick Melrose Novels by Edward St. Aubyn. Very well written set of books about a life among the English upper class. Very engaging, tho the characters are all hateful, misanthropic, abusive people. I’ve stuck with it quite a while but ultimately the misanthropy is wearing me down. Glad these are not the circles I run in.

On the Run: Fugitive Life in an American City by Alice Goffman. Really poorly written but great insight into life of an oppressed minority in America today. Very topical and inspirational.

Divergent, Insurgent, Allegiant by Veronica Roth. Saw the first movie on a flight and thought it was fun. The first book is clearly the strongest, too much dithering about in the middle, but ends strong.

Acceptance by Jeff VanderMeer. Brings the Southern Reach trilogy to a close. Finally, halfway thru this book, I finally tripped to what the major themes of the trilogy were. The third book gets a little too mystical at times but still a very engrossing (tho at times challenging) read.

Letters of Note by Shaun Usher. Culled from the website, interesting insight into some historical figures.

What can you do if you have 10 or 100 computers in the room with you?

3.8M Raspberry Pis sold and apparently the pace is accelerating. I’ve got 8 sitting on my desk right now.

For well over a year, we’ve been asking ourselves “What could we do if we had 5 cheap computers on our desk or in the room? 15? 50?”

It is an exciting problem to think about. It certainly feels like the early days of the PC industry all over again.

Anyway, we are now ready to scale up our team, we are hiring. Drop us a note if you:

  • are excited about Raspberry Pis, the internet of things, embedded systems, and pervasive computing
  • have 2-5 years of hands-on experience in software development, preferably system level
  • have background with linux systems development, mobile development, or cloud/web development
  • as a bonus, have experience with image processing or computer vision
  • are interested in being part of small dynamic focused collaborative no-nonsense team
  • and are excited about joining an early stage startup with experienced technical and venture management

We are in the South Lake Union area of Seattle.

Recent Books — Sawyer, Rich, Hough, Rendell, Lakhous


  • Red Planet Blues by Robert Sawyer. Noirish mystery on Mars. Fun and engaging. I hope Mars is this cool when we eventually settle it.
  • Odds Against Tomorrow by Nathaniel Rich. I don’t enjoy reading farce, and this was drifting that way, but then the author made the characters very human despite being in the midst of a terrible tragedy. Surprised me in a good way.
  • The Darwin Elevator by Jason Hough. A set of mysterious alien artifacts show up on Earth and shit breaks loose. A fun ride. The following two volumes — Exodus Towers, Plague Forge — lose a little of the energy, the author wasn’t able to maintain the alien mystery, but still a fun set.
  • The St Zita Society by Ruth Rendell. Rendell is a great author, and this book is well regarded, but it just didn’t grab me, I gave up quite quickly. A rush of characters early that I didn’t care about.
  • Dispute Over a Very Italian Piglet by Amara Lakhous. This was a very engaging tale about corruption and bigotry in modern day Italy. Great main character, I’m left wanting more.

Xfinity, who exactly is xfinitywifi helping?

So as I walk to get my morning coffee, my phone keeps hopping onto xfinitywifi ssids leaking out of nearby houses and apartments. And each time, destroys my internet experience. My perfectly happy LTE connection gets bumped aside, it takes 30-60 seconds for the xfinitywifi connection to validate and set up, typically any session i had (for instance downloading a pdf) is destroyed, and by that time I have walked out of range of the connection.

I’m a paying xfinity customer and I don’t get what this is for. Doesn’t help me at home. Doesn’t help me out and about town. Doesn’t help me at friend’s house since they all let me on their wifi. Turning on autoconnect to this SSID actually makes my internet experience worse.

That is the summary: “xfinitywifi SSID makes your internet experience worse”.

Recent Books — Balkans, Pereira, Cotterill

  • Interrupt by Jeff Carlson. Apparently the publishing business is booming, because somebody thought this was worth horking out there. Poorly written, dumb characters, just ughh. save your brain. no idea why I downloaded this.
  • Killed at the Whim of a Hat by Colin Cotterill. This is a very funny mystery set in Thailand. Awesome characters, great atmosphere. The GWB quotes sprinkled throughout are the cherry on the top.
  • Pereira Maintains by Antonio Tabucchi. In pre-WWII Portugal, Dr. Pereira awakens to rise of fascism. Starts slow, slowly accelerates, and ends on a bang.
  • Black Lamb and Grey Falcon by Rebecca West. A fairly brilliant travelogue/history of the Balkans with deep insight about humanity everywhere. After reading this, I feel pretty shallow, this is a long and deep book.

Just received my Punchthrough Beans

Yet another small device to figure out how to use, this one a melding of arduino and Bluetooth. Super small form factor, the box is matchbox-sized, and I ordered a bag of them. Crowd funding IOT devices is awesome and disastrous — I get a new bag of toys all the time, but now I have to figure out what to do with them all…


I am so glad I largely skipped over the C++ generation of coding

As I get back into coding, I’ve had to jump into some C++ code to do some OpenCV bindings for Node. And wow am I reminded of how glad I am to have basically skipped C++ as a tool. I grew up on C and ASM which always felt natural, an obvious mapping to the machine. Now I use Node and Python, with simple object support and nice type behaviour. C++ just seems like an utter backwater. I don’t even begin to understand what all this really does:

Local<Object> mean = Matrix::constructor->GetFunction()->NewInstance();

Anyway if you are messing with OpenCV, it throws some horribly obtuse error messages:

OpenCV Error: Assertion failed (scn == 3 && (dcn == 3 || dcn == 4) && (depth == CV_8U || depth == CV_32F)) in cvtColor, file /opt/local/var/macports/build/_opt_mports_dports_graphics_opencv/opencv/work/opencv-2.4.9/modules/imgproc/src/color.cpp, line 4040
libc++abi.dylib: terminating with uncaught exception of type cv::Exception: /opt/local/var/macports/build/_opt_mports_dports_graphics_opencv/opencv/work/opencv-2.4.9/modules/imgproc/src/color.cpp:4040: error: (-215) scn == 3 && (dcn == 3 || dcn == 4) && (depth == CV_8U || depth == CV_32F) in function cvtColor

No idea what all that really means, but I’ve found it is almost always the case that I have a type mismatch. The documentation slings around matrices like they are all the same, but obviously it is important to pay attention to the differences between color images, grayscale, and binarized images, and be very intentional about their use.

First test build lasted 25 minutes before everything exploded! ran the very first version of an app we are building on multiple RPIs, it lasted for all of 25 minutes and generated good data before melting down. The fact that all the Pis gave up the ghost at the same exact time, and were all using the same power supply, makes me suspect a power glitch. The RPIs are horribly underpowered (and i mean power in the electrical sense) — for instance it is a known issue that with some power supplies, taking a picture will cause the ethernet connection to drop.

But honestly I’d have been happy if they ran for 5 minutes before exploding. So progress.

I’m inordinately proud of my first open-source contribution milestone of my new career direction is my first accepted pull request to an open source project (the node.js mappings for opencv). Ok it was a silly little bit of frippery, adding line thickness to some line drawing routines, about 4 lines of code, but it has been a long long time since I contributed any code to any effort so it makes me kind of happy.

I have a more sizeable contribution chunked up and ready to go soon, so hopefully this won’t be the last.

My 6 months of post-VC activity quiet on the blog. Super busy learning about modern software development. In no particular order, I’ve been playing with: webgl, three.js, node.js, shaders, opencv, 0mq, travis ci, ansible, raspberry pi, arduino,, docker, vagrant, coreos, objective-c, github, hadoop, ubuntu and debian and raspbian and fedora and centos and RHEL, and about 100 more things. Having a blast!

We are looking to hire a few people and if any of the mishmash above appeals, let me know…

I’m a sucker for funky cameras

I bought a Lytro back in the day. It spent a week in my bag before it hit the technology graveyard in the corner of my office.

My narrative clip lasted maybe a week. Everyone around me was freaked out. And mostly I just ended up with a lot of pictures of the edge of my desk.

I just got my Pixy. Maybe I am doing it wrong but this thing doesn’t seem to detect squat. Maybe it works great in some super controlled setting but not worth my time.

Of course I had to order a Centr.

I am eternally optimistic. One of these things is going to be useful.

Recent Books — OpenGL, McKillip, Film Grammar, Beatles, Lexicon, Coben, Annihilation, and more

  • OpenGL Programming Guide by Shreiner, Sellers, Kessenich, Licea-Kane. Incredibly boring in a good way. Very useful depth walkthru of OpenGL.
  • Forty Signs of Rain by Kim Stanley Robinson. Boring in a bad way, unreadable. The author attempts to wrap his nonfiction treatise with some thin and dull characters who lead boring lives. Gave up on.
  • Riddle-Master by Patricia A McKillip. Fun semi-classic fantasy romp. Nicely wraps up in a modest number of pages unlike the modern commercial 10+ tome series.
  • Grammar of the Film Language by Daniel Arijon. Great reference on a topic I was clueless about, hat tip to Paul. A little dated but super useful.
  • Revolution in the Head by Ian MacDonald. Another excellent history of the Beatles, focusing on their songs and what was going on in the culture and the group at the time. MacDonald takes a very critical look at the songs at times, which makes the discussion all that much more compelling.
  • Lexicon by Max Barry. Fun adventure with very erudite zombies.
  • Mind of Winter by Laura Kasischke. Uber-creepy story of a woman in the grips of a possible breakdown, or is something else going on?
  • Missing You by Harlan Coben. Another solid Coben, started out a little slow, but grabbed by the end.
  • Annihilation by Jeff VanderMeer. At first I thought this was going to be yet another post-apocalyptic dystopian series written to sell books, but this is something quite different. An expedition enters a blighted area in the south, and nothing is what it seems — the nature of the blight, the goals of the expedition, the members of the expedition all have hidden natures. I’ve pre-ordered the next book.
  • Duke of Deception by Geoffrey Wolff. A man unravels the life of his father — a conman, liar, thief, but still a loving father. Complex relationship.

A note on Raspberry PI power supplies

Just a reminder to self — some of the kits out there come with <1 amp supplies, and most come with 1 amp. The 1 amp supply is barely adequate for the base rpi plus camera. Less than 1 amp and camera use will drop your internet connection.

Now if you add in a USB wifi dongle, 1 amp no longer is sufficient. I am having to use a powered hub.

I’d suggest a 2 amp minimum supply.

Help needed on objective-c/requirejs interop

I am hosting the webview controller in an OSX app. I have followed the code sample in calljs and i can successfully call javascript functions inside script tags from objective-c. This integration requires that the objective-c program know the name of the javascript function. for instance i have a javascript function called “objective_c_entry()”, and in my objective c wrapper, i can call that entry point using:

NSString *callResult = [[webView windowScriptObject] callWebScriptMethod:@"objective_c_entry" withArguments:args];

Now I want to move all my javascript into require.js modules; i am not clear how to reference a function in a require.js module from within objective-c. if i am moving my “objective_c_entry” function into a require.js module named “integration”, what string do I pass to callWebScriptMethod?

Dear Satya, please include an ssh client — and this only scratches the surface. Of all the reasons why I don’t use a Windows machine for development, this is the stupidest, and simplest to fix. Just ship a reasonable ssh client, it is not that hard.