Category Archives: Design

The worst decision in the design of the Internet

The Internet is a frankly incredible design. The IP protocol, which is at its heart, is technology from 1974. TCP, which implements connections on top of IP’s packet delivery, is from the same year. Forty-two years on, both are essentially unchanged. Even DNS, the domain-name service, dates back to 1983, and is going strong 33 years in with only minor tweaks.

The only big change in this time has been the slooow migration (still in its early stages really) from IPv4 to IPv6 — something that has proven necessary as the Internet has been so wildly more successful and popular than anyone anticipated, and the 32-bit-wide host addresses are running out. But in the scheme of things, this is a minor tweak. We’re running the Internet on 1970s technology, not due to sloth, but because it’s good.

sushi-2

Continue reading

Advertisements

Get your “Kylo Stabbed First” T-shirts!

Every Star Wars fan knows that, contra George Lucas’s revisionism in the Special Edition of the original movie, Han shot first. The moment I came out of seeing The Force Awakens, I knew I wanted to make this T-shirt, but I held off for a month so I could avoid spoilering anyone who wanted to see the film:

kylo-stabbed-first--matt-wedel-modelling

Above we see my good buddy Matt Wedel modelling the shirt as only he can. Want one of your own? Course you do! Buy the Kylo Stabbed First shirt here!

Dear git: STOP CHANGING DEFAULT BEHAVIOUR!

My struggles with git have been well documented. One thing I didn’t touch on is its tendency to suddenly change the behaviour of core commands from release to release. I’ve got used, over the last months, to seeing this:

mike@thor:~/git/other/kindle-backup$ git push
warning: push.default is unset; its implicit value is changing in
Git 2.0 from ‘matching’ to ‘simple’. To squelch this message
and maintain the current behavior after the default changes, use:

git config –global push.default matching

Continue reading

Image

C++: the good parts

c++-the-good-parts

When good standards go bad

Years ago, I was on the editorial board for versions 1.1 and 1.2 an informal standard called SRU. It defined a way to do IR queries over HTTP with XML payloads: you’d send a URL like http://example.com/dbname?someBoringStuff&query=fish, and it would send back an XML document describing the search result — hit count, that kind of thing — and containing payload records.

sushi-payload

Since the payload records themselves were also in XML, it was often convenient to just embed them right in the response, where they could be extracted by XSLT or similar. Continue reading

… Or maybe they’re doing web-site registration completely right

A couple of weeks ago, I wrote that DeviantArt are getting web-site registration completely wrong by asking for the email address (which you can see as you type it) to be repeated, but not requiring confirmation of the password (which you can’t see).

deviantart-registration-small

A lot of people in the comments (both here and at Hacker News) pointed out that I was wrong.

Continue reading

Getting website registration completely wrong

I just got a Google alert that someone going  by the name of Teratophoneus on DeviantArt did rather a nice drawing of Brontomerus, one of the dinosaurs I co-described and named:

brontomerus_mcintoshi_by_teratophoneus-d6ar4v1

Continue reading