Tiny Lego Wonders
July 15th, 2016
No Starch Press just sent me a new book in their ongoing Lego series called Tiny Lego Wonders: Build 40 Surprisingly Realistic Mini-Models. This book covers building tiny but highly detailed models of vehicles. Their design is clever and the finished models are adorable. Most importantly this isn't just a photobook. Each model comes with complete building instructions.
Programming Beyond Text: the Parsing Problem
June 13th, 2016
I’ve written many times about how programming is being held back by storing our code as ASCII text. My efforts garnered a dim reception. As strong as the arguments for other storage formats may be, text works extremely well with existing tools. Leaving text behind means leaving an entire ecosystem of practice and tooling, thus we are stuck in a local maxima.
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.
I threw away the blog, once more yet again
July 31st, 2015
I’ve been doing some summer cleaning and finally got to the blog this week. If you read this in an actual browser instead of a feed reader you’ll notice it looks very different, but there’s a bunch of new things under the hood too that reflect what I’ve learned about writing and running a blog.
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.