revamping Online Glom

I’ve been working for the past couple of weeks revamping the Online Glom project that Murray Cumming started last year and I thought it was about time that I posted an update on my progress. I’m doing this work as part of a short contract with Openismus which should take me into mid-January or so. It’s a bit of proof of concept project that Murray has been thinking about for a while. I like when people use software that I write so I’m pretty motivated to make a something functional in this time period.

My first task was to sort out the build for the Java bindings to libglom. I decided to move the project to Gitorious because I like that it lets you have a top level project with sub-repositories. I also like that the Gitorious code base is AGPL. Here’s the repository:

http://gitorious.org/online-glom/java-libglom

Besides updating the SWIG interface file for the changes in libglom, I’ve also changed the build to generate the C++ and Java source code at build time rather than checking the generated source files into the repository. I decided it would be best to stick with the autotools to package up the Java files as Maven and Ant don’t seem to play well with autotools. Using the autotools to build and package the Java code turned out to be not as straightforward as I had thought. I ended up getting the new Autotools book specifically for the chapter on building Java and C# which really helped with the task. The book is really good if you’re new to autotools or you find yourself needing obscure features of the autotools and don’t want to rummage around the web for an answer.

As for the web side of Online Glom, I spent some time this week getting up to speed with GWT and the RCP mechanisms it uses. I’m pretty impressed with the how easy it is to use – especially the development mode Eclipse integration. The GWT developers managed to do a really good job of making a complicated task in a complicated IDE easy. I’m definitely impressed.

I decided to start from scratch and not use the jsp-glom code that Murray had started because a lot has changed in GWT since Murray worked on the project. So far, I’ve managed to get GWT to display listing of the tables in an example glom file using the java-libglom bindings. I’m now at the point where Murray left it last year. The code needs to be cleaned up a bit before I push it to a repository but I will try to get it out early next week.

Meoto Iwa (???), The Wedded Rocks

Meoto Iwa (The Wedded Rocks) - Ise, Mie, Japan

As part of this work, I spent a bit of time setting up my Eclipse development environment. It’s really interesting to see how the Linux Tools project has progressed over the years. I helped get the project off the ground as a member the Eclipse team at Red Hat a few years ago so it’s an interesting experience to now be on the user side of things.

I’ve been using Eclipse 3.6 with the latest version of the CDT, the Autotools plugin and the EGit plugin. Unfortunately there’s still a few kinks to iron out with this stack. My goal was to clone and build Glom using only Eclipse. The first problem that I encountered was that Egit has a very specific way in which you need to use it. For example, it allows you to clone a repository but it doesn’t hand that cloned repository over to the import wizards very well. After a few tries, I managed to get Glom imported as a General Project. I then tried to convert it over to a C++ / Autotools project but didn’t succeed. After a bit more fiddling, I managed to get the build mechanisms semi-working but not in a way that I would expect. It seems like the Autotools plugin just isn’t designed for the way GNOME modules use autotools. I’m still using the CDT as an editor but I’m doing my builds on the command line. I haven’t had the courage to use Egit to commit and push any code to a remote repository yet. I’ll probably start using it when I’m working exclusively on the GWT / Java side of things because I shouldn’t have a reason to use a terminal for that work.

I’m going to try to post weekly blog updates on my progress so stay tuned for next week’s post.

Posted in General | Tagged , , , , , | 2 Comments

Idlelo 4: Wednesday, Thursday and Friday

On Wednesday afternoon I participated in a panel on non-profit administration moderated by Milton Aineruhanga, the IT Program Manager at Women of Uganda Network. Since the topic was a bit vague, I used my time slot to talk about how we organize ourselves in the GNOME community and gave a brief overview of the GNOME Foundation governance structure. Pierros Papadeas, a Fedora Ambassador, was also on the panel and gave a similar talk about the Fedora Project. In the spirit of cooperation, Isaac Sanni-Thomas, the local Fedora Ambassador in Accra, presented Fedora’s four foundations. Alex Gakuru, Chair of the ICT Consumers Association of Kenya, spoke about the use of free and open source software in Kenya. We had some good discussions on the challenges people face when trying to contribute to or develop free and open source software in this region.

Alex, Pierros and me on the panel (photo by Isaac Sanni-Thomas)

After the panel, Dorothy K. Gordon, Director General of the Advanced Information Technology Institute (the place the conference was being held) helped us arrange a meeting / training session for interested people in the Ghanaian software developer scene.

When we were done with the booth on Thursday evening, about 12 local software developers gathered into one of the rooms for the training session. I presented an overview of the GNOME development platform and tried to walk everybody through fixing a small bug in Caribou. (Yeah, I know I’m not really working on Caribou any more but it’s a small program that I know well so I thought it would provide a good real world example).

GNOME development training (photo by Pierros Papadea)

I was able to walk everybody through cloning Caribou and started building it when hit a snag. The 12 people all trying to pull down the dependencies from the Ubuntu mirror crushed the internet connection. I spent the remaining portion of my allocated time trying to get Caribou to build instead of working through any actual software development. As much as I was frustrated with the situation, this is the reality of trying to develop software in Ghana. I’m disappointed that I didn’t get farther with the bug fix but at the same time, I’m glad that I was able to have this experience so that I can relate a little bit about how slow the internet connections are in Ghana.

Pierros used his time slot to give a technical presentation on the latest developments in Fedora and Mozilla Labs.

presidential palace in Accra, Ghana

Friday proved to be a slow day at the booth. The Fedora side of the booth had been taken down because Pierros had another conference to attend. I still had the occasional person drop by and ask me to burn them one of the distros that I had on my hard drive. I guess some of the attendees had already left too because this was the first day I was able to reliably connect to the internet with my GSM modem and write a blog post.

The conference ended at around 1pm so I arranged to meet with Jojoo Imbeah, a developer with the Kasahorow project, Henry Addo, a Ushahidi developer, and one of their friends (sorry I forget his name). We were able to spend about 3 more hours hacking on the Caribou bug we had started trying to fix on Thursday night. I’m hoping to help these guys get a patch submitted to bugzilla so that they can have their first piece of code contributed to GNOME.

The mini-hackfest was cut a little short by my poor planning. At 6:40pm I told them I was flying out that evening and was quickly whisked to my hotel on the back Henry’s motorcycle. I endured a tense 40 minute shuttle to Kotoka International Airport in some pretty heavy traffic but I made it to the airport just in time to catch my flight home.

I’ll post some final thoughts about the conference in the next couple of days. It was a pretty hectic 12 days so I’m going to take some time out for a little R&R.

Posted in General | Tagged , , , | 1 Comment