Stuff from 2005

Que Onda Guero?

Posted by Antonio 5 years, 3 months ago (April 20, 2005)

Back in the day (2002), my first blog was called "Musings of a Story-Telling Animal." This was in homage to a Graham Swift novel called Waterland that has good some good ideas, is thick as the phone book to get through, and has this absolutely wonderful passage about stories:

Children, only animals live entirely in the Here and Now. Only nature knows neither memory nor history. But man-- let me offer you a definition-- is the story-telling animal. Wherever he goes he wants to leave behind not a chaotic wake, not an empty space, but the comforting marker-buoys and trail signs of stories. He has to go on telling stories, he has to keep making them up. As long as there's a story, it's all right. Even in his last moments, it's said, in the split second of a fatal fall-- or when he's about to drown-- he sees, passing before him, the story of his whole life.

At the time, this passage was what blogs most reminded of-- an opportunity for people to tell stories which would define them in a context which they could then use to work, play, keep in touch, and most importantly, relate to each other.

Three years later, my thinking has evolved. Yes, blogs are absolutely about all of the things I mention above, mainly bringing people together in the context of their own stories. But, at least in my day-to-day, they have also become a critical tool for getting inside other people's heads-- getting "on their frequency" so to speak.

Hence, name 2.0: Onda. It's not the South American cousin to the hyper-efficient cars we've come to know and love, but the Spanish word for wave or frequency. In fact, there is an idiomatic expression in Spanish: "Estas en Onda?" which is means something like: "Do you get it?"

So Blog 2.0 is about the things that I "get" thanks to the work of the ~150 other people whose ideas I get to see via RSS on a pretty regular basis. As a final note and in derenfece to the theme of the year, I was reintroduced to the word Onda by one of the great remixers of our time in his recent song Que Onda Guero?

What I dug the most about the song is that I'm pretty sure the expression itself did not originate in any Spanish-speaking country but has instead been remixed into some English-Spanish hybrid by the many Mexicans, Guatemalans, and other South/Central Americans living in southern California.

So welcome to my onda.

Tags:


Moving to Typo

Posted by Antonio 5 years, 1 month ago (May 31, 2005)

Back in the day, a friend of mine told me that every budding Perl geek eventually gets around to writing his own CMS (Content Management System). Given how many different half-baked blog tools are out in Sourceforge for the taking, I tend to agree with him.

It's really tempting to sit down and roll my own tool at this point. Neither Movable Type (ugh, agenda?) nor Wordpress (ugh, mess!) have all of the features that I want in my own CMS, especially when it comes to formatting and simple extensibility. I thought briefly about bloxsom (or more specifically, its saner cousin pybloxsom) because it follows the unixy less-is-more principle so well, but sometimes less is actually less and the lack of multiple categories per entry when combined with metadata that is tied too closely to the filesystem turned me off (though I have to admit that having a simple 1-file script to hack on was very appealing).

My next thought was to use one of the hosted services. First there was the venerable Blogger which looks like it's gotten a Googlesque upgrade. I've tried blogger before and liked the thought that has gone into making it easy. But at this point in 2005, it feels a bit behind the times to me. Then of course, there is the subscription-only Typepad which seems to be spreading like wildfire and has a nice feel to it as well. The problem there is that once you've seen 5 TP blogs they all sort of start to look the same (I'm sure this is not totally SixApart's fault, people are just sort of lazy).

Plus, at the end of the day, what fun is it to outsource these types of headaches to someone else?

Seriously though, there is something incredibly compelling to me about the way in which publish/subscribe works in the blogosphere: everything from RSS/atom feeds to trackbacks and pingbacks and whatever else may come behind that (FOAF-rolls, etc. etc.). Because the hosted services are trying to break beyond the alpha geeks to some some of early adopter crowd, they sometimes get a little behind the bleeding edge on implementing this stuff (especially implementing them in a playful, who-knows-where-this-is-going-to-go way).

And so, it was back to looking for a pile of code to play with-- headaches and all.

So as not to be called biased, I looked at some of the Java options that are out there. Unfortunately as a general rule, I find that someone has to pay me to type more than 50 open and close brackets within any config file so all of these were dismissed after the second "then fiddle with web.xml in line 4950 to add your blog name" directive in the README file.

Then I found Typo. It's young but it supports all the fun stuff I wanted to play with. More importantly it's built on the red-hot RubyOnRails framework that has got everyone foaming at the mouth (either for or against). Since I personally am not quite foaming about RoR yet (coming from Perl Ruby is the salvation, but since I'm coming from Guido's camp, it's not quite as amazing to me), I figured that this would be a great chance to experiment.

And I have to say, thus far I am duly impressed by the little that I've played with Rails thus far. Though I don't often like to admit it, one thing I miss from my java/tomcat days was the consistency of application layouts that deployment standards brought to the table. You could download someone else's java app and know where things were supposed to be because of the standards. In the wild of perl/python web apps, each author does his own thing with config files, other assets, supporting libs etc. even across the same web framework. The RoR way appears to be to standardize deployment hierarchy (read: sane) that is well thought out enough for an RoR newbie like me to find his way around.

So we will see. From what I can gather, Typo started as a fun experiment with RoR (while its author was waiting for a client at a coffee shop) and then picked up steam. My only criticism thus far is with the default stylesheet which feels sort of glommed together, though in truth I have seen PHP apps with stylesheets that make typo.css one look like Donald Knuth code.

Yet another dude trying to write his own CMS. Now that is definitely a good sign.

Tags:


Why do these nerds have to be so cool?

Posted by Antonio 5 years, 2 months ago (May 25, 2005)

To readers of this blog, it is clear that I think Paul Graham is a modern-day Mark Twain for geeks. He's always got that unique perspective that makes you laugh and nod while reading his essays. In one of my favorites he explains that nerds are unpopular in school because they will always choose being smart over being popular. Why then does it always seem that these nerds seem to prefer being cool to being popular?

Let me state up front that I am a big fan of MIT people. Having gone to undergrad across the river, I always thought the real smart nerds went to school across the water. But for some reason, while seeming to be that holy grail of nerd and cool at first blush, it seems that MIT's close cousin (brother, Siamese twin?), the Media Lab, forgot the be smart ahead of being cool rule.

Example: I am sitting at the Wall Street Journal's D-Conference listening to the uber-cool Nicholas Negroponte talking about how every village child in the developing world should get his own laptop. Computing centers at the center of villages don't foster the same sense of pride in ownership, he argues (I think the state of Maine has proven that already).These laptops should be made for cheap and need to be networked even if it's a thin straw path to the Internet. Check. They need to be rugged. Again, check. Sacrifices are going to have to be made in terms of what we consider standard in first-world laptops. Right on, who needs a 1400x1000 display anyway?

Then he goes loop-de-loop on us: the machines needs to be brought down to a cost of $100 which means using all sorts of futuristic MIT Warp drive stuff and making them in modest lot sizes of 6 million a piece. Ah, the Media Lab pixie dust strikes again.

A $100 laptop is a nice idea but it's neither likely not feasible especially if the constraint is that we need to make 6 million on the first cookie sheet that comes out of the oven. What about a $400 laptop? Why not shoot for that? And why not start in places that don't currently require Panasonic Tough Book laptops that Negroponte currently gets from eBay but which used to cost over $3K when they were new.

I am all of BHAGs (Big Hairy Audacious Goals). But I would much rather see something start to happen in 6-12 months, albeit at a smaller scale because the trick to an effort like this is building an organization and letting it gather momentum more than it is to wait for e-ink to be just so for creating $15 displays. I also realize that Nicholas is very good and his job and certainly has much more experience at administrating organizations than I do so I won't pretend that I can even fully understand his master plan.

It's just that a really affordable laptop (which I think $400 is) is a really good idea in all sorts of educational nooks and crannies. Imagine this machine without an optical drive running linux at $400 for all anyone who wants it. It it was sold to anyone (not just restricted to those with big initial POs) we could use standard economies of scale to drive cost out of it (think of all the people who would buy them as kitchen appliances?)

Sitting next to me at this thing was my friend John who has some experience making affordable hardware. When I told him about this idea he laughed and pointed to the old Oracle NIC as an example of why this would never fly as a consumer device. And maybe he is right. But one thing we both checked while listening to the way in which the second generation of the $100 was going to pack a Star Trek Next Generation Holodeck as its display technology was Dell's gross margin. It turns out that Dell has about a 30% GM according to their latest 10K filing. Now doesn't this mean that when they are advertising $499 laptops in Sunday supplements that we are getting dangerously close to a feasible $400 personal laptop for every kid in America all the while letting whoever makes them keep enough of the green to make a viable business? (think: strip out the Windows license and all the extra gunk).

As per his talk, Negroponte has made a very interesting discovery about what happens when kids are allowed to "own" their means for self-enrichment. Now why not take that and work within the bounds of today's technologies and in today's marketplace?

Oh right. It might be smart but it certainly wouldn't be cool.

Tags:


Lazy web telco

Posted by Antonio 5 years, 1 month ago (June 20, 2005)

I love my 802.11g wireless card. Wifi has been one of those things that has just transformed the use profile of laptops all over the world. A connected computer is a productive computer plain and simple.

Every week I ride the Acela (Amtrak's northeast corridor high speed train). Sometimes, for kicks, I do the entire ride with MacStumbler open listening for open access points all the way between Boston and New York. I've picked up as many as 42 different access points in the 220 mile ride. Wouldn't it be neat if I could borrow little chunks of bandwidth all the way down and thus remain connected-- albeit in a very bursty way.

The problem is that when the Acela is doing it's job, my little wifi radio is a 70-100MPH moving target. So assuming that I am not just picking up stray beacon frames with MacStumbler and in fact I have a signal that is strong enough to connect to, I still don't have enough time to do the requisite DHCP negotiation (assuming most of these networks are running something like a Linksys router) and create and end-to-end TCP connection, nevermind having a full HTTP or SMTP dialog.

So here is my question/lazy web request: would it be possible to write an app that was sort of a MacStumbler/NetStumbler on steroids that would queue up network requests for when a strong enough signal is picked up for association between the client radio and the AP's radio. Then (and this is where the hand-waving starts due to my poor knowledge of 802.11 specifics as well as any non TCP IP-based stuff), the app could send any waiting TCP traffic as a burst of UDP packets to a specific server on the Internet. The server could reassemble the TCP dialog and make the connection to the actual endpoint. It would hold the conversation on behalf of the semi-connected client.

Now here is the part I haven't quite figured out: how do you send communication back to the bursty client? You can't presumably do the same UDP-to-TCP in reverse because the client is not addressable. Or can you? I haven't read up on it but this new NAT-traversal (or port-knocking) thing that all of the p2p apps do looks very promising as a way to do this. The question is: do you need an IP address on the client? Because if you do, I'd bet the negotiation between the client and the server (DHCP) would make the approach not work (though you'd have to work the numbers out).

If this could be made to work, I would be a very happy customer of the app-- even if the quality of the connection was flakey at best. Right now I pay out the teeth ($80/month) for a Verizon EvDO card that goes into my PCMCIA slot, radiates the hell out of my knee while sucking my battery down as though I had shorted it, and still doesn't really work that well. It claims to seamlessly switch between EvDO and 1xRTT which it does to some degree but it is nowhere near as reliable as my Bluetooth phone over its own antiquated 1xRTT connection.

So that is my lazy web request for today: an app that uses the software to make the people's infrastructure better than what the carriers can provide. After all, software can do everything, no?

Tags:


Curves

Posted by Antonio 5 years, 1 month ago (June 29, 2005)

Back at the beginning of the dot-com boom I worked for in BCG's high tech practice. There was a partner there that spent most of his time talking up big concepts like "disintermediation" and "realignment of value chains." Sometimes it was so thick that you could cut the bull with a knife.

But there was one slide in the various PowerPoint presentations he would give that stuck with me. Riffing on the theme of worse-is-better he would talk about how web technologies, while less powerful than those that came before in the client-server world (CORBA anyone?), had tremendous reach and that this was what made them unique. He would then present the most sensual of asymptotic graphs:

We had given up all of this richness but in return we got the kind of reach that really helped IT become ubiquitously useful, or so the story went.

I wasn't the only one who got stuck on that graph because pretty soon every nerd in the high-tech practice was going on about everything was a trade-off between richness and reach from the lunch venues near our office to the reward points earned during business travel (to this day I wonder whether a lot of the richness-reach lure doesn't go directly back to some monkey affinity for asymptotic curves. See the latest craze on the economics of media if you don't believe me).

Anyway, the one place where I (and a bunch of others) have continued to apply this richness/reach tradeoff has been in client applications. Until recently, any need for a rich user interface was always relegated to the fat client. At my current job, I spend about 35% of my time managing the development of a Win32 book layout tool because when the company looked at the marketplace two and a half years ago it decided that the online photo sites (Shutterfly, oFoto, and Snapfish) were not nearly as adept at allowing people to make photo albums than the fat client applications (iPhoto and Picasa). This was probably the right call (right before my time) but it has turned out to be a real pain from a development perspective: releases happen at what is now considered a glacial pace (one every 4 months), we never do enough platform testing (12 OS/browser combinations), and bugs are hard to fix due to people's unwillingness to auto update.

Which gets me to my point: the recent naming of what Google has shown the world we can now do with modern browsers (AJAX) has unleashed a torrent of energy from hackers that have been for a long time sliding up and down the same richness-reach curve that we were on when we embarked on BookMaker. XMLHttpRequest and all of its supporting cast of technologies has changed the curve to look like this:

This will not eliminate the need for rich applications: everyone's favorite example is always, who wants to run a DHTML version of Photoshop? But it will change the point at which we reach for VC++ and MFC. And that-- for those of us who have spent some time mired in that Windows client hell-- is a truly wonderful thing.

Tags:


Battle of the Titans

Posted by Antonio 5 years, 2 months ago (May 24, 2005)

Am at the WSJ's D-conference for the week. This thing is like candy for the brain. Walt Mossberg and Kara Swisher (the WSJ tech-heads) riffle through their A-list rolodexes and pack the house with some pretty incredible folks. Then they get them (and 400 odd others) into a swank Four Seasons resort... and manage to make the whole thing feel cozy despite the fact that the riff-raff is allowed (even encouraged) to mix with the royalty. The most striking thing about it is that the speakers are packed chock-a-block. This allows them to riff off each other in a way that we never ever get to see in the mediasphere.

Which brings me to realization #1 while at this plush conference: these guys really each other. Doc Searls has written about the way the tech media portrays the news as "vendor sports" so as to make it more entertaining. Nowhere is that more true than in the Microsoft vs. Apple (Bill vs. Steve) rivalry. It's the Montagues vs. Capulets of our times.

Except of course that for guys who are really supposed to hate each other, they do seem to be having a good time:

(Photo by Asa Mathat)

The third guy in the picture is Mitch Kapor, founder of Lotus-123, co-founder of the EFF and recent founder of OSAF.

I caught a bit of their conversation due to the fact that I had been engaged with Steve on a work related conversation (or more like talking-to but I can't write about that here). Anyway, right after he stormed off, he happened to run into Bill and Mitch who were talking right before sitting for dinner. Soon enough, the three of them were laughing and talking about their common past.

It's great to see. These guys (and others like them) gave birth to the personal computer industry. Now they get to come to conferences where the business that they kicked off in garages and strip-mall offices has swallowed all of computing and is in the process of swallowing the consumer electronics industry as well. What a kick that must be!

Tags:


Thinking Webapps out loud (Part 1: ¿Se Habla?)

Posted by Antonio 4 years, 11 months ago (Aug. 28, 2005)

I've spent the last couple of months thinking about web development platforms (due to a project that I will soon be able to talk about here) and apparently so have other people.

The debates have ranged from thinking about the nature of the languages, to thinking about the points for modularization of functionality (the libraries versus frameworks question) to the value of the community in helping get the tedious stuff out of the way. In this post, I want to focus on the language part of my thinking; in future posts I will move up the stack to consider libraries, frameworks, and communities.

A long time fan of Paul Graham, I naturally started by focusing on the importance of the language in terms of productivity. This answers the whole Java/P-languages question on the side of the P languages (Perl, PHP, Python & Ruby). In my experience, dynamically-typed wins every time. In fact, it's funny how many Java web projects I've been involved with that end up supporting dynamic language semantics via internal Hashtables and some sort of "meta-method" call system. That said, here is the caveat: I have never worked (and hope never to have to work) on an engineering team that is bigger than 12 people but I could imagine how the formalism of Java/C# helps when the problems of coordination become more significant the problem the code is actually trying to solve.

The more interesting question to me over the last two months has been: once you know the P-path is the way to go, how to pick? And here is my conclusion: among the P-languages (Python, Ruby, PHP, and Perl), there is only one relevant distinction, designed languages versus evolved hacks with Python and Ruby in the designed camp and Perl and PHP in the hacked camp. I'm not going to go into this distinction in detail as whole religious wars are being fought over this right now on IRC. I will just say that OOP seems like a hack in Perl and a crazy global namespace with several different ways to parse a string seems like an even bigger hack in PHP. Both languages have strong advocates that are Very Bright Folks. These people have valiantly tried to smooth over some of the major issues in Perl and PHP but at the end of the day you can only polish coal so much and I am often left wondering how much further Python or Ruby could be if these Very Bright Folks had spent their efforts there.

Among the designed languages (by which I mean someone with a good sense for computer languages drove the core of the design early on), I think things boil down to maturity of the runtime and taste. Python beats Ruby on the former and in my opinion it beats it on the latter as well. Python's runtime seems to have received more attention: it has been implemented 3-4 times (CPython, Jython, IronPython and PyPy), there has been more solid debate about implementation internals, and CPython appears to release often with about 10-15% speed bumps every time. And more importantly, it has bytecodes! Ruby's running straight off the AST worries me, not because I am some sort of VM purist but because it seems like this sets a natural limit for the optimization of the runtime (and yes I know that Rite will move us to a bytecode-based runtime but I have to wonder how long this will take to get to the mainstream).

On the taste side, I dislike the @:@@# littering Ruby code and the parentheses-for-method-calls-as-optional and I haven't yet seen why I should go ga-ga over Ruby blocks, but I am willing to admit that is just me and that I need more deep experience with Ruby to really be conclusive here.

The thing that is clear however is that both Python are more alike than different at their core. They offer the same built-in types, they are both extremely dynamic, their C-based runtimes are relatively easy to understand, and their C-extension mechanisms are pretty clean. Which means that despite my slight preference for Python, once you've crossed the bridge to the P-world, the web application development question has to be answered higher up the stack.

Update: A fabulous piece on closures Ruby and Python. The best argument and link list I've seen yet.

Tags:


Letting the Roaches out of the Motel

Posted by Antonio 4 years, 11 months ago (Sept. 3, 2005)

Update: for those that just want my furl2del.icio.us migration tool, click here.

This is much bigger than an individual post-- it's actually a riff I will come back to many times over the next few months-- but because I have something useful to share, I want to start with just a small post. And that needs to start with a story:

Back in the fall of 2003, my friend Jerry Michalski told me about this really neat service that had just been launched called Furl. Furl was a web-based bookmark manager that went a step further in that it could also suck the contents out of public URLs into your own private index. It was slick, it was quick, and in a way it was very Web 2.0 way it had been put together by a small team from western MA in just a few months. At the time I remember mentioning Del.icio.us to Jerry as they had also recently launched but we both agreed that Del.ici.ous was too crude and flakey to be relied on.

Not very much time passed (as Jerry said before the paint was even dry) before Looksmart snapped Furl up and made loads of promises about how they were going to keep it the same, scale it out, blah, blah, blah. And they made good on the promise in one way: they kept the features of the app pretty much static. Unfortunately it feels like they kept the backend scaling static as well because the webapp seemed to slow to an absolute crawl, at times stopping to get PI to a few million significant digits before letting you actually bookmark something.

In the meantime though, Del.icio.us just got better and better. The app stopped being flakey. It kept a nice simple interface that was AJAXed to kingdom come. And most importantly, as the userbase grew, Del.icio.us became a really interesting social experiment.

So, where am I going with this? Well after having invested 204 bookmarks worth of content into Furl (all carefully organized and rated) I realized that I would much rather be working with Del.icio.us and worried that due to the roach motel motel model that many portals pursue in their "monetization"" strategy, I was probably doomed to starting my bookmark list all over again.

Except that in the end Furl did exactly the right thing in this Web 2.0 world we live in. Right in the "Tools" section of the website is a one-button option for getting your entire Furl archive as xml. The format is absolutely trivial (if you've ever parsed an XML file) and a scant 60 minutes after discovering it, I had all 204 of my Furl bookmarks imported into Del.icio.us. Key to this was also Del.icio.us's great web API for remotely adding bookmarks (RESTian and very very simple) but it was Furl's openness that most struck me as just great (are you listening Yahoo? Google?).

For anyone stuck in the same quandry and looking to get off Furl, I've uploaded my script here so that you too can move over to Del.icio.us. It requires a Python 2.2+ runtime which is really easy to get over here and it doesn't have much in the way of error checking, but it might at the very least help you as a template. You use it by calling unfurlIt.py from the command-line and passing your Del.icio.us credentials and the path to your exported furl.xml file. If there is any interest in using it a serious migration tool, I might wrap it in a simple Tkinter GUI and add the ability to suck the furl archive straight off the site so just let me know.

Of course, it occured to me that you sort of have to be a geek to do this kind of thing. So I started thinking about a standard format for data and metadata that all of these sites could comply with, a la Steve's much-evangelized attention.xml. Maybe OPML (which seems to be all the rage) could fill in here? But after a little more thought, I realized that this places the burden on the wrong shoulders. Any Web 2.0 engineering plan will for sure have a line-item called "data migration/export" and it will also for sure be the first thing dropped from the schedule when time gets tight. Forcing hackers to comply with some external data format is expecting too much under these circumstances.

But what we could to is start a public repository of snippets of code, sort of like O'Reilly's new Codezoo that could serve as common pool of data migration tools for X web service to Y web service or Z application file-format. Folks could contribute their own little hacks and perhaps together we could then help all the non-geeks avoid the roach motel. How is that for a collaborative lazy-web way of fixing things?

In the meantime, thank you Furl. It's been a nice ride and I'm leaving (with my data) a happy user. Way to set an example for everyone else.

Tags:


The Boss has a Clue?

Posted by Antonio 4 years, 10 months ago (Sept. 17, 2005)

I'm not a big fan of most Microsoft stuff and I think their best product ever is still Excel. But I am a fan of two things: 1. their full-on embrace of openness with respect to letting their people represent Microsoft to the outside world without the usual corporate filters, and 2. Bill Gates's ability to run a $300 billion company and still keep all of the details of what his vast empire is doing in his head in a deeply technical way. It is the second of these two that I want to focus on here.

If you have not heard Jon Udell's interview with Gates at PDC 2005 run and download it now (for fans of text over audio, he put a full transcript on his blog as well. I am a big fan of Jon's style (going all the way back to a book he wrote that flopped but changed my perspective on software and the net in a deep meaningful way): Jon does his homework, thinks hard before he talks, and always gets right to the core of the issue. So getting him as Gates's interviewer was just an incredible treat.

[ As an aside, Bill is clearly thinking about all the right stuff even if it is from the wrong perspective (fat client). Pay close attention to the part about RSS as a two-way protocol and the way in which the various groups at Microsoft have gotten the religion. ]

Anyhow, I really dig Gates as a software boss because of the way that he seems to be able to operate at so many levels at the same time. He can talk at the CEO-level one moment and then dive right down to implementation issues that the team in charge of a particular product has faced the next. He should be a model in that respect, at the very least to all CEOs of tech companies. I know that McNealey is a ham and Jobs is the ultimate demo man but it would seem to me that above all else, this multi-level talent is what sets Gates apart from the rest of the crowd. (Plus, it's nice to see that he's just not afraid to poke fun at himself).

In fact with the recent fiasco around the handling of the relief effort post-Katrina, I have to wonder whether the Gates model of leadership might not have broader relevance outside of technology.

Tags:


Wither Java

Posted by Antonio 4 years, 10 months ago (Sept. 19, 2005)

Eddie and I (and some soon-to-be-mentioned others) have been working on a project that requires a number of key pieces of infrastructure as well as some high-level components and we've had some spirited discussions about programming languages (somewhat inspired by this post). Recently he's been working in C while I've been working in Python and I find that it's harder to get into the C-groove when reading his code after working in Python than say reading a more modern language like Java. And he's finding that chasing memory leaks also takes some mental re-tooling. And yet, the approach still feels more "right" than this 100% Java stuff which has become so popular on the web these days.

Today he revisited the issue of safety and freedom languages with me and we got into a discussion of control versus flexibility that merits its own post (or maybe a comment from him here) but during our conversation I was struck by the fact that both of us kept trying to work Java into the spectrum we had arrayed the various different languages into without much success. Java seems to fall somewhere in the nebulous middle where you get little control and little flexibility with performance that is somewhere in the middle of the two.

Anyhow this got me to thinking about Java and about why it was that in the last 5 years I've gotten so disenchanted with it and I realized that despite the hundred of millions of lines of Java code, despite the amazing state-of-the-art stuff JITs can do today-- Java has gotten pushed into the nebulous middle of a spectrum that will probably make it obsolete for web development over the next few years. The two things that were most exciting about it are now almost completely irrelevant:

(Just to be clear, the following applies only to web applications. PC fat clients, phones, and WARP engines may be a different story)

Portability: Back in the day of #ifdef UNIX hell, Java was a breath of fresh air. However, Linux won the Unix wars. Peter Yared, and ex-Sun guy who got the LAMP religion and started a company, put it best in an interview when he was asked about platform independence:

You know you’re running on Linux ‘x86, you don’t need platform portability at the language level anymore. We all spent a long time in Java to make sure developers were no longer locked into an operating system or chipset. That was what made Java successful. When it took off in 96-97-98 when it moved from the browser to the server, you weren’t locked in to Solaris or HP-UX or AIX or whatever. Linux does the same thing. So, if you know what operating system you are running on, in this case Linux, do you need layer in between? We think the answer is no.
Alternatives: C++ does really suck and Java really did a great job of making programming fun again. Plus, 10 years ago Perl was the only credible alternative to Java (which is why I think it did so well). Today, you've got Python and Ruby and a number of credible apps that show that it's possible to work in these languages. Sure the JITs aren't there and the dev tools are not super rich but the runtimes work well and the languages are nice and clean. And most importantly, these languages/runtimes/communities play well with all of the existing web infrastructure so people feel little need to he compared Java to Cobol and called it an "evolutionary dead end." And the flamewars that the RoR folks have started over and over again with the Java people have now gotten so old, I wish there was a wired-tired list for geeks to post them to. I like Java, and as I said above, it's really much easier (at least pre-1.5) to read that straight C. My only real point here is that for what we're doing, it's funny to see it occupying a dead man's area on the spectrum of today's computer language trade-offs.

Update: A Tags:


Casting the Creatives

Posted by Antonio 4 years, 10 months ago (Oct. 1, 2005)

It's really happening: the creatives are taking over. There is no question about it-- whether it's the mantra of free-agent nation, the impetus behind the Long Tail, or the success of sites that distribute indie music, it's pretty clear that the tools, the network, and the inspiration is there for stuff to be created by the people instead of for the people.

Amen to that. However, it would seem that our economic institutions (by which I mean mainly contracts, both between investors and corporate entities, and more importantly between employers and employees) are woefully out of date.

This is an obvious thing to all of my trend-spotting friends who are currently struggling with trying to understand how this massive change is going to ripple through the economy. Just this past week, I was having breakfast with Kellan and talking about models for patronage applied to the modern age. Specifically, he's got a cool idea for a web services that a lot of companies should be willing to invest in. Since he doesn't want to start his own company at the moment (a well understood model for harnessing economic energy), it would be great if there was a way that he could be "sponsored" by some entity to get his idea to see the light of day. Unfortunately, the economic structures just don't exist for that today. In software, the closest I've seen is corporate sponsorship of open source projects; however, this doesn't always work and to boot, a software license is increasingly less relevant to some of the cooler ideas I come across these days.

Someone needs to work this out and pronto. Here's why: the folks that want to participate under this new model are some of the most creative high-energy people that I know. Furthermore, I would love to find a way to get them involved in my project, as would most of the other funded entrepreneurs I know. And yet professional investors (by which I mean VCs) raise valid objections to the "contractor" model of building stuff (which is incidentally the only structure in place today for this type of work arrangement). As R0ml has pointed out, software is just as much about the people who build it as it is about the source files so it's understandable that the folks underwriting the projects would been uneasy about the talent just walking out the door at the end of the contract.

It would seem that Hollywood has figured this out in the way that the studio model works to bring creative folks together for projects with a finite length to them and clear objectives. A musician friend of mine recently suggested I take a look at Creative Industries: Contracts Between Art and Commerce, a recent book by Richard Caves, an economics professor we had in college who was insightful on industrial organization, but dry as sawdust. Caves apparently got a mid-tenure crisis and decided to look at how creative industries organize themselves for kicks. I'm hoping that the book educates me a little bit in how folks in Hollywood have managed to adapt the patronage model to the modern age.

We'll figure this out as an economy. In the meantime though, I sure am glad that these are the questions we get to struggle with. Imagine thinking about "how to trade-off capital and labor" or the 'union factor" instead.

It's a good time to be alive.

Tags:


No Product Love for the Thinkpad X41 Tablet

Posted by Antonio 4 years, 10 months ago (Oct. 2, 2005)

The blogosphere has been a wonderful source of product recommendations for me. I've found coffee machines, books, rock bands, movies, and open source tools just to name a few. And by in large I am always really happy with the pointers. They keep me subscribed to around 200 feeds, 20 of which I listen to very carefully.

Which is why when I needed a PC laptop, I chose one of the new IBM Thinkpad X41 tablets. It's been a long time since a PC laptop has excited me in any meaningful way (the first z505 VAIOs did and before that the Thinkpad 560 which was the Powerbook of its day) and I figured that "tablet experience" might get me there. After listening to Scoble continually praising both Windows XP Tablet and the "Experience Pack," I decided to take the plunge. I chose IBM (or Lenovo rather) because they've always made the sturdiest and in my opinion best overall laptops. I figured the 6 week wait was because of how awesome these things were.

I finally got the machine two days ago and I have to say, if first impressions count towards long-term product-love, this is going to be a short and bumpy relationship. The out-of-the-box experience with the X41 Tablet is so bad that it can only be compared to the experience of setting up one of those $400 Dells (except you don't feel like you've gotten a "deal").

Brief impressions (after two days) follow, hoping that some future Googler runs across this amidst the sea of accolades about the machine (see: Stockholm Syndrome below). I will write more as I use it and hope that it ends up being more positive than this. But here is my first impression: do not buy this thing. Get one of the small Sonys, the Toshibas, whatever else and wait yet another rev on this tablet stuff. Better yet, if you care about the pleasure of using a good laptop, buy an Apple (iBook or Powebook).

Impressions

Apple has an intern who works in packaging at some heinous building in the back of DeAnza where they keep all of the ex-Newton gimps. This intern is not terribly bright; in fact she drools in meetings and likes digging into her ear with half-dismembered paperclips. That said, Lenovo would do well to steal her away (at the grossly overpaid rate of say $20/hr) to put her in charge of all product packaging. If you could take the inverse of the experience of opening a new iPod, opening an X41 Tablet is it. It may seem like a stupid thing to focus on-- the fact that Lenovo sent me so many plain cardboard boxes inside of other plain cardboard boxes that at the end on the unpacking I was convinced someone was knocking off those infinitely nested Russian dolls. By the time I got to the machine, my desk looked like a hobo community for smurfs.

Then you get to the machine itself. Now, part of what I read about online was how small the X41 feels, "almost like a real notebook." Yeah, right. The machine is about the size of a 12 inch laptop-- from 1995. The actual body is about normal thickness but the screen is the laptop's equivalent of Mr. Magoo glasses and the whole hinge mechanism makes the machine look like a door jamb. PC Magazine said that this was the first convertible (tablet) that just felt like laptop when it's in laptop mode. I might agree if they had said that it was the first convertible that feels like an ugly cumbersome laptop. Outside of the overall dimensions, the screen has way too much bevel around it (probably due to the inherent design limitations imposed by the touchscreen) and nine heinous buttons across the bottom of the bevel that were designed to be pressed by both fingers and the stylus. And to boot, each button has an ugly icon which is 90 degrees rotated when you are in plain laptop mode.

Let me get on to the substantive stuff. But before I do, a caveat. I have not used a PC laptop seriously since 2003 when I got an IBM Thinkpad T40. So this is where my complaints might have more to do with Microsoft (and the unbelievable proposition that Windows XP seems to be getting slower) than with IBM per se.

After the first power-on, the computer spends at least 5 minutes doing some sort of image copy setting itself up for first use. I guess the IBM product people were not taught about getting the user to that first moment of joy as quickly as possible. After the grinding of the HD is done, you're hit with a bunch of EULAs but since this is a pretty crumby part of most Wintel setup experiences, I'll just fast forward 20 or so minutes and 2 or 3 reboots to the first usable screen...which was a broken browser window with an internal C:* reference. I think it was something to highlight the features of the Tablet PC but I can't be sure. Again, why such little attention to first impressions?

When you get a pen computer, the first thing you want to do is... well use the pen. Windows XP Tablet edition gives you little clue as to how to do this. There is an additional Tablet icon in the Quicklaunch toolbar (disabled by default) which brings up a kludgey keyboard for tapping and some additional Programs in the Start Menu but outside of that it looks just like Windows XP. I guess this is what Windows people love (running the same interface/apps on anything from a cellphone to a workstation) but in my case it just reminds me that I've got a device which is not as good at being a laptop as a T43 would have been. There are Tablet specific applications (called the "Experience Pack") but only time will tell whether these are really useful. I have high hopes for "Snipping Tool," a program that lets you cut out and annotate anything that is displayed on the screen and the Paint program looks fun, but I'll have to write more after I've played a bit more with all of it.

One final initial software note: since I got my last PC laptop the world decided that Windows viruses were just too much of a problem and it seems like every computer I've seen recently comes with a 3-month version of Norton Antivirus. This seems like a good idea except for the fact that the program is such a pain in the ass in its constant warnings and fairly cryptic messages about "taking over" various functions normally performed by Windows. It also seems to present a performance tax to the overall experience, especially at boot time. I know that Microsoft is going to fix this with Vista but in the meantime, it's a real drag on the whole user experience.

And speaking of performance, the X41 feels sluggish. I have a gig of RAM in it and the standard 1.5Ghz CPU. I come from the Apple world where OS 10.4's Finder combined with pokey PPC G4 chips defines a new molasses standard. And yet, the X41 Tablet still feels like it wants to do a few million digits of PI every once in a while, especially when booting any of the tablet-specific applications. Yuk.

Stay tuned for further thoughts on the whole "tablet experience." For example, the battery (for weight reasons I got the standard one) seems to drain at a pretty nice clip. I would anticipate (though I haven't tested it) that I'd get 2.5 hours on one charge without sticking on the 8-cell battery which makes the machine feel and look like it has a tumor.

I will close this initial impressions review by observing that that my impressions run against the grain of what other X41 Tablet owners are saying. Google it and you will see that most people are experiencing a high degree of product love for their X41s. To me (at this point), this seems like some sort of Microsoft Stockholm syndrome combined with a dearth of good alternatives in PC laptop-land. Or maybe Apple laptops have rotted me to the core.

Tags:


The Web Rebooted in Bubble Mode

Posted by Antonio 4 years, 9 months ago (Oct. 8, 2005)

Just coming back from the Web 2.0 conference. Overall, I have mixed feelings about it. Some great folks attended and some of the presentations were pretty good but the venue was way too small for the crowd and the conference sort of stank of web 1.0 exuberance in a strangely self-conscious way. It had a very strong business overtone to it (a good index is always climbing above the crowd at the breaks and counting the blazers) which is not always a bad thing though it does sometimes make the conference feel repetitive (as was the case here).

It's also a testament to the emergence of the blogosphere as a source for think-food in that a lot of what was said (both in-session and in the hallways) is stuff that has been percolating from the blogs of the usual suspects for months now. In fact, perhaps the best overall summary of all of the themes of the conference is the piece that Tim O'Reilly put together ahead of the conference to hand out with the goodie bags. If you read this, and wait for a couple of talks from the conference to show up on IT Conversations (like this one and this one), you'll be getting the bulk of the brainfood.

As I was reading Tim's piece on the way out to the conference, I got stuck on his use of the term "lightweight business model" which he ascribed to most Web 2.0 companies. Though I like the term quite a bit, I couldn't help feeling like he was using it as a euphemism for Adsense and the conference did little to dissuade me from this opinion. Several questioners mentioned this throughout the conference-- that every entrepreneur there seemed to have the same business model in mind: run Adsense until the company can be sold to Google, Yahoo, or MSN.

[One rare and incredibly refreshing exception from this trend were the guys from The Ladders who were at the show just as attendees and who struck me as incredibly sharp when it comes to inventing and refining a new business model for jobs online].

I don't think that there is anything inherently bad in this grow-a-service-and-get-acquired strategy if you've got the right connections and a willingness to exit at a relatively low valuation (To underscore this during the first day of the conference Weblogs Inc one of the first and best of the new media blog networks was picked up by AOL for $25MM-- certainly nothing to sneeze at but hardly a home run).

2006 will be an interesting year in the context of the Web 2.0 hypotheses. In one of the better sessions Toni Schneider from Yahoo said that last year was a year of discovery where it comes to Web 2.0, this year was the year of products and services, and next year would have to be the year of viable business models. I remember watching this process during Web 1.0 and thinking that it was going to come to a crashing end way before Hotmail sold itself to Microsoft for $400M+ and ICQ sold itself to AOL for some similarly crazy amount, so I'll leave that sort of judgement off the table for now.

I love O'Reilly conferences-- at OSCON for example, I often come back with pages and pages of notes of stuff to try and people to follow up with. Between ETech, OSCON, and Web2.0 I think O'Reilly is making a good go at replacing the old triumvirate of PC Forum, Demo, and Agenda. But my main criticism of this conference (which perhaps is a criticism of business conferences in general) is that it should have spent a little more time exploring the fundamental question of what comes after the Adwords-Till-Buy/Bust model runs out of gas-- or even whether this "lightweight business model" will run out of gas at all.

Update: A nice piece on just what was so disconcerting about the conference from a business perspective.

Tags:


Titillating Constraints

Posted by Antonio 4 years, 9 months ago (Oct. 15, 2005)

Altered Carbon by Richard Morgan is a delightful book that I've just finished reading. Props to an ex-employee and friend, Dmitri Silakov, for being a spectacular source of book recommendations in general and for first turning me on to Morgan. He first recommended Market Forces, Morgan's third novel which was good enough to make me want to read all the rest of them. As far as dialog and complex characters go, Market Forces may have an edge on Altered Carbon (which was after all his first novel), but the world that Morgan creates in Altered Carbon is both richer and much more tantalizing, especially in how it plays with constraints.

Brief rant: despite the fact that bookstores lump sci-fi and fantasy together, and the fact that the same nerds line up outside the midnight premiere of LOTR (fantasy) and Star Wars Episode Ego (nominally sci-fi), there is a huge difference between the genres in my mind. The latter lives and dies by constraints and the former uses plot-aid in the form of "magic" to run over any constraint that gets in the way of telling the story.

Now some constraints have to be removed (almost any sci-fi novel has found a way for greater-than-lightspeed communication and most have also found ways to transport atoms at the same clip) but the important thing in my mind is that the author have some sense of boundaries as to what can happen in his world. It lets me engage my mind in working through possible scenarios in a way that is both natural and good for you (while I am recommending books, see: Steven Johnson's latest, an entertaining if a little light argument about just this).

This is why Altered Carbon is so good. Morgan does a terrific job of creating a world that is futuristic but well-constrained by what technology lets people do (jacks-to-enter for good sci-fi). But he then moves quickly to explore the ways in which current constraints shape our lives, specifically the notion that we exist in meatspace tied to one physical body. Without saying too much about the plot (because frankly it is just too much fun), in Altered Carbon people can be uploaded, stored on disk, transmitted, and downloaded into different bodies. In most cases, death is only the breakdown of the biological machine one happens to be using and these biological machines can be bought, traded, sold, and confiscated by people with enough money.

I'm going to say no more about the main plot for fear of ruining it for you. Here is the soundbite you should take on the plot: Detective story with a 24-ish Jack Bauer who takes no prisoners to get answers set in this whacky (and yet strangely familiar) world where there is a distinction between death (temporary) and Real Death (not supposed to happen).

I will mention just two cute details to give a flavor of the world in Altered Carbon: Catholics live trapped by their antiquated notions of how to live life (and how to die)-- because in the future some things just don't change. And one of the most endearing characters in the novel is an AI that runs a hotel called the Hendrix (yes after Jimi) that emancipated itself due to its good business sense only to be abandoned by its patrons who wanted "human" servants. All very very delightful.

One final note: if you do read it and it gets you thinking about the implications of the world Morgan paints and how far off it might be, you may want to check out Ray Kurweil's The Age of the Spiritual Machines, a non-fiction book about the same topic which is equally thought-provoking if a little drier.

Tags:


The Weather in the East

Posted by Antonio 4 years, 9 months ago (Oct. 16, 2005)

So Joel (from Joel on Software), who just barely missed the cut for my sidebar, asks a very similar question to one I often ponder when I think of the east coast and the west coast in terms of good startup activity in the online space. He is griping about NYC-versus-Boston when he writes:

Is New York just lame compared to Boston? Or does it just seem that way? Why is that... is it because of MIT? or all the other high tech stuff going on there?

It's good to see this, because it makes me feel a little silly to often ask the question in the context of Boston-versus-Silicon Valley. Having just worked in New York for two years, and having just recently raised money in Boston, I feel qualified in saying that it really is no worse in New York than in Boston, and that in fact when it comes to media-related businesses it's actually better.

That said, it is still tough to find folks in Boston on the investment side of things that will take the big swings with that same level of nonchalance that you get from your typical west coast VC. In general I don't find this to be a huge impediment, but sometimes you see start-ups which try to squeeze themselves into a certain unnatural shapes for the sake of potential investors. The cost of this is an inability to stay loose and playful, two elements which seem to be so critical to the experimentation that allowed the west coast to take the torch from the east as soon as the PC wave hit.

However, the bigger problem is not with the investors or sources of talent per se, but rather with the fact that we are lacking a cabal of folks who can get together to bat ideas around without an explicit agenda. This was one of my favorite things about the culture out at Stanford when I lived there and it seems to be sorely missing here. Most of the events that I have been too are either tediously forced (where people with nothing more than raw ambition bump into each other, much like amoebas trying to recombine into higher lifeforms) or totally out of touch with the real cool and interesting stuff.

This is why, as Joel points out, Y Combinator may be such a special place-- if indeed Paul Graham's experiment can be made to take off.

In the meanwhile, I may take some airtime here to try to puzzle this out. And given that we've had 10 straight days of rain I might start with the climatological argument-- that is, maybe our shitty weather keeps us all locked away inside instead of out of doors bumping into each other between the rollerblading, biking, and tofu burrito munching.

Tags:


Pascal versus the Business of Making a Difference

Posted by Antonio 4 years, 9 months ago (Oct. 17, 2005)

An thought-provoking post from Peter Rip, author of a new VC blog I just stumbled upon, argues that Web 2.0 is about us entrepreneurs also being in a bubble. This is my favorite kind of grizzled-and-experienced post because it ends with an historical reference:

Today's three person startup on LAMP is 1981's Pascal developer. The few that got rich did well. The many that didn't quit their day jobs did OK. And those who quit their day jobs and didn't get rich.... learned something. (more)

Now this is a sobering thought, even for us funded LAMP/Web2.0/post-bubble startups-- reading it this evening almost gave me indigestion. However, after a little thought it occurred to me that the big difference between all of us today and the hobbyists of the early PC era is that we have now have both a bigger and better playing field to be on. For starters, PCs are ubiquitous and the network is all-pervasive. The universe of things that you can do, in photos, music, video, and communications for starters have much more appeal to the general public than writing yet another version of UCSD Pascal. Ergo a much bigger market with a whole set of new challenges around usability, scalability, and usefulness that few get right in the best of circumstances. Much more "economic energy" to capitalize upon.

Back in the day that Rip describes you might have sold 2k licenses of your Apple II Pascal compiler and been considered a wild success-- today a Web 2 company like Flickr can make a difference in half a million people's lives before "exiting" to then make a difference in millions of people's lives. And like Flickr there are others-- what were the equivalents back in 1981?

It's not to say that he doesn't make a good point in observing that the LAMP stack and the cost of commodity servers + bandwidth does allow a whole bunch of folks into the game that would have been locked out by cost before. But this should make everything that much better-- because we can all build from a cheaper, more robust, and more pliable infrastructure than even in the days of early web. It's a great time to be alive if you are into starting small and want a shot at making a difference in loads of people's lives. It's even a great time to be an investor if you're willing to think for yourself and take a few bets in this brave new world of ours.

Tags:


The VC Squeeze

Posted by Antonio 4 years, 8 months ago (Nov. 6, 2005)

Paul Graham is at it again with one of his lucid and thought provoking essays, "The Venture Captial Squeeze", on why he thinks venture capitalists are hosed. His argument basically that capital is less important due to a few factors which make things cheaper to start companies and that Sarbanes-Oxley compliance makes it harder for startups to exit through the public markets (which implies they must sell for less to bigger companies in order to ensure a VC return).

I don't think that anyone can dispute the fact that post-bubble we are in a much different IPO market and I would not argue with the fact that it is cheaper to start companies these days but Graham misses a couple of important things that bear mentioning [Full disclosure: I have tried both the bootstrapped approach in the past (didn't work) and am currently at the beginning of a VC-funded go at-bat].

First, he forgets to mention that even having fewer people can get expensive quickly. Unless you are going to fund college students that can live in dorms and eat Ramen for dinner (something that I think he is having some success at, most people have real expenses and thus can't afford to work for no pay, or even minimum wage. If you factor in basic benefits and other people-related overhead, it is not out of the norm to think that you'll spend about $700K for a small team to come together to develop something worthwhile over the course of a year (see "runway" below before you quibble with this timeframe). And that amount is just above the reach of most angel or friends-and-family investors, or at least it is if you want to keep the signal-to-noise ratio of dealing with investors manageable (someone once told me that having angels do more than $200K was like trying to herd a litter of kittens due to their number and how fragile they can be).

Second, and this is something that he overlooks altogether (as do all of the drum-pounding Web2.0ers), when you are a bootstrapped startup that fails you can run the risk of being the tree in the woods that no one hears fall. When we did Memora we got a bunch of press at launch, great product reviews, and loads of interest. And yet, after we failed the only thing that people wanted to know when I would talk about it is: "who funded you?" as if this was more important than anything we actually built. This is lame I realize, but a fact of life you need to consider when you just look at the low odds of success in the average startup. Here the "venture filter" is your friend for two reasons: first it means you've made it past a set of guys who specialize is weeding out potential failures (which more than picking successes is what is at the heart of a top-tier VC fund), and second it means that if timing, the market, or a hurricane causes you to fail, you won't be that tree that no one hears falling.

Overall though, I think that Paul is right on to point to the fact that the VC model needs to change, at least in the web space. I think the best guys get this and like to think that our current venture is an experiment in this new direction.

The important thing that good VCs already realize is that the way to deliver value to entrepreneurs is shifting. Entrepreneurs no longer need access to big amounts of capital to grow; we don't even need access to expertise about how to grow or who to hire (because teams are smaller and the Internet is a wonderful way to identify, vet, and attract the right set of folks).

What we need is runway and support.

The first comes directly from a judicious amount of capital. Assume for a moment most startups do not get their first product right. Having enough capital to refine the product, the messaging, and even the team composition if necessary really helps to overcome the mosquito effect that affects most bootstrapped startups (you get one sting and then blam, you're dead). Ergo the number cited above for keeping a team running for a year in tight but manageable conditions.

The second comes from rolling up the sleeves and getting down and dirty. Now, every VC will tell you that this is something that comes with their money but it is just not true. First off, most VCs don't come from operating backgrounds which means that when it comes to helping you position your product and important "business" things like that most of what they can provide can be gleaned from the pages of The Portable MBA. This doesn't mean that VCs can't be valuable thought-partners though-- after all a VC that has been in the business for a couple of decades has seen plenty of good operating guys go through several technology phases.

The real killer is that most VCs spend the largest share of their time either hunting down new deals (something that becomes more important when you've got a billion dollar fund and are making ever smaller investments) or dealing with their existing companies that are on fire. Therefore time for thinking and really engaging at the point where they can be most valuable to small companies falls by the wayside. And unfortunately the dynamic that underlies Paul's essay (falling costs of starting companies) is going to make this worse before it makes it better.

So the big take-away is this: if you're still thinking about starting something and think that the reasons I've laid out above make it worth your while to at least explore the VC route, make sure that you pay close attention to whether you'll be getting the runway and support you'll need to get it right. And, of course, go out and read Graham's essay because it's written with the little guys in mind.

Tags:


The Ads Have It

Posted by Antonio 4 years, 8 months ago (Nov. 4, 2005)

Here's a news-inspired thought about one of my favorite concepts from the social sciences-- path dependence:

A decade ago when smart top-tier venture guys were funding the likes of Yahoo and Excite we all witnessed what I believe to have been the beginning of path dependence towards ad-backed software over the web effect that ends with Microsoft making a feeble attempt to come to the party.

When the web was new and it came time for the VCs to find the adult supervision for the kids in the startups, they faced two choices:

  1. since the web was technology, they could have recruited technology executives to run companies that were fundamentally software makers at their core
  2. since the web was media, they could have recruited media executives to run the drive to eyeballs

I believe that the first major stake in the ground was Sequoia's when they put Tim Koogle (a magazine guy) in charge of Yahoo. KP quickly followed by putting George Bell (a documentary film maker) in charge of Excite. The rest is history.

I'm not arguing here that the web and webapps should not be seen as something that can be used to build huge advertising businesses (interestingly enough, Google, who picked a geek for its adult supervision proved that) but that it's really sort of boring that now advertising is all that people seem think of when they think of web businesses. The metaphors, analogies, and models are all lifted from more traditional media businesses. Even the executives have been recruited from the media companies, sometimes with mixed success.

I guess I was sort of waiting for someone big to stand up and say: "wait a minute here, we're gonna play on the web and our business is about XXX" where XXX could be subscriptions, novel e-commerce schemes, or just about anything beside advertising. And of all the big companies to be able to do this, I guess I would have thought that Microsoft would have both the confidence and resources to do so. Where is it's iTunes Music Store? (Though that is media, it's not advertising backed media).

I'm sure they'll do a fine Microsoft-style job on this whole ad-sponsored search and online tools thing. I just want to see something a little less me-too and a little more encouraging for those of us who don't think that the future all belongs to adwords.

Tags:


The Half-Finished App

Posted by Antonio 4 years, 9 months ago (Oct. 30, 2005)

I've been following the debate in the blogoshere that was ignited by the less-is-more movement spearheaded by 37signals for some time trying to think of how to write the first of many blog posts about it. On one side are all the folks who (like me) felt that a lot of heavy-weight development techniques were being applied to web development (functional specs, loads of QA, explicit design vs. development phases, a bunch of efforts to reinvent most of the LAMP infrastructure with every app, to name a few) and that despite being "professional" these things were actually hurting rather helping the cause (building useful and popular webapps). On the other side are folks who claim that software development is software development and "real" products will always require these "formal" support structures.

Today I had a work-related email conversation which made me think of this again, and then tonight while catching up on my feeds I came across a presentation which helped me get over a mental hiccup brought on by the email.

Let me start at the beginning though. This morning while writing on our corporate wiki about our current project status I wrote an offhand comment:

In web speak, with a small and agile team as talented as this one, 12 weeks ought to be enough time to build almost any product.

This landed an email from a co-worker who basically called me out for making such a crazy generalization. At first, I felt like maybe I had drunk a little too much of the 37signals kool-aid with respect to speed of development (It should be noted that while I like what they have to say in principle, in practice I think it should be taken with a grain of salt given that most of what they put out there are very thin web frontends to database-driven workflow apps). Of course, I wrote back right away with the reasons why I felt that a generalization like this one can hold, namely that in the webapp-as-service world:

  1. You don't ship the bits to the customer which means you can piece it together in the back end and rely on real-time patching to fix things.
  2. Browser apps are better for doing incrementally interface-wise so you can draw the big blocks up there and then refine in a way that you just can't when you are running a fat client app.
  3. The general shape of web apps (stateless protocol that hits and app server which uses a DB and a filesystem) is relatively straight forward (hence low overall complexity). The real challenge comes (in my opinion) in User Experience and scalability.

I feel pretty good about why these three things cut down on the time to build web applications but still felt a little weird about making a generalization in the first place. But then I heard this Salesforce.com conference by Adam Bosworth (see sidebar) about the development model at Google and something clicked for me. It's not that every web app can necessarily be built in three months (though I still hold that most can for the reasons listed above), it's that all of them should be. Because unlike the era of productivity applications when once the bits shipped the app was complete until the next release (except for bugfixes), most interesting web applications are community applications which necessarily means that when they "ship" they are only half done at best. The other half comes from looking at the logs, reading the customer email, finding what works and what doesn't and managing this iteration cycle to be as tight as is humanly possible (I can't remember when I heard that at Flickr this could be as short as 1 hour.

So, go listen to Bosworth (it's short). We're in a new world and I for one am thankful we have the right tools to meet the ever tightening development schedules.


The Culture of Tools

Posted by Antonio 4 years, 8 months ago (Nov. 18, 2005)

I've spent the week interviewing for a new engineering we've got and have met with some good folks. Among the things I like to talk about is programming language preference. Now I know that all good "computer scientists" are not supposed to care beyond the fact that a language is Turing complete, but the reality is that asking a potential developer about language preference is akin to asking them about their esthetic without sounding pretentious.

One of the things I always try to get to right away when talking about programming languages is the strong-verus-dynamic question. I am a firm believer that late-binding (latent typing) languages like Python, Ruby, and even Perl are one of the best tools for developing products when you don't really know what it is you're going to end up with when you start. A lot of smart people have made this very observation before so I am not going to belabor it here. But I was a bit surprised this week when I heard from someone who I was fully expecting would embrace the dynamism of the Python (by stuff I'd seen on his blog) that the dynamic nature of Python wasn't what really drew him to it.

After giving this a little thought, I realized that he was right in the following sense: the open source languages are just as interesting for the communities they attract (and what ollows from these communities) as for any major features in their design/implementation. I would still contend that latent typing is a Very Good Thing for a lot of application work but I am glad to be reminded that comp.lang.python (and all of the culture that comes with it) can be just as important.

One quick example: among the folks I met this week was a very senior J2EE architect that came highly recommended from a series of very successful venture-backed startups. The guy was clearly very sharp and a true Java expert. During our conversation he let it be known that Aspects were the new Holy Grail for the bleeding edge of Java. Never having really understood the big deal with aspects, I spent most of our hour together quizzing him about the way he had successfully used aspects in his recent work. He gave me some examples and then pointed to some other open source luminaries who are better future architectural directions of aspects.

And yet at the end of the day, all that I came away convinced of was that aspects were a hyped up version of decorators in python. Now we use decorators in our app for a couple of neat hacks but I never would have thought to make a big deal about it because I happened to have read about them one day while following an interesting debate on comp.lang.python.

It's good sometimes to look up and see the forest for the trees.

Tags:


The Grain of the Web

Posted by Antonio 4 years, 8 months ago (Nov. 21, 2005)

Though the topic of defining Web 2.0 has been beat to death, Paul Graham throws his hat in the ring with another great essay.

The arguments are thoughtful but the best part comes at the end when he discusses the nature of the medium:

Web 2.0 means using the web as it was meant to be used, and Google does. That's their secret. The web naturally has a certain grain, and Google is aligned with it. That's why their success seems so effortless.

Love that notion. And this essay just goes to show that a fresh perspective can help make two of the most tired, over-written topics in the blogosphere these days (Web 2.0 and Google) interesting again.

Finally, (semi-related) for a little entertaining Thanksgiving reading read the talk that George Dyson recently gave at Google. I won't spoil the end by excerpting but it is quite a fun read.

Tags:


Get Lost

Posted by Antonio 4 years, 8 months ago (Nov. 13, 2005)

It is a rare pleasure to see something that is so good-- so far above the rest of anything else that might compete with it-- that while you are using it (or watching it), you keep asking youself how it is possible that this thing/service/content could be so good. It happens with Apple and their portables, jetBlue and their flights, and in the case of recent television shows, the first season of Lost.

After watching the first episode for exactly four minutes it became perfectly clear to me that this was a television show cut of a different cloth than just about anything else out there. In it's first season (disclaimer: I have not seen any of the second season) is better written, better shot, better edited, better cast, and better acted than anything else out there. By a long shot.

The obvious question to ask is: why Lost and not the other two dozen shows that have been created over the last two seasons? Or perhaps more strikingly, given Hollywood's "studio model" where the same folks come together in different combinations to work on projects, why is there such a big gap between the quality of Lost and the quality of just about everything else out there?

I'm not sure I know the full answer, and frankly I'm not sure JJ Abrams (the creator of the series) knows for sure either. After all, his previous hit, "Alias," is a far inferior show-- in fact at it's core it's just an hour-long music video with a semi-klad Jennifer Gartner changing costumes and bouncing through raggedy-thin plot lines.

It was so striking though that I went looking for wisdom in the 'Bonus Features" part of the Season 1 DVDs. I don't often get into the bonus tracks mostly because of the way in which they end up making the actors look so much more clueless than the characters they portray, but in the case of Lost I just had to look. And I'm glad I did not so much because of anything that Abrams says but because of the smart things that his producers, set people, and other staff say about him. Here I want to focus on the two observations made that I think can best explain why the show is so good:

  • talent: on the casting side, someone described JJ's style as finding the right people and then re-writing the characters around them. I am not sure how common this is but when you see characters as complex as Kate and Hurley and listen to how their characters were written before the actors were cast (and subsequently re-written), you quickly realize that this was a team that was just not afraid to make wholesale changes to the story to accommodate the way in which the actors could bring different characters to life.

  • creative direction: I've heard this one about great CEOs as well but it's still worth mentioning it here. One of the production people says at one point that what JJ is really good at is having "very clear big concepts" and then letting the team (actors, cinematographers, special-effects people) "texture" the ideas to get to the final product. The "having the big thoughts" bit is part of every bonehead business book written so it's nothing new. What is not often said however is that it's also very important to be crystal clear about the big idea or plan. Without clarity it's very hard to discern when someone's "texturing" is going in the right direction.

This has got me thinking about how to apply these two insights to building software. You can't quite draw a direct parallel because the product delivered in both cases is so different. But it is an interesting thought experiment to think about what would happen if product features could be dictated by the specific talents of the engineers and designers hired. To some degree features are emphasized (or de-emphasized) according to engineers's preferences unofficially, but the whole process of "software engineering" with its product management, functional specs., etc. is in place to correct for this. Maybe the new era of software delivered as service (with much tighter time-to-market schedules and instant feedback from users) will help to get us there.

So, go and get Lost. You won't regret it.

Update: I started writing this post while on an airplane ride to California. While there I met with a bunch of folks at different places including some at Google. It occurred to me after talking to them about their work that Google gets this JJ Abrams insight about shaping the work around the talent. It was pretty incredibly to see a company of 4,000+ people that can operate like this at the scale they are at.

Tags:


The Crack that is Productivity

Posted by Antonio 4 years, 7 months ago (Dec. 9, 2005)

So there have been two raging debates recently that have made me think about productivity and tools.

The first was ignited by one of the Y-Combinator companies, Reddit, reimplementing their site in Python after having done the first version in Lisp. Since they are a "Paul Graham company" and since Paul Graham has spent a long time convincing us thatLisp was the ultimate language (even while speaking at Python conferences), the geek blogosphere and comp.langs.* newgroups were full of debate about what this meant with respect to whether Lisp was all that Lispers make it seem.

The second (but related) debate came from a post on O'Reilly Radar where Tim O'Reilly pointed out that Ruby books have raced past Python books in terms of sales. This observation lit up a debate about the relative merits of the two languages, their web frameworks, and their communities.

These discussions are mildly interesting to follow, but at this point only just mildly. Both Ruby and Python are incredibly productive tools, especially when compared to their C++/Java/C# alternatives. Having slogged through half of a Lisp book, I would imagine that Lisp would also fall into the Ruby/Python camp but for its poor libraries.

So why do I follow the threads at all? Because it was one such thread back in 1995 that led me to Perl, and another one in 1999 that led me to Python. In each of these cases, the deltas in productivity were so great that it was a worthwhile investment to follow what the alpha-geeks were discussing.

It's just that now we're a year into the web frameworks brouhaha and yet it seems like the discussion has stagnated. Yes, Rails is much better than J2EE for productivity with small teams. But Rails and Django are eerily similar in the way they attack their problem (as are the half dozen other web frameworks that have sprung up in the Python world to try to be "the next Rails"). Why is it that almost no one is talking about novel languages/frameworks/approaches that are truly new to the way in which people solve web problems? Where are the approaches that are as different as dynamically-typed, interactive interpreter-enabled languages like Python was to Java six years ago?

I spent some time this last week digging around for what that next novel thing might be. This led me to a fairly mediocre book (which would have been great as a series of blog posts) called Beyond Java which had a chapter at the end about a Smalltalk framework called Seaside which takes a continuations-based approach to handling the processing of web requests. Really interesting stuff.

I'm not sure about whether Seaside is the type of measurable leap forward that I'd like to discover, but I do know that I would like to see some of them energy that is going into arguing about whether Ruby has really eclipsed Python or whether the Reddit rewrite proves that Lisp is just another one of those insanely productive languages (as opposed to The Most Insanely) shifting to discussing the pluses and minuses of languages with continuations support in them.

At the very least, tracking such a debate like this would surely help me in finding my next fix.

Tags:


Pythons, and Rubies, and Bears-- Oh my!

Posted by Antonio 4 years, 7 months ago (Dec. 11, 2005)

It's good to whine. In response to my complaining about how the debate over Python and Ruby, and Rails and Django is getting old, someone sent me this Ian Bicking article comparing Python and Ruby.

Now I know I said I was ready to move on but this piece is just '''so''' good, I had to mention it here. From what little Ruby experience I have, I get the feeling that this is the best overall comparison between the two out there-- and what is really great is how much of the "conventional wisdom" regarding differences he just cuts right through, i.e., Ruby being more "OO" than Python as a common misconception.

In fact the only think I would say is missing (or just not directly addressed) which I would have mentioned is transparency of implementation. For example, in Python all the OO is done with dictionaries which makes it really nice conceptually. I don't have enough experience in Ruby to know whether this is also the case, but when I've played around with re-opening classes I've gotten this weird feeling that there is something much deeper going on inside the Ruby runtime.

Finally, Ian has this fabulous link to a little widget from the computer language shootout data which is just great. It is in desperate need of some Tuft-ean help presenting the data (it takes a while of staring at it to figure out just what it is they are trying to show) but man is it fun to run comparisons like this one and wonder just WTF all those millions of clueless programmers are doing (look across all 3 dimensions), this one to understand just how big the programmer productivity penalty is, or this one to wonder how many times we forget that all the truly genius things in software were done 30 years ago.

Tags:


Adding to the A-list

Posted by Antonio 4 years, 7 months ago (Dec. 13, 2005)

I've written before about how I feel about great people and what they do when put together under the right circumstances. Well today at "Secret Startup X" (name to be announced before the end of the year), we picked up another great person who is coming on to help change the way people tell stories online.

And yes (to all of the Django people who have asked), Ned is going to be working with Django. We've got a sort of layer cake approach to what we're doing that picks the right tool for each task. We're doing a lot of stuff with images (storing and transforming them) so we've got a bunch of C. We're doing a fair amount of AJAX work so obviously we've got a load of Javascript. And in the middle of that great big Oreo cookie is a whole load of Python running inside of Django.

Django is great for a lot of reasons (so many that they deserve their own blog post). It does just enough without trying to do too much magic. It's relatively bug-free. It's surprisingly snappy. And you don't have to "buy in" wholesale or risk feeling like you are fighting the framework all the way to your task.

Anyway, the team is super excited to be getting another castaway on to the island. And we are all eagerly waiting to show him that-- at least in this category-- software doesn't have to suck.

Tags:


It's the Product Stupid

Posted by Antonio 4 years, 7 months ago (Dec. 21, 2005)

The number one justification that I hear these days about why so-called Web 2.0 companies succeed in areas where better-funded Web 1.0 companies failed is the "maturity" of the online audience. Ofoto had to dump millions into marketing online photo sharing because people didn't understand what you could do with digital cameras and the network. At abuzz, we were too early for people to understand that the site was really a mix of the best parts of Friendster, Craig's List, and the current crop of Q&A sites.

Baloney. This has always felt like the easy way out to me. It would be one thing if the "before" world consisted of people with 14.4Kbps modems and gopher file requests, but the reality was that the web of 1998 looked a lot like the web of 2005 (the penetration of broadband being the main material difference). We may have had more browser hoops to jump through in order to get decent usability but people were still able to grok the power of the network and the implications of communities online even back then.

Which is why it's so refreshing in the wake of the Yahoo-Delicious deal to read this piece by Ari Paparo on why Blink failed with more money and time where Delicious won. In the final analysis Paparo claims that it always comes right down to product:

My intent was to show that product design matters. We had more money, more users, a five year head start, and some really, really smart people working on bookmarking in 1999. The bottom line is that we simply didn’t get it right.

I'm ready to admit that on the web it's all about getting the product right. This is exacerbated by what someone yesterday described it to me as the "hit-and-run" mentality-- since it seems that just about every day someone is announcing a new online service, a key segment of your early adopters are likely to "hit" your site, make up their minds in 5 minutes (if you are lucky), and quickly run to the next thing if you fail to capture their hearts and minds.

Tags:


Interface, Learn Me a Lesson

Posted by Antonio 4 years, 7 months ago (Dec. 22, 2005)

A recent Tech Crunch piece on a new photo sharing service called BubbleShare has got everyone excited about the power of simplicity. Bubbleshare amounts to a very thin (mostly email-based) interface for gathering collections of photos as "albums," along with a very nice set of DHTML effects (all built of the marvelous scriptaculous Javascript library).

Here is the good: BS has a wonderful out-of-the-box upload experience. You can get your stuff up there without a laborious account signup process that requires you to enter in every last bit of info only to then wait for an email with a too-long-for-its-own-good confirmation URL that you have to click on to get started. The BS team clearly worked hard to get this part right and it really shows.

Here is the bad: this is not an application but an applet, or perhaps better yet an tinyplet. In BS I don't have a notion of a library except for a bunch of emails in my inbox with byzantine Dewey Decimal style URLs that are also too long for their own good. There is no notion of permissions and sharing is limited to "forward this cool link to your friends" which, while great for videos of martial arts mishaps, doesn't map to the semi-private way in which most folks want to share photos (and security through obscurity can only take you so far).

And worst of all, despite the nice page title "Tell your story", BS provides very little in the way of tools to really tell stories. Where are the rich templates that incorporate text as a first-class citizen? Where are the picture editing (think crop not Photoshop) tools that really allow you to leverage the power of images? And where are all of the cool ways to tell stories online that folks have been dreaming up for some time now? And most importantly, where is the community?

Having dug around the site a bit, I realize that the BS folks were working with a role model in mind:

When we set out to build BubbleShare, the first question we asked ourselves that I can remember was: “If Google created a photo sharing service, what would it look like?”

But Google is mostly search, not expressive tools for personal publishing. To me this is like saying: if Cisco built a photo-sharing site, what would it look like? And you can bet that if Blogger (which is Google after all) had set out to build a photo sharing service it would most certainly not look like this. Because in BS there is precious little opportunity for context on the part of the story-teller and blogging in general is all about story-telling in context. Whereas I might spend six hours tweaking my Wordpress template, in BS there is no chance for a creative investment.

There is this general trend with all of these Web 2.0 companies to minimize the interface to the point where we're back to 1995 CGIs with two form elements and nothing else (witness the recent Odeo makeover). While I am a big fan of a lot of the tenets of Web 2.0, this is not one of them. Instead, I'd like my webapps to provide me with an interface that I can learn. Sure, let me do the basics fast and make it dead-dumb simple (as someone from the PC era once told me, the key is to get the user to a moment of absolute pleasure within 5 minutes). But then give me enough depth to sink my teeth in, to learn by struggling with the app, and to be rewarded when after struggling my creative investment pays off in something that really lets me express myself.

We're not dummies that either get a blank page with two form elements or click away to the latest Hollywood drivel. We want to be challenged, and if we're going to switch photo sharing sites, or start using them over email attachments at all, it better be because they really make something possible which just wasn't before.

Tags:


Down By the Seaside

Posted by Antonio 4 years, 7 months ago (Dec. 24, 2005)

A must-listen from the Ruby-on-Rails podcast (has very little to do with Ruby on Rails): an interview with Avi Bryant on a new Smalltalk-based web framework that breaks the straw-thin mode of thinking about programming for the web (session-less back-and-forth of key-value pairs does not have to be the state of the art).

This is one of those interviews that makes you wish podcasts had a way to "call in." There were just so many more questions that the interviewer should have asked but didn't like: how you deploy faceless Squeak-based applications? How you distribute them? And why is Smalltalk really is so much more efficient than Ruby/Python/Perl?

For everyone with some downtime over the next few days, spend some time down by the Seaside and think about a better world.

Tags:


Back from the Seaside (and a little wet)

Posted by Antonio 4 years, 7 months ago (Dec. 31, 2005)

So I am back from my holiday experiments with Squeak and Seaside. I guess it's called experimentation because you are supposed to play without necessarily having a real agenda. This is a good thing because despite the fact that Smalltalk is a language I've been wanting to learn for a long time, and despite the fact that Alan Kay is one of my all-time computer heros (along with Ken Thompson and Dennis Ritchie and Knuth), I was sort of left ho-hum about the whole thing.

First, Squeak: while the idea of a fully integrated environment in a great thing in principle, Squeak is just too baroque and isolated from the surrounding environment (the web, the OS, etc.) for me to really envision using it as my primary development environment. From the trivial (the fonts supplied with it are just a complete eyesore) to the significant (in full screen mode on my 23 inch display the UI does not redraw correctly or respond to mouseclicks in a consistent way), the whole environment feels stuck in 1980. It may be better on Windows (I used in on a 2x2GHZ G5) but running inside a window in OSX made it's retro feel painfully obvious. The Squeak browser pales in comparison to Firefox and the web and basic OS-integration is sorely missing (sort of like Java apps from 3 years ago). The class browser looked like an awesome tool but too many things about the way you could scroll the panes was just broken in my view. And finally in some cases, like when grepping for a method name with the "method finder" the whole environment would just freeze up for 10-15 seconds at a time becoming completely unresponsive.

Then there was Seaside: Very cool idea, and probably a great implementation, but so sorely missing in documentation that it's pretty hard to go beyond the basic trivial counter application. I was particularly interested in how the continuations-based pattern for web development dealt with persistence (beyond with keeping things in RAM on the image) and concurrency (users working with the same model object at the same time) but I found little help in either case and it was not immediately clear to me from browsing the class hierarchy how this was supposed to get done.

The one thing that Seaside did have which is worth copying was a really neat way to inspect all of the page fragments (or widgets) from the web browser (outside of Squeak) including a fully web-based class browser. This was pretty awesome and it's a testament to Seaside (and a discredit to Squeak) that I found it better to work from the browser-based interface than in the cumbersome class browser-transcript-debugger inside the Squeak environment.

I still think that the Ruby-on-Rails podcast on Seaside with Avi is well worth listening to but I am not sure how he manages to be so productive with a tool that, at least after about 5 hours with it, seems so much like a university research project, and not a full-blown development environment. Maybe I lack the vision for it, but for now, I'm staying above the waterline for real work.

Tags: