Solving the NPM Problem at Scale
March 24th, 2016
If you haven’t heard, Azer Koculu unpublished a bunch of his modules as protest against behavior by the company that backs NPM. This crashed the NPM ecosystem with hundreds of popular project suddenly unable to build. Now there’s lots of talk about what to do. PGP signatures? Always pinning? Permacaching with IPFS? I think Azer's goal was achieved. We are now actually talking about how brittle the system. The conversation is happening. This is good.
Nine Months with Apple Watch
March 6th, 2016
Well, it's been nine months with Apple Watch and I still don't have a use for it. After the release of watchOS 2.0 I thought that it would be a more functional device. Alas that belief was missplaced. While there is still potential in the device category, Watch is the closest thing to a dud Apple has ever released.
Gwen Has A Mission and She Needs Your Help
February 15th, 2016
Our dear friend Gwen Fiedler is blessed with the gift to share the word of God, and now she needs your help.
Update to Razzmaster
January 18th, 2016
Thanks to a few nights of sleeplessness I've made some updates to RazzMaster, a command line tool for remotely configuring Raspberry Pis.
The Manga Guide to Physiology
January 11th, 2016
When I first picked up this book I thought it was for kids; similar to No Starch Press’ other comic science series: Survive! Inside the Human Body. I was completely wrong. This is real physiology at the high school to early college level. I’ve learned quite a bit by reading through the book, and I’m a 40 year old engineer who reads constantly.
Call for a Data Bill of Rights
October 8th, 2015
Early open source pioneer Brian Behlendorf famously said, "the most important requirement [in open source] is the right to fork.” He wisely observed that the right to fork source code generally ensured it never actually be done. The mere threat of forking creates an incentive driving good behavior. Most open source communities are able to self-police well enough that true forking is a rarity.
The Hubbub About PubNub
September 26th, 2015
PubNub is a startup in San Francisco that provides a Real Time Data Stream Network as a service. This is a relatively new concept so the easiest way I can explain it is by comparing it to a CDN.
On JetBrains Move to Subscriptions
September 8th, 2015
SE: A New Rich Text Editor for the Web
August 24th, 2015
Semantic-Editor-JS (hereafter called SE), is a new open source library for building rich text editors. You can play with the demo or get the code on Github.
Reflections Upon Turning 40
August 17th, 2015
Or: Now I Know Why Old Men Drink Scotch
When is it okay to duplicate another open source project?
August 17th, 2015
The last few weeks I've been working on a new web-based rich text editor. It’s a semantic editor, or “What You See Is What You Mean” (WYSIWYM). You edit using styles you define then import or export to whatever you need. Following cues from Medium and others on the perils of content-editable, I stopped relying on the browser to store the model. Instead I built an internally consistent model that only uses the DOM for handling input and pastes. This approach makes the editor robust, flexible, and very easy to customize.
Time to Leave Nokia
August 1st, 2015
After a long three and a half years at Nokia I’m ready to leave. I’ve been through several re-orgs and my team has been dissolved. I’m hoping you can help me.
Over 40 years, has Software Gotten Better or Worse?
July 13th, 2015
Is software getting better or worse? Some say we are making software ever more bloated. Some say we don’t care about quality anymore; that worse is better. Some say we haven’t changed how we write software in 40 years. It's still ASCII text on disk. (Yes that would be me, saying that). Certainly our programming languages haven’t improved. We still write billions of lines in glorified C code!
Why I Will Always Use A Speck Phone Case
July 6th, 2015
Yesterday, amidst the Independence Day Fun, I lost my phone. Or rather, it flew away on the rear bumper of my mother in law’s car.
Independence from Old Code
July 5th, 2015
It’s the Fourth of July again, which is America’s independence day for my non-US friends, and it’s time for some code cleaning. I’ve built several open source projects over the last year and it’s time to shut some of them down. Out with the old to make way for the new. Let’s review, shall we?
For I Have Met the Super-Men and They Are Us
June 17th, 2015
I’ve been wearing an Android or Apple Watch for a few months now and I’ve come to one conclusion. While you don’t want to buy these quite yet, when the good version comes out in a few years we will all become superheroes.
The Holy Grail: Pure CSS Scrolling Tables with Fixed Headers
May 23rd, 2015
For a recent project I needed a nice HTML table library to render a long table of data with fixed headers. Figuring there must be a million of such libraries, I started searching around. This would seem to be a simple thing, yet after a day of searching I still couldn’t find a good solution.
Apple is not making a TV
May 19th, 2015
A year ago I speculated that Apple would never make a TV. If they ever did, I said they'd integrate a FaceTime camera with complex image processing, but I didn't think they would make a TV at all. There's just not enough opportunity in that market to make it worth Apple's while. It's low margin and no room to differentiate the product.
Apple Watch doesn’t need a killer app. It *is* the killer app.
May 15th, 2015
As smartwatches have slowly faded into existence from their sci-fi past, I have always wondered: what is the killer app? What is the feature (or actual app) that would do something so useful I’d wear it on my wrist, put up with a mostly-off screen and laggy voice control, learn a new interface, and charge it daily. What would it do that makes me want to actually buy one despite the limitations? After living with my Apple Watch for a few weeks I think I finally know. The watch itself is the killer app.
Unbuffering the Buffered
May 14th, 2015
I've been writing unix-ish code for more than two decades (crap, I'm old!) but last week I discovered something I'd never used before, the stdbuf command. It solves (well, works around) one of my longstanding problems working with command line programs: buffering.