Tag Archives: Gnome/Mono Festival of Love 2012

Hackfest Continues: Experiences with Cydin

As mentioned, I’ve been working on add-ins for Pinta as part of my efforts at the hackfest. Part of that has been to wrangle the Cydin add-in server/build bot for use with Pinta. I’ve been excited about Cydin for quite a while, since the prospect of a fully automated infrastructure for building and distributing add-ins directly to the users sounds incredibly great. It combines ease of use for users with ease of use for maintainers and add-in developers, and that’s about all you can ask for!

Easy installs from the net to your Pinta!

Actually, talking to Stephen Shaw and Jared Jennings, we came up with the idea of maybe co-locating an add-in server for Pinta, Tomboy,  F-Spot and any other Mono.Addins users with some suitable domain name, which would be great in many ways! But first, we have to explore more Cydin.

As far as I know, Cydin has only ever been deployed for Monodevelop’s add-in infrastructure, so while it has been very commendably designed to be versatile and usable for other projects, there are still some little niggles remaining when it comes to issues like documentation and independence of Monodevelop. (Perfectly understandable, of course.) Therefore I’ve made some small pull requests to Cydin to fix some of the issues, and are documenting the rest of them here for future reference.

  • When you set up the “Application” information defining a application that users can upload add-ins for, you need to fill in the “Supported Platforms” information with machine-readable single words separated by spaces. (Not formatted for humans, in other words.) So “Linux Mac Windows” is fine and creates repositories for Win, Mac and Linux, but “Windows, Linux , Mac OS X” will result in repositories for “Windows,”, “Linux,”, “Mac”, “OS”, and “X”.
  • There is a bug where Cydin tries to create “Files” folder at the directory level above the one you excute on, but since the default value is hardcoded as “..\\Files” (Windows style), it will actually create a subdirectory called “..\Files” on Linux. This is not cool because other parts of the code seem to interpret things correctly and things bollocks so it can’t find the folder. I’ve raised an issue about it but haven’t made a pull request because I’m not sure how to put code like “Path.DirectorySeparatorChar” into a DataMember DefaultValue. You would be advised to edit this value to suit your platform before running Cydin for the first time, because after that the Config values are stored in the SQL database which is a slight pain to edit.
  • Side note: The Configuration table in the database has a table called “Key”, which is a reserved word in MySQL and has to be escaped with backticks (`) when you reference it.
  • These two pull requests (1, 2) are important as well, so if they haven’t been merged by the time you read this, pull them in.
  • The artwork in Cydin is Monodevelop-specific, so you have to go into the Resources folder and change them. (Like I’ve done in this wonderful screenshot!)


The superbeta Pinta Cydin Repo.



Hackfest Adventures, day 2

So here I am in America, currently on day two of the Mono & Gnome Festival of Love, enjoying myself immensely. America is a lot like Europe, only hotter, wider, with more police, more manual labour doing menial tasks and a penchant for writing words on roadsigns instead of pictograms.

The view from the NERD centre.

During the first day we all got cracking! Jared is working on a MonoMac interface for our Tomboy library, and I’ve been working on the library itself. All our current unit tests are greenlit, so in theory we have the ability to build a Tomboy client that works for storing notes locally without sync. In practice I bet we’ll have a lot more bugs to fix as Jared starts using the library in practice, later today. In the meantime I’m working on the difficult nut that is getting online sync to work properly, liberally using code from Tomboy but doing a lot of my own stuff as well. Fingers crossed that this won’t take all week…

This lovely hackfest has been made possible due to the generous contributions of our sponsors:

Pinta 1.2 released and looking towards the Gnome/Mono Festival of Love

Pinta LOgo
Pinta 1.2, on a computer near you!

Last night, Cameron White and Johnathan Morlock finished up all the packaging, uploads and release notes for Pinta 1.2, so now it’s officially released! New releases are always great, and this one has a bunch of bug fixes and general improvements. Head over to http://pinta-project.com/ to download the newest packaged awesomeness. I almost said “the latest and greatest”, but that’s not strictly true because new improvements for Pinta 1.3 have already started landing in our git master branch!

Pinta Statistics

Pinta 1.1 was released about a half a year ago, and I’ve had a look at the download statistics we have on hand from our Github page:

  • The Windows installer has had 12 483 downloads.
  • The source Zip file has had 3,436 downloads.
  • The source tarball has had 4,470 downloads.

In addition to that comes all the downloads through the package managers of various distros that we have no statistics for. But lets assume the number is a lot! I think that’s a reasonable assumption because when you have eight thousand people willing to compile it themselves there are probably a whole lot more who are willing to let someone else compile it for them.

Powered by Mono
The Mono framework is what lets us make Pinta multiplatform.

An interesting point is the strong Windows download numbers, despite the fact that Windows is the platform that carries Paint.Net, Pinta’s ancestor and role model. It’s no problem for me to admit that Paint.Net is still ahead of Pinta on Windows, but obviously the fact that Pinta presents a consistent user interface over several platforms  in addition to being open source (which Paint.Net no longer is) means we have carved out a good niche for ourselves.

Sadly, in this release we have had to postpone a Mac version once again because we don’t have hardware to test it on. This pains us quite a lot, and it’s also the reason 1.2 has taken a while to come out because we’ve been hoping to get it fixed before releasing. In the end, we had to prioritise getting new features out to those users we could reach. But read on, because potential good news is coming!

The Gnome/Mono Festival of Love 2012

Fingers crossed, if all the star signs align correctly and so on, I will be attending this years Boston hackfest for Gnome/Mono products! (Which will also be my first time visiting the land of tea parties, star spangled banners, and McDonalds.) The plan is for me to work with Jared Jennings on a new core library for Tomboy, and to hack away on miscellaneous improvements for Pinta. I know that there will be several participants there owning the vaunted hardware from Cupertino with a half-eaten apple on it, and I plan to pester them into helping me solve Pinta’s most major Mac issues. With luck, we can again have a working version of Pinta for Mac by midsummer. Then we can make at least a interim Mac release, but personally I hope to have enough done by then that we can justify releasing Pinta 1.3. (At any rate, I plan to lobby my co-developers to do just that…) Here’s hoping for the future!  Update: Like masters of magic, Cameron White and Jonathan  Pobst have managed to come up with a working Mac edition (As yet known to be working under at least one configuration of Mac+Mono) within 24 hours of me writing this! So it looks like I’ll be able to put more time into other aspects of Pinta at the hackfest, although hammering out any Mac-specific issues that may appear is still a possibility.  Looking forward to it!

The Boston Tea Party
I'm going to Boston! Tea may be drunk, parties may be had, any revolutions will be strictly computer-based.