JCR in 15 minutes

November 3, 2009

We had a great NoSQL meeting yesterday evening colocated with ApacheCon. Thanks Jukka for organizing!

I was in track B for the second part, and found it very interesting to compare three different approaches to non-relational content storage: MarkLogic server, JCR and Pier Fumagalli’s Lucene+DAV technique.

I also quite liked Steve Yen’s “horseless carriage” way of looking at NoSQL. Defining things by what they are, as opposed to what they are not, sounds like a good idea.

I gave a short talk about JCR, find the slides below. Of course, as usual, they’re not as good as when I’m here to talk about them ;-)

Back from a great IKS project meeting

May 29, 2009

I’m on my way back from Salzburg where the Salzburg Research team organized a great meeting for the IKS project. Flawless organization as usual, thanks and congrats!

Today’s requirements workshop featured an impressive collection of very powerful brains (and nice people to hold them ;-) including, besides the usual IKS suspects, representatives from more than twenty CMS communities and companies.

I was a bit worried at first that IKS, being mostly in a requirements definition phase, didn’t have much to show to those people, but today’s brainstorming went very well, and the results exceed my expectations.

The most important result for me is agreeing to setup a prototype semantically enhanced search engine, that will use metadata and RDFa embedded in web pages to index content. This will provide the IKS community with a testbed for semantically enhanced websites, and allow us to demonstrate the usefulness of embedded semantic information by making full use of that for searching instead of just enhancing the display of search results. The extracted data might also be very useful for our academic partners to run experiments on real-life data that we’re familiar with. We might not have to write lots of code to setup such a search engine, but it’s important to have our own thing that people can also run behind firewalls, if needed to run experiments on private data.

The second result that I’m excited about is agreeing to work together on a prototype of a semantic rich text content editor, where you’ll get functions like insert person or insert company besides the usual insert link and insert image functions. This will allow us to start making our customers more aware of the importance of semantic markup, in a way that’s not too different from what they’re doing now.

Last but not least in my list of results-that-got-me-excited-about-all-this is agreeing on the creation of a list of simple user stories that demonstrate what IKS is about, in a very simple and understandable way, while allowing us to define use cases and features that might be challenging to implement today.

More complete information about the meeting should be available from the IKS project blog in the next few days, make sure to subscribe to that. For now Bergie (who suggested the semantic editor project) has been taking notes on Quaiku if you’re eager to learn more.

To take part in (or just follow) these projects, subscribe to the IKS mailing list which is going to be our communicatios hub.

Hope to see you there – in a week from now, as next week is my cycling-in-France/offline holiday. Looking forward to getting more familiar with the 29er before the next, more off-road trip in a few weeks.

CMIS could be the MIDI interface of content management…

April 28, 2009

MIDI – the Musical Instrument Digital Interface – was created back in 1982 by a consortium of musical equipment manufacturers including, if I remember correctly, Roland, Yamaha, Sequential Circuits, Korg, Oberheim (I’ve got a Matrix 6 to sell BTW ;-), maybe Ensoniq (did they exist already?) and others. Companies that were fiercely competing in the market, individualistic industry leaders who agreed to get together to create a bigger market for their instruments and equipment.

My diploma work as an electronics engineer was about MIDI, in 1983 – I created a MIDI output interface that could be retrofitted into accordions. The spec was not final at the time (or at least I could get a final version – that was before the web of course), all I had in terms of specs were a few magazine articles, a Yamaha DX7 and one of the first Korg synths to have MIDI. Both synths had slightly different implementations, and some compatibility problems, as can be expected from an early and not yet widespread spec.

What’s happening with CMIS today sounds quite similar: competing vendors finally agreeing on an interoperability spec, even if it’s limited to a lowest common denominator. If this works as with MIDI, we’re in for some exciting times – the few years after 1982 saw a boom in MIDI-related electronic instruments and systems, as suddenly all kinds of equipment from different companies could talk together.

MIDI had serious shortcomings: a slow transmission rate, serial transmission meaning each note in a thick chord is delayed by nearly one millisecond, and somewhat limited data ranges for some real-time controllers. But the basic idea was great, let’s get something done that allows our instruments to talk together in a usable fashion, even if it’s not perfect. MIDI has survived until today, 27 years later, which is quite amazing for such a standard. It’s been tweaked and workarounds (including hardware extensions) have been used to adapt it to evolving needs, and often travels via USB or other fast channels today, but it’s still here, and the impact on the music equipment industry is still visible.

I must admit that I was quite disappointed with the CMIS spec when I first looked at it, especially due to the so-called REST bindings which aren’t too RESTful. And CMIS seems to consider a “document” as the unit of content, whereas JCR converts like myself prefer to work at a more atomic level. And don’t tell me that hierachies are a bad thing in managing content – you might want to ignore them in some cases, but micro-trees are a great way of organizing atoms of content.

Nevertheless, seeing the enthusiasm around the soon-to-be-incubating Apache Chemistry project (that link should work in a few days, how’s that for buzz building?) made me think about MIDI, and how amazing it was at the time that “commercial enemies” could get together to do something that finally benefitted the whole industry.

I still don’t understand why WebDAV can’t do the job if this is about documents, and still prefer JCR for actual work with content (considering that everything is content), but I’m starting to think that CMIS might make a big difference. It will need a test suite for that of course- software engineers know that interoperability without test suites can’t work – and this week’s CMIS plugfest is a good step in this direction. I’ll be around on Thursday, looking forward to it!

Oracle buys MySQL (as part of Sun) – a great time to have another look at content repositories!

April 20, 2009

Lots of noise (and some gems) about the acquisition of Sun by Oracle on Twitter today. But contrary to Oracle’s content servers, Twitter seems to be holding up quite well.

I half-jokingly added my own noise saying that now’s a good time for people worried about MySQL’s future to switch to JCR, and Bergie agrees!

Rereading this post, what follows sounds a bit like marketingspeak, but it’s not – just enthusiasm!

We’ve been discussing the similarities between Midgard and JCR earlier this year with him and also with Jukka, and it’s amazing to see how close the models of Midgard and JCR are. With their TYPO3CR, Typo3 also agree that the JCR model is extremely well suited for content storage and manipulation. Midgard2 doesn’t use the JCR APIs, but as mentioned above the concepts are very similar.

Having made the move myself from wire-some-object-relational-stuff-on-top-of-sql-and-suffer-forever to JCR as an API that’s designed from the ground up to work with granular content, including observation, unstructured nodes and many other nice features, I’m not going back!

If you’re working with content (and yes, everything is content anyway), and started wondering about the future of MySQL today, now might be a good time to take another look at JCR. Apache Jackrabbit has been making huge progress in the last two years with respect to performance and reliability, and Apache Sling makes it much easier than before to get started with JCR, mostly due to its HTTP/JSON storage and query interface which takes the J out of JCR.

Never had so many (meaningful) replies and retweets on Twitter before today – but I started by wondering why CMIS wants to reinvent WebDAV, so no wonder. We’ll save that one for another time I guess.

Open Source Collaboration Tools are Good for You – relooked and live tomorrow!

April 1, 2009

I have relooked and slightly expanded this presentation for tomorrow at OpenExpo in Bern – the main addition is a discussion of the fear of making mistakes in public.

Talking to attendees last week at ApacheCon shows that people often struggle to introduce these tools and the open way of working in their companies. It seems like that fear can be an important blocking factor, and people are rarely explicitely aware of it.

(See how serious I am? This is April 1st and I’m not even making lame jokes!)

Update: the video is available on YouTube as part of the OpenExpo channel.

Tales from the OSGi trenches

March 25, 2009

My Tales from the OSGi trenches presentation today at ApacheCon went well, timing was surprisingly good given that I gave this talk for the first time.

People can certainly relate to the issues that we’ve been facing with OSGi, and the realization is that the large majority of them can be linked to lack of developer education and lack of documentation and examples.

Things will get better, but my conclusions page already has a lot more smileys than monsters!

Ready for ApacheCon Europe 2009

March 21, 2009

I’ll be giving three talks next week at ApacheCon, on OSGi, Apache Sling and Open Source collaboration tools.

Ruwan Linton‘s OSGi talk, which is scheduled after mine on Wednesday, also presents practical experiences with OSGi. I’m looking forward to comparing our experiences, and people should probably attend both talks to get the whole picture.

I’m also very much looking forward to meeting new people and old friends there, including the Jackrabbit/Sling folks at Tuesday’s JCR/Jackrabbit/Sling meetup.

Before that I’ll be in Rome for a meeting of the IKS project, talking about requirements and use cases for semantically enhanced CMSes. Looks like a packed but very interesting week ahead – lots of context switches though ;-)

Update: forgot to mention Carsten Ziegeler’s Embrace OSGi – A Developer’s Quickstart presentation, which comes right before mine – attending that one will also help put mine in context, as I won’t cover the basics of OSGi.