Evil geniuses and world domination are 2 of our goals... we also like Dr Who

Archive for the ‘ Programming ’ Category

Micro:bit – inital thoughts

no comment
BBC micro:bit

BBC micro:bit

Well the BBC have recently announced a new initiative to get children to code so  take a second  to think how would you accomplish this?

The BBC have made their own small computer called the micro:bit which comes with a number of sensors built-in, can be run from a couple of batteries and more importantly will be given away to year 7 children


So far this all sounds good. So how does one code for this device?

Well, all you have to do is attach the micro:bit to your iPad, android tablet or your PC and use the IDE app to write code before publishing the finished code to the micro:bit.

Sorry, say that bit again?

Well, all you have to do is attach the micro:bit to your iPad, android tablet or your PC and use the IDE app to write code before publishing the finished code to the micro:bit.

That’s right, in order to teach children how to code, you connect this device up to another computer to publish some code for it

So what er actually have here, is not a computer but something more akin to an Arduino?

Here’s the problem I have with this. If the whole concept of the micro:bit is that it is something that children can learn to program with, then the concept is flawed. It’s flawed because in order to use the micro:bit you must have another computer to program it on. So little Billy who doesn’t have a smartphone, and whose single parent mother is working hard to put food on the table,  not iPads in their hand is shit out of luck will be somewhat disadvantaged.

Oh, but he could develop at school right? Well, when I was at school there was 1 BBC micro for a class of children.  This is assuming the infrastructure is there, that it is available for Billy to use after hours and that is really only an hour or two Monday to Friday.

Yeah, but don’t kids get given iPads at school these days?

Do they? I don’t seem much evidence of cash-strapped LEA’s doing this. It’s entirely possible that LEA’s with bigger budgets might do this, but this can lead to a two-tiered education for out children.

But let’s for a second assume that your LEA has bottomless pockets and have rolled out IPads to all students. Are we sure we want to teach kids to program but Only within an Apple ecosystem? for that matter the IDE and platform that is developed by Microsoft. but more on that later.

How about smartphones? loads of kids have smartphones right?

sure a lot of kids do have smartphones and it is a problem that schools are having a lot of problems with – some teachers will tell you that smartphones offer too much of a distraction while others love the concept of BYOD (bring your own device) in a classroom environment.

It’s true that smartphone uptake amongst year 7 is probably very high, but I would think that it’s more likely that year 7 smartphone usage will be using apps like Crossy road, Angry Birds and Snapchat. I very much doubt that your average year 7 will happily whip out their phone and start coding for micro:bit. How many of you here have written more than a text on a mobile?

The problem I have with BYOD in the classroom is that there is no standard platform. which means that some of the kids with zippier, newer phones will have an advantage over kids with a  slower phone or an older platform. that is assuming that your platform is supported in the first place.

This program has the same flaw as 3D TV – you need an accompanying piece of not necessarily commonplace technology to use it. The Raspberry  Pi costs £25  requires a monitor a keyboard and a mouse. The monitor can be a TV and the mouse and keyboard can be obtained relatively cheaply, say £5 bought online? so you can be computing for £30

So far the cost of entry with the raspberry pi is£5 what’s the cost of entry for the micro:bit. What’s the cheapest computer I could get to run on this? surprise it’s a raspberry PI, so the cost of entry to use the micro:bit is £30!

so discounting the micro:bit, I can already be programming in Scratch or Python or Java on Raspberry PI with micro:bit there will be a web-based IDE which hasn’t been publicised much though word is that there will be a drag and drop solution that will then download to the micro:bit

Another problem this is a free giveaway to year 7 pupils FOR ONE YEAR ONLY!

which means that should the program be deemed a failure, then the micro:bit will disappear faster than the crowd at an opening night party for a Broadway play when the first bad review comes in,

Should it be a success, then it becomes a purchase for either the school or for parents to take care of and right now we still don’t know the price. If the micro bit costs £10 then the initial outlay to get a development platform is £40!

Remember when I mentioned that Microsoft are behind the hardware and software? Here’s another point to consider.  The main selling point of the micro:bit is that it is a way of doing the “internet of things” in a way that school children can understand.  The problem is there is already hardware and software platforms that do this called Arduino . It has already been used in numerous projects and both the hardware and software is open source.

Micro:bit currently isn’t although this will happen, but just not yet.

This means there’s now yet another platform offering IoT functionality that further muddies the water. I am sure that industry professionals will continue to use existing platforms which seems to be mostly Arduino meaning that unless there are follow-up classes for pupils to learn about these other platforms they will enter industry unable to make simple IOT projects – which kind of defeats the object of the micro:bit in the first place right?

Right now, apart from the board, there are scant details on how this will all work. I don’t want to be a negative Nelly about this, but the raspberry PI is an easier sell than a small piece of circuit board.

I had a chat with Mike, this is what he said


–Mike’s Prediction —

I predict that – unfortunately – the micro:bit will be a massive failure.  Children that are interested in coding will already be working with technologies such as the Pi.  Those that had little interest in embedded computing will do the minimum required to pass the course, and it will then sit in a drawer.  I think that the official programming language will do little, as there will be little to no commercial uptake of the micro:bit – as technology companies won’t see the first practitioners reach the job market for a few years, and when they do you can almost guarantee that the embedded computing platforms of tomorrow won’t be the micro:bit.  I think that to improve adoption there needs to be a more engaged attitude from pupils, and I have the opinion that most of the students today care about angry birds, Facebook and not much more than that.  I also believe that this project will need a wide variety of projects that can be done using the technology.  Ideally, I believe that these technologies projects should support and be supportive of other subject areas.  For example: how about combining the embedded micro:bit along with a drama course to provide automatic sound and lighting queues.  Now – this is a silly example : the computer that you are running to program the micro:bit is more powerful than the micro:bit itself, but the idea that you can trigger events based on a simple interface to play sound effects or run lighting etc from a small box might be a project to get the principles across to pupils.  I think that however such joined up thinking, combining multiple disciplines will be difficult for schools to implement and I, therefore, predict that it will become a boring and inaccessible technology failure.




Project:Snail Tales update

no comment

For those of you in the know, for the past couple of years I have been working on an animated short film. It’s a long process to make a short animation and with lots of assets to keep track of. I use a production chart to keep tabs on everything. here is a snapshot of the production chart as it stands:

Now the eagle-eyed amongst you will notice that it’s a spreadsheet In the past I have tutted and rolled my eyes when people have complained that when they use a spreadsheet to catalog their DVD collection, they couldn’t per pixel scroll, it would snap to the nearest cell.  And then a patiently explain that a spreadsheet is not designed to catalog a collection of DVD’s, A spreadsheet is really good a totaling columns of numbers and/or applying formulae on them. A DVD catalog is best done with a database.

Yes I know I should use a Database to store the production chart. It is a more effective way to store this information. Each scene is a record that can have a series of fields applied to them. we could poll the database for complete scenes and get an accurate percentage of how much of the film is animated or rendered  or needs work(etc)

thing is I am, to my own surprise, a little bit old school. I learnt to breakdown sound using a mixing desk, and large sheets of paper, jogging through soundtracks, listening for the pops and whistles and decoding them into the phonemes that made up the characters speech. and this is a digital equivalent of the old school way of creating a production chart – It’s a digital analogue of an Analogue er.. analogue

today , kids examine wave forms or use software tools to provide easier breakdowns, and whilst I like them and do use them a fair bit, sometimes , I think that younger animators, fresh into the field, are lacking some of these old school skills.

part of my old school curmudgeon-ness is the creation of dope sheets and production charts. there was something exciting about transferring your sound breakdown to a dopesheet ready to animate, it was a prelude to the storm of creation that leads to the initial pencil tests. I loved the way the Production charts would fill up with checks and notes becoming more full as the deadline approached.

working on this project has been great fun. the biggest problem has been scheduling the time to make the animation and learning to use the software. Part of that has been learning some of the limitations of the software and the creation of new software tools to allow me to work with the software the way I want to work with it. I was using synfig stage last night and it struck me I have talked a lot about it at Oggcamp and other tech shows without really showing it. I started using it and it worked straight away (more or less) and so showing it working didn’t feel important because it actually was working. I suppose I should make a video demonstrating the tool and the problem it solves.

Priority though is on the film. Right now with about 16  scenes left to animate there’s a definite feeling its starting to come together as a film and part of me will be glad to get it finished, to move on to the next thing. part of me also misses my old school beginnings.  and I hope maybe one day in the future, I will do a proper old school 2D short using an actual pencil on real paper.


Snail Tales – Building an Animatic on Azure

no comment

In the previous post I talked about setting up Jenkins – I have also been able to apply the same instructions to an Azure hosted linux sever.

The instructions are identical – except that the ports need to be connected

Configure ports for Jenkins

Configure ports for Jenkins

Using the endpoint configuration I was able to map the 8080 to port 80.  I needed to set up the security so that anonymous users could see the job status but would be unable to run or add jobs.
I create a user and set up the security like this :
Configure Jenkins security

Configure Jenkins security

Snail Tales – Building an Animatic

no comment

I’m going to start this blog post by saying : I’m not an animator.  I know nothing about animation.  Well that’s not strictly true – I did learn something about animation from this tutorial video :

Read more..

Dr Who Companion App

no comment

For the 50th anniversary of Doctor Who, I thought I might have a go at writing a Doctor Who app for Android.  My plan is to write something that will provide useful information to viewers watching Doctor Who episodes using the microphone to capture a audio fingerprint of the current episode, and use that to identify and provide episode information and trivia.

I started examining what would be needed to make a usable interface.  Primarily to look at the development tools, and also to try to figure out a strategy regarding art assets.  The big challenge is that Android supports multiple screen sizes, at multiple resolution densities.  This makes a “design and forget” approach to development difficult.  Using ADT it is possible to see how the screens will look in most devices – the following screen shots were taken from my Motorolla Defy mini.  Hopefully, once Dave has had a look, it should start to be a bit better as an application.

Read more..

Cross platform development

no comment

Dave was working on a version of the Hoo on Who episode randomiser.  The randomiser so far been a thorn in our collective side, as it offers a series of challenges to us as developers.

  • The application needs to store all available DVD’s
  • The application needs to work on an Apple Macbook (the main’workhorse’ of David Hooie)
  • The application needs to be developed using available tools
  • Mike develops on Ubuntu Linux
  • Dave develops on Windows
  • We only have a mac mini for testing.

To start with I attempted to set up Titanium Studio.  My thoughts were that the application could be developed as an HTML application, using a SQLite database for the storage, html for presentation and Java script for the functionality.  Titanium Studio was terribly hard to use – primarily because it was being leveraged primarily as a mobile solution.

Read more..

Python, Python packaging and why I still dislike macs

no comment

Python Logo

I have been developing a little application in python.

“oooh!” I hear you cry, “Get you using free and open source development languages to develop a cross platform application. Was it a liberating, life changing experience?”

Well yes. Yes it was. And no as well

Here’s the yes, the pros of development. The plan was to develop a small application to run on the Mac Mini we use here in the bunker as a DVD player.  Having spent some time reading up on Cocoa and straining my eyes trying to read the display ( its connected to the TV via a scart composite cable so the desktop display isn’t great)  I decided to develop the application on my Windows Desktop using python. The rational being that it is cross platform, if I can write it to work in a windows environment, it should work in a Mac environment right?

I installed a portable python and Boa constructor onto my trusty USB Key based development studio ( more on this another time) and in an afternoon I had managed to write my first ever python WX app !

booting up the Linux laptop I installed python and wx in a short period of time (Ubuntu software centre is the gift that keeps on giving! ) and yup, the application ran fine

So far,  so good, I have developed in one platform and deployed to another. now the next step. compile it into a stand alone exe that can run in Mac OS. And this is where we come to the cons

Mac Software centre

Mac OS has a software centre for getting software.  I wanted to be certain that I had the latest version of python. so I typed it in the search field. After sifting through downloads of Monty Python’s flying circus shows and films I found it. all for the princely sum of £1.99

really? £1.99 for software that’s free and easily download-able from pythons own website after a cursory search on google? Why anyone would think that Apple where a money grubbing organisation trying to fleece owners by charging for free content?

Installing WX

next up was installing wx. A relatively painless experience. The was an installer on their website that allowed the installation of the package and I was finally able to test the application in the Mac OS and it worked! Kind of.  Because of font differences. one of the buttons needed to be enlarged and moved – cue 20 minutes of putting values in, running the module , stopping the module, changing values etc just to more-or-less replicate what showed up first time on windows and Linux.

Installing py2app

In order to convert the python script into a stand alone app  was going to use py2app which makes creating app files easy. This is the point where I lost the best part of a day struggling with  a number of issues, chief among them is the fact that as a Windows/Linux user I am used to right clicking a link in my web browser and saving links. to right click on mac you hold down ctr (yeah its so intuitive to me too) Apparently Mighty mouse which are 4 button mice do actually have a right click functionality,  but it needs to be set up from the finder by assigning the secondary click function to the right button- don’t panic, its not as scary as it sounds, but you got to question why such simple design paradigms have to be defined. When i plug a new mouse into my windows or Linux box, I don’t have then tell the OS what buttons do what It works out of the box.

installing easyinstall

To install Py2app I was going to have to install another python package called easyinstall. This is the point where I lost a lot of time on the documentation. which , while it showed me what to type in terms of setting it up. I was typing the commands into a python shell window and trying to run it as a python module with no luck until Mike told me that it was terminal prompts. Just a  line explaining that this was to be run from a terminal would have saved me 4 hours of frustration trying to get easy install er… installed

installing app2exe (again)

However, once I had installed easy install, installing py2app was a dream.  its a lot easier to use terminal commands when you actually know they are terminal commands!

making the application

I then started setting up the solution to create the app. Py2app basically takes a number of arguments, the first is the location of the main.py file, followed by resources. in this case the application icon. The problem here was my USB Key. On Mac OS it appears with the title “NO NAME” and while py2app could parse the space in the location of the initial .py file, apparently for the icon file it didn’t recognise it. Cue renaming of drive to replace spaces with underscores

This time I wan the py2app applet and SUCCESS!!!! a program appeared in my Release folder in my user profile. After 2 evenings of frustration, weeping and much gnashing of teeth, I had built my first Python  Mac OS application!

Lets run it to see how it works.

And it crashed. Something to do with different versions of WX!!!! AGGGGGGGHHHHH!!!!


ho hum back to the drawing board.