Developer Meetup at C4DI

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. 

Alien Banjos in Space

This year for the 08120 Programming 2 course I'm providing two coursework options. The first, as chosen by a SurveyMonkey poll, is to create a management system for the "Banjos4Hire", the only banjo hire shop in the country. The second option is a game with the title "Alien Banjo Attackers from Space". The gameplay will involve shooting musical notes at invading banjos whilst avoiding the "strum of death". I mentioned on Twitter that I could use some artwork for the game and I got this sent through from Orb 12

Amazing.

Wednesday Open Day with Light Panels

We had another Open Day today. A slightly more select gathering than the last jam-packed one. I showed off my Windows Phone remote controlled coloured light to good effect, and then I went on to mention to folks that, for some reason, I had bought one of these:

It is a whacking great big display panel, like the ones you see on the side of buildings. It is 7.5 inches across and contains 1,024 RGB leds in a 32x32 matrix. I've been playing with light panels for a while, and this one is awesome. 

The only snag is that, unlike the Adafruit Neopixel devices that I'm familiar with, on this one the led's don't remember the colour they've been asked to display. The computer controlling the panel must constantly light rows of leds in turn. repeatedly switching them to the required colour for a while before moving on to the next. If you do this fast enough you get the appearance of a steady image. This is hard work for the controlling computer, one panel would pretty much tie up an Ardunio completely.  But the good news is that there are a couple of really interesting controller chips that I've been looking for a reason to play with which should be able to drive this, and more, panels. 

First up is the Parallax Propellor, which should give me eight parallel processor cores, one of which should be able to drive a single panel. I've found a device on eBay and I'm looking forward to having a play when it arrives.

The other (and much more interesting) device is brand shiny new. It is from XMOS,  a company in Cambridge, and builds on expertise from ARM and Transputer to deliver a multi-cored device which has as its focus high performance, zero latency and total determinacy. In other words you can be sure that you will get processing power when you need it, and you can be absolutely sure how long something will take to complete. This, coupled with the raw power that is on offer would seem to make it perfect for driving these panels.

You can pick up development kits (with a processor, some inputs and outputs and access to the hardware) for around ten pounds from Farnell in the UK. The board looks quite spiffy and if you are into embedded you really should get one to play with I reckon. The XMOS web site makes it really easy to buy the board if you are in the USA, but the UK links are more tricky to track down. You can find it on the Farnell site here.

The funny thing is that I mentioned my ongoing obsession with bright coloured lights and this was seen to be a good thing by folks present at the open day. My ultimate plan, a coffee table with four of these panels in the surface, was actually lauded as a good idea. We shall see.....

A Headphone Amplifier in a Tin

I've been looking at little headphone amplifiers for a while. These are things that do a better job at driving your 'phones than the overworked, made for a price, components you find in most things with headphone outputs. To be fair, the output of my Lovely Lumia 1520 sounds splendid, particularly if I plug it into an amplifier, but as someone with pretensions to High Fidelity (tm), I thought that a little extra amplification might make things even better.

And then I found this on Tindie. I think I'm becoming addicted to Tindie, in that they have lovely stuff and buying from all over the world is very easy. Apart from the pesky import duty thing of course.

I must admit that the packaging had me won over before I looked into the quality of the electronics. The device is packed into an Altoids tin (you can choose your design) and the board is beautifully made and assembled. The total price, including import duty, is well less than a video game, and listening tests have revealed (at least to my ears) a more solid bass and clearer midrange to the sound.

If you are into sound quality, want a bit more volume to your music, or like the idea of having a tin packaged gadget like this, then I reckon they are well worth the money. 

Printing in the air

This is the kind of thing we want to see.....

This is the kind of thing we want to see.....

I found out something kind of interesting today. Turns out that if you print things which are 1 mm above the print surface they don't actually print very well. I'd designed a little plastic lid with mounting pillars and placed them on the base, but i'd left a gap of 1 mm underneath the pillars, so the poor printer tried to print them in the air, with  "hilarious" consequences. 

Thinking about this, it would be great if the design programs displayed shadows because if I'd seen the gap underneath the pillars I could have fixed it straight away.

PInball Arcade for PS4

Real or Fake?

Real or Fake?

I'm quite a fan of pinball. Not very good at it, but quite a fan. I've payed with the Pinball Arcade program on my PS Vita, but today I got a copy for the PS 4. And it is ace. It really works well on the big screen, and the implementation of the Twilight Zone table is really, really, good. I've actually played the real table quite a lot, and the emulation is very faithful. I reckon it is slightly easier than the real deal, but that is not a bad thing as far as I'm concerned.

On a big screen the program looks very good. I'm not sure how much of the rendering  power of the PS4 is actually being used by the game, but it looks very good with faithful reflections of the table design in the ball is it whizzes around,and no hint of slowdown when you get some multiball action. 

The only criticism I can make is that the game sound effects don't sound very good through "proper" speakers. This is more to do with their origins as eight bit samples I suppose, but it does detract a bit from the game. I think a bit of judicious filtering on them to remove the slightly rough sound might be a help. 

But if you are into pinball, and want to try out loads of tables and get something very close to a real experience, then this is a really good bet. 

Open Day Crew

This is the audience from today. You can see that they are all budding students, as the lecture room has filled up from the back...

We had another great audience for the Open Day today. Lots of good questions, free food and drink, and of course we gave away a Raspberry Pi to one lucky winner.

One thing did come out of discussions though and I thought I'd clarify it here. I put a lot of emphasis on programming in the introductory talk that I do. I see this as reasonable, because a lot of Computer Science is the business of telling the computer what to do, and programming is all about that. 

But what I didn't make clear is that you don't need to be able to program before you start our course. We teach you everything from first principles (and in fact the Yellow Book is written that way) and so if you have never programmed before you don't need to worry. 

One of the best parts of my job is saying to students "You must have been coding for a while" and having them reply "No, I only started learning in September..."

Making a quick Batch File

batchFile.PNG

It's not often that I get to show off my Command Prompt smarts. But now and again they are useful. The Command Prompt is the place in Microsoft operating systems where you type, er, commands. In the days of MS-DOS it was the only way that you told the computer what to do and it has survived, mostly unscathed, all the way into Windows 8.1 

Of course, in these days of touch and windows you don't often have to give commands at the console, but every now and then you do, and today I got to show off a trick that I've used for years. We were typing in long commands to start up services in the Microsoft Robotics Framework and I suggested that we make a batch file rather than type everything in each time. You can use the "up arrow trick" (press up arrow to get the previous command) but that doesn't work if you close the command prompt and re-open it, as this clears the command buffer. 

A batch file is simply a sequence of console commands that are stored in a text file and can be executed just by giving the name of the file. It has the language extension ".bat". You can run them from within Windows too just by clicking on them. 

What you can see above is a way that you can take a long and complicated command that you have typed in and convert it into a batch file.  You use a few tricks. First trick:

copy con doit.bat

This connects the console (your keyboard and screen) to a file called doit.bat. Essentially, everything I type from now on will go into this file. 

Second trick:

(press up arrow to get your command)

Remember that I said you can press up arrow to get back things you have previously typed. This works when you are copying into a batch file too. So to my recover my echo command in the above screenshot I just pressed up a few times. Once I had the command on the screen I just had to press Enter to put the text into the batch file. Note that if you want to enter a sequence of commands that you have typed into your batch file you just have to recover each one in turn. 

Final trick:

^Z

This is CTRL+Z. It tells the command prompt you've finished entering stuff into the file and want to return to typing commands. The destination (in this case the file doit.bat) is closed and then you can just run the batch file by giving the name. 

The console is a powerful thing in the command prompt. You can copy things to it (which can gives a behaviour similar to typing a file) and you can copy things from it. You can also do stupid things:

copy con con

This works, I'll leave you to figure out what it does. And how to get out of it. 

Mastering the Crimp Tool

crimptool.PNG

I spent some (oh, alright, quite a lot) of today fiddling with hardware, as is my wont. I've been buying cables with ready fitted pins and sockets on them, but last week I thought that it might be useful if I could crimp my own pins, so to speak. So I bought a crimp tool like this one.

The theory is/was that I could make up custom cables of just the right length and with just the right arrangement of plugs and sockets on each end to fit in what ever I was building. And it sort of works. There's a very useful howto on the Hobbytronics web site and by the end of the day I was able to make pretty good connections, which is nice.

Having said that, you can get ready made cables of ebay for around 3 pounds each, which give you forty connections, and so I think I'll just get this out for special occasions. It's one thing to be able to use it, but another to have to do it a lot. 

Lego Movie. Everything. Is. Awesome.

Lego Movie.PNG

Went to see the Lego movie today. Of course, as a kid I had some Lego, although I was more of a Meccano man to be honest. But I've always liked the stuff, even more so when they produce amazing kits like the VW Camper Van

So of course we went to see the film. It really is going beyond product placement .The product is the movie. And it was produced by one of the largest toy manufacturers in the world. And the shops are full of toys built around (and from) it. But it is still crazy great. 

There is enough going on at all levels to make it interesting. Plenty of smart one-liners and cultural references. Loads of stuff being blown up. Some properly sad moments and a proper ending that I reckon really works. 

Go see. And probably buy a kit or two as well....

Kinect for Windows V2

Kinect For Windows.PNG

Oooh. Good news. Just got our notification email that connects us to the Kinect for Windows Developer preview.  I'm a big fan of the Kinect sensor. I even wrote a book about it. 

(do you think that plug is subtle enough).

I saw the new sensor in action a while back and it is awesome. It can't actually read the time off your watch, but it can tell you which wrist you are wearing it on. And it can apparently also read your heartbeat. Which might make it a good zombie/vampire detector I suppose. 

Anyhoo, we should get ordering details soon so that we can get our hot little hands on the hardware.  Such excitement. 

A Map of the Floating City

His album art is usually pretty special too.

His album art is usually pretty special too.

Thomas Dolby is one of my favorite artists. He's done sterling production work with Prefab Sprout and other bands, and every now and then he makes an album. And unfortunately, nothing much happens after that. Such is the life of a recording artist. 

Anyhoo, a couple of years ago he made another one, without telling me. I've only just found it.  A Map of the Floating City is splendid stuff. Some songs are poignant, some silly, and all different. He has some high powered collaborators too, including Imogen Heap, Mark Knopfler and Eddie Reader. You should definitely seek it out, if only to listen to The Toad Lickers

Tech@Hull Launch Event

Untitled

Andre Hitchman is one of our second year students. With some big ideas. One of them is Tech@Hull. He launched it this evening at C4DI. Tech@Hull aims to bring students and business together to encourage entrepreneurship and innovation. Which are things that I'm quite keen on too.

The launch event was great, plenty of people, food, drink and discussion. Jon Moss of C4DI urged us all to get out of our comfort zone and go and talk to other folks, something I've always been spectacularly bad at, but I did my best.

If you are a student in Hull you'd be bonkers to miss out on this opportunity. Tech@Hull will be running lots of events where local developers and students can meet up, learn from each other and make plans together. You must, must, must be involved in this. 

Andre has set up a web site for the group. It's under construction at the moment but you can sign up for news of when it goes live here

C# Code Snippets on Demand

Snippets.PNG

This is kind of neat. Rather than have to jump out of your IDE to find samples of how to use language and API features, you can just put the question into a comment and hit tab. 

It is a bit hit and miss at the moment (and doesn't know anything about XNA) but it would be a very interesting future development of my favourite place to work.... Have a play yourself here

Global Gamejam Hull Wrap Up

It's taken me a while to get round to doing the final wrap up on the amazing Global Gamejam Hull 2014. I've been hunting down videos and pictures and I've still not got quite a full set, but I've got details of the top six finalists, and pictures of all the prize winners. So here goes. 

This is the awesome "Spooky Elephant - Beard Bandit Collective" which picked up the award for "Most Ambitious Failure". Oh well. 

This is the awesome "Spooky Elephant - Beard Bandit Collective" which picked up the award for "Most Ambitious Failure". Oh well. 

This is 121 Gigabits with their "Best Presentation" award.  Their game is superbly presented, and you can even download and play it. 

This is 121 Gigabits with their "Best Presentation" award.  Their game is superbly presented, and you can even download and play it. 

The Chips 4 Rent team came home with "Best Aesthetics"

The Chips 4 Rent team came home with "Best Aesthetics"

The Disolveable Mammals  and their prizes for  "Most Ambitious Working Game". 

The Disolveable Mammals  and their prizes for  "Most Ambitious Working Game". 

This is what remained of "Grown Up Games" by the end of the competition, and his "Last Man Standing" award.

This is what remained of "Grown Up Games" by the end of the competition, and his "Last Man Standing" award.

This is the sound man from 'Put a const on it' with his richly deserved "Best Audio" award.

This is the sound man from 'Put a const on it' with his richly deserved "Best Audio" award.

The "Stick Pixels" team were down for a while, but never out. So they were awarded "Best Comeback" for finishing with something awesome.

The "Stick Pixels" team were down for a while, but never out. So they were awarded "Best Comeback" for finishing with something awesome.

These folks made their own trees from code. This earned "Put a const on it"  the award for "Procedural Awesomeness"

These folks made their own trees from code. This earned "Put a const on it"  the award for "Procedural Awesomeness"

And so we come to the winners. The judges had a tough time here. Lots of different takes on the theme, lots of seriously good stuff. In the end, in reverse order, they awarded the top three prizes as follows:

Third Place - Disolvable Mammals

Third Place - Disolvable Mammals

These guys came third with a game that gave you a chance to experience life as a cat and see everything through feline eyes. With novel "scrabble powered" leap sensor movement control and sofas you could jump on, a great piece of gaming awesomeness. 

Second place - Put a Const on It

Second place - Put a Const on It

These folks put you in a godly position, planting and managing an algorithmically produced forest that grows and decays over time. With haunting music that changed with the gameplay and the ever present threat of winter, this made for some absorbing play. 

First Place - 121 Gigabits

First Place - 121 Gigabits

These folks took the concept of identity and made it into a retro-styled 2 player game where the object was to find yourself, and your opponent and then blow them away. With retro themed graphics and gameplay and a multitude of different modes this polished production looked ready for the shops and gained the team, a stalwart crew of Three Thing Veterans, First Place.  You can download and play their game, just head over to their Raspberry Pi powered web site here.

Of course, it's not really about the winning, it's about what you learn by taking part. This is particularly true of my experience, where I've learned that relying on hardware that you haven't tested is a particularly bad plan. It was great to see so many returnees, it was also great to see all the games that didn't make the top six. If you want to find out more you can find the judging videos here. If your video isn't online yet, then please be patient as I'll be transcoding and uploading them in the next few days. If you want to add your own videos, please do, and add the tag globalgamejamhull2014 so we can all find them.

Thanks again to Platform Expo for organising everything, Hull College for a fantastic venue, Microsoft, Jagex and Sony for providing fantastic judges and prizes. 

And see you all next year.