I am a sponge!

(a sponge absorbing knowledge, not IBM’s conference fees… honestly)

The first two days of ApacheCon Europe are now over and done with – and what have we learned children? I chose to attend two of the full day tutorials,

  • Practical Hands-on Tutorial on JavaServer Faces Using Apache MyFaces, and
  • An XSLT Tutorial, Including XSLT 2.0 and Publishing with Cocoon

The first was relatively interesting, and since I was (am, I suppose) a relative newcomer to the JSF world, a lot of it was new to me – though of course the main idea of this being essentially “another” MVC architecture meant that much was familiar from Struts. The bar was kept pretty low for the day however, mostly due to the fact that it was a very hands-on tutorial, with each of us expected to implement relatively simple JSF applications. Differences in each person’s laptop setup (JRE version etc) meant that various errors occurred, rarely the same, which slowed the whole thing down. As the organisers themselves said, they could easily have filled three days with this stuff, and it’s just a pity that time was so short. It should also be noted that the tutorial was marked as “Novice”, and it’s really my own fault for not reading the small print. The one small highlight of the day was where the Oracle-based speakers repeatedly apologised each time they *forgot* to mention IBM in each vendor listing. Funny stuff, or else I’m easily amused.

The second days tutorial, focused on XSLT, was considerably more interesting, at least to me as much of my recent work has been based around it. The speaker, Doug Tidwell from IBM, is the author of the O’Reilly XSLT book, and is therefore extremely knowledgeable on the subject. Much of the basic XSLT 1.0 stuff I was already pretty familiar with, but I was very happy to find out that XSLT 2.0 has drastically simplified much of the overly-verbose structures of version 1.0. However, raining on my parade was the fact that there will probably be no browser support for XSLT/XPath 2.0 in the near to medium term – if anyone knows of any support for this coming to either Firefox or, very importantly, Internet Explorer 7, please let me know. Without this support, XSLT 2.0 will remain very much a server side phenomenon, which would be a real shame, since it is a vast improvement over version 1.0, and many cool/nifty things can be done with XSLT browser-side, especially when combined with things like Atom feeds.

On a side note, I’ve recently discovered that JackRabbit, the Apache based Java Content Repository implementation, only supports a subset of XPath 1.0 – for example, you cannot do a query like:


which would be very useful for paging. There are a number of other limitations to the implementation. If anyone is in a programmy kind of mood, and feels like diving the depths of JackRabbit, Lucene and Derby, adding full XPath 1.0 support would be cool little (read huge) and very worthwhile project.

Notepad? Check. Rotten tomatoes? Check. Microsoft Atlas is being presented at ApacheCon!

I've been chatting a lot with some friends recently about the merits of Microsoft's Ajax engine, Atlas. They tell me that it's the be all and end all (of course they're died-in-the-wool "friends of Bill" so….), and after some initial investigation, it definitely seems to be a nice package. It shares many features with Dojo, my Ajax package of choice, and has some nice (and free – shock!) tooling based on it, in the Microsoft Web Developer Express. However, all the documentation assumes that you're developing an ASP.NET application, and that you're using their tooling, rather than just say "Here's a bunch of javascript libraries and how to use them". The documentation is also very fragmented, for example I couldn't find a single "Hello World" tutorial, just a (seemingly) random bunch of code snippets.

Anyway, I've been assured that Atlas is essentially free of all backend or tooling dependencies, with optional ties to the .NET framework. I'm yet to be convinced, but Rob Burke told me that he's presenting a session on Atlas at ApacheCon next week here in Dublin, so at the very least it should be interesting to see the reaction of the open source crowd to Microsoft's foray into the "free as in beer" world of software development.

Threading extensions to the Atom Publishing Protocol

James Snell's bid to conquer the webiverse through the power of the Atom continues apace. His threading extension for Atom has been approved as a proposed standard for linking multiple entries/feeds in a threaded manner. See this post for his announcement, and, more interesting, his post on how to use the threading with Abdera, the Apache Atom parser.

Abdera Atom parser gone to Apache Incubator

James Snell's Abdera project has been accepted as an Incubator project by Apache. Abdera is a dedicated Java-based Atom parser. Unlike ROME, a similar project whose aim is to parse all sydication formats, including all versions of RSS and Atom, Abdera instead focuses on just on Atom, which seems to one major advantage – performance.

I've played around a bit with both ROME and Abdera, and they're both quite easy to use, with quite similar structures, obviously enough designed around the Atom sydication format. However, as Rob mentions, in some initial performance comparisons, you can see a reduction of from 10 to 40 times in memory consumption, and up to 8 or 9 times in CPU cycles, which is just massive.

Abdera is still very early on in development, but it's already gotten good documentation and examples, so I'm very impressed. Handy ice breaker for ApacheCon in a couple of weeks!

ApacheCon 2006 in Dublin

So, ApacheCon is coming to Dublin at the end of June. What exactly does this mean for Ireland, if anything? Everyone knows at this stage that Ireland pretty much at the forefront of the world software scene, but I always wonder exactly how much of this spills over into open source development. I remember, when back in university, there was practically no mention at all of open source, besides being forced to use Linux for a few modules (the rest all being Borland or MS Visual Studio based). We were never actively encouraged to contribute to open source projects or use open source software. I'm not sure if this is still the case… hopefully not. (On a side note, there were always those elightened few who worked on OS projects, but that was in spite of, not as a result of the environment). Sooo….. hopefully ApacheCon will help raise some local awareness among the up and coming programmers in Dublin and beyond of the benefits/wonders/whatever of the many open source projects out there.

So, enough proselytizing for now. There's a lot of cool stuff coming up in ApacheCon. Some of the more interesting talks are:

  • Integrating AJAX and JSF and its usage inside Apache MyFaces – I've been working a fair bit recently with AJAX technologies, specifically with IBMs JSF/JWL (Java Widget Library) implementation and the open source Dojo Ajax toolkit, so it'll be interesting to see what direction Apache are moving with this.
  • An XSLT Tutorial, Including XSLT 2.0 and Publishing with Cocoon – another area of interest for me is how to take syndicated content, Atom in particular, and generate UIs from it. XSLT is one of the approaches I tried, and while very powerful, gets pretty complicated. If Cocoon can simplify the process, it could be very significant.
  • Accelerating Web Services Development with Axis2
  • AJAX development with the Kabuki project – Once again, I'm very interested in Ajax toolkits, and while I'm generally focus more on Dojo right now, the folks at Zimbra are doing some very good work, so this talk should be well worth a look.
  • Getting everything out of Apache Derby Database – I played around with Apache Derby (formerly IBM Cloudscape Java database) for the first time recently, and was pleasantly surprised to find how very simple it is to embed it in an application and have a fully functional JDBC database. You literally just slot the jar into your classpath and that's it.
  • Apps made easy with Zend Framework The good folks at Zend are the driving force behind PHP, and seem to be taking all the right steps to move it from being "just" a scripting language (albeit a phenomenally successful one) to really moving it into the enterprise, partnering with large companies like IBM, Oracle, SAP, Sun… the list goes on. They're also now giving away for free their very good Eclipse-based IDE for developing PHP apps, which this talk should talk about. Worth a look.
  • Apache Solr, a Full-Text Search Server Based on Lucene – Lucene is an amazingly well written search solution, which I've spent many a long hour working with. Still, it does/did have issues with regards to cluster support and some other barriers to its use as a web search engine. The Nutch and Hadoop projects are aimed at fixing these issues, and it'll be interesting to see how the Solr project has leveraged them for its "high volume low latency" web search engine.

Anyways, that's my €0.02, and my first blog post! Looking forward to going to the conference, should be a blast.