Nelz's Blog

Mah blogginess

XWiki (and Maven) Meetup

Last night I went to an "XWiki and Maven meetup". The whole meetup was supposed to last 1 ½ hours, but the presentation itself was at least 1 ½ hours on XWiki, and I was only able to stay for about 30 minutes further to talk with Jason Van Zyl about Maven before I had to leave.

For Maven, suffice it to say that I am a Maven user and infrequent submitter. I like where it is going, and I like some of the features Jason said are coming in 2.1.

But, since most of the meetup was about XWiki, I’ll mostly be covering what I took notes on.

XWiki

XWiki is an open source, "second generation" wiki built on Java technology. It is supported and serviced by the company XWiki.com.

The presentation was mostly given by the XWiki.com CEO, Ludovic Dubost. (Interesting note: Vincent Massol, who wrote JUnit In Action (one of the books I frequently recommend) was also there because he is now working with XWiki.com as CTO…)

Let’s start off by saying that XWiki addresses all of the "standard wiki use cases". What’s is interesting is what it offers to be considered a "second generation wiki".

The XWiki API is completely opened up and available to the XWiki users. (Security concerns being addressed, of course…) In fact, the majority of the XWiki front end is written within the same programming paradigm that an end user would have access to. XWiki API is mostly accessed via Velocity templating, though you can bump up the sophistication by using Groovy as well (when you have that skill set or if you run up against the boundaries of Velocity’s capabilities), and you are able to mix and match Velocity and Groovy with relative ease.

One of the things that Ludovic mentioned was that from the beginning, one of XWiki’s goals was to make sure everything is do-able through a web browser. (I’m not convinced this is always the best idea… Though, they did address some offlline development possibilities later on in the presentation…)

They showed us a bunch of code on a live instance of XWiki. You can create classes and object, extend or repurpose pre-existing object, and publish tools within your XWiki for anyone to use. There are some companies writing entire Project Management suites and other types of applications directly upon the API offered by XWiki.

There are a couple of plugins that are also potentially useful, though they may not (yet) be as polished as some of the other pieces, because they were done and submitted via the Google Summer Of Code. The main plugin was one that can communicate a table of data to a Google Spreadsheet for updating and/or recalculation. You could do this either "on the fly" (where you just saw the table update) or more manually (where you end up actually on the Google Spreadsheet page).

There is also a plugin to work with Eclipse. Basically, you can get a copy of the documents, and edit them within the IDE (so you’re not trying to program within a text-entry field). This is pretty cool, but gets even cooler when you understand that this enables the offline development and ‘automatic’ synchronization once your network connection is re-established.

There was also talk about future abilities to take in any dialect of wiki syntax. Ludovic made an interesting observations that though many wiki’s offer the ability to import from other wiki syntaxes, very few ever bother with an output option.

Basically, it was pretty cool. They have definitely put in a whole bunch of work to make it pretty, snazzy, very JavaScript-y, and very functional. It will be interesting to see where XWiki ends up.