What’s up?

3. February 2012

So as usual I need an excuse for not blogging for so long. This times it’s work, moving to Berlin and some other things.

Anjuta

While I haven’t contributed that much code in that cycle apart from minor bug-fixing there have been a couple of nice contributions:

  • Sébastien Granjoux did amazing work to improve our project management which is now much easier to use and more powerful
  • Marco Diego Aurélio Mesquita (what a name) improved the glade integration by allowing to automatically connect widgets and code
  • But I guess I should cover all this in a “What’s new in Anjuta 3.4″ post pretty soon

Gdl

The often forgotten but still heavily used docking library…Inkscape forked that library into their repository and added some fixes for them that were never magically contributed back and at some point (especially with the gtk+3.0 transition of gdl) I became very hard to merge between the projects. However, lately Alex Valavanis stepped up and ported most of the Inkscape patches back into gdl master and hopefully Inkscape will be able to use stock gdl (or probably better gdlmm) really soon.

Gnucash

As I tried to organize all my banking stuff I made some contribution to the best linux banking software in the area of HBCI/FinTS which is a german standard to securely initiate online transactions with your bank. I hope to find some time to actually implement SEPA (read EU- or international transactions using IBAN and BIC) at least originating from german accounts. But I have to think about how to compute (98 – (x mod 97)) for x being larger than a 64-bit integer and while I found some strategies on the web this was too much math for a late evening. Before you ask, this is part of the way an IBAN checksum is computed and I need this checksum because at least for Germany the IBAN can be generated as a combination of account number and bank-code.

Brno Hackfest

/me will be there saving the world or drinking beer, maybe both.

Laptop

After having been for a couple of hackfests which my much loved white netbook (read: “Oh, it’s so cute…”) I though it’s time for a real (male ;) laptop. It doesn’t seem very easy to get a reasonably priced laptop without a Windows license or preferably with a preinstalled and working Linux. After some searching I ended up buying a ThinkPad Edge 320 from linux-laptop.de which arrived pretty quickly (apart from some problems with the postal service). I ordered it preinstalled with Linux Mint after having only used Fedora for a while.

The installation was complete but the fan was constantly running which annoyed me but can be fixed by installing the thinkfan utility and now things are quite again! I reported this back as I kind of assume things like that installed when I order a laptop with operating system.

Toronto Hackfest

22. March 2011

Tomorrow will be the last day of the Toronto Documentation Hackfest so I would like to summarize what happened to the developer documentation:

developer.gnome.org

A bunch of tutorial-style demos (online preview) have been added to the gnome-devel-docs though I would wish there were even more. If your favourite programming language is missing demos it would be great if you could add them following the style of the existing demos. P. F. Chimento did a great review of these demos. Thanks!

Germán worked on updating the platform overview and I guess he will blog about the results himself. The website that is currently shown as image on developer.gnome.org should be mostly in a good state though some links need to be checked and I hope the marketing-team will review it once the awesome F?ederic Peters gets around setting up an instance for testing somewhere.

Help on setting up the development environment

Furthermore I created a bunch of wiki pages explaining how to install a decent development environment for GNOME 3. It currently contains information on Ubuntu and Fedora that has to be tested and I would love to see people adding more distributions.

Those installation instructions are linked from developer.gnome.org and the demos itself so we should take care that they always work and install the versions required.

Related to that, Michael Terry from Ubuntu made sure that the gnome3 ppa will have new version of Anjuta, Glade and Devhelp so that people can follow the tutorials and have an easy start on GNOME 3 Development. Thanks a bunch!

Anjuta Help

The Anjuta manual is quite outdated so I stubbed out a new task-based help for it. Unfortunately I won’t have time to fill that with content but it would be great if people would fill this with live. It is really easy with the mallard format and the help of the GNOME Documentation Team.

These and that

Of course, there are plenty of things discussed in a hackfest between the lines like Ubuntu/GNOME relations and GNOME3 in general. As we have people from all side involved it is always amazing how sane everybody is about all this and how few practical problems exist despite all this flame-war.

We switched to the hotel today as the internet connection at the university broke down (they apparently fixed that already…):

For people closely following the development of Anjuta that feature is actually quite old as I presented it on GUADEC but it didn’t get included until the upcomming 3.0 release.

Thanks to GtkBuilder signal autoconnection you actually don’t need to care about manually connecting signal anymore but can defer that job to glade. And as glade is integrated pretty much into Anjuta you also don’t have to care about creating correct prototypes for the signal handlers as you can just drag them into your code:

Before:


After:

This does not only work for for C but also for Vala and Python. It is actually even clever enough to detect if the handler is already present and to add the handler to the header file if the header file is open.

Documentation Hackfest

Apart from that I am sitting at the documentation hackfest in Toronto fixing up the developer demos we started in Berlin and fighting with various programming languages and bugs.

So, the hackfest is over but I hope you are interested in the results. You should already have read some rumours on Planet GNOME.

Planing phase

Before we actually started to write documentation or improve our tools we clearly needed to define our goals and our target audience. The target audience broke down to various types of developers:

  • Students/Hobbyist
  • Freelancers
  • Companies (products and in-house development)
  • Web developers
  • Teachers

All of those have different motivation and goals but we concluded that we can still fit most of these with the same documentation. Teachers were a really interesting side-discussion as it would be great if GNOME development would be tought in schools and universities but we didn’t know how to dive deeper into that topic.

The other difficult thing was to define which are the components of the GNOME Development Platform. This belongs a bit to the GNOME OS discussion and was clearly something we couldn’t solve in that room but we ended up mostly copying from the release-team proposal here, making some additions.

Central starting point for GNOME Development Platform

Daniel pointed out that here and there people asked him where they can find information about getting started on the GNOME Platform and he couldn’t really point them somewhere.

In the discussion we looked into various development sites (Apple, Django, Microsoft, etc.) to see how they solve that problem. We concluded that such a page is about 50% marketing and 50% information. It has to serve mainly two purposes:

  • Attract people to GNOME development
  • Convince managers that GNOME is the way to go

As there is no better place than developer.gnome.org we put it there. What you see there is no mock-up but an actual screenshot of the site on Fréderics local webserver. The site itself is mostly finished in a joint work between Phil (html mockup), me (Javascript for carousel and search), Andreas (awesome design) and Fréderic (ugly technical details…). It depends on some other stuff in the gnome.org redesign process and some final polishing to really go online and it the information targets GNOME 3 only. It is available in the web-devel-2 module.

10-minute-tutorials

  • Fun to follow while teaching limited subsets of the platform
  • Show various interesting and useful technologies (no “Hello World”)
  • Complete them in your (extended) lunch-break

We wrote five different tutorials at the hackfest and tested them with our GTK+ newbies. In the end, all those tutorials should be available in the five major programming languages (C, C++, Python, Vala, Javascript). If you have other interesting ideas to show off in about 100 lines of code or want to convert one example to your programming language, please contact the documentation team.

As we didn’t want to annoy people with build system issues we decided to use anjuta for the tutorials. Once Shaun adds expandable notes to mallard we might extend the tutorials with some notes how to do the same on the command-line. The tutorials live in the gnome-devel-docs module. Please note that they haven’t been fully reviewed, yet.

There is also draft documentation for installting the required packages to start GNOME development. Please complete this for your favourite distribution as there are only stubs except for Fedora by now.

Problems we couldn’t solve (yet?)

Best pratices: We really also need some more in-deep guides for application development. That should cover basic things (like 5 things every GNOME developer should know) to more in-deep things (explaining the GObject-framework, desktop integration, etc.)

Deployment: This is a non-trivial thing on Linux/etc. as there is no AppStore and also no ecosystem like Windows where you just ship installers. We don’t have an ultimate solution here so what we though about was writing an Anjuta plugin interacting with the OpenSuSE build service to build packages for the popular distributions, while auto-generated debian/ or .spec-files at least for the case where the package contains a single application. Some people pointed out that having a build service instance on GNOME infrastructure for the applications moduleset would be great.

Up-to-date versions of tools: Neither Fedora nor Ubuntu ship the current version of Anjuta which really needs to be fixed. The Fedora guys seem to take the bug report serious though and Phil promised to talk to the Ubuntu people so this will hopefully be solved soon. OpenSuSE is the shiny example to do the right thing here by shipping 2.32.1.

Glade: It’s completly broken for the moment and this is really a show-stopper for 3.0. I hope we will be able to fix that but that really needs people with a lot of knowledge on gtk+. Hopefully Tristan will be able to donate some time on this and others will help him.

Other stuff that happend

  • Frederic put a lot of work into library.gnome.org
  • Phil converted the HIG draft to mallard
  • Andre (who actually just happend to be around…) started to convert the evolution docs to mallard
  • Konstantin just happend to ring on Sunday morning because he read about the hackfest on Planet Ubuntu and was instantly recruited by the documentation team. It’s nice to see random interesting people showing up!

I hope everybody had four fun and productive days in Berlin and that things will continue to improve. Thanks again to Openismus and especially Kat for the fantastic hosting and the GNOME Foundation for making this happen. Thanks to everybody who attended. Just remember that people don’t mind having 22-hour flights just to attend a four day hackfest – that’s amazing commitment!

Hackfest Update

4. December 2010

Day 1

We ended up doing a lot of planing of how to organize things and ran into quite some discussion. One of the surprisingly difficult points was to define what the “GNOME Platform” is. In the end we came up with this (and a lot more):

  • Create a central entry point for developer documentation
  • Add a platform overview
  • Write 10-minute-tutorials for the most important libraries with interesting examples. Of course we won’t be able to create all of them (especially not in out five target languages: C, C++, Python, Vala, Javascript) but we try to come up with some that can be extended over time.

Day 2

Today (well, yesterday) we finally started to get things done. Phil and Andreas worked on creating the platform overview page and templates for the 10-minute-tutorials. Most of the others started to write cool small applications in different languages show-casing our platform and make tutorials out of what they wrote.

After lunch, Shaun gave a very nice introduction to mallard and André decided to port the evolution docs to mallard, but he didn’t finish it (yet).

The worked quite nice for C and Vala but Jon and Jonh ran into many introspection issues and Jon got really annoyed by trying PyGI with cairo but he is making progress now.

In the meantime, Fréderic worked on secret improvements for library.gnome.org but I will leave it to him to present those.

Some impressions: