Web Frameworks

Ubuntu Wiki

I did a lot of editing and organizing the Ubuntu wiki section of the Artwork Team. I saw enough traces of people not understanding how to use the wiki, attaching images to random pages without telling anyone. Lots of struggling with the markup. Writing a step-by-step guide for how to add wallpapers and accompanying text made it even clearer to me that there is a significant hurdle that shouldn’t exist.

The strictly hierarchical structure is an issue, when what you would actually need would include things like: show me GTK+ Themes for 10.10. VS show me everything for 10.10. Faceted navigation, please.

If you have too many images on a page, you can get to know the surge protection (the wiki refuses to deliver the page and uses a timeout penalty).

Add the fun you can have with locking/warning and edit conflicts.

A fellow experienced contributor had no clue that you can bring back a deleted wiki page, if you just know its path. A deleted page looks just like one that does not exist, except that prior versions are accessible via the Info link.

The Ubuntu wiki is much better than having nothing comparable, but it’s not exactly user-friendly. There should be WYSIWYG editing. I’m well aware that it can get in your way, but people shouldn’t have to learn markup and shouldn’t have to deal with the edit-preview-save cycle. You should be able to drop images right into place, optionally appearing as thumbnails. With previews for SVGs.

Etherpad-like immediate editing, collaborative in real-time, would streamline editing and get rid of edit conflicts. Though branching and merging could be useful, too.

Manual Project

There’s this idea of putting the Ubuntu Manual online and making it editable. Edits would have to be approved. Translations should happen online, too. All based on Docbook or maybe a similar custom XML format. By far not the only project that could benefit from an online documentation editor/viewer. I think Etherpad-style editing could do wonders here, too. Doing translations is a very interesting user interface design challenge by itself.

Artwork team

Oh how I wish it was called the Design Team. Aside of what I mentioned already regarding the wiki, there are additional needs or wants for handling artwork and design assets:

  • Mandatory specification of a license and author(s)
  • Enforce a minimum size of uploads (for wallpapers), maybe even one of a list of fixed resolutions/aspect-ratios
  • Manage source files such as SVG and XCF
  • Link derivatives to originals
  • Versioning, perhaps by tying in Launchpad
  • Comments per version of a submission, ideally nested
  • Add notes or scribble on top of images to provide clear feedback

A Common Platform

The specific needs vary, but all 3 could sit on top of a platform that handles, accounts, concurrent editing and allows to structure pages in components.

One could think there has to be a CMS with concurrent editing. In absence of such a thing, what would be the best language and framework to implement it?


There are terribly many frameworks out there. I would rule out everything PHP based. As impressive as some projects build with it are, it looks more like a running gag than a programming language to me 😉

Django or Pylons/Turbogears look like a safe choice, generally. All Python.

Looking for frameworks that are designed with AJAX/Comet in mind, I came across Lift, very full-featured, written in Scala.

Nitrogen (Erlang) features an even-driven model, same syntax to build or update a page …

Weblocks (Common Lisp) and Seaside (Smalltalk, Pharo) are interesting for their use of continuations, among lots of other interesting properties.

Now if only there was a easy/quick way to determine if the features of one of those less well known languages and frameworks would lead to a net win …

What I’d be looking for is:

  • Very low noise-level, no or little boilerplate/glue code
  • secure by default
  • serialization turned into a non-issue
  • excellent support for AJAX/Comet
  • ideally existing, open implementation of concurrent editing
  • good documentation
  • Unicode support

About thorwil
I'm a designer from Germany. My main interests are visual and interaction design, free/open-source software and (electronic) music.

3 Responses to Web Frameworks

  1. Owais Lone says:

    I would go with Django. Django is amazing + has a lot of apps/plugins available.

  2. Ronnie says:

    About 6 months, i got exactly the same idea. I never started, because the project was too big, and my time too limited.

    For another project i’m working with Django and it’s really fun to program it. Django is such an ease, while almost everything (i could imagine/need) is possible.

    If you really want to start this project, and do it in Django, ill be willing to help. Please contact me then

  3. Keith says:

    I like django and web2py.

    web2py for me makes more sense than Django. It was easier to get an app up and running mainly because I didn’t have to hunt down all the “import django….” statements I needed for every page. Although I worry about using web2py on a long term project because it doesn’t have the userbase Django does and they don’t have near the documentation. So I worry a bit about it being there in another couple years.

    Anyways Django and web2py are both very nice and easy to use. For internal apps I like Django because of the admin, for public facing non-work stuff I like web2py because it’s easy and fun.