Account of the “Unpacking Fedora 3.0″ Workshop
07 February 2008
London, University of London, Birkbeck College
I was invited to give a public “Unpacking Fedora 3.0″ workshop at University of London this week. The workshop was hosted by the Bloomsbury College Consortium at U of London and by the Common Repository Interfaces Working Group (CRIG). Over the past two years, I have given a number of “Intro to Fedora” trainings. In contrast with those workshops, I saw this as an opportunity to skip the basics and delve into the more “advanced” topics in using Fedora. However, as the list of attendees began to grow, we quickly realized that we wouldn’t be able to entirely skip the basics. Instead I covered a broad spread of topics from initial deployment to pulling apart components of the new Content Model Architecture (CMA).
The workshop was really enjoyable. I think everyone went home with a hearty amount of new information to run with, as well as some new ideas.
By the time the day of the workshop arrived, so many people had registered that we couldn’t fit in our reserved classroom. Instead, we were moved to the Birkbeck Bar, a little pub within the Birkbeck College. It fits with CRIG’s Barcamp-inspired style that we set up a projector in the bar and pulled up an assortment of tables, chairs and bar stools. The day started somewhat formal, with powerpoints and a lecture. By lunch, people were circulating around to each others’ laptops and helping each other try things out. By the end of the day, when the regular bar clientele started to show up, our laptops went into our bags and all of the new information we had discussed dissolved into a cacophony of excited discussions about people’s new ideas, their current work, and their observations about Fedora 3.0.
Initially, we set out to cover three topics at the workshop. We wanted to start by showing people how to launch an Amazon EC2 instance with Fedora 3.0 pre-installed. After that, we were to play with Fedora’s new RESTful API, which MediaShelf created in 2007 [in collaboration with Digital Innovation South Aftrica]. Finally, the second half of the day was dedicated to the new Content Model Architecture.
In the final days before the workshop, I realized that there was no way to cover all of this information without first spending some time discussing the fundamental principles and concepts that are at play in Fedora. Essentially, I view Fedora as a conceptual framework and an architecture. The actual software that we deploy on our servers is just an implementation of that architecture, and it’s a work in progress. In light of this, I opened the day by giving an overview of the Fedora vision as I understand it.
It turned out that nobody was interested in tinkering with Amazon EC2 that morning, but about half of the attendees had arrived without the necessary version of Fedora installed on their laptops. It’s a testament to Fedora’s flexibility and relative maturity that it took only 45 minutes for an entire room full of people, some with no real system administration experience, to perform custom installs of Fedora 3.0 beta on three different operating systems (Windows, Mac OSX and Ubuntu Linux).
Presenting the REST API was a really rewarding experience for me. I have been convinced of the API’s importance from the first moment I conceived of it, but I was never fully sure how helpful it was until this workshop. There was a palpable moment while I was explaining the API where the idea seemed to click; suddenly people were thinking “Hey, this makes sense! Is Fedora really that easy?” When I finished explaining the basic concepts and showing a few examples, everyone downloaded a text file containing a list of sample curl commands that you can use to explore the REST API. Our pizza lunch arrived and the subsequent hour and a half turned into a free-for-all. Between the food and the gratification of interacting with Fedora in such a tactile way, everyone was in good spirits by the time we settled down to spend the afternoon chatting about the CMA.
Fedora’s Content Model Architecture (CMA) is a notion people have been tossing around for a while now, and Fedora 3.0 will contain the first public implementation of it. I’ve been watching the conversation around the CMA since it was initially proposed under the name CMDA (Content Model Dissemination Architecture) in March, 2006. Since then, I’ve followed the conversations about the CMA amongst Fedora Commons developers, and even chimed in a few times.
When I sat down to prepare this week’s presentation on the CMA, I started by reading the page about the CMA in Fedora 3.0 Beta’s Documentation. Much to my excitement, I found a visionary overview of the current state of this technology, its intentions, its implementation, and the open, community-driven process by which it is being developed. Much of the brilliance in that document is quiet and understated, or implicitly refers to the really gutsy topics. Despite their understatedness, I’m pretty sure that the Fedora Commons team have done a solid job of laying down the groundwork for the next five years of innovation in Digital Asset Management.
Over anything else, the Fedora 3.0b1 documentation sends a clear invitation to participate. Fedora Commons is actively inviting the user community and developer community to engage in the process of designing and testing this innovative new architecture. This message is stated clearly at the opening of the document:
“Please install the software and give us feedback. Be a contributor to Fedora Commons. You do not need to write any software. It is just as important to share your requirements, thoughts, observations, and, particularly, any defects you can identify in this software.”
This made the workshop really easy to plan. I spent about 45 minutes sharing my understanding of the CMA, how it works, what it’s trying to achieve and why. Then we spent the rest of the afternoon getting our hands dirty. We created the objects from Example 3 in Fedora’s Tutorial 2 and then pulled them apart. By the time we finished that, the room was roiling with ideas and questions. We wrote the major topics on the wall, broke up into smaller groups and plowed through them. Some people went through the Tutorial more thoroughly. Others tried tweaking the sample bMech object to use one of its own datastreams as an XSL transform. Another group unpacked the problem of translating file hierarchies into Fedora objects, wondering what implications it carries for content modeling.
Based on the experiences of the breakout groups, we collected some really solid ideas and feedback. I’ll post that information to the fedora-developers mailing list soon.
By the end of the day, Ben O’Steen had written a wrapper in python for the entire REST API. I couldn’t have asked for a clearer confirmation that the work we did to create that API was worth it.
As we approached 6 pm, the people who had come over from the continent for the day began to depart and the workshop dissolved into an assortment of jovial conversations. It was a great conclusion to a very informative day, and the perfect predecessor to the next day’s Barcamp-style CRIG gathering (watch for my separate post on that meeting).
March 12th, 2008 at 10:18 am
Hi Matt,
Thanks again for that great workshop
The CMA and REST parts were enlightening !
Last week we had Thorny come over here and learned a lot about CMA again… he especially helped us find the right atomicity we need
Remember how I was recording the whole day on my camcorder ? I am now in the process of uploading the rushes on YouTube, if you don’t mind. Ayesha will also use them as part of a vidcast about the event.
Cheers,
Nicolas.