Hobgoblins and Data Stores

May 29, 2014

“A foolish consistency is the hobgoblin of little minds, adored by little statesmen and philosophers and divines." - Emerson

Continuing with my ideas from the other day, I wanted to move from the abstract to the more concrete, which is to say that I wanted to talk about what such a system would look like.

To begin with, let's assume that this system is a fairly large-scale distributed system, so that, were we to design it the way such things are typically designed these days, we would probably have some sort of cache between our business logic and the data


QR Codes for Storing Private Keys

May 27, 2014

So, storage of private keys is a problem.

Just storing it on your computer isn't such a big problem - hopefully, you're storing it encrypted using software whose encryption you trust.

However, backing them up - that's another issue. Do you trust storing them in the cloud? I don't. Do you keep them on a backup disk or USB dongle? What if they fail?

After looking over the options, I found this post at the ever-excellent StackExchange. Basically, the idea is that you convert the ASCII exported private key to a QR code, print that, note the key ID on


A Foolish Consistency...

May 27, 2014

How do you scale a computer system?

It seems like such a simple question. Of course, to a certain extent, it is - if you've designed the system properly up front. By this I mean that, if you've broken the overall system down into components which are a) decoupled as much as possible, and b) as internally cohesive as possible.

However, when it comes to distributed computer systems - ones with, say, a UI, a bunch of business logic, and a database - it somehow becomes much more complicated. We know how to scale the UI and business layers, but


The Ghost in the Machine

May 02, 2014

So, I've moved my blog over to Ghost from Octopress. I did this for a few reasons.

My main reason for wanting to move away from Octopress was that updating my blog was getting to be a huge pain. You have to run a rake task to create the markdown page, edit it in a markdown editor (which never looked right because of the metadata that it insists on putting at the top of the file), and then run another rake task to generate the site, run another task to preview it, and then run yet another task to deploy


REST By Any Other Name...

April 16, 2014

I've done quite a few interfaces which I've referred to as "RESTful", because I've done what most people call "REST" - using HTTP as the transport, modeling everything as resources, and using the HTTP verbs (GET, POST, PUT, etc) to access the resources. I mostly wanted to do REST because the alternative, SOAP, was so onerous - it required translating a WSDL document to proxies, serializing and deserializing error objects, and, worst of all, was a nightmare to version. I had read about HATEOAS, and had kind of thought, "Wow, that sounds...strange", but nobody seemed to think much about


Dependency Injection and the YAGNI principle

April 13, 2014

One of my new personal projects involves writing an application using Node.js and MongoDB. It's going to have a RESTful interface for the services, and MongoDB as the database (I haven't decided about what I'm going to use for the front-end, but Angular.js is a strong contender). I had looked at using mean.io to build it, but after playing with it for a while, it seemed to bring in too many things I wouldn't end up needing, so I decided to build it all from scratch using Restify for the RESTful services.

I'm writing it in an