Category: Development



Birdcam, or: the unexpected virtue of dumb ideas

I don’t have the patience to learn new skills for their own sake. Most of what I know about computers, including everything I do at my day job, was something I learned because I needed it to do something cool. In 2001 I needed to learn PHP to make a web site, and in 2005



Just use your brain. I’m not sure our industry says this often enough. You’re smart, you make the internet, and you can make good decisions. Pay attention to your craft, weigh the good against the bad, and check your assumptions as you go.

Dave Rupert



Hypermedia APIs, Part Two

Last time, I treated you guys to some Solomonesque baby-splitting between Steve Klabnik and DHH, and then spent two dozen paragraphs talking about how Gowalla’s API was pretty groundbreaking and how Scott Raymond was like the Lou Reed of hypermedia APIs.
To balance out all this ridiculous self-praise, I’ll talk about one of our screwups: how



Hypermedia APIs, Part One

Part of me bristles when I hear someone say “Hypermedia API.” I worry it’ll become the sort of phrase, like “semantic web,” that means different things to different people, and ends up covering such a breadth of ideas that it’s impossible to argue for or against without specifying which flavor you’re addressing.
Nonetheless, when I see



There’s a whole lot of know-nothing advocacy that’s still happening in the JS/webdev/design world these days, and it annoys me to no end. I’m not sure how our community got so religious and fact-disoriented, but it has got to stop.

Alex Russell



Busy at JSConf EU, but it bears mentioning that 2.0 is now in beta. The main new feature put a few gray hairs on my head: it will “optimize” certain animations to be GPU-accelerated in capable browsers, including MobileSafari on iPhone and iPad. Here’s a demo that explains it in greater detail.



Feast on slides: How Custom Events Will Save the Universe, a talk I gave yesterday at TXJS. (Travel can be fun, but you can’t beat conferences held where you live.)



GitHub now has even better commenting on commits. Better UI (collaborator highlighting, comment preview), better functionality (repo collaborators can edit anyone’s comment), better aesthetics. I use Git. I’m not wild about using it. I could take or leave it, to be honest. But I would stand in front of a tank for GitHub.

There are many geeks out there with a soft spot for Mercurial, or Bazaar, or darcs, or an even-more-neckbeard-y DVCS, and they often wonder why Git is getting all the love. It’s because Git has GitHub. Mercurial seems to be feature-equivalent to Git (at least in my limited experience), and Mercurial has BitBucket, which seems to be pretty good. But it’s not as good as GitHub.

Nobody should be ashamed that they can’t replicate GitHub’s success. It’s really hard to do the web well. It’s hard even to really smart people, of which I’m sure there are a few at BitBucket. The only people who think it’s easy are idiots. You can spot these people easily: they’re the ones who comment on TechCrunch posts and chortle that they could build a Stack Overflow clone over a weekend.



Don’t slip a concrete dildo into someone’s box of Fruit Loops. They won’t be happy with your Morning Breakfast Surprise. Put the concrete dildo in a clearly labeled box, with instructions. Then when someone encounters a problem, “Hey, something is screwing me here. Maybe it’s the concrete dildo?” at least they know to ask.

The Higgs Bozo



Mock geolocation

Useful if you’re working on a website meant for mobile devices. Firefox 3.5 has geolocation, but I use this with Safari and GreaseKit. Replace with whatever latitude and longitude you prefer, naturally.

if (!('geolocation' in navigator)) {
  navigator.geolocation = {
    watchPosition: function(success, f, options) {
      var broadcast = function() {
        var position = {
          coords: {
            latitude: 30.2696384,
            longitude: -97.74947,
            accuracy: 10000,
          timestamp: (new Date()).valueOf()

      window.setInterval(broadcast, 10000);

Painfully Obvious was built with WordPress, Prototype, Slicehost, and other accoutrements. Colophon →