Paul Boddie's Free Software-related blog


Archive for the ‘English’ Category

The FSFE Fellowship Events Calendar and GriCal

Monday, October 24th, 2011

Some time ago, I got involved with the FSFE Fellowship Wiki and implemented the theme code for MoinMoin that blends the Wiki together with the visual styling for the different Fellowship Web sites, along with an event calendar that shows what different Fellowship groups and individuals are doing – an activity which led to the release of the EventAggregator extension for MoinMoin.

Back then, a simple solution which let people add events by adding event pages to the Wiki, perhaps using the new event form, was sufficient and it seems that people did manage to publish their events after all. Having a solution already integrated with the Wiki was arguably preferable to installing yet more software and then thinking about theming and integration all over again, and nothing from the range of existing solutions – at least those known to the Wiki team – appeared to be particularly compelling. So, a bit of Wiki extension work got the job more or less done.

The new event form

The form used to add new events to the Wiki

But now, some interesting work has become visible in the form of GriCal: a Free Software events service that not only carries details of numerous events related to Free Software, but is also a genuinely free solution whose code can be downloaded and deployed for those sufficiently motivated to do so. Some people prefer to publish events on GriCal and would rather see them appear automatically in the Fellowship events calendar. So why not aggregate events not only from the content on the Wiki but also from other sites?

EventAggregator has virtually always supported the iCalendar format as a way of downloading calendars, so that it is possible to view the Fellowship events calendar using your own calendar or organiser client, but could it not also support iCalendar as an input format? From the beginning, EventAggregator has used the fundamental information reminiscent of iCalendar to define events, albeit without all the BEGIN:VEVENT and DTSTART syntax, so surely a few adjustments were all that were necessary. Well, it did require a bit more work than that, necessitating some refactoring and the revisiting of assumptions that tends to happen when software evolves to do a bit more than it was originally intended to do, but now the distinction between events from remote sources and local pages is more and more blurred: the calendar doesn’t care where the events come from, although some caching within MoinMoin does attempt to stop those sites acting as event sources from being worried about having their events downloaded a bit too often.

So what does this mean for Wiki users? Well, defining calendars and creating events is still as straightforward as it used to be, especially if you use the “New event” link either below each calendar or in the menu when hovering over a day number in the calendar view. But if you know of some useful sources of high quality event information, you can also add an event source to the Wiki’s register of sources and then use those sources when showing your calendar.

The day view

The day view showing the timing of events within a particular day

Apart from all this new support for iCalendar aggregation, EventAggregator has also gained support for some other nice features over the past year or so. You can now view days individually and see the time information for events, and this can be useful when looking at things like conference schedules where lots of individually scheduled events are occurring within a short time-frame. You can also view events in any suitably prepared map, with events shown on a European map being perhaps the most obvious application for this feature in the Fellowship Wiki. Although the default map is not as fancy as something like OpenStreetMap or its proprietary competitors, the simple layering of active regions over a bitmap could be useful for customised maps, perhaps even things like building plans or anything that takes liberties with the concepts of latitude and longitude!

The map view

The map view using a map of Europe for Fellowship events

So I hope I’ve inspired you to at least take a look at the Fellowship events calendar. Remember that the Wiki is a collaborative resource: it doesn’t improve all by itself with only its increasing age to help it along. But with a bit of interest and even the most modest contributions, it has the potential to become a powerful tool and a medium to create greater and better things.

Finally, I’d like to thank Wolfgang for encouraging me to look into integrating EventAggregator with GriCal, opening up lots of new possibilities, and Ivan for telling me about GriCal and working hard to make the service work well with those of us who want to use its iCalendar output. I’d like to think that through such mutual encouragement and help, Free Software projects, products and services can only get better and better. The experience has certainly been a satisfying one for me, and I hope that Wiki users can now share in some of the benefits of this rewarding work.

EuroPython 2010: Talks Selected and Announced!

Thursday, May 27th, 2010

I wrote earlier about EuroPython 2010, the Python community conference taking place in Birmingham, United Kingdom in July this year. Well, the list of talks has finally been made available. In addition, there’s a tentative schedule that will probably be adjusted over the time before the conference as people request different slots, change their travel plans, and generally try and avoid leaving for the airport right after taking questions.

What’s new about EuroPython this year is that there are four days of talks, not three, across four (and a bit) simultaneous tracks. Although Python conferences have tried as many, if not more, tracks on various occasions, rarely have they attempted to exceed three days. Certainly, the PyCon UK organisers behind this year’s conference are nothing if not ambitious!

Outside the Conservatoire, Birmingham

Outside the Conservatoire, Birmingham

This year, I aim to give a talk about Python, Wiki solutions, MoinMoin and other collaborative tools, based somewhat on what I have learned from working on the FSFE Fellowship Wiki and on other community Web sites. It won’t be possible to cover absolutely everything about planning, implementing and maintaining these kinds of sites, especially with the broad range of Free Software applications and tools that can be brought into action, but I hope to cover some essential topics in the allocated time, and there will naturally be some resources made available that people can study afterwards.

Once again, why not take a trip to Birmingham and take advantage of four whole days of Python-related talks and events? Should that not be enough, there are another two whole days of tutorials (albeit at a modest extra cost) featuring everything from Web framework development, testing, game programming (featuring PyWeek‘s very own Richard Jones!) and even the somewhat peripheral topic of Arduino-based hardware hacking. And after the main conference programme, the usual sprinting begins (included in the main conference fee).

Suddenly, even the full-price fee starts to look like very reasonable value for money indeed. Register here!

EuroPython 2010: Registrations, Submissions, Organisation

Friday, March 5th, 2010

Every year, I seem to get involved with the organisation of the EuroPython conference, and this year doesn’t seem to be an exception. Like last year’s conference, EuroPython 2010 will take place in Birmingham, United Kingdom, and seeks to gather a respectable number of European Python users and developers under one roof by offering stimulating and engaging talks on the use of Python in various fields, the development of Python technologies (including the steadily increasing number of implementations), and other matters of a broader technological and cultural nature. As well as the talks, there will again be a number of tutorials, and after the main conference days (19th-22nd July) the sprinting begins: as most conference-going Free Software developers know, this is where people use the opportunity to collaborate with others to get some serious programming done on their favourite projects.

Birmingham's mercantile architecture

Birmingham's mercantile architecture

For some of us, it can often be quite hard to think a few months ahead and to consider signing up for a conference, not to mention the idea of submitting a talk proposal and then putting something together to present to a large number of other people, and especially this latter notion can seem overwhelming: when high-profile and/or successful projects are likely to appear in the schedule – after all, Python is almost everywhere now – one might question whether anyone would be interested in my software or my experiences with Python when there are supposedly so many important people presenting their important stuff. Well, in my experience at least, some of the most interesting talks and some of the most interesting discussion topics outside the talks frequently occur around people who aren’t minor community celebrities and whose issues aren’t announced with a fanfare. Discovering these hidden depths of Python usage is frequently what make conferences really worth attending. For an idea of the breadth of talks at EuroPython, take a look at those given at EuroPython 2008 and 2009: they aren’t all about big name projects or crucial decisions taken by Python’s core development team.

Geoffrey French presenting gSculpt

Geoffrey French presenting gSculpt: an interesting application that would probably go unnoticed by many

I wrote an article about organising EuroPython in 2008 for The Python Papers Vol 4 No 1 (2009), and if you don’t mind downloading a PDF, you can obtain it directly from the journal in question. In this article, I mention a number of talks that probably wouldn’t get the kind of promotion that one sees in the “blogosphere”, yet the topics (game development, code analysis, compilation, using “cloud computing” resources to solve real problems) are definitely things that would have many people returning home after the conference and taking a closer look at what the presenters have been doing. And frequently, the keynote speakers provide perspectives beyond those of software development and even inspiration for developers looking to solve problems which may be new to them, but which are very real to others: this truly makes a form of technology transfer possible in a way that those of us who support Free Software should approve, not based on parcelling out products but based on the transfer of expertise to where it’s most needed.

So if you’re interested in Python, as a beginner, a regular user, or as an expert, and you’re looking for a conference where there will be plenty of things to see, learn and do, and you’re also looking for a community-style experience instead of the more corporate-style conference events, and you would prefer a slant towards Free Software – and I think it isn’t unreasonable to claim that EuroPython encourages and emphasises Free (and open source) Software – then why not consider coming along to EuroPython 2010 this summer? And if you’re looking to make connections within the community, which is what many regard as the primary benefit of community conferences like EuroPython, why not join the organisers in putting the event together? That way, you’ll not only make connections with some fairly well-connected people, but you’ll also help shape the event into something that benefits you even more!

The Python implementations panel

The Python implementations panel at EuroPython 2009

Helping to organise a conference can be hard work, but the end result can pay back this effort with interest. With this being my fifth year of being in some way involved with the running of EuroPython itself, I feel somewhat qualified to make this claim. Why not start your own investment with EuroPython 2010, or perhaps start one with your own favourite technology’s community conference? You might make connections and influence people, too.

Hacking the Fellowship Wiki

Saturday, November 21st, 2009

(That’s hacking in the good sense of the word, of course.)

A while ago, Matthias Kirschner encouraged me to blog a bit about the FSFE Fellowship Wiki and some of the enhancements that have been introduced by the small group of volunteers and administrators, so in this post I’ll explain what I’ve been doing with the Wiki since I volunteered to help out a while back.

First of all, the Wiki needed to use the same visual style as all the other new FSFE pages. Since the Wiki is run by MoinMoin, and since I have some experience with making themes for MoinMoin, this was an opportunity to help out. Thus, my place as a volunteer was established: there didn’t seem to be anyone else amongst the existing volunteers familiar enough with Moin’s theming framework to do the job in a hurry.

Fortunately, the hard part of doing the visual styling had already been done, and all I really needed to do was to write a theme module which generates HTML that then uses the various CSS classes and rules already provided by the visual designers. In this way, the visual elements are plugged into Moin’s content generation system such that when a page is formatted, the right kind of HTML is generated, appropriately styled, that can then make the browser put the visual elements in all the right places.

Once the theme was done, other enhancements became desirable or essential. One aspect of the visual design was the presence of a green title bar at the top of the content area of each page – you can see this on all the FSFE sub-sites (home, blogs, planet) – and this didn’t fit in with the way Moin generates its pages. Ideally, one would dedicate all of the content area to Moin, and to allow the page author to put whichever title they like in such a prominent position, perhaps the first heading on the page. Ultimately, a compromise was reached (after numerous experiments): page authors would omit any initial heading, instead relying on the page name itself to appear in the title bar (which is what solutions like MediaWiki do), and the theme would make a “pretty” version of the page name for this uppermost title.

Another enhancement, given that FSFE is a European organisation where many languages may be in common use, was to support multiple languages and to allow users to find translations of pages. Although Moin already supports many languages, there isn’t a built-in feature to help users find the translation of the current page in their own language, preferably by providing a link to such a translation in a prominent place. Thus, it was decided that the theme would incorporate such a function, and the result is a sidebar menu which lists languages for which a page has been translated. More information on how this works can be found in the Wiki user guide, and the advocacy FAQ page should show this function in action.

One project that didn’t start as a Wiki project was the Fellowship calendar. It did appear that some Moin-based solutions were somewhat relevant, such as MonthCalendar and EventCalendar. Having written a Moin extension called CategoryMenu, dynamically building and showing navigation menus which present the Wiki’s categories, together with expanded lists of pages for those categories to which the current page belongs, and considering the likelihood that calendar events would most likely be written on a separate page in order to fully document the event, show likely participants, schedules, and so on (see the FSCONS page for an example), I thought it would be interesting to write a macro that would gather all event pages (belonging to a designated category) and to present them upon request in a calendar view.

The result of this effort is the EventAggregator extension, which started out just showing a simple list of events in each month, but then evolved to support a calendar view (which is arguably a necessity and was always planned), RSS and iCalendar feeds, and a number of conveniences to encourage people to add events, such as a “new event” form which can be prefilled with information, making the task of editing an event page less intimidating. I imagine that more enhancements will be made to this extension, possibly to make it more useful for applications beyond the Fellowship Wiki, but it has been an interesting exercise in learning more about Moin’s features, benefits and shortcomings. The result can be seen on the Wiki in the Fellowship Events page, although calendar views can be added to any page using the macro.

The work doesn’t end here, of course. There are always plenty of things that could be better, but here are some of the simpler ones for anyone wanting to help out but not to take on something that might be too demanding:

  • Language translations for MoinMoin: the FSFE theme uses texts which do not have built-in translations provided by Moin, but it’s easy to add these texts for your own languages; see the English dictionary for all that’s required to make the Wiki friendlier to native speakers of your own languages.
  • Templates for editing: templates for common types of pages, such as local Fellowship group pages, are required; such templates reduce the amount of boilerplate that authors have to reproduce and make editing easier, just as has been done for event pages with the Fellowship events template.
  • Just using the Wiki makes it better! By adding content, there’s more of a reason to visit the Wiki, and by remembering to add events to the Fellowship Events calendar or by adding the right metadata to make events show up in the calendar, or by making more specific calendars (perhaps for your own local group), it becomes more interesting to use such resources.

Beyond the Wiki, there are many projects that can be tackled by anyone enthusiastic enough. It has been a rewarding experience to do all this work, and it has been a pleasure to work with the other volunteers. If you want to make the Fellowship infrastructure better, I can certainly recommend volunteering!