Thursday, 27 March 2014

Continuous integration

One of the tricky tasks with creating opensource software is building opensource software. I'm a big believer in continuous integration. This is the idea that everytime the code is changed, a build is performed by a build server and all the tests are run. Typically the server will notify people who checked in code and failed the build.

For a while now, I've been using Jenkins at home to build my projects. I've also been using it at work. This is a great which a massive feature list due to it's plugin architecture. It's been pretty useful at work where I have a lot more resources to host it on, but at home it was always a struggle to fund machines need for building things.

Since moving to using VM's on my server at home, I've been able to build my projects without to much problem and make sure they are fully tested. Successful builds get uploaded to a public section of drop box. This allows users to download nightly builds that have been fully tested.

Some of my projects such as the AtomicParsley fork or itunes remote server, need windows to build them. This is where I really start to run into problems. I'd have to pay for another windows license to run windows in a VM (A least thats my understanding). This would have to be done for each windows VM. Since they are not used for much else, this seems a waste of money.

It was for this reason that I was very happy to discover AppVeyor. This is a continuous integration service that can build windows software. It's a shame that it can't build linux software as well, but their are other service providers that can. I can also build Linux software on my home Jenkins system.

To test out AppVeyour I connected it to my bitbucket project for my AtomicParsley fork and set up the build. I ported the build of AtomicParsley over to cmake a while ago, which made building it really easy. My build script looks like this:

 mkdir build  
 cd build  
 cmake ..  

Imaging my surprise when it built. Next step was to configure the build artifacts. These are the things that are collected after the build has finished. So in this case, the AtomicParsley.exe executable. I shall have to look into publishing he builds as the next step.

I've also been looking into cloud solutions for building Linux software codeship looks promising and their support team have been very good. I'm testing this using my MediaManager project which is a much more complicated project. I'll blog more on this when I get things working.....

Monday, 24 March 2014

Playing RIFT again

I've been playing on RIFT again most nights over the last week. It's been good to be back playing! I think RIFT is a great game, it has an amazing amount of things a player can do and even better it's now free to play.

I used to pay a monthly fee to play rift, but now it's supported by optional in game purshases. This is great. It's also available from steam. I like this because all my games come from one  place. Just makes things easier.

Playing RIFT, I remember how fun it is, and how much their us to keep you entertained. It still suffers from the reason I stopped playing, which is a lack of other players. It is not as bad as it was, I guess been free more people are playing. I would also guess though that people don't commit as much time as when they were paying monthly.

Their is much todo in rift like dungeons, adventures, chronicles, raids, war zones, crafting, fishing and much more. Their are also rifts though out the land that keep things going.

People looking to pass the time should play RIFT, no excuse not to now that it's free! Just needs more players which is a shame.

Tuesday, 18 March 2014


So I've taken the steps to setup a twitter account @shield007. I figured it was time to stop avoiding it a figure out how it all works. I plan to tweet updates about the projects I'm working on and anything that is happening. So please follow me if your interested in the latest developments.