2013-10-14

.NET + GNOME Hackfest 2013 roundup

I'm now back home from Vienna after the .NET + GNOME Hackfest 2013. It was an intense week, full of hard work, and lots of fun.

Our day usually started around breakfast at the hotel, and then, our little group would head to the hackfest room in the Institute for Theoretical Chemistry at Vienna University. As it was conveniently situated just across the street from the hotel, everybody was in front of their laptop in a few minutes, hacking away. For lunch, we'd wolf down some sandwiches, and go back to work for the afternoon, fueled by coffee, sodas and Club-Mate. We'd go to a local restaurant for dinner, and then come back to the hackfest room for the third part of the day. Around midnight, Stefan, our host, would have to kick us out so that he could close up the venue and catch the last train to his apartment.

I'm not going to list everything that was accomplished during those 6 days, because this would turn this post into a novel. I will just refer you to the detailed posts written by David Nielsen, our friendly organizer, and mention a few highlights:

  • Day 1: first development release of Banshee using GTK#3, initial port of SparkleShare to GTK#3 with some features disabled.
  • Day 2: initial port of Pinta, functional WebKitGtk and GStreamer 1.0 C# bindings, along with the creation of a tool to help port from Stetic to GtkBuilder
  • Day 3: new GTK#3 application template for MonoDevelop, SparkleShare fully working on GNOME 3.
  • Day 4: significant progress in porting F-Spot to GTK#3, Mono.Addins for GTK#3 available, and design work for Tomboy.
  • Day 5 : Banshee plays music using GStreamer# 1.0, lots of progress on Tomboy for OSX and on Rainy (sync server for Tomboy), various improvements to the GTK#3 bindings.
  • Day 6: Tomboy completely ported to GNOME 3 technology, new beta release of Tomboy for Android.

The report for the last day is not available yet, as David is on his way home.

While porting these various applications to GTK+ 3.x, we have tried to keep notes of the various lessons learned on a wiki page, but we've probably forgotten some in the heat of the moment. Everybody porting a C# application to GNOME 3 technology is encouraged to update this page and share their experience.

A big thanks to our sponsors that made this very productive hackfest possible:

Collabora Ltd, Open Source Consulting
Norkart AS, Norway's premier supplier of Geographic Information Systems and related consulting
Hotel Schottenpoint, our hotel partner
Novacoast IT, Professional Services and Product Development
The GNOME Foundation, providers of the GNOME desktop
The University of Vienna and the Institute for Theoretical Chemistry, our venue sponsors

2013-10-08

Two to Three waltzing in Vienna

Two weeks ago, we released Gtk# 2.99.1, the second beta release of C# bindings for GTK+ 3.x. The first beta release was almost a year ago, so there's quite a lot of new features, enhancements, and bug fixes. There's also a significant amount of API changes since 2.99.0, with two types of motivations:

  • Provide better typing, in particular for lists. For example, the Group property in Gtk.RadioButton is now a RadioButton[] array, instead of a non-descript GLib.List.
  • Get closer to .NET idioms and conventions, like adding an I* to all interfaces.

You can read more about all these improvements in the release notes.

A big motivation to get that release out the door was the .NET + GNOME Hackfest, which we kicked off today in Vienna. Of the dozen of hackers present, a lot of them are working on porting C# apps to GTK+ 3.x: SparkleShare, Tomboy, Pinta, Smuxi, etc.

Of course, we couldn't let them get ahead of Banshee, so Andrés and me took the opportunity to release today Banshee 2.9.0. It is the first release using GTK+ 3.x, and depends on Gtk# 2.99.1. As such, it is a development release, and it has a few known issues, in particular some visual glitches. But it has come a long way since we started the porting effort, and I'm looking forward to the benefits we will get from using a more modern toolkit.

I'm happy to be able to attend this hackfest, so I'm grateful to our sponsors that made this possible:

Collabora Ltd, Open Source Consulting

Norkart AS, Norway's premier supplier of Geographic Information Systems and related consulting

Hotel Schottenpoint, our hotel partner

Novacoast IT, Professional Services and Product Development

The GNOME Foundation, providers of the GNOME desktop

The University of Vienna and the Institute for Theoretical Chemistry, our venue sponsors