Icon of Trevor

Trevor F. Smith: Exterior

Subtitle: A public record of my projects and related works.
Keywords: Bit Henge Favorites Fingernail Clippings Ogoglio Transmutable
Streams: trevor.smith.name twitter reader linkmonger flickr
Search:

Autobus: a Control-Free iPhone App

I've been thinking of control-free applications for the iPhone and the best so far is aimed at urban bus riders. Me, basically. The app would watch where I go over a week or two and then upon boot it would tell me how to catch buses towards my usual haunts. For example, if I were at work downtown and loaded the app it would tell me the street corners, routes, and arrival times for buses towards home, the cinema, friends' homes, and PCC. The list would be sorted by decreasing historical paths, so the bus towards home would be at the top of the list.

Of course I'd also like a separate application for exploring the bus routes, but the two uses are almost entirely orthogonal from a design perspective.

Kansas City is in Missouri

File this site with IsTwitterDown.com and IsKottkeKottke.org.

Sticky Ideas

You know when you have ideas which just won't go away; those nagging little realizations that the state of the world isn't optimal and that you might know how to make it better given a little time to run experiments?

Two years ago I had the idea of making online 3D spaces into just another web data type and I'm still working on that, but in doing so I've run across a few other ideas that just won't fall off the back burner. It doesn't help that I ate a lot of lunches with Ian Smith who's scary smart and he helped me kick these ideas into shape.

It all started when I realized that no matter how slick our web stacks become they quickly reach a scale beyond which we invariably end up debugging the raw materials of the modern web: HTTP, SQL, and Ajax. Despite taking on the mental load of stack abstractions (e.g. IoC, ActiveRecord, JPA, Hibernate, GWT...) we don't really enjoy the benefits of ignoring lower level code. The burden of development with these stacks is often heavier than without them because the details of the raw materials have been hidden from us so debugging involves wading through strange territory.

In other words: Web abstractions always leak at scale.

At the same time the web development community shrugged off a lot of abstraction misconceptions from early HTML by embracing a style language, CSS, and a pattern for sub-page server interaction, Ajax. We're pushing forward a pure separation of presentation logic from service logic by forcing everything in our services through RESTful APIs and fronting them with Ajax UIs. Combine that advance with a development-time cascading template tool to eliminate duplicate Ajax code, and suddenly the httpd can serve UIs like any other static files, enabling a huge reduction in web tier CPU load and pushing the presentation logic to the browser where it can be more responsive.

In other words: Web presentation logic belongs on the client..

One day, during a particularly frustrating session spent debugging a load balancer, apache servers, a Tomcat cluster, a log4j service, and a MySQL cluster, I realized that though the idea of "once and only once" is making its way through each horizontal tier, it really hasn't happened vertically through the stack (yes, even in Rails). How many transliterations does a value in your database go through when making its way to a user's browser, and how many times did a developer have to make decisions about those transliterations? MyISAM to JDBC to POJO to XML over HTTP to Javascript object to HTML element... and at each layer we're burning time installing, configuring, updating and debugging the abstraction libraries.

In other words: Web stacks need vertical unity.

Finally, with the arrival of open cloud toolkits like the Google App Engine and Scalr for EC2, we're quickly approaching a time when you will be laughed out of the boardroom if you suggest that you should manage your own rack of servers for anything except the most exotic of web applications. Despite experiencing first hand the growing pains of EC2, I firmly believe that the reduced cost of dynamically allocating CPU cores and the efficiencies of scale for hardware management are enough to sustain the cloud businesses through their awkward adolescence.

In other words: Web apps are cloud apps.

Watch this space for the results of my experiments with these ideas. In my Copious Free Time I plan to cherry pick technologies from existing open stacks and assemble prototypes which allow me to experience what our world could be if these ideas took hold.

A Tale of Two Online Cities

As I approach the two year anniversary of my first public post about the Ogoglio project, Foundations, I happen to be in a period of introspection; at a pivot point in my life. Coincidentally, I've also had the chance to spend a few hours in an online city not entirely unlike the online city I'm dedicated to building. Though this other city, Liberty City, was designed for a very different function than Ogoglio City, many of the techniques and technologies underlying it are the same and it was built in roughly the same period that I've been working on Ogoglio City.

A few points of comparison:

Point #1: Rockstar, the makers of Liberty City, had a budget of US$100M and a team of 1000 people. Those numbers includes marketing, distribution, licensing, and production costs but that's three orders of magnitude more money and more than 300 times the headcount than has been applied to Ogoglio City.

Point #2: Grand Theft Auto IV, the game in Liberty City, has grossed US$400M in about a week, making it one of (if not the) largest entertainment launch in history, and it is receiving top marks and kudos from industry rags and my gamer friends. Ogoglio City is basically unknown outside of serious virtual world wonks and the occasional Forrester report.

Point #3: I'm exhausted but recovering. This period of my professional life has been a mixture of optimistic public work and hectic business development. With my left hand I've been directing time and resources to the creation of an open platform for online cities and with my right hand I have been the fledgling chief executive of a startup aimed at merging 2D productivity web apps with simple online spaces. The efforts aren't entirely independent, but they're not entirely in sync and the balancing act has been hard on me physically and very hard on my personal life. I'm back on a good path, but there were costs.

When I look at the progress made towards Ogoglio City in comparison to what can be done with resources like those that went into Liberty City, it's clearly time to change organizational strategies. I have a clear picture of where the project needs to go culturally and technically, but the time for bootstrapping startups is past.

Option #1: Create a non-profit, raise money from VW companies, use that money to fund group events, a content library, and more open tools. This would require some group to immediately step in with a large enough donation to make this very low-risk for me, financially.

Option #2: Find a host company forward thinking enough to hire me to work on the Ogoglio project for some portion of my workday. The Ogoglio platform is already in use in a few internal projects at companies which are growing, so it's not out of the realm of possibility that they might find it in their best interests to ensure its continued development.

Option #3A: Recruit a new project lead and hand over control to someone with fresh ideas and resources, then go join a company with interesting problems.

Option #3B: Make Ogoglio City a hobby project, return to my previous career as a software engineer and geek wrangler for innovative software companies.

Right now I'm investigating the possibilities of options #2 and #3B. The companies in the running for the former are smaller and remote, while the front runner for the latter is huge and local, but is apparently excellent to employees. (No, it's not Microsoft.)

Based on the email and comments you've sent about various posts to this blog, I know that a fair number of VW pros read this feed. So what do you think? Fish? Cut bait? Go pro? Moonlight?

Links, Begone!

Now that Google Reader has added a few much needed features, I'll no longer be using del.icio.us. One side effect is that my link feed will no longer be added to this weblog.

If you'd like to see what I find interesting while browsing, check out my shared links page (mit der feed)

"Little Brother" Speed Reader

Since Cory was nice enough to release his new book under an open license, I mixed up a "Little Brother" speed reader.

Enjoy!

links for 2008-05-02

Cognitive Surplus

links for 2008-04-30

Change is the Only Constant

This past ten days has been a sharp, short shock to my system. Despite our best efforts, my wife and I have come to the conclusion that our marriage has come to its conclusion so we're switching to a binary household with my daughter and I staying in our house in West Seattle.

The life of a startup CEO is not conducive to that sort of arrangement (see previous references to travel and risk) so my time at the helm of Transmutable has come to an end. Cofounders Ian and Nicolas are considering a variety of directions for the company, and I have every confidence that they'll choose the best path forward.

As for me, I'm looking for a company in need of an experienced, results-oriented software engineer and technical leader with a history of shipping innovative, high quality software. If that's your company, I can be reached via my linkedin profile or via email at trevor at trevor dot smith dot name.

Archives: June 2008 May 2008 April 2008 March 2008 February 2008 January 2008 December 2007 November 2007 October 2007 September 2007 August 2007 July 2007 June 2007 May 2007 April 2007 March 2007 February 2007 January 2007 December 2006 November 2006 October 2006 September 2006 August 2006 July 2006 June 2006 May 2006 April 2006 March 2006 February 2006 January 2006 December 2005 November 2005 October 2005 September 2005 August 2005 July 2005 June 2005 May 2005 April 2005 March 2005 February 2005 January 2005 December 2004 November 2004 October 2004 September 2004 August 2004 July 2004 June 2004 May 2004 April 2004 March 2004 February 2004 January 2004 December 2003 November 2003 October 2003 September 2003 August 2003 July 2003 June 2003 May 2003 April 2003 March 2003 February 2003 January 2003 December 2002 November 2002 October 2002 September 2002 August 2002 July 2002 June 2002 May 2002 April 2002 March 2002 February 2002 January 2002 December 2001 November 2001 October 2001 September 2001 August 2001 July 2001 June 2001 March 2001 February 2001 January 2001 December 2000 November 2000 October 2000 September 2000 August 2000 July 2000 June 2000 May 2000 April 2000 March 2000 February 2000 January 2000