Last night we had a Developer Meetup at C4DI. I really like these, they give you a chance to find out what other folks do with their computers.
First up was Jon Polling, speaking on behalf of the Ruby programming language. I didn't know much about Ruby, but I know quite a bit more now. It looks like a great way to build applications, particularly the way that you can reuse code by importing Ruby "gems" that have been written by other folk. It looks like it would be perfect for writing server based stuff, although there are also toolkits for Android and ios. The syntax of the language looks interesting too, the way that you can integrate frameworks was very impressive. For me personally it looks like a solution to a problem I don't have at the moment, but if I ever have to write a hosted solution I'll be taking a closer look.
Next up was Steve Bowman talking about Continuous Integration. This was another very interesting talk. To understand what it was about you have to first think about how people write software.
If there are several people working together they will have central code repository which holds the latest version of all the code being written. If Ethel wants to work on the menu system she will check out the code for that module, make some changes, test them, and then check her code back in again.
Every now and then a complete new version of the system is built from the code and tested. Sometimes this build process or one of the tests will fail and "break the build". Breaking the build by checking in dodgy code is seen as a bad thing, and usually involves the guilty person having to buy everyone donuts for the next week.
The problem with this model is that there can be quite a delay between the breaking changes being checked in and the fault being detected. If you only build a new version every day or so it can take a while to notice that something is broken and if there have been a large number of changes in that time it can take a while to figure out the cause of the problem.
Continuous integration involves you having a build server which is constantly scanning your code base for changes, rebuilding your solution and testing each time new content arrives. Faulty code is detected very quickly, the person checking in the faulty code (along with the rest of the team) will get an error report within minutes.
Steve gave a demonstration of the system in action, and explained that the build server doesn't have to be one of your own computers, you can actually do all your building in the cloud by renting some space and spinning your own build server there. This also allows the build process to scale if you have a very large system and lots of developers.
Apparently people like Google, Amazon and Facebook do this kind of thing a lot. It is common practice to create and even deploy their latest code with bits of the user interface "switched off". Then, when all your tests in the field turn out OK you can switch on the new features.
You can get started with Continuous Integration for free. Steve recommended the TeamCity platform which is free for up to 20 projects. He also made the point that the approach works very well even for an individual developer. It looks very interesting, I think I'll have a go with this.
The third talk of the evening was by John Connolly. This was all about the awesome work that is going on between C4DI and Hull City Council. For me this was a follow on from a Meetup in 2012 when Adam Jennison and Benjamin Welby talked about plans to make available the huge amounts of data held by the council. It seems that things have moved on a bit since them. C4DI and the Council are now working together on the "City Engine" which will provide a central point of access to all this lovely data. We are so going to have to run some hackathons with this stuff, stay tuned for a proper Three Thing Thing event built around making the most of open data.
Finally Mike said a quick word about our Hardware Meetup next week. We are going to be firing up some Arduinos and seeing what we can do with them. Stay tuned for more details.
To me this all looks like the "Perfect Storm of Fun". We've got C4DI and Platform Expo providing a great environment for startups from games to data mining. We've got Hull City of Culture in 2017 to aim at, with the potential for all kinds of interesting things, and we've got the council making available tons of data to that can be combined to make ground breaking applications and services. Truly a very interesting time to be in Hull.