Linux Voice Interview with Raspberry Pi Education Team

Back in February at the Raspberry Jamboree, my colleagues Carrie AnneClive and I were interviewed by the Linux Voice team about Raspberry Pi‘s views on computing education.

Linux Voice is a fantastic new free software magazine which was funded by a crowdfunding campaign on Indiegogo at the end of last year. I backed it as soon as I heard about it, and I eagerly anticipated the arrival of its first issue. We’re now five issues in and I’ve loved every one – the guys are doing a great job. I highly recommend a subscription!

From the beginning they committed to making all their articles available for free after up to nine months from publishing, released with a Creative Commons licence. Some material has been published early, such as the brilliant piece on Grace Hopper from Issue 3. Luckily for us, the interview they conducted with us, which featured in Issue 2, was released in full earlier this month, so I’m pleased to be able to share it now!

Go read it – Linux Voice: Education, Education, Education

The interview was also posted on

Fix Ubuntu

Today I saw featured on Hacker News. I assumed it was to be yet another rant about why you should use distro X instead of Ubuntu, and how Canonical are ruining it. I was half-right. I clicked the link to see what it was about and found a large box containing a list of Linux commands, with the instruction to copy and paste the block in to your Terminal and hit enter:

The instructions were followed with “Enjoy your privacy” and an explanation of what the code does underneath. It explained that it is designed to turn off the remote search (so your Dash searches aren’t sent to the internet) and other Dash scopes, to uninstall Amazon ads built in to Ubuntu, and block connections to Ubuntu’s ad server “just in case”.

It also explained what the problem they’re trying to solve is – that with default settings in Ubuntu, each search you type in the Dash (to search your computer for files and apps), your searches are sent to third parties. It expressed that Ubuntu should protect its users’ privacy by default.

As an Ubuntu user (and advocate), I had mixed feelings about this. I do believe there are genuinely useful purposes for the Dash as a desktop based web search tool – as developers strive to invent and innovate for the future of technology, the most obvious move at the moment is the move towards an integration of desktop and the web. The lenses in Unity have potential uses – for example hitting a YouTube icon from the Dash searching for videos could be useful (see other examples on askubuntu), and the technology is still young and yet to be proven – it’s probably used by a very small percentage of Ubuntu users right now. One way Ubuntu have aimed to demonstrate its potential is to include an Amazon search – and enable it by default. Searching ‘Moby Dick’ and seeing results where you can buy the book – naïvely looking at this, one might “that’s cool” but most people would find this intrusive and pushy – particularly with it being Amazon (see Richard Stallman’s notes on Amazon). I did disable this feature once I considered that every search keystroke I typed in to the Dash was actually sent to Ubuntu’s server and on to third party ones such as Amazon. For me, if I wanted this feature, it should be opt-in on both being enabled at all, and per use (i.e. clicking a particular lens icon).

I don’t have a problem with Ubuntu’s development process, nor with Canonical’s directive, nor with third party partnerships in general – but these should be options for users, and I believe better choices could have been made when implementing demonstrative default lenses. Ubuntu and Canonical are getting a lot of stick from the open source community at the moment for things like this, and should be doing their best to preserve their reputation as being a user-friendly Linux distribution. Privacy issues and general careless manipulations of user data should be avoided.

I still believe Ubuntu to be the best all-round Linux distro – and will continue to use, recommend and advocate it. But I will be keeping an eye on things like this and disabling invasive defaults.

So it looks like the author of this page has similar views to mine. He’s not just whining. I imagine he wants to continue to use Ubuntu the way he wants and feels safe – and encouraging others to do the same.

Manchester Raspberry Jam Continued

I’ve now hosted four Raspberry Jams in Manchester. I posted about the first and second, here’s a summary of what went on at III & IV.

The August Manchester Raspberry Jam kicked off when Kat opened up the Madlab and I gave an opening talk about what had been going on in the news in the Raspberry Pi community, featuring announcements like Raspbian and the Gertboard, and showed examples of what people have been doing with their Pis – including Freaky Clown ruinning Metasploit (a pen testing tool) to the Pi and my personal favourite, Pi in the Sky – the first Raspberry Pi to visit near space. I then got people to write down what they wanted to learn, or what they needed help with, and then what they would be able to help others with, and tried to pair or group people together to work on things.

Kat and Alex got straight on with playing Quake on the big TV, which was pretty cool. Meanwhile visiting newcomer Simon – who was shocked when the taxi driver who shuttled him from the station said he’d never heard of the supposedly world famous Madlab – got out his lego-built Pi/breadboard stand and demonstrated his Scratch/Python/GPIO hybrid project which involved a program built in Scratch which would run through the traffic lights sequence on screen when the space bar was pressed, and also feed the same sequence through to the LEDs on his breadboard. Amazing stuff  – if you’re interested in this sort of thing drop him a line on twitter, or take a look at the questions he’s posted to the Raspberry Pi forums to see if you can help.

We also had Paul helping his daughter built a game in Scratch, we saw a Motorola Atrix dock powered by the Pi, we even VNC’d in to a Pi using an Android app on my mobile phone and then from my Nexus 7 tablet! Around 5pm once people had helped my carry my 3 monitors, TV, laptop, netbook and bag full of cables back to my flat, we headed to the pub where we stayed for several hours, and where Simon kept his pink lego Pi kit out on the table. During this time we witnessed HacMan move in to their new hackspace premises just a couple of doors down from Madlab. The phrase “How many geeks does it take to network a hackspace?” was brought up and probably tweeted, as we watched them run a patch cable across the outside wall from Madlab over the café next door. The following day I got my Pi out at home (I never get to play at the Jam – I just end up running around making sure everything’s running smoothly, and in any case all my kit gets handed out and all the screens tend to be in use) and installed OpenElec on a spare SD Card (keeping Raspbian on another), which runs XBMC – a fantastic media centre which I easily managed to use to stream high definition video over the local network from my NAS. I tested it out with X-Men: First Class (720p) which played no problem – looks great on monitor or big TV! I’ve since installed the XBMC Android app on my phone and tablet and I can select something to watch on either device and tell it to play on the TV, then use as a remote control. The future is here.

A month later and we’re back in Madlab for Manchester Raspberry Jam IV – again I begin with a recap of the news: Revision 2.0, Made In the UK and Make Your Own PiOS, and move on to skill share pairing! As usual we get a couple of people who need help setting up their SD card so I volunteered to show them get them up and running, and everybody else just picks something and starts hacking! Simon fires up his pink lego kit again (and eventually ends up blowing it up somehow…), and a newcomer called Ian started work on a project which would allow the Pi to work as Time Machine to back up his Mac!

Later on in the morning a 10 year old kid came up to me and asked if I could teach him some Python (I’d put that up as a sharable skill on the wall) – I said I’d love to, and asked what he wanted to learn, and he said anything to get him started. His Dad sat next to us an observed, saying it reminded him of learning BASIC when he was at school. I started with printing a string, then storing a string in a variable, printing it from its stored value, then storing integers. We then looked at the difference between assignment (x = 1) and comparison (x == 1), and the first idea that came to mind for implementing some of this in a program was checking an entered PIN number against a set value. While showing him the syntax of things like if statements, I let the kid type away, letting him make mistakes if I thought he would learn from the error messages, sometimes asking him what he thought it would do (he would often spot a flaw immediately), sometimes just reminding him to go on to a new line or whatever. But he was doing great. Whenever we completed adding a new feature, I’d ask him what we could do next, so at this point he’d say, “Why don’t we give them 3 chances to get the PIN right?” and we’d look at how to implement that. We’d start by copying the code that asked for the PIN the first time, and sticking it in the ‘else’, so the user would be prompted a second time if (and only if) they got it wrong the first time.

Once we had that working, I introduced the while loop, and explained a simple use case whereby it would count the number of attempts made, and keep running over the same code in the loop until the number of attempts reached 3. Then while adding feedback “Your card is locked” if they were incorrect 3 times, I noted that we could make the number of tries a variable, so that we could change it once at the top and not everywhere in the code. He got that. Then we made it tell you how many attempts you had remaining, by subtracting the number of attempts from the number of attempts allowed. And then he said he thought if he learned any more he might forget what I’d taught him, so he wanted to stop and practise that at home. I emailed the file to his Dad and suggested he might want to try adding something that calculates the balance if they withdrew money.

We finished with a short presentation from a young lad called Barney, who had built a Morse code device with his Dad – you type in a word on the keyboard and the LED on the breadboard flashed according to the Morse codes for the letters in that word. Brilliant! Then we cleared up (and hauled the vast array of monitors to my flat again) and went on to the pub. Everyone always has great fun at the Jams, and everyone’s got something different they want to get out of it. Some just come and take notes and listen to people, some bring their kids to get them excited about computers, some bring crazy contraptions they hope to get working on the Pi with the support of the group, some – like me – just like being there! It’s a great atmosphere and it’s fantastic to see kids and adults playing away, learning and having fun! I don’t generally get much chance to do much myself, but it’s always nice to pass on some python knowledge and help out where possible – and to witness amazing things happening all around me! The Pi is a wonder and we all thank the foundation for all their work in getting it to where it is – and look forward to see where it goes next! Thanks again also to Madlab for hosting the events. I really don’t know how we’d do this if the space wasn’t available.

Unity Doesn’t Suck

Like a lot of other Ubuntu users, when I installed Ubuntu 10.10 I hated the new desktop environment Unity. I wanted to get back to the Gnome desktop with the ‘Applications | Places | System’ menu where I knew where things were, I didn’t feel comfortable with the silly oversized icons on the left, and I didn’t know where any settings were. I really didn’t give it time to grow on me, I just changed back to Gnome 2.

While working at Magma, using Fedora 16, I grew to like Gnome 3, but started having problems with something so Adrian suggested I try Cinnamon, a project from the Linux Mint distro. I loved it at the time, and started using it over Gnome 2 on my personal Ubuntu machines. However one night at a user group, on the topic of the release of Ubuntu 12.04 LTS Jon Spriggs demonstrated Unity, saying he thought it was great and the features he showed were really simple and useful. He pointed out that you can change the width of the Unity bar and commented that he preferred having a bar on the side of the screen, not at the top or bottom, because he used a widescreen monitor and he had more spare free space there (though I must say it takes up too much on my netbook which only spans 1024 pixels in width). Hit the “super key” (windows key) and you get a search/explorer box – start typing the name of a file or application and it starts suggesting things (hit enter at any point and you open the top result, or use the arrow keys to navigate), hit the alt key and you get a little command prompt called HUD (Head Up Display), pin app icons to the Unity bar, drag them to where you want them to stay. Hold down the super key and you get a list of shortcuts.


Personally I’m a huge fan of workspaces, and I usually have a particular setup of windows strategically placed for ease of access and avoiding constant alt-tabbing (with multiple monitors I have commonly paired applications in the same workspace) – currently I’m sporting a 3×3 grid where I start with my browser and twitter client in the middle and work my way out. Unfortunately because Unity’s management of workspaces in multiple display setups keeps sets of displays together (so a 3×3 grid on a 2 monitor setup is 9 workspaces, not 18), which means you can’t move what’s on your right monitor to your left monitor and drag the next window along to the right monitor, you only move sets of 2 displays at a time (or however many monitors you have). Some would see this as a problem (some even such a problem they would stop using Unity), others quite like them being tied together. I find the fact it’s quite easy to move windows across workspaces quite useful (Ctrl + Alt + direction moves workspace – add Alt to that and you take the current window with you).

Also, for someone who is not used to workspaces (or just your arrangement of them), it can be incredibly difficult for a friend or colleague to navigate between your open applications if the layout for them is in your head (I remember Adrian describing my setup as being “like a Rubik’s Cube”) – but with Unity you click the icon in the Unity bar and it takes you to the open instance of that application, wherever it is! I noticed how powerful this is when working with someone a couple of months ago, and one day he came over to my machine, took over the keyboard and tried to alt-tab between code and browser, and it must have seemed to him that there were no other open applications running, because that was the only one in the alt-tab switcher. He had to ask me how to get to the browser. I was a Cinnamon user at the time, but that day I had fallen back to Gnome 2 to overcome a bug with Netbeans. The next day I had resolved the Netbeans issue and reverted to Cinnamon – he did the same thing – tried alt-tab and remember he didn’t know how to use my computer, and asked me to move it again. The following day I was using Unity (I don’t remember why, exactly – it was before I was converted by Jon) – but I remember the same thing happening – he just saw the Chrome icon, clicked it and said “well, that’s easier”.

I still see people on forums and on twitter complaining, or even just blindly sticking to their original opinion – “Unity sucks”. To these people I say give it a try. But as my friend Mike said to me recently on this topic:

So true.

Manchester Raspberry Jam

I’ve now run two Raspberry Pi events in Manchester, affectionately known as the Raspberry Jam. The first in June, which was the first Raspberry Jam in the UK, and which featured on the Raspberry Pi Foundation’s website where we gained recognition for getting people together to share ideas, demonstrate what we’ve been doing with the Pi, and getting kids interested in building games and writing code as well as inspiring people all over the UK (and the world) to set up their own groups. Continuing the success of the Jam, our second event took place a month later in July, which was equally enjoyable. The July event took place on the same day as the first Cambridge Raspberry Jam – a huge event attended by 300 people and hosted by the Raspberry Pi Foundation at Cambridge University. A number of the attendees from the first Manchester Jam went along to the Cambridge for this, so we look forward to hearing from them about what went on there.

I opened the first event with an introductory talk about my experience with the various computer systems in use in education as I progressed through school. This covered me playing on Granny’s Garden on the BBC Micro and word processing on an Acorn Computer before moving on to Windows 95 PCs, battling with this ‘Internet‘ thing we’d begun to hear about – wondering what the word ‘Yahoo‘ that often appeared was supposed to mean, and my first delivered tech solution at age 11 involving a series of coloured floppy disks.

I kicked things off by initialising a barcamp-style talks grid, and encouraged people to give talks or demos – we had a Python tutorial, talks on Linux for beginners and 3D printing a RasPi case, and a demo of a Raspberry Pi / Arduino hybrid implementation of the game ‘Operation‘ using a live-size manikin! Talks were optional and there was plenty else going on alongside this – with people demonstrating the likes of XBMC on the Pi, chatter over the distributions in use, people learning Python, and most notably Dan Hett from Manchester Game Jam teaching 13 year old girl geek Amy how to get started building games using Scratch – before long she had drawn up some characters for her game, implemented them as sprites in her Pacman clone and started using the drag-and-drop constructs in Scratch to control the actions in the game – it was really impressive how she was thinking like a professional developer – understanding the problems that arose with laying out the behaviour of the objects and their interactions during gameplay. Not only did she understand what these problems were and why they were problems, but she actually thought hard about how she could overcome them, without giving up on it being too difficult. Within a couple of hours or so she had built a Pacman clone with her own drawings as characters and built another game involving flying bats – which I noticed she had instructed to keep track of high scores!

Amy showed me how she had done all this in Scratch (I have not used this before) and it looked to me like lines of programming code – just with each construct in different coloured blocks. I told her if she could read that she would find Python no problem so I asked her if she wanted to watch the Python tutorial – she watched it quietly for about 15 mins, then walked off when the adults started debating over Python 2.7 vs. Python 3.2, and just went back to her Pi and started typing away. She’d remembered all the things shown in the tutorial, and tried to recreate the examples shown. With a little help from me (syntax only) she managed to build a command line based ‘game’ making use of user input and randomly generated numbers. These kids have serious potential. When given the opportunity, they make awesome stuff.

Once we packed everything away I got together with the guys from the Blackpool Linux User Group and we began recording for the Full Circle Podcast – generally covering the events of the day, discussing the potential of the Pi and the future of such events.

The second event was much like the first, except I introduced an idea I saw at another event I attended at MadLab recently – LAMP & Beyond – run by Jeremy of PHPNW / Magma Digital, whereby attendees were asked to contribute post-it notes of skills they had to share and skills they wanted to attain – with the intention of matching groups of people up with a person to lead them in learning a new skill, be it language, development tool, source control package or the latest hipster technology! This worked really well and everyone got a lot out of it. With the Raspberry Jam I hoped this would allow beginners to get started, others to share ideas and help each other with a leg-up without having to figure everything out for themselves and overcome initial issues and get on with something cool. A few people wanted to learn Python so I tutored a few people through some basic constructs of the language compared to what they’re used to in their own languages. Some people needed an OS image loaded on to their SD cards so we had a few people helping them with that, others were making games again (Amy returned to continue with her projects) and some others had the Pi running on an old serial terminal! Towards the end I finally got chance to do something for myself – I got my Pi talking to a breadboard using the PyPi GPIO library! We figured out which pins were which and hooked up an LED with a resistor and controlled its on/off status with a Python command – followed by a few functions (let_there_be_light() and such) which could be called to turn the light on or have it flash. A pretty cool start to external hardware controlled by the Pi. The interesting thing about this ability is that it would be possible to program the Pi to do something and have it do it without use of an external display – just listen to events happen and do things according to the state of those inputs – anything from controlling water sprinkler systems based on soil moisture to … well, anything!

I think it’s fair to say that everyone who comes to one of these events finds something out about the Pi they didn’t know before – the skills sharing nature of the Jam is to be praised and I would encourage anyone of any age or experience to attend one – or start their own!

Update: a few pictures from Jams I & II:

Photos courtesy of Les Pounder [flickr] and Dan Hett