Skip to content

Houston Connexions

I spent the first half of this week in Houston, Texas for the Connexions Consortium Meeting and Conference. What follows are my personal reflections.


Connexions (http://cnx.org) is an online repository of learning materials — open educational resources (OER). Unlike many other OER repositories, Connexions has a few characteristics that work together to expand it’s reach and utility.

While it was founded by (and continues to be supported by) Rice University, the content in Connexions is larger in scope than a single university, and isn’t tied to a particular course the way, say, MIT OCW is. Attendees of the conference came from as far away as the Netherlands and Vietnam.

In addition to acting as a repository, Connexions is an authoring platform: content is organized into modules, which can then be re-arranged, re-purposed, and re-assembled into larger collections and works. This enables people to take content from many sources and assemble it into a single work that suits their particular needs; that derivative is also available for further remixing. At the authors’ panel at the conference, we heard about how some authors have used this to update or customize a work for the class they were teaching. [UPDATE 5 Feb 2010: See the Creative Commons blog for information on this, and thoughts from the author "Dr. Chuck" (Charles Severance), who was on the authors panel. ]

Finally, Connexions is an exemplar when it comes to licensing: if you want your material to be part of Connexions, the license is CC Attribution 3.0. While OER is enabled by CC licenses generally, this choice provides a lot of leverage to users. The remixing, re-organizing, and re-purposing enabled by the authoring platform is far simpler with no license compatibility to worry about. Certainly you can imagine a platform that handled some of the compatibility questions for you — and the idea of developing such a system based on linked data is intriguing to me personally — but the use of a single, extremely liberal license means that when it comes to being combined and re-purposed, all authors are equal, all content is equal.

This year was the second Connexions Conference, and from my perspective there were two themes: the consortium, and Rhaptos. The consortium is actually why I was in Houston. The Connexions Consortium is an, uh, consortium of organizations with a vested interest in Connexions: universities and colleges that are using it and companies that are using the content. And Creative Commons, who I was representing at the meeting. I’ve also been elected to the Technology Committee, a group of people representing consortium members who will provide guidance on technical issues to Connexions. During our meeting on Monday afternoon there was discussion of a variety of areas. One that we didn’t get to, but which is interesting to me, is how content in Rhaptos repositories can be made more discoverable, and how we can enable federated or aggregated search.

Rhaptos was the other prominent theme at the conference. Rhaptos is the code that runs Connexions: cnx.org without the specific look and feel/branding. While the source code behind Connexions has always been available, in the past year they’ve invested time and resources to making it easy (or at least straight-forward) to deploy. Interestingly (to me) Rhaptos is a Plone (Zope 2) application, and the deployment process makes liberal use of buildout. It’s not clear to me exactly what the market is for Rhaptos. It’s definitely one of those “unsung” projects right now, with lots of potential, and one really high profile user. I think it’ll be interesting to see how the Consortium and Rhaptos interact: right now all of the members are either using the flagship site to author content, or the content from the site to augment their commercial offerings. One signifier of Rhaptos adoption would be consortium members who are primarily users of the software, and interested in supporting its development.

Overall it was a great trip; I got to hear about interesting projects and see a lot of people I don’t get to see that often. I’m looking forward to seeing how both the consortium and Rhaptos develop over the next year.


If needed, and the evidence to date is that the staff is more than competent. I expect we’ll act more as a sounding board, at least initially.

This is an area that’s aligned with work we’re doing at CC right now, so it’s something I’ll be paying attention to.

Categories: cc.

Tags: , , , ,

Most Popular Erroneous Post

There are a few posts on my site that get the lion’s share of traffic. One of those is a one-off project I did to convert Maildir to Mbox. Today someone left a comment, saying that it didn’t work. And then I realized that somewhere along the line sys.argv[-1] had been converted to sys.argv[1]. Not really the same thing.

I’ve update the page, but it’s a little embarrassing to only realize 18 months (or more) after originally posting it that you’ve been giving out bum advice.

Eventually, I’ll be right.

Categories: aside.

Tags: ,

Ugly, Pretty, Special

Another example of the power of young adult fiction.

I visited my family in Indiana over Thanksgiving. On my flight back from Chicago, I was upgraded to first class, seated next to a girl who appeared to be about twelve or thirteen, traveling as an unattended minor. As I sat down she was scribbling furiously in a notebook. She looked up and I smiled. “Hi, there.”

“What’s pithy mean?” she responded, pencil poised to record my answer. My mind went nearly blank; this was not the question I was expecting to answer in the middle of a day of traveling.

“Uh, a short, compact phrase; witty?”

I must have telegraphed more confidence in my answer than I felt: “Thanks,” she said curtly, and went back to her notebook. I pulled out the Specials, by David Westerfeld; Dan and Monya had given my Uglies and Pretties for my birthday just before I left, and after tearing through them, I’d picked up Specials for the trip back. My traveling companion looked up and saw the cover, suddenly becoming animated.

“Oh my god. You’re reading Specials. That’s so awesome.”

“Yeah, I know, it sort of is,” I replied, reverting to a tone more appropriate for gum snapping and borrowing the car than for grown men. “Yeah, like, I read Uglies, and Pretties, and now I’m on Specials; Uglies was great, and Pretties was OK — a bit of a slow down– but Specials is great so far.” Capsule review.

“Totally. I totally agree. Oh my god. So cool.” I seemed to have made a friend, making up for any issues with my vocabulary performance earlier. “Do you have any other authors you recommend?” she asked.

I suggested Octavia Butler, thinking to myself, “kid, this shit is going to blow your mind.” She dutifully wrote it down, checking the spelling as she went.

“I’m writing a story,” she offered. “Sort of science fiction; I mean, it’s set in the future. Well, time has passed from the present; I need the reader to understand that to get the plot.” I continued to nod in solemn agreement and she looked down at her notebook, fingering the pages a moment before snapping her attention back to me.

“Are you a good reader?” How does a thirty-three year old man answer such a question?

“Uh, yeah, I think I’m OK; I like to read,” I answered.

“You know how you can tell a good reader?” She didn’t wait for my reply. “They write down the recommendations from other good readers.” She proceeded to give me some recommendations, which I made sure to write down, not wanting to sully my good reader image.

I finished Specials on the flight home, and it was a fun read. But on my traveling companion’s recommendation, I’ll be checking out the final book in the series, Extras, from the library — “it’s totally a let down.” So sayeth the good reader.

Categories: my life, reading.

Tags: , ,

Thoughts on Deploying and Maintaining SMW Applications

In September or October of last year, I received an email from someone who had come across CC Teamspace and was wondering if there was a demo site available they could use to evaluate it. I told them, “No, but I can probably throw one up for you.” A month later I had to email them and say, “Sorry, but I haven’t found the time to do this, and I don’t see that changing.” This is clearly not the message you want to send to possible adopters of your software — “Sorry, even I can’t install it quickly.” Now part of the issue was my own meta/perfectionism: I wanted to figure out a DVCS driven upgrade and maintenance mechanism at the same time. But even when I faced the fact that I didn’t really need to solve both problems at the same time, I quickly became frustrated by the installation process. The XML file I needed to import seemed to contain extraneous pages, and things seemed to have changed between MediaWiki and/or extension versions since the export was created. I kept staring at cryptic errors, struggling to figure out if I had all the dependencies installed. This is not just a documentation problem.

If we think about the application life cycle, there are a three stages a solution to this problem needs to address:

  1. Installation
  2. Customization
  3. Upgrade

If an extension is created using PHP, users can do all three (and make life considerably easier if they’re a little VCS savvy). But if we’re dealing with an “application” built using Semantic MediaWiki and other SMW Extensions, it’s possible that there’s no PHP at all. If the application lives purely in the wiki, we’re left with XML export/import as the deployment mechanism. With this we get a frustrating release process, Customization support, and a sub-par Installation experience.

The basic problem is that we currently have two deployment mechanisms: full-fledged PHP extensions, and XML dumps. If you’re not writing PHP, you’re stuck with XML export-import, and that’s just not good enough.

A bit of history: When Steren created the initial release of CC Teamspace, he did so by exporting the pages and hand tweaking the XML. This is not a straight-forward, deterministic process that we want to go through every time a bug fix release is needed.

For users of the application, once the import (Installation) is complete (assuming it goes better than my experience), Customization is fairly straight-forward: you edit the pages. When an Upgrade comes along, though, you’re in something of a fix: how do you re-import the pages, retaining the changes you may have made? Until MediaWiki is backed by a DVCS with great merge handling, this is a question we’ll have to answer.

We brainstormed about these issues at the same time we were thinking about Actions. Our initial thoughts were about making the release and installation process easier: how does a developer indicate these pages in my wiki make up my application, and here’s some metadata about it to make life easier.

Semantic Packaging

We brainstormed a solution with the following features:

  1. An Application namespace: just as Forms, Filters, and Templates have their own namespace, an Application namespace would be used to define groups of pages that work together.
  2. Individual Application Pages, each one defining an Application in terms of Components. In our early thinking, a Component could be a Form, a Template, a Filter, or a Category; in the latter case, only the SMW-related aspects of the Category would be included in the Application (ie, not any pages in the Category, on the assumption that they contain instance-specific data).
  3. Application Metadata, such as the version, creator, license, etc.

A nice side effect of using a wiki page to collect this information is that we now have a URL we can refer to for Installation. The idea was that a Special page (ie, Special:Install, or Special:Applications) would allow the user to enter the URL of an Application to install. Magical hand waving would happen, the extension dependencies would be checked, and the necessary pages would be installed.

While we didn’t get too far with fleshing out the Upgrade scenario, I think that a good first step would be to simply show the edit diff if the page has changed since it was Installed, and let the user sort it out. It’s not perfect, but it’d be a start.

I’m not sure if this is exactly the right approach to take for packaging these applications. It does effectively invent a new packaging format, which I’m somewhat wary of. At the same time, I like that it seems to utilize the same technologies in use for building these applications; there’s a certain symmetry that seems reassuring. Maybe there are other, obvious solutions I haven’t thought of. If that’s the case, I hope to find them before I clear enough time from the schedule to start hacking on this idea.


Address or work around, that is; there has to be a clear story for how the user accomplishes each.

It’s possible that in the six months since I last worked closely with this, things have changed considerably, but some brief searching didn’t turn anything up. I’d love to be corrected if I’ve missed something obvious.

I think one development model to be encouraged using SMW is that of the user-developer: a user who utilizes SMW to get the job done, and in the process creates something that they’d like to release to the larger world.

One obvious short-coming of our solution is with respect to versioning: what does it mean to version an application that primarily exists as a bunch of wiki pages?

Categories: cc, development.

Tags: , , ,

Ocean Beach Between the Storms

I spent an hour or so Saturday morning at Ocean Beach with my friend Scott, taking some pictures. Scott is a painter and was taking some reference shots. I was playing with the blackbird, fly Richard gave me for Christmas and taking some digital shots as well.

When we got there it had started to sprinkle again, giving us an amazing rainbow that appeared to land on the Cliff House.

Ocean Beach 1

We took a couple photos and went back to the car to wait it out. A few minutes later we had a reprieve from the rain, and we spent the next forty-five minutes walking down the beach.

Ocean Beach 2

The sun to our backs and the clouds over the ocean gave everything an ominous, foreboding appearance. Interestingly, this only made the waves and the water more appealing to me. I love watching waves crashing on rocks, rumbling to the shore; I have never seen the waves at Ocean Beach looking so powerful and so merciless.

Ocean Beach 7

Even with the crashing waves, though, the dogs were still running around and loving it.

Dogs In The Waves

By the time we were close to the Cliff House, it started to rain again. Scott and I hurried off the beach, walking quickly along the sidewalk towards the car. We were soaked when we got there, and the next storm had started.


See the full set of Ocean Beach photos on Flickr; those taken with the blackbird, fly will be uploaded when I get them processed.

Categories: my life, photo.

Tags: , , , ,