Twitter as a Utility Service

Twitter as a Utility Service: Evan, focus on reliability, at least until jokes dry up. Twitter has implementation flaws you need to flush out. Don’t just leave it to someone to handle it somehow while you enjoy the creamy part of engineering. Did you know that Twitter client developers are abandoning condition GET because Twitter servers frequently lies? Fixing just that problem (and letting developers know so they can return to using conditional GET) will reduce server load significantly. [Interesting.]
Source: Don Park’s Daily Habit

TidBITS Blog Post: The Best (and Worst) of Leopard

TidBITS Blog Post: The Best (and Worst) of Leopard: Quick Look and Cover Flow. Together, these offer file previews on steroids. They’re utterly silly (“waste cycles drawing trendy animated junk” was my first thought) until you need them, and then they are just terrific. Being able to flip through a bunch of music or photo files looking for the right one, right in the Finder without starting up any other application, is really great.
Spotlight, Spotlight everywhere. Unfortunately, Apple doesn’t mention what I think is the most important change to Spotlight, so I’m not allowed to tell you what it is. Suffice it to say that previously I didn’t like Spotlight very much, and now I do, so obviously they must have changed the thing about it that I didn’t like, right? Plus, I will now be able to search the past! With Safari, I can search for Web pages I’ve viewed, using whatever text within those pages I happen to remember. With Time Machine, I can search for files that no longer exist. Now if I can just find that $20 bill I had a week ago. [It should be good stuff… looking forward to it.]

WebKit Does HTML5 Client-side Database Storage

Surfin’ Safari – Blog Archive » WebKit Does HTML5 Client-side Database Storage: The current working spec for the HTML5 standard has a lot of exciting features we would eventually like to implement in WebKit. One feature we felt was exciting enough to tackle now even though the spec is still in flux is client-side database storage. So for the last few weeks andersca, xenon, and I have been cooking up an implementation![Interesting. Finally? Maybe.]

SubEthaEdit 3.0

SubEthaEdit 3.0: New key features include:

  • Custom file format to store collaboration metadata
  • Connections are encrypted (SSL) if possible
  • Shiny new statistics window
  • Unified, central connections window
  • Much improved syntax highlighter with nesting and imports
  • Smarter encoding guessing and storing
  • Interface to change and add mode triggers

[I need to mess with this at work…]
Source: SubEthaEdit News

How to go from clients to products?

Ask 37signals: How to go from clients to products?:37signals made the move from clients to products one day at a time. Basecamp was developed alongside client work and was treated as essentially a third client. It had to compete for resources on equal footing with other clients, which meant that every hour we spent on it had to really count.

With constrained resources, you realize the value of the marginal hour very quickly. You can’t just goof around with science projects, open-ended explorations, and play time with new whiz-bang technology. Instead, you have to deliver real value, real soon. Otherwise the project is simply going to languish as it loses out to the “real work” of paying clients.

For us, that meant we had to build something for ourselves, something we needed, and something that was valuable enough that we’d assign resources to it over getting billable hours done. It meant racing to running software, deciding that a lot of stuff just doesn’t matter, and building half, not half-assed.

The initial start of extreme resource starvation lead to many of our thoughts on software development. It also lead me to believe that the best work is done when there’s not enough time, not enough money to do it “right”.

Doing it right is a pie in the sky. It’s a misnomer for second-system syndrome and it’s never going to happen anyway. So stop aiming for perfect, start aiming for good enough.

[Always a good reminder.]