Boston, a hackfest

on Friday, June 29, 2012
The Mono & Gnome Festival of Love 2012 is in full swing here in Boston, thanks to the wonderfully stubborn David Nielsen, which got everyone together, got us a great room to work in at the Microsoft NERD Center, and sponsorship by Fluendo, Xamarin, GNOME and PluralSight.

Day 2 of the hackfest has just finished, and it was quite an eventful day. After a slow start yesterday (particularly for me, as I managed to completely kill OSX so thoroughly that it wouldn't boot and required a full restore (all hail up to date Time Machine backups)), today was a pretty interesting day.

Highlights of the day include a loooong conversation with the gobject-introspection people, determining exactly how broken gir is and how that affects our C# binding generation, loud complaining saved for posterity in (which we're using to track our tasks and found to be a very neat and useful webapp), watching Google IO in style thanks to the wonderful resources provided by the Microsoft NERD Center (really, their facilities are top notch), generally discussing geeky stuff and the road forward for Mono & Gnome, and having a late dinner and lots of margaritas at the Border Café (which is still one of my favourite places in Boston, naysayers be damned).

All in all, a great hackfest, and we're just getting started!

This post brought to you thanks our generous sponsors:

Looking back, going forward

on Wednesday, May 30, 2012
May 11, a sunny day in my little corner of the world, was my last day at Xamarin. I've spent an amazing 9 months working on Mono for Android, but more than that, Xamarin was a continuation of my work in the Mono team that started in 2006 back at Novell. So, in a sense, this is an end of a cycle.

These past 6 years have been life-changing; I dove into professional open source development head first, worked with an amazing team, met a ton of great people, and learned and did so many things that sometimes it's hard to believe it's only been 6 years. Some projects were successful, some not so much, but nothing was ever routine or mundane. Moonlight was a particularly amazing experience, working with C#, C/C++ and JS inside a browser with bridges and refcounting and all sorts of crazy hacks to build an UI toolkit from scratch, and Mono for Android was a inspiring challenge that taught me more about mobile development than I thought possible. Impossible is not a word that the Mono team use much ;-)

A lot of people have been assuming that, since I'm leaving Xamarin, I'm going to leave Mono development altogether. Rest assured, that's not going to happen. :-) There's a lot of projects I want to support in the Mono world, and the Linux/Mono community definitely needs a bit of a pick-me-up, which is why I'll be taking part in the Mono & Gnome Hackfest that's going to happen in Boston June 26 to July 2.

In the meantime, I'll be taking a bit of a break to recharge batteries and get ready for the new challenges ahead. It's going to be an interesting year! :-D

Broken by design, I guess

on Tuesday, April 03, 2012
Sometimes I have to jump through so many hoops just get something working, I just have to write it down. Especially because I just *know* that somehow, somewhere, some*when*, I'm going to have to do it again. Especially in software that I assume should work out of the box, seeing as it's so popular. Or maybe I just don't do things the "normal" way and it's really just me. *shrug*

Working on Mono for Android, sometimes I can't escape looking at java. It was only today that I've actually had to build things with something other than ant, so I had to install Eclipse. I really favour command line tools over running an IDE, though, so I went on a hunt to find out how to build Eclipse projects from the command line.

I found a few topics called Headless Building and Batch Compiler, which looked promising. Of course, the executable required for the first is completely missing in my installation (Eclipse Classic 3.7.2), so I tried the ant variant next (some StackOverflow posts pointed to that being a decent solution for this). It immediately crashed with

[apt] Warning: NLS missing message: JdtApt_noWorkspace in:
[apt] Warning: NLS missing message: JdtApt_noEclipse in:
[apt] Warning: NLS missing message: JdtApt_noStartupJar in:

The last one was also an error and the build failed. A quick search on JdtApt_noStartupJar revealed this. Note line 54:

startupJar = new File(file, "startup.jar"); //$NON-NLS-1$

Soooo... startup.jar? There's nothing like that in my eclipse folder. Another quick search reveals this short but enlightening post, which basically says that startup.jar hasn't existed in Eclipse since at least 2009 (*looks at the calendar and sighs*) and that the solution is to replace all references to that file to "$ECLIPSE_HOME/plugins/org.eclipse.equinox.launcher_version.jar".

Since I can't just go and change the paths on that apt plugin thingy, I instead went and symlinked the new file to a startup.jar in the Eclipse directory. Et voilá, things work.