Monday, 5 October 2009

A new life...

Graduating from college, throwing away the shite I collected over 22 years of my live, moving to another country, finding a place to live, getting my first job and where do I find myself? Back in the throes of Open Source.

I've always found it a struggle to find where my life, work and my passion for open source can all live together without stepping on each other's toes. Just now that I'm starting to try and get used to the norms of office life and working for a living ( sigh ) I'm finding myself trying to define where my time should be spent. We are all familiar with working 9 -5 , so that one is simple enough. Most of us know about "time well wasted" as I like to call it, where you come home from work and spend way too long making a cuppa tea to ever be considered an efficient tea maker or you sit in a chair looking out the window at that cat that has made it onto your car and seems to be making some kind of nest. Time well wasted is always time well spent, it helps to keep us sane! Some of the really lucky ones know about "Hobby Time" and are little known Ultimate Frisbee champions or have an almost complete collection of sea shells that resemble pop stars. But in all this mishmash of social norms where does the term "Open Source Development" come in?

I do not have the good fortune of having a 9-5 that satisfies my Open Source itch. I am certain that I have too few brain cells working during any of my "Time well wasted" sessions to even know what a computer is! So then is my Open Source Time doomed to share a room with random collectables and fringe sports? Do I have to class my Open Source Development as a hobby and stop refering to it as "my calling"? And more importantly how do I fit Open Source into my busy schedule of TV, Drinks with the guys, dancing in sweaty nightclubs and counting the amount of peas I have left in my freezer!? These are very pressing questions that hopefully I will soon have an answer to.

A Long time ago I was crap at time management. I'm still crap now but I like to think I'm getting better ;) One of the things that I found on my journey of self enlightenment was David Allen's Getting Things Done® and I found it FANTASTIC! I was a mess of lists and to-do items and forgetting stuff before David Allen and decided to follow his teaching like they were gospel! .... that lasted about two weeks, maybe 3 if you count having the lists right and not following them. I think the problem was that it didn't fit into my lifestyle, I was a student who was interested in a whole load of things and needed to balance research for 8 college modules with what a wanted to know in the world of open source! If I were a high flying banker or an office goer then I'm sure the system would have worked perfectly but it was lacking something that I needed. It took me a fair deal of time to figure out what that something was.

And now to the point of this long post. The Getting Things Done® method was wrong for me because the "Things" that I wanted to do were not defined. These "things" that David was trying to sort in such a fantastic way were things that lived in 9-5 time. The "things" that I wanted to sort out were usually crazy Ideas that began their life while I was counting peas: "Wouldn't it be great to have an Open Source Project that counted all the peas in my freezer and geolocated all the farms that the peas came from". These crazy thoughts were not definable, could not be put into lists and could not be thought of as "things". Instead they are stuff. Stuff is more fuzzy, less defined and does not conform to to-do lists and schedules, until now!

This long winded blog post is a way for me to announce a new project. "Getting Stuff Done". This name may spark some lawsuits but for now I'm going to leave it as a codename, so that it gets across the idea behind this project. Its a simple tool that aims to organise lists in a non-standard way, so that they are more human and much more malleable. I have the first screenshot here:


The more well read of you will recognise this as the simple Kontact "Hello World" example. This does mean that the project is in its most infant stage, but each long journey begins with only a single step.

Comments are very welcome ;)

Tuesday, 21 July 2009

And i give you .....

OSM rendering in Marble!

Oh yes, that's right! We now have full OSM rendering. It has been quite a struggle to get to this point but the hard work has really paid off. The results are just beautiful! I'm not just braging about my own code, because as it happens there is a lot of work to do to get the OSM rendering in a pretty way, but instead I'm talking about the experience of loading an OSM file. It looks marvellous! See the video below and notice how precise the positioning of the lines and nodes are with respect to the underlying OSM tiles ( I know this is obvious but it just looks so synchronised! ).

I don't know about you guys but seeing that map rendering, where the data has been collected and modified with a lot of hard work from a lot of people, really gives me a sense of grandeur. Fair play to all the people in Open Street Map, my hat is really off to you guys ;)



Link for those reading this on the planet.

Friday, 17 July 2009

Life Hacks Really Do Work!

Hey all!

As my friend John Layt suggest I'll give you a little recap on what I'm doing. My GSoC project is to implement a nice Open Street Map annotation framework to make the lives of all you mappers a little bit easier! More info can be found on my proposal blog post. The thing that has really been a challenge with this project was the fact that I'm adding support for a QGraphicsItem like API to marble. Little bit hairy at times but its good fun too! This has really come quite far in the last week and you can see quite an exciting example of this in the video below ( planet viewers have to come to my blog because the planet doesn't embed embedded youtube for some reason ).

Starting Monday I brought out a little "life hack" that I used quite a lot in my last year of college. Quit simple, very loosely based on the "Getting Things Done" idea and it can be really effective when you have something that doesn't have a strict system of "This must be done by this time" or "This must be done first". Maybe I might blog about it sometime ;)

With this new life hack in hand I have fixed two bugs, closed one bug, identified the cause of another bug, cleaned up most of my code, made the Marble plugin system more flexible, started implementing default base GeoGraphicsItem classes ( quite similar to the idea of QGrahpicsLineItem being a default implementation of QGraphicsItem ), fixed the problem with the GeoXmlParser that was preventing me from loading OSM files and made my little text editor a damn sight more pretty! Wow that was a mouthful!

Now with that all under my belt I announce this little clip of the results. As you all know a lot of the stuff I was doing is hidden from view, and also a lot of it is very much visible but just being done a different way but I think it looks pretty cool too ;)



(Link for people reading on the planet)

There are some very exciting things planned for the coming week ( and even just today ) so watch this space. I hope you all like my little updates, if any of you would like me to go into any more detail about anything just drop me a line ( comment or email ) and I'm sure I can accommodate you in some way!

Happy Coding!

Tuesday, 14 July 2009

Morning Blog on GeoGraphicsView

Hello again everyone!

I too am one of the lucky people that got the chance to go to Akademy ( or whatever we are calling it these days ) and it was a truly great experience. Apart from being fantastic craic ( its an Irish thing ;) ) I got a lot of work done, or at least a lot of work discussed, and I'm ready for the next phase of my project. The phase of awesomeness!! ... maybe I need to work on the name...

The main problem that I have been faced with is a pretty big one. We are currently implementing a Marble API that is as close to the QGraphicsView as possible ( see my last post for info ). I mentioned that a lot of the stuff has been done before but there were two problems with the current direction of things : 1) there was no real interaction framework or hit tests and 2) we were working with implicit sharing... which is a big NO for a QGraphicsView re-implementation.

Before a week ago I didn't even see this as a problem, but now that I've taken the role of a Guinea Pig implementer of this framework it has been shown in a new light. The problem was that somewhere during the implicit sharing and copying values from references there was an explicit downcast of all classes. This may not be a bad thing all of the time because we adopted a QVariant style system but for plugin developers this made things get very hairy. To make a long story short, if a plugin designer wanted to make a new weird and wacky GeoGraphicsItem they would have to directly edit the sources of the Marble Library to make this happen. Not Good.

So that's what I'm working on right now. If anyone feels like watching marble crash for the fun of it just check out the svn and enable my stuff ( the osmannotation plugin ) and let the fun begin! The joys of CMake and plugins have given me a great sandbox or more importantly kept my crazy code from all you nice people. Hopefully after all this all you third party developers will be able to make a really cool marble plugin with absolutely no effort, so watch this space!