Swimming with the Razorfishes

Saturday, July 02, 2005

Dailysonic has discovered that Apple is caching the podcasts and feeds published through its podcast directory.

Apple has made a number of odd choices with its podcasting support in iTunes; this is just one of them.

If I were publishing a podcast, I'd be glad that Apple cached it. At last count, Apple had sold more than 400 million songs through iTunes. If one percent of that traffic decided that they wanted to sample my podcast, my server would explode. Podcasts tend to be rather large files; far larger than the stuff pushed out by my regular feed.

On the other hand, sophisticated podcasters like Dailysonic depend on advertising revenue, dynamically inserting ads into the stream and carefully tracking download statistics. Having Apple cache the streams presents real problems.

I couldn't find any mention of caching on the Apple podcasting site or its technical documentation.

It should be relatively easy for Apple to allow publishers to opt out of Apple caching.

So Karl Rove might be the one who revealed Valerie Plame's CIA identity?

On the McLaughlin Group Show (airs Sunday in New York), MSNBC reporter Lawrence O'Donnell claimed that Karl Rove revealed Valerie Plame's identity to Time Inc. reporter Matt Cooper.

Revealing such information is a federal crime. Though the Bush administration has been selective in its enforcement of such laws, I hope Rove is indicted.


click for high-res

It is good to be back in town.

Friday, July 01, 2005

Zoinks -- this is so cool. The geekiest thing about flash / physics experiment is that the subject is a bikini woman.

Fun hint -- wait until she gets lodged between two bubbles and drag her through with your mouse.

Extra credit -- drag her half way through, and let her pop back out.

click for high-res

Trends at JavaOne

So much to learn at the Hee-Man Woman Hater's club. Uh...JavaOne. While the most surprising thing I've learned is that hygiene is so 90's, there have been some interesting technical trends.


My God I'm tired of hearing about SOA. I'm still not certain if I'm missing something, or of SOA is just an attempt to rebrand 20 year old design concepts. This is all SOA seems like; an design model. Lets hope that next year's hot technology trend isn't the factory pattern. SOA seems to be the new VC-bait. Here at JavaOne, you are hip if your software provides/creates/enables a service-based architecture.


Everyone is talking about integration, as if no one has ever integrated two software systems before this year. Integration is second only to SOA for buzzword value.

Regardless, it is nice for vendors to give it some attention. A sort of tacit acknowledgment that we've written a shitload of poorly-connected systems, and that now we should endeavor to clean things up.

The big announcement, the everyone has already heard, is Sun's open-sourcing of the Sun application server as GlassFish, along with a number of business integration tools (the Java Enterprise Service Bus will be open-sourced later this summer).

All of the integration tools I've seen are focused on inter- and intra-enterprise integration. It will be interesting to see how other people start using these tools in the web space and consumer-focused development. Integration is a problem everywhere.

Alternative Containers

I'm excited to see how much interest alternative containers are generating. Spring is the obvious center of the "lightweight container" universe, but others like Pico and HiveMind are active, too. People are talking about J2EE containers other than the majors (IBM, Bea and [cough] Sun), too. JOnAS and Apache Geronimo have come up in discussions more than once.

There also seems to be huge interest in OR mapping tools, with lots of discussion around EJB 3 persistence, Hibernate, iBatis, and even TopLink (though I'm convinced that Oracle wants to kill it). Hibernate 3 (and 3.1) is so interesting I think I'll blather a bit about it in a separate entry. The similarity between Hibernate 3 and EJB 3 is nice; if you've been working with the former, you'll be well prepared for the latter.

I'm particularly excited to see all the activity in lightweight containers. Until recently, the bulk of development effort has been in heavyweight J2EE containers. Where these containers are intended to scale vertically, the lightweight containers are more able to scale horizontally, collaborating across loosely coupled nodes.

Open Source

I suppose the big news on day one was open source. Jonathan Schwartz made a strangely vague (or imprecise) announcement about open-sourcing "server side java." it turns out that he was talking about the Sun application server, but a number of other open source efforts were prominent, including, of course, Open Solaris. Sun is in the process of opening the source code to quite a few of its projects. It will be interesting to see which (if any) generate community participation.

Sun is getting significant pressure from partners, notably IBM and BEA, to open-source the VM. I don't see the urgency for this. The full VM source is easy enough to get, and licensing the VM funds a great deal of terribly important management roles that don't tend to happen as well in OSS projects.

Web Application Frameworks

The web application framework market still seems rather messy to me. I believe that the JCP is doing the right thing with Server Faces, but JSF is a big, fat, complicated thing. If all you need is a data to html binding, or if you just want to drop in a page flow library, JSF has a certain amount of (possibly intolerable) overhead, both in terms of environment and dependencies as well as intellectual overhead.

I also find it very interesting how seldom discussions of these frameworks mention the web designer's role. I don't know what kind of "large scale" projects these guys have in mind, but very few would get far withough designers. It is still, after all these years, excruciating to collaborate between designers and developers on the web tier. One or the other has to learn too much about the other's business. After JSF, I'd love to see some standardization in the APIs used by the design tools.

Shale (aka Struts 2.0) seems like a really nice library. It is certainly more straightforward to integrate other libraries and frameworks (Tiles, Clay, WebFlow) into Shale and it incorporates nice shared (client / server) validation libraries. This comes at the expense, however, of complexity. I find the blinding array and varying levels of abstraction in Java/Web application libraries quite frustrating. It really says something that already the Java world has a derivative of JSF to make it more "functional." Regardless, Shale's "integrate with everything" philosophy is great, and I can't wait to build something with it.

New Language Features

Being tied to some libraries that are not ready for JDK 1.5 (aka Java 5.0), I haven't had much time playing with the new language features. It was good to spend some time working with the features and hearing discussions about them. Once I'm able to use them, enumerations will be really helpful.

Java 5.0 generics, however, are really interesting to think about. While Java language people poke fun at C++ templates as a "macro processor on steroids," Java generics have some funky aspects, too. Because they are implemented using type erasure, Java generics are compile-time type checked, but implemented in bytecode as a bunch of casts. This makes them backward compatible but not necessarily ideal. Java language engineers at JavaOne suggested that future versions of the compiler may implement generics differently (without type erasure).

JDK 1.6 (Java 6.0, Mustang) has some interesting features, too.

Both the compiler and annotation APIs are being significantly opened. Developers will have official (though read-only) access to the compilers syntax tree in Java 6.0 and will have greater control of source compilation from within programs. The annotation processing code will have a public API for adding annotation providers.

Swing is slated for a number of significant changes, most intended to make Swing-based applications behave more like "native" applications.

A great deal of work seems to have gone into improving Swing look and feels, particularly on Windows and GTK. More native widgets make the look and feel behave as a Windows or Gnome user might expect. Improvements have been made to the 2d rendering pipeline and double buffering code to draw more quickly and redraw screen regions more cleanly.

Swing JTables will (finally) have a useable filtering and sorting API in Mustang. Dialog modality has also been enhanced to prevent unwanted blocking. All good stuff.


Weblogic had a large presence at JavaOne. They were previewing Weblogic Server 9.0 as well as announcing a limited service agreement for the Spring framework; BEA will provide support for customers using Spring. Weblogic 9.0 is a stronger product. Configured correctly, it can hot deploy applications and hot migrate applications between members of a cluster. It is interesting to see how aggressively BEA is pushing Weblogic up market. They really are making a lot of room for lightweight frameworks like Hibernate and Spring.

The Conference

Unfortunately, by overall experience of JavaOne was little different than the last time I attended. Too many tickets were sold; sessions are way too crowded. Sessions were also generally too high-level. The first 30 minutes of a 60 minute session were often dedicated to background or overview. This is still not a conference for people seeking to increase their technical knowledge of Java or the platform.

click for high-res

Thursday, June 30, 2005

Why did Sun bother releasing an UltraSparc laptop? Who the hell will buy this?


Out with Friends

Out With Friends
click for high-res

Wednesday, June 29, 2005

These geeks don't seem to understand that sitting in a lecture while talking on the phone is rude. Yes, even if you cover the phone with your hand or crouch down, we can still hear you.

Fourteen Places to Eat. Good stuff.


click for high-res

Tuesday, June 28, 2005

Attention Greg Posten at JavaOne:

Thanks for sharing your music collection with iTunes. You have really, really bad taste.

What a mistake it was to wear a 2600 tee shirt to this conference. Every dockers-wearing wannabe-rebel fucktard wants to be my friend today.

Monday, June 27, 2005

I just saw two nerds get caught in a revolving door. I swear to God.

Pay attention when you are driving.


click for high-res

No, you see, I have these headphones on because I DON'T WANT TO TALK TO YOU. I feign deafness for the same reason.

Stop asking if you can borrow my AC adaptor you fucking geeks. Stop asking me questions about my Mac.

Oh -- also, I'm sitting on a bean bag chair, watching grown men play video games.

Please allow me to vent a little.

I'm sitting here in lovely San Francisco, attending the JavaOne conference. When the topic of me attending this year's conference came up, I said that I really don't want to go to Java One, but that I'd take a trip to San Francisco any time.

My impression of previous JavaOne conferences was rather negative: the conferences were way oversold, resulting in far more asses than seats, the sessions were too basic, and most of the week ends up being one giant Sun Microsystems ad. What is different this year? It isn't so much a Sun ad.

Already (four hours in) I've left two sessions: one because it was full, and another because the presenters' idea of a riveting session was to read their slides, top to bottom. And it isn't like we're reading erotica here. In order to make business integration servers, BPEL and SOA at all interesting, you have to work it. A little.


Also, the people. Good God, the people.

I'm already tired of seeing fat men wearing elastic waist-banded pants. It seems like 10,000 chronically obese, smelly people with poor social skills. Every software developer stereotype is walking around here. I can't wait until day four. I will be performing mercy killings.