.NET + GNOME HACKFEST 2013: EVERYBODY JUMP ON THE APPLICATION PORTING OMNIBUS (DAY 2)

All the missing luggage from yesterday arrived at the hotel unharmed.

After that piece of good news Gerhard indicated via email that he would be unable to make it to the event.

Antonius's employeer has been unable to let him have time off for the event so he will be joining us on Saturday for the last two days of hacking.

Banshee

The 2.9.0 release was picked up by a few news outlets and reception so far has been positive. It is still the same old Banshee everyone loves but on a modern foundation that brings hope for a bright future.

Andres G. Aragoneses has dedicated the day to reviewing and merging all of Stephen Sundermann's patches to the Bindinator into upstream and addressing any review issues. Hopefully this will be done today, meaning we are well on our way to providing a .NET GNOME experience that is great for both developers and packagers.

With that in place we will be able to start work on integrating GStreamer# 1.x with Banshee.

Bertrand Lorentz has been fixing bugs in the Hyena library which is shared between Banshee and F-Spot. Due to changes in GTK between 2.x and 3.x scrolling list using a scroll wheel no longer worked and this functionality has been restored.

Tomboy

Jared Jennings explored moving Tomboy for OS X from using WebKit to Xamarin.Mac. However problems fitting Tomboy's rich text editor needs to that framework proved that the original idea of using WebKit was likely still the best route.

The design of the application has been smoothened a little. Jared is trying to capture the magic that made Tomboy quick, elegant and lovable for note taking originally and enhancing those aspects in the OS X environment.

Stephen Shaw and I have been helping out with design ideas and once Hylke Bons becomes available we will be able to lend his wealth of design knowledge to that effort.

We have also been discussing how to implement new features such as image support and MarkDown syntax support. I am personally a big MarkDown fan and would love to be able to use that syntax to write notes. While it is very likely not something most users would want to be exposed to compared to the rich text editor we provide today, it would make a nice enhancement to Tomboy for more advanced users.

Tomdroid faced a stubborn bug that Stefan Hammer and Timo Dorr ended up dedicating a bit of their evening to solving after dinner and the official end of day 1. Though the problem persists so Stefan and Timo have dedicated their morning to solving it.

The bug being having been solved Timo went on to moving backend and authentication code from Rainy to the Tomboy Library so all implementations of Tomboy using the library will be able to leverage these easily. Meanwhile Stefan has been implementing a tag identification system using graph theory for Tomdroid. This code makes Tomdroid's codebase more robust and less prone to erroneously identifying rich text metadata such as: "the currently selected text is bold") in notes.

Pinta

Robert Nordan has been continuing work porting Pinta to GTK#3 but is currently held up by mono-addins still being GTK#2 only. Additionally a lot of functionality Pinta uses in GTK has been removed in 3.x, most notably the Ruler widget and all drawing is now done with Cairo directly instead of using GTK.

This is makes the Pinta port one of the larger projects undertaken at the Hackfest so far. I would not expect this to be finished during the hackfest as a lot of code will have to be reimplemented to provide the Pinta experience people know and love. As is expected a lot of functionality is still not available, e.g. you can open images, manipulated them (such as resizing, inverting colors, etc.) and save images, however they will not be displayed in Pinta as the canvas currently isn't working.

The second big problem with porting Pinta is that mono-addins requires GTK#2. We cannot directly port this to GTK#3 as it would break applications which use the UI parts of mono-addins but which will remain on GTK#2 for the foreseeable future, such as MonoDevelop. This is a problem that is shared with F-Spot but not with Banshee as it has its own UI for handling extensions.

Andreia Gaita has undertaken the task of investigating this remotely from Copenhagen. An interesting idea would be to port mono-addins to XWT and creating a XWT backend for GTK#3.

Robert did make sufficient progress to get Pinta's GTK#3 port to launch, but it currently has no canvas to display or edit images.

Never the less we are proud to show off Pinta joining the ranks of GTK#3 enabled applications.

Pinta GTK#3

And here is a side by side shot of the new GTK#3 based Pinta and the current GTK#2 based version.

Pinta side by side

There is still a ways to go but the interface, save for the lack of the canvas are fairly identical. A lot of excellent progress for 2 days work by Robert.

SparkleShare

Hylke Bons is continuing to make progress and Stephan Sundermann has been helping out by generating bindings for Application Indicators. With that integrated SparkleShare on GTK#3 is getting very close to being able to replace the existing GTK#2 release.

He has also been unleashing his inner designer to tweak SparkleShare to look great on GNOME 3. SparkleShare should thus now be the most beautiful and elegant looking of our .NET GNOME applications.

SparkleShare GTK#3

F-Spot

Stephen Shaw managed to merge a lot of work into F-Spot last night and he tracked down an xbuild bug causing F-Spot to fail building in MonoDevelop. F-Spot should also use Hyena as a git submodule now rather than embedding its own copy in the source tree, this is the same approach as Banshee uses presently.

Stephen been merging the work his GSoC students did on im/exporting RAW image files, facial detection and support for newer version of color profiles. As these are the default in GNOME 3.8+ thanks to Richard Hughes's colord, this also fixes a crash on start up when running on GNOME 3.8+ with colord which is sure to bring joy to F-Spot users of the world.

Moving F-Spot to GTK#3 is likely going to involve redesigning the UI in a significant way and Stephen has been examining XWT as a potential path towards such a redesign.

How much of that work can be done during the hackfest is uncertain but delivering a new F-Spot UI is likely a project that will take a lot longer than the week we have.

Luckily Hylke Bons offered his help working on mockups for a modern F-Spot design and some existing work from previous F-Spot maintainers exists build on.

Packaging and bindings

Yesterday Stephen Shaw managed to get openSUSE's Mono stack updated to include the new GTK#3 release and other vital version bumps to enable development on that platform.

Stephan Sundermann and Andres G. Aragoneses started work yesterday reviewing and merging Stephan's changes to the Bindinator tool so we can have one master repo with all the tooling and bindings for developers and packagers to rely on.

The resulting work can now generate WebKitGtk bindings which can be demoed using the FunnyBrowser example browser from WebKit.

WebKitGtk

Likewise, GStreamer# is functional and demo-able.

GStreamer#

Jo Shields has been hunting a bug in monodoc which is currently holding up the progres he made towards updating the Mono stack in Debian/Ubuntu. Frustrations with which having reached the point of inserting Console.WriteLine calls, mainlining Red Bull and reading the ECMA-335 standard.

In the end though Jo emerged victorious and all is right in the world once more.

Was it not for the two additional bugs he uncovered in monodoc on Linux. First it crashes during runtime and secondly it seemingly fails to write the documentation index to disk so it cannot be utilized by MonoDevelop for searchable documentation.

Jo worked on this all day and in the end it resulted in 6 closed bugs against the Debian Mono stack and a small patch sent upstream. Essentially he moved documentation generations from package install to be at the users discretion.

Sponsors

We are really grateful for the chance to spend this week working on Open Source software and it would not be possible if not for our sponsors.

Norkart logo

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

Collabora logo

Collabora Ltd, Open Source Consulting

Schottenpoint logo

Hotel Schottenpoint, Our hotel partner

Novacoast logo

Novacoast IT, Professional Services and Product Development

GNOME logo

The GNOME Foundation, providers of the GNOME desktop

The University of Vienna logo

The University of Vienna - Institute for Theoretical Chemistry