Skip to content

On Fish and Flies

Yesterday on a whim, I decided to buy some new fish for my aquarium. I’ve had zebra danios, ghost shrimp, platys and pencilfish at some point in time in my aquarium, but all but the zebras have died. I wanted to try a new fish, so I got some Jack Dempseys. They’re pretty tough, chasing away other fish from their territory. Also, apparently they grow to be like a foot long. I wish I had known that at the fish store. I think there’s an opportunity for an iPhone app in there somewhere.

Let’s see, what would the workflow be?

  1. Go to fish store
  2. See a fish that looks cute
  3. Take a picture with iPhone
  4. Update picture to fish servers for identity matching
  5. Match the identity and serve up a page of detailed information on the fish, including ideal tank mates, preferred diet, turn ons, and horoscope. 
  6. Repeat
Hey, it could happen, if I muster up enough non-laziness.
Right now I’m trying my hand at culturing fruit flies so that my fish can have some live food from time to time. I’ve had a fruit fly problem for a few weeks now, and have been trying to create traps to exterminate them, but I’ve recently realized that hey, mayhaps my fish would like to eat them. And they do!
So I’ve been luring them into a jar with some vinegar at the bottom (vinegar DOES attract more flies than honey) and then when there’s a bunch in there, covering the top with a plastic baggie and sealing it off once the flies are all in there. After that, I throw the bag in the freezer for 10 seconds to stun the flies, then dump them into the fish tank. Mmmm!
I’d like to have a more repeatable way of doing this, so I’m gonna try letting them breed for a while in the jar. We’ll see how that goes.

Emergent

I recently published my pygame artificial life simulation: Emergent. Check it out. I’m not quite sure where to head with it so any suggestions are welcome.

Programmers aren’t farmers

Fareed Zarakia in The Post-American World talks about the difference in 19th century productivity in China and Europe:

Throwing more manpower at a problem is not the path to innovation. The historian Philip Huang makes a fascinating comparison between the farmers of the Yangtze Delta and those of England, the richest regions of China and Europe respectively in 1800. He points out that, by some measures, the two areas might seem to have been at equivalent economic levels. But in fact, Britain was far ahead in the key measure of growth – labor productivity. The Chinese were able to make their land highly productive, but they did so by putting more and more people to work on a given acre – what Huang calls “output without development.” The English, on the other hand, kept searching for ways to make labor more productive so that each farmer was producing more crops. They discovered new labor-saving devices, using animals and inventing machines . . . Ultimately, the results was that a small number of Britons were able to farm huge swaths of land. By the eighteenth century, the average farm size in southern England was 150 acres; in the Yangtze delta, it was about 1 acre.

I feel like a lot of software companies are repeating the same mistake by throwing many warm bodies at software projects without investing enough resources into trying to improve the productivity of each programmer, with software best practices and processes instead of with plows and animals.

Booing Becks

I had the luxury of a 2nd row seat at the very exciting Red Bulls vs. Galaxy match yesterday. I went to see David Beckham but got caught up in the home team jingoism so when Becks decided to have a corner kick like 10 feet away from where I was seeing, I took the opportunity to boo the crap out of him and his handsomeness:

Judgmentality

So I’ve been interviewing a lot more candidates over the phone recently for my company and I find that I kind of like it. Initially, I would get nervous, worried that I might fuck up the interview and we’d lose out on someone really good, but I kind of lost that fear after interviewing (and rejecting) sooooo many shitty candidates. We’ve recently been getting a lot of good candidates, which is great, but I’m wondering if I should try asking harder questions or something.

Anyways, I think I’ve finally found my calling: making snap judgments about people’s worth based on brief, superficial conversation. (Sounds like dating. Oooo zing)

Back from Lanzarote

Lanzarote vacation

The beaches of Mars, on Earth.

Getting Involved with SproutCore

So after reading about how thick client web applications via SproutCore are in Apple’s future, particularly with the upcoming MobileMe web service, I decided to renew my once-torrid love affair with javascript and see what all the hubbub was about.

SproutCore is a javascript framework that aims to bring desktop gui programming paradigms to the web browser. It does this by giving you macros for various gui elements that get generated into html/js/css by the build tools. You can “bind” variables from the gui elements to javascript controllers, tying those bound variables to each other so that one is always in sync with the other. This simple feature leads to a surprisingly clean approach to display logic, where you can stop worrying about glue code and focus on behavior.

Note that SproutCore does all this on the client side with javascript. SproutCore doesn’t provide any server backend, but has a server proxy object that lets you get data from a backend server via AJAX. This leads to a nice separation of display logic from the data retrieval.

My first application in SproutCore is a reporting application meant to potentially replace our ghetto Microsoft Sql Server Reporting Services setup at work. A lofty goal, I know. I chose PlotKit as my charting library and immediately hit a showstopper bug in SproutCore’s interaction with PlotKit. After an hour or so of debugging with WebKit’s totally sweet debugger (get the nightly and run “defaults write com.apple.Safari IncludeDevelopMenu 1” from a terminal), I discovered the bug, developed a monkeypatch and filed a bug like a good OSS citizen.

Charles, the SproutCore guy, encouraged me to create a github project for my monkeypatch so I created sproutcore-plotkit and sproutcore-plotkit-sample and now I am officially an OSS contributer! =]

YAAAB (Yet Another Attempt At Blogging)

So while browsing the Lighthouse blog, I stumbled upon this pretty looking blog software called Chyrp and decided to make like a dervish give it a whirl. We’ll see if I can keep up.