Wednesday, November 30, 2005

Sun going open source

with everything but Java itself?

I don't know if this is the greatest idea, but their products weren't doing well before they went open- how will then do now? I think the adoption rate won't change drastically. I guess a second question is how will it affect the future quality of these projects. Just because they are free and the source is open, there isn't a community of developers around these things that Sun will be able to leverage (such as the amazing community around Eclipse). So, what do they gain, besides maybe making BEA and IBM drop their prices? My guess is that they won't drop their prices- and now they have some numbers to say that Sun doesn't think there software has instrinsic value, while theirs is worth upwards of $10k/CPU.

Monday, November 28, 2005

Ruby...in a browser


Why the lucky stiff, the mad genius behind Why's (Poignant) Guide to Ruby has come up with a Ruby tutorial that features what appears to be a running interpreter- in the browser. This is truly greatness.
[Found via Radar]

GML profiles

Thanks to one of his comments, I read through all of Geo-Web.This blog does a decent job of expaining what the heck GML is. GML itself is one of those things that is too "meta" to be of use to most people, but GML application schemas and profiles defined for particular purposes can be useful. The author tries a lot of analogies to explain what GML is, but it's pretty different from most things.

Think about the specification for SQL- most of us never look at. In fact, we are usually only concerned with the variant of SQL that applies to the database we are using. We might try to write database independent code, but what's a VARCHAR here is a VARCHAR2 there etc. We then define different databases using the DDL (Data Definition Language) aspects of SQL, and you end up with particular columns and tables, etc.

Now, imagine if the specification for SQL was written in XSD. That's the thing about GML that could make your head fall off, it's like a specification for creating XSD, written as an XSD. And by the way, the schema for XSD is also an XSD. This is what makes us not love the XML folks so much.

Ben Galbraith has a great story and presentation on this stuff, here's a recent article on this stuff.

Beta

I think a great definition for beta is things that are feature complete, but not yet fully tested. If you want to do a release that is not feature complete- whatever your definition of complete is- I would go with a 0.x numbering scheme. The guy in this WSJ article who says his site is beta because he hasn't finished all of the features yet, seems to be a little misguided. It would seem that beta has come to mean "not finished", as opposed to "not fully tested".

I blame Google for this, although everyone else is getting in on the game as well. If you call your first live public site a "beta", it doesn't leave you a lot of room for improvement. I think the expectation this it lets you get away with buggy software, which is entirely different from incomplete software, is a bad expectation to create. In fact, one could argue that few software products are really complete (even after they begin sending email). From agile perspective, we should be getting more comfortable with releasing evolutionary products, but they should products where a limited set of features work correctly, and the ones that don't are not included.

Previewseek web search

Previewseek web search: "

Beta web search Previewseek aims squarely at Google and bills itself 'the world's most advanced search engine.' PreviewSeek's about page compares a search for the word 'Java' on Google and says its results are smarter:

Previewseek immediately understands that the word Java can mean many different things. Did you mean Java the island, Java the coffee, Java the programming language, or Javanese (the language spoken by people on Java island)? If you are not sure, Previewseek immediately gives you definitions of each different meaning. On Google, if you were interested in Java the island, you would have to click through over 70 pages of irrelevant results for 'java' before getting to your very first relevant result! In Previewseek, you just need to click once to get all the appropriate results.


Uhhh...maybe you should just query "java island". It really annoys me when people do some dumb query on a single ambiguous word and complain about the results. The previously mentioned search even gives you some options for "java island map" as a suggested alternate query.

When frameworks collide...

WebWork merging with Struts to become Struts Ti: "Patrick Lightbody, in 'WebWork joining Struts,' has announced that WebWork is going to merge into Struts, becoming the 'Struts Action Framework 2.0.' The main benefit for WebWork, he says, is the Struts community, while Ted Husted says that the intention for Struts Ti was to use WebWork as the core for the action framework."

This is an interesting combination- I wonder which parts of Struts they would keep in this scenario? Two places where it was always lacking were in the construction of multi-page flows and in simple UI construction. I think the problem with a lot of these frameworks is that they just go too far down the old configuration road. If everything is configurable, you don't really have an application, you just have another layer in a stack. Too many of these things make you feel like you are programming in XML, rather than using it as a data representation format. Maybe they can slide in some Rails style convention over configuration principles in as part of the integration....

Sunday, November 27, 2005

Thought Experiments

Thought Experiments>Tim Bray has some interesting thoughts on the new Office XML formats. One of the key elements here is backwards compatibility. Microsoft over the years has gone to amazing lengths to preserve backwards compatibility in its products, at the cost of simplicity. It still seems to be a weak argument in this case for including that in the new XML format- even though there are billions of legacy word documents, that doesn't mean they should be in the new format. It's far easier to build support for the old formats into the new Office suite and support for the new formats as a plugin to the old Office suite.

Still, the question of whether Microsoft or OASIS have come up with the better format is a fair one. However, that should be evaluated on the basis of features and performance, not by who came up with it. The idea Tim has of getting them to agree on the basics is good one. It reminds me of how KML uses the basic GML standard for points, while putting it's own structure around it.

XML does allow for sharing the common bits with namespaces. Maybe the world should switch to RelaxNG... another great OASIS standard. Then we might be able to know what we are doing. With XML Schema, all too often, the meaning is obfuscated by the syntax.

Friday, November 25, 2005

Where are you...


Google Analytics- amazing how something this cool got so much bad press. It seems to be a natural human tendency to try and cut down those who are doing well. Anwyay, this picture [click for the larger size] shows where you all (the measured readers of this blog in non-rss form) are located (with the exception of India, who was cut for purposes of scale). Very interesting, I think it's hackable into a Google Local map.

Review: Agile Estimating and Planning by Mike Cohn

Just wrapped up reading this one on my flight from IAD to SFO: Agile Estimating and Planning, by Mike Cohn. It has some very practical direction on how to put agile planning practices in place. I think a lot of people need materials that are pretty detailed. I agree with the principle that methodologies should be adapted to fit the needs of the teams, but having all of the options laid out makes that a multiple choice decision, rather than a free response.

I faced the very trials that he described when attempting to figure out how to put story points or ideal days in place for size estimates. Ideal days do make that initial hump of estimating easier- they give people a frame of reference. Once we did that a couple of times though, I just switched to a couple of size measures (Extra Small (0), Small (1), Medium (3), Large (5), Extra Large (10)) and everything bigger than 10 ideal days had to be split into smaller tasks. At that point, the numbers were just relative sizes, and we could call them points without anyone thinking we weren't being serious.

The one place that I thought the book fell down was the one thing I was really looking for advice on, how to transition from that list of things that you are about to tackle in an iteration to the particular assignments that have to get handed to developers. Mike recommended doing some detailed estimates at that point, down to the hour level. I have to say I am closer David Anderson's approach on that point. Don't estimate at that level. However, I think David's all or nothing approach of doing no estimating is really only appropriate for Feature Driven Development, where all of the features are roughly equal. With the approach we usually take, bug fixes and everything else have to get factored in there, and there can easily be order of magnitude differences between the amount of work for each work item/task. However, coming up with the size estimates is pretty easy when there are only 5 choices.

So, Mike's book is good- far more practical than most of the other agile management books that seem to be coming out of the woodwork... You should check it out. The price jumped up pretty high on Amazon, but it's worth it.

Wednesday, November 23, 2005

'Proprietary' Formats: KML and GML

This one makes even less sense than proprietary APIs- there is criticism of KML claiming that it is a proprietary format. I suppose the comparison is to GML, which is supposedly a non-proprietary format. In what sense is KML proprietary?


  • It's an open format. Published on the web. Documented.

  • There is no use restriction on the format. Other vendors and developers are encouraged to use it.

  • It is widely used and implemented by a growing variety of vendors.

  • Suggestions and comments on the format are accepted via a public forum.

  • Even the compressed binary format (KMZ) is just using the common zipfile compression algorithm, which has implementations on every operating system and modern programming language, rather than something that you need to buy a seperate product to use.


It would appear that the only salient difference in proprietary-ness is that KML was developed by a single company (albeit with input from others), whereas GML was developed by a standards committee. The salient difference in the marketplace is that KML is usable and hand-editable, whereas GML is rather too complex for use without tools. In contrast to what one might expect, the standards committe developed format requires tools to create, whereas the one developed by Keyhole does not. Then again, looking at the history of the OGC, they were primarily pushed forward by the other vendors attempting to cooperate in opposition to dominance in the marketplace by ESRI and ESRI formats such as the shapefile and the arc .e00 formats, which had become the accepted interchange formats for vector data. This infighting has led to OGC standards in most cases being worse than standards which have been defined by individual vendors.

So far they have only been able to come up with "superset" type standards which have been overly philosophical in their approach- not designed with implementation efficiency in mind. I think there is a something to be said for formats that have been proven with a high performing implementation. Think of a reference implementation, such as Apache Tomcat now is for the Java Enterprise Edition for the Servlet specification. It is possible to create a poorly defined or bloated spec such that the implementations are going to be burdened by poor performance.

The proprietary label should be reserved for those formats which are protected by copyright or obfuscation and don't allow for open use- think of the various DRM music formats offered by Apple and Sony- not an XML format that is documented on the web. And oh yeah- ESRI is supporting KML now too- if you need any more proof that it's not proprietary, you must work on a standards committee. I've been there, I'm not going back.