2008
Ogres and APIs
Bringing Merb’s provides/display into Rails 3:
The symmetry relates to another point in API design that I've been interested in lately: progressive expansion. There should be a smooth path from the simple case to the complex case. It should be like an Ogre, it should have layers.
Change it up
Do something new every three years:
I was thinking about the three-year rule while reading about Malcolm Gladwell's observation that it takes 10,000 hours to become truly expert at something. If you really throw yourself into a job, you'll spend 60 hours a week working. That's 3,000 hours a year (allowing for vacation), which means you'll hit the 10,000 hour mark a few months after your third year.So maybe that’s where the three-year rule comes from. You’re now expert at what you set out to master. Great. Now go do something else.
Great idea! The article also reveals some of the inner workings of The Economist. A highly recommended, quick read.
The absurdity of X, Y, R, G and B
The Frustrating Magical Aspect - why’s great take on the absurdity of the tools we use to put interesting shapes and colors on our screens. Here’s to hoping for interesting abstractions that are somewhere between rigorously pushing pixels and randomly drawing shapes until something neat pops out.
The Creative Big Bang
That John Gruber, he's good with the words. From Bang:
Consider the Big Bang. One moment there was nothing, except for everything condensed into a single infinitely dense point. Then, one minuscule sliver of a second later: the universe. Nothing was yet formed, all the true work of forming stars and galaxies remained ahead, but the framework, the laws of physics, were set, and the rest was thereafter inevitable.
This is what everyone contemplating a new creative endeavor craves: that in the moment it turns real, to get it right. To frame it in such a way that the very act of framing propels the project toward an inexorable destiny.
That’s a really beautiful way to capture the process of turning an idea into something people see, hear, use or laugh at.
People are making cool stuff
This morning I followed a link that _why shared with us, a lo-fi guitar pedal built around an Arduiono. Kyle McDonald made said pedal; he also made I Eat Beats, a drum machine gizmo built with a screen, Processing, and skittles. He also published instructions for how to build a 3-D controller. From there I found a coin-slot detector, again built with an Arduino.
Moral of the story: there is a ton of cool stuff going on with Processing and Arduino. Just let the links light your path.
I am going to call Ghostbusters
At the risk of rambling too much about games: DO WANT.
The Ghostbusters video game for the Sega Master System was pretty much the first video game I played.
Beautifully static
Game trailers are frequently a montage of confusing montage. This trailer stands in stark contrast to the standard:
Best use of a Romantic piano sonata in a game trailer? Probably.
Turns out its sort of a take-off on the Halo 3 Believe ad. Also pretty well done.
Fred's business card
I made a business card for Fred.
For those keeping score at home, this is what happens when I’m trying not to code or surf the web at 11:30 PM.
Gentlemen's Agreements
BMW and Mercedes produce cars in direct competition. Further, everyone else in the auto industry likes to use them as benchmarks. Read a car magazine and count the superlatives like “more legroom than a Mercedes S500” or “more horsepower than a BMW 330i”. Its a market out there; everyone is incentivised to produce better stuff every time around.
However, you won’t ever find them boasting about top speed[1]. BMW or Mercedes don’t make cars that go faster than 155 MPH. Many moons ago, these car makers made a gentlemen’s agreement to limit their cars to a certain top speed. They probably did this for safety reasons - there just isn’t much need to go that fast and its probably inadvisable for most folks.
Why adhere to these agreements? At any point, BMW or Mercedes could break this agreement and achieve some kind of short-term numerical superiority. But this would end in an arms race that doesn’t really improve the every-day usage of their cars. So really, it’s in each company’s interest to maintain the agreement.
In the land of software development, we have gentlemen’s agreements as well. When I picked up Python in 1999, I learned that they didn’t have a distinction between public, protected and private object attributes. Many decried this, but the general idea was that we’re all adults and do the responsible thing.
Fast forward six years years. At first I was somewhat put off that Rails modifies the standard Ruby libraries. Many people are still put off about this. But I’m OK with it. If you have the chance to drive improvements in an ecosystem without waiting for the core maintainers to release a new version of Ruby, why not?
Many also decry the situation we find around Rails plugins. Its argued that one shouldn’t go around mucking about inside Rails to add functionality. And sure enough, plugins sometimes break when the core team changes Rails, even in the slightest of ways.
No surprise, I’m fine with this. Improving a system from the inside is too appealing to pass up so that I can claim some kind of virtuousness.
Should Rails have a defined internal interface or extension mechanism? Sure, sounds great! But we shouldn’t stop improving it outside the Rails core process just because sometimes we get burned.
The alternative is to define a known set of hooks by which we can modify behavior in a post-hoc fashion. Merb is taking this approach, and I’m eager to see how it works out. My take is that limiting people to extension along axes that the core developers imagined in a pre-hoc manner is too limiting. I hope I am proven wrong.
When it comes to Ruby or Rails, I think we already have a gentlemen’s agreement. We accept that extending systems using the facilities Ruby provides is useful, so we don’t complain too much when we get burned[2]. Accepting this is, in my experience, an empowering aspect of using Ruby that lets me worry about really interesting problems.
fn1. Except maybe for the M and AMG tuner variants of their mass-production cars
fn2. where “too much” is defined by the prudence of the extension mechanism used
The hopping doll video game
Too cool.
Brought to you by an Arduino.
My notes from RubyConf 2008
This year at RubyConf, I decided to go analog and take hand-written notes. (Someone did this for another conference but I can’t find the link.) I hope you find them amusing and/or educational. Click through to the Flickr set to see them in all their glory.
Bonus points for identifying the people whose hair I drew and trying to decipher my handwriting!
Dallas' multitudes
The Dallas Myth, Again quotes Molly Ivins:
There is a black Dallas, there is a Chicano Dallas, there is a Vietnamese Dallas, there is a gay Dallas, there is even a funky-Bohemian Dallas. But mostly there is North Dallas, a place so materialistic and Republican it makes your teeth hurt to contemplate it.
For the record, Dallas-proper, like all the major Texas cities, went for Obama this time around.
Gaming and design
Khoi Vinh’s thoughts on games and their relation to what I aspire to do on the web:
...I’m savvy enough at least to recognize that very interesting things are happening in that world. As a point of reference for interaction design — for design of every kind — I’m convinced that games represent an important new paradigm...
Game On. Khoi and I are thinking along the same lines here. There’s lots to learn from games, besides the ease at which one can spend time in them.
Modernism in sheds
Prefab Sheds - Modernism in Miniature. Cool looking stuff, and its promising that people are considering better use of their existing space instead of just seeking more space. Now, if only our own shed weren’t so shedtastic.
Bruce Springsteen in a nutshell
Things can't get any worse, they gotta get better
It’s the deep sadness of his songs, surrounded by undying optimism, that keeps me coming back every time.
One Velociraptor Per Child
The One Velociraptor Per Child project:
The project's origins go back more than four decades to the early days of paleontology, when most dinosaurs were still the size of skyscrapers, and almost no one dreamed they would ever be suitable for children.