There’s no such things as bugs or features

Unless you’ve only ever worked with technical people, you’ve run into the old “is it a bug or is it a feature” argument. Generally, a business person reports something as a bug because it’s not working properly, but the reaction from technical people is that that particular feature just isn’t built yet or that specific detail was not in the original specification. This can be a source of great friction because it usually involves technical people saying the product will take longer than expected to finish. Less often, business will report a problem as a new feature, but the problem is already-built code that is just not functioning properly. This is less contentious because it usually means it’s less work to fix than business originally thought.

Is there a way to eliminate this debate?

Continue reading

This hypothetical flag for the “Five Eyes” inspired me to do my own Five Eyes flag design:

Five Eyes

The red and blue are averaged from the reds and blues from the US, Canadian, UK, Australian, and New Zealand’s colors, at least according to Wikipedia. The flag is split into five vertical stripes, first a blue stripe with the five-pointed star from the US flag near the top where the US flag has its field of stars; the second a white stripe with red borders and the Canadian maple leaf near the middle where it appears on the Canadian flag; the third a blue stripe with the seven-pointed star from the Australian flag; the fourth a red stripe with white borders evocative of the Union Jack‘s vertical red bar (originally derived from the flag of England); and the fifth a blue stripe with the red and white star from the New Zealand flag.

Since these five countries are also the five countries where English is the de-facto language of the majority of the population, this flag could also double as a flag of the English language, replacing that abysmal diagonally separated US/UK flag. But it’s more inflammatory as the flag of a the massive, probably-illegal surveillance program.

Update: animated version.

Update 8 Nov 2014: Decided to add the crown from the Keep Calm and Carry On WWII posters.

Five Eyes Crown

And the animated version.

Oh, and you can buy this design over on RedBubble, on posters, scarves, tote bags, stickers, and more.

Update 18 Jun 2015: Turns out the inspiration for this has been floating around reddit/imgur for at least two years.

Creative Commons License

Five Eyes by /blurb/2629 is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Three maps of North America

Colin Woodard’s “Up in Arms” breaks down North America into eleven “nations” or regions with distinct attitudes towards violence, gun control, and capital punishment, tracing those differences back to the historical origins of the first groups to settle there. Plus it comes with a nifty map.

Neil Freeman’s Electoral College Reform map is now on sale. I’m still wondering what happens to the boundaries of his fifty new states when the population centers drift.

And this 1879 railway map of the Chicago to San Francisco Burlington Railroad is pretty neat too.

A tour of the differences between JavaScript and Python


JavaScript and Python are two very important languages today. Too many programmers, however, work in both languages, but know just one of them well. This means they end up writing code in one language in the same style as the other, unaware of some of the more subtle differences between the two. If you know JavaScript or Python well, and you want to improve your skills and knowledge of the other, I wrote this article for you.

Disclaimer: I know Python (slightly) better than I know JavaScript, and I’ve not done any JavaScript outside of the browser, so I tried to keep the bits about JavaScript agnostic to the host environment, but, fair warning, there may be subtle differences in server-side JavaScript that are not mentioned here because I don’t know them.

Continue reading

Why you shouldn’t use git merge –rebase

There is a common belief that git merge --rebase is somehow preferable to normal merging. The general assertion seems to be that a linear history is somehow “cleaner”, “easier to understand“, and that normal merging introduces “extra commits” and “merge bubbles“, the latter presumably being only slightly less objectionable than economic bubbles. Some organizations even go so far as to mandate always merging with --rebase. But ask someone to give a real, technical justification—just one—for this belief, and they mumble some aesthetic vapidities and then start talking about the weather.

Let’s put aside for a moment the ridiculous assertion that a directed acyclic graph is somehow more difficult for programmers—programmers!—to understand than a linear history. I want to show you how normal merging is in fact preferable to using --rebase all the time.

Continue reading

Three-legged Mini-figure

This is a Lego-compatible, two headed, three-legged mini-figure. Legs are fully moveable. Only the torso and the hips/legs are included, you must provide your own heads and arms.

It’s available on Shapeways, and there are full-size photos on Flickr.

The torso was printed slightly warped, and it cracked when I put the arms in. If your print is warped or distorted, ask Shapeways for a reprint. All the edges should be straight and the flat surfaces should be completely flat.

Bradley Manning’s Statement

The transcript of Bradley Manning’s statement at his providence inquiry is well worth reading. It is a picture of a man who was deeply troubled by information he found in his duties as an intelligence analyst, and who decided to make that information public out of a belief that it ultimately would make the United States a better country, and the world a better place. Here’s a quote:

In attempting to conduct counter-terrorism or CT and counter-insurgency COIN operations we became obsessed with capturing and killing human targets on lists and not being suspicious of and avoiding cooperation with our Host Nation partners, and ignoring the second and third order effects of accomplishing short-term goals and missions. I believe that if the general public, especially the American public, had access to the information contained within the CIDNE-I and CIDNE-A tables this could spark a domestic debate on the role of the military and our foreign policy in general as [missed word] as it related to Iraq and Afghanistan.

I also believed the detailed analysis of the data over a long period of time by different sectors of society might cause society to reevaluate the need or even the desire to even to engage in counterterrorism and counterinsurgency operations that ignore the complex dynamics of the people living in the effected environment everyday.

His statement also shows that he understands that he broke the law and takes responsibility for his actions, and in that sense his actions should be considered civil disobedience. And that makes it all the more appalling that he’s been kept in humiliating and inhumane conditions for over a thousand days without trial.

Two new projects: German Grammar and Möbius

I’ve been hacking on two new projects in my spare time.

The German Grammar Explorer (mainly the German Declension Explorer) is helping me wrap my head around some of the more complex patterns in the German language. It’s also an experiment in deliberate synæsthesia; It uses a palette of eight colors plus white to color-code similar patterns and related morphosyntax. The idea is to give a general feeling for when the general patterns of the language are broken.

Möbius is a totally useless experiment in binding scroll events and doing funny stuff with them, and experimenting with some newer features of HTML 5 and CSS 3.