GNOME+Mono hackfest day 2+3

A double whammy update, mostly since day 2+3 were largly just expanding on the work everyone started on day one.

Alan and Oliviers work on the bindings of GTK3 is now down from 150 errors and 25 warnings to around 5 errors. However Alan’s current approach basically turns the gir output into output the bindings generator we use already can understand and this has turned out to be limiting and hard to debug. So he started writing a new generator meaning there has been little progress in getting a full set of bindings. He will reuse a lot of code from the current gapi generator as I understand but this means we are unlikely to reach a stage where we can demo a “Hello world!” example by the end of the hackfest.

Jérémie and Bertrand have been doing a lot of work on DBus-sharp and according to Jérémie Banshee now runs without any of the workarounds we had in place for our current buggy ndesk-dbus implementation. DBus-sharp is compatible with ndesk-dbus so application developers will only have to make minor changes and can then remove a lot of workarounds. The end result should be nicer code and more stable applications. The unit testing for dbus-sharp has also been expanded greatly over ndesk-dbus.

Tim has been working hard on removing the last bit of C code from F-Spot, mainly since this is a limitation when porting F-Spot to non-Linux platforms but also because it currently makes developing F-Spot in MonoDevelop cumbersome. The code in question covers the image effects so Tim’s initial approach was an attempt to reuse the effects from Pinta (Olivier is a Pinta developer and was helpful in this effort). This however turned out to be suboptimal and instead he has opted for porting the C code directly to C#. This work is now nearly at a point where libfspot can be removed, even if it has cost many sleepless nights for him.

Jonathan started writing a specification for handling unsupported media players, which I will continue to work on today. Alan has volunteered to implement the resulting data collector application once we have the specification finished.

All in all we are very pleased with our effort so far and have enjoyed the long days in our, relatively, cold room here in lovely Brussels.

Related posts:

  1. GNOME+Mono hackfest day 1
  2. The GNOME+Mono hackfest is here, officially
  3. Banshee: Video, TV shows, Windows and hackfest, oh my!
Post a comment or leave a trackback: Trackback URL.
  • Anonymous

    Riveting saga this one.

    Can’t wait to see what happens on day 4.

    • https://launchpad.net/~davidnielsen David Nielsen

      Don’t expect much, Alan and Jérémie are going back to Ireland tomorrow afternoon so we are only going to have a couple of hours.

      However we are in agreement that we need to do this again, it is a lot of fun and even if in this case the gir work has turned out less successful than we wanted. I am still personally very pleased with the event and meeting all the people has been fantastic.

      • Anonymous

        Glad that you enjoyed doing something for leechers like us. Makes us feel less guilty. XP

        • https://launchpad.net/~davidnielsen David Nielsen

          If you feel guilty, file a bug against Banshee. Contributions do not have to be code. Translations, tech support, bug reports, writing guides.

          • Anonymous

            I’m aware, unfortunately I’m not yet experienced enough write proper bug reports or have the possibility to try out unstable codes in the first place – same goes for tech support.

            Though, English is not my native language, I know hardly another language as well.

            Guides, I can do, and plan to do, but they don’t really contribute to the actual app’s improvement.

            I do have ideas that can be very useful, but there’s no platform to express them.

            Maybe I’m merely making excuses, but honestly, at my current state, I’m far from able to contribute to the OSSs in anyway. Hopefully I can help new users in the first installfest of our new and unofficial LoCo at the United Arab Emirates.

  • http://twitter.com/conscioususer Conscious User

    Wanting the C-free F-Spot in the Natty repositories is probably too much optimism, I suppose…

    • https://launchpad.net/~davidnielsen David Nielsen

      I just asked Tim and if he is bound by the feature freeze (02/24) then the chances are very low. We will see what happens. There are still a couple of issues, but he has literally been working night and day during the hackfest on this (in fact I got mail from him at 5am this morning saying he was still up hacking F-Spot).

      • https://launchpad.net/~davidnielsen David Nielsen

        A slight update, Tim was up all night (well he did get ~3 hours of sleep) but now the C# port of the C code does exactly the same job. We can now rip out libfspot and have a C-free F-Spot.

        • http://twitter.com/mickstep Michael Stephenson

          So can he release in time for feature freeze?

          • https://launchpad.net/~davidnielsen David Nielsen

            The code needs to be reviewed and a release of F-Spot needs to be made and pushed to Ubuntu. It could still make it in, but it depends on people != Tim working hard and naturally.. no bugs being found.

            It is going to be tight.. perhaps

  • http://k-tec.blogspot.com/ Kleverson

    When it ends, could you post every single highlight?

    • https://launchpad.net/~davidnielsen David Nielsen

      A lot of the work we have done is behind the scenes and not really something the average user will care about directly (outside of eventually getting more stable apps and such).

      I was going to post on Olivier’s Banshee work when I get home at least. I figure that is what people are most interested in and something that can feature beautiful screenshots.

      Perhaps a quick recap of links to the other guys’ blog posts from here. I know Tim did a few on the work he has done to explain it in more detail. It has been an epic stuggle with many defeats and much learning.

  • http://twitter.com/me4oslav Georgi Karavasilev

    This question might me kinda lame-ish, but I’m going to ask it anyway:
    How can I help with Banshee translation?

    • https://launchpad.net/~davidnielsen David Nielsen

      Banshee is on the GNOME infrastructure so you want these guys:

      http://l10n.gnome.org/teams/bg (your profile info seems to indicate that you are bulgarian)

      Also you can look at translating via Launchpad. Finally the community extensions are kept on gitorious so those you need to translate via launchpad or by hand. These you could submit as bugs against Banshee and we will commit them.

      But check with your national translation team, they will be able to help you and they will likely have guidelines to follow for consistent results.

      • http://twitter.com/me4oslav Georgi Karavasilev

        TY for the info, I’ll contact bulgarian translation and hope they’ll guide me, but see launchpad:
        http://twitpic.com/3ycyiz

        • http://twitter.com/mickstep Michael Stephenson

          An incomplete Bulgarian translation exists.
          You’ll need to get the banshee source code.
          You’ll need git and poedit

          sudo apt-get install git poedit

          Then get banshee from git, put it in an appropriate folder eg ~/Projects

          git clone git://git.gnome.org/banshee

          then open ~/Projects/banshee/po/bg.po in poedit

          translate the strings and save.

          Then create a patch and attach it to a bug report.
          cd ~/Projects/banshee
          git diff > bulgarian.patch

          upload bulgarian.patch to a bug report.
          Simples.

          Think that pretty much covers it.

          Edit: just for clarity I don’t know any foreign languages, all I have ever used this for is turning American english to British english, ie added a few “u”‘s here and there.

          • http://twitter.com/me4oslav Georgi Karavasilev

            TYSM!
            I will to that, I have all my projevts in folder named useless-stuff in my home dir, nice play to put right xD

          • http://twitter.com/mickstep Michael Stephenson

            Cool, you’ll find more info on the translation system here: http://en.wikipedia.org/wiki/GNU_gettext
            and by googling “gettext tutorial” and the like.

          • http://www.expatsinksa.com/ Bilal Akhtar

            You can also get him to git commit instead of git diff and the he could run git format-patch to create a nice-formatted patch with headers

      • http://twitter.com/mickstep Michael Stephenson

        Incidentally David, why isn’t Banshee using Launchpad for translations. Although what I described is fairly easy to do, launchpad’s rosetta is idiotproof, and AFAIK gnome has nothing competing with it.

        • Bertrand Lorentz

          As for most of our project infrastructure, we’re using the services provided by the GNOME project, and we’re really happy to be able to benefit from the great work of the GNOME translation community.
          Amongst other things, this allows for a higher level of consistency of translations between Banshee and the rest of the GNOME desktop.

          • http://twitter.com/mickstep Michael Stephenson

            I might be being douchy here, but it sounds to me like the translation teams might be intentionally raising the barrier to protect their baby.
            They don’t want to crowd source translations because they enjoy their control, and don’t like the idea that someone who knows nothing about gettext or source control can translate a project.
            That might be great for them and their language, but I am sure there are languages out there not being catered for by that system.

          • Bertrand Lorentz

            I’m sorry you feel this way. As I know next to nothing about how the GNOME translation team work, I have done a little bit of research and found this :
            http://live.gnome.org/TranslationProject/ContributeTranslations

            You don’t need to use git to start translating anything. Submissions are reviewed and then committed by another team member.

        • https://launchpad.net/~davidnielsen David Nielsen

          I’ll be honest I really wish we used Rosetta for translating everything. But the translation teams tend to have very established work patterns and are unwilling to change. This is the case for the DK team at least, which requires translators to be on their mailing list and send out diffs for review (very 90′s). A workflow that could be replaced by launchpads tools for higher efficiency. It is one of the reasons I rarely translate anything anymore.

          Rosetta is a wonderful tool. I wish everyone would use it.

  • Anonymous

    Can you write a mono application using QT instead of GTK?

    • Anonymous

      Yes, bindings for Qt# do in fact exist, they’re just not used quite as much. Synapse IM used this combination, and it was great! Look up the Qyoto project and QyotoDevelop. :)