Mozilla Raspberry Jam and the Monsters under the bed!

The MozSpace in central London played host to a Raspberry Jam on Thursday evening 20 Sep 2012. For the uninitiated, that’s an event where owners of a Raspberry Pi get together with others to display their current projects and to explore new ideas. A Rasberry Pi is a small computer without extras – it’s like buying a car chassis with an engine but without the wheels, the seats, and controls!

Our first thoughts when we heard about the Raspberry Pi (RPI) was that anybody who wanted a small computer would be better off spending their money on one which was complete and usable. However, that opinion changed when we heard about the General Purpose Input Output (GPIO). The GPIO connector (top left in this photo) allows the RPI to interact with external devices, either sending instructions, receiving data, or both. And that opens up a world of possibilities.

We don’t have a Raspberry Pi yet, but we will get one.

Now, consider for a moment the AR Drone. That’s an expensive toy – a quadro-copter – which you can fly over wifi by using an iPhone. We don’t have one of those either, but we’ve been lucky enough to try them out on more than one occasion. The beauty of the AR Drone is that as you fly it with your iPhone, the video from the drone’s on board camera is streamed to your phone.

Do you see where this is going? Imagine if you could build a device around an RPI which you could then “pilot” using your mobile phone? Could be an Android phone, doesn’t have to be an iPhone! That was the spark that helped us come up with the idea for building semi autonomous robots which we call . . .

Monsters Under The Bed

And, if we had a 3D printer like a MakerBot  - no, we don’t have one of them either, but we are reliably informed on the grapevine that Santa is bringing us one if we’re good this year, then we would be able to make most of the component parts of our robot monsters.

So equipped with an RPI, a MakerBot, a box of bits and pieces (there are a lot of bits and pieces at London Hackspace and similar organisations) and some pictures in our head of the Mars Rover wearing a cyclist’s helmet cam. . .

. . . we think that we can find enough Raspberry Jammers to help us make progress with Monsters Under The Bed (or MutB for short). Don’t hold your breath! We don’t have the money, the time, nor the right kit to do this. We simply have the creativity and some elementary skills in hacking software and hacking hardware. A whole lot of things have to happen in the right place, at the right time, and in the right sequence.

But if we can build one, then we can build many. Imagine this -  one MutB commander leads an army of clone MutBs who seek and destroy all the alien monsters under your bed!

Dorothy Stringer School Hackday

The Dorothy Stringer School in Brighton ran it’s first ever hackday on Friday 6 July 2012.

Eh? You don’t know what a hackday is?

OK! According to the dictionary “hack” is a word which has 16 possible meanings and the one which is closest in meaning to the one we want (in software developer circles) is this one:

  • hack – to devise or modify (a computer program), usually skillfully.

And that’s a pretty good definition, but it’s not quite the whole picture. The verb “to hack” means to change software and/or hardware and/or anything really (whether skilfully or not) in order to make something new, or to make the old thing better than it was before. Normally, devs use the verb “to hack” to mean brainstorming and designing and writing a bit of software.

Hack is also a noun, and in this case we could describe our chosen project as “a hack”. The kids were bemused when the standard question was asked . . .

“what’s the name of your hack?”

. . . which to a dev means . . .

“what name have you given to your project or your application?”

Anyway, today’s task at the Dorothy Stringer School Hackday was to come up with an idea for a piece of software, to brainstorm it, to design it, to write it and to implement it. And whilst I have done many hackdays, and longer hackathons (they can last up to 60 hours, with or without sleep) this was the first time these pupils had ever encountered the concept, and we had just a 5 hour window of opportunity in which to deliver something.

We chose a broad theme which we called “community” and bravely allowed the pupils to organise themselves into teams of their own choice and to assign roles. Thankfully they followed our suggestions and divided themselves up into teams of 4 or 5, and assigned team members various roles including project manager, lead developer and chief designer. Each team then had a short time to come up with a “community related idea” and to decide whether it was going to be a software package for a computer or a web app or a mobile app.

In line with regular hackdays run in real life businesses, the teams were invited to pitch an outline of their fledgling ideas to the whole group of 100 at the start of the day. Most chose not to, but it did lay the foundation for the “pitching to the judges” which did take place later that afternoon.

We left the main hall and headed to the ICT labs, each accommodating around 20 to 30 pupils. With the available resources, a lot of the work was about brainstorming and design, and much of the early discussion was about “wireframing”.

At this stage it became clear that the budding designers amongst us were going to provide representations of their ideas in PowerPoint or in PhotoShop or in Paint, and a handful of teams with budding developers threw themselves in at the deep end and actually wrote some code (in a Text Editor).

There is no need for us to worry about precise definitions of designer and developer, though the customary split says that designers work on “front end” and make sure that the whole arrangement is both usable and good looking, whilst developers work on the “back end” and get your app to actually work on your computer (or other device). A team of adults (plus 10 year old  Mark Brannigan from CFK Books) had been assembled from business and from commerce and were on hand to help, and somebody very kindly affixed a label calling us “the experts”. And although we all denied that we were “experts” the label endured.

Moreover, we (the blushing experts) all agreed that there is an overlap in the roles of designers and developers (a lot of people can do both) and that in addition to these job specific skills, one of the greatest skills that designers and developers can posses is “communication”. I can design stuff and I can develop stuff. My work demonstrates that I am more a dev than a designer. By knowing the basics of each discipline devs and designers can work together. In the real world they have to cooperate and have to  understand each others’ needs, hence social skills are critical to effective team working. Every mainstream app or software package is put together by teams of people and not by an individual.

Our teams took that on board and also quickly grasped the concept that “wireframing” a hack is a bit like “storyboarding” a film or “essay planning” an essay,

Watching the teams with the Text Editors open on the screen (in this case Notepad++ turned out to be the editor of choice and Chrome the browser of choice) the “experts” worked with a number of teams who were actually able to craft meaningful first steps in HTML. Ten year old Mark proved to be very popular as an honorary expert and he spent a lot of his time showing 13 and 14 year olds how to get started with “pure” coding. It’s hard to say who enjoyed the experience more as both tutor and tutored were thrilled to see every step unfold before them, first in Notepad++ and then in the browser.

The only restriction placed upon the pupils had been to “keep it legal” and some teams took advantage of what was in effect carte blanche to do anything you like (as long as it’s legal) and they went on to develop wild ideas with crazy names and concepts. These things would never have seen the light of day when I was a teacher, and probably wouldn’t happen even now. At least not on a regular school day!

And that reflects a valuable lesson which came out of the message delivered by our expert from Google. Creativity is the key. In the right situation you should let your mind run riot and do crazy stuff. He compared it to being very young and playing with Lego. Make it, break it, make something different, break that, make the first thing again, break a bit off, add on a different bit, only make it better this time. Building apps is like building with Lego. You can make some weird stuff! Whether other people like what you’ve built is another question. But get enough projects on the go, and one of them will turn up trumps, it will look right, it will work correctly, and others will say “I want one of those!”

Each of the “experts” found themselves deeply involved in work in different rooms, with hardly a moment to spare, and hence my own experiences of the day are largely limited to the 7 teams I had in room D12. The hacks I saw included:

You Twit a web app – a mash up of YouTube and Twitter
Sports Day App a mobile app – a multi device/multi player athletics game
Community Board a web app – a closed portal for membership organisations like a Youth Football Team or a Computer Games Club
iTourist a web app – an open portal for small or large tourist attractions like Madame Tussauds or Stratford-upon-Avon
Name redacted a mobile app – a well laid out multi level game where the player can kill enemies
Virtual Tour
a mobile app – an information service providing tailored visitor information designed for a small screen
Near U a web app – an open portal giving details of places of interest based on clever geometry and post codes

As the day drew to an end the teams realised that no apps would be completed fully (given the time available) and that the important thing now was to prepare something to showcase. In the true spirit of regular hackdays that can mean a healthy dose of fudge and a mock up of what you had wanted to show. Couple that with a succinct and sometimes witty bit of dialogue and then the final choice you normally have to make is to go with the classic methods of either:

  • blind them with science; or
  • dazzle them with diamonds

Almost without exception, the girls flatly turned down the opportunities to speak in front of the room, and that (together with some reluctance amongst some boys) led me to think that a little more encouragement and a little help with presentation skills would benefit every pupil. After all, we can all benefit from good social skills, and not confine that purely to the field of software design and development.

The five presentations we saw were well thought out and delivered with sincerity. There were prizes for all, graded according to merit, and a copy of our book was included in the award for the winning team. It was very hard to decide between the top two candidates as each team had devoted extraordinary efforts to their hack. In the end, it came down to the speaking skills of a team which had also worked well together. The three lads had taken “the stage” with confidence and had addressed the audience (not the white board) in a manner which was both clear and convincing. It was evident that the team included both a scientist and a diamond merchant and I had seen how the dev had prepared the HTML and how the designer had made the image files. By a mere half of one point, the award went to Near U.

This photograph shows the Near U hack. On the left hand screen, the dev has coded everything by hand using HTML and has prepared two files. The HTML includes a form and a submit button which drives the second stage of the app. On the right hand screen, you can see that the browser has pulled in the (second) HTML file. All pages (all two of them) include a coloured banner at the top and the bottom. Although it’s hard to see in this photo, the centre of the top banner has a logo (navy blue on light blue) made by the designer, and the map is intended to represent the data imported from the form on the first page.

What amazed me is that this dev took to coding like a duck to water. Having no prior knowledge, and apparently being just another ordinary pupil, he displayed this hidden talent in abundance today. Earlier, when I had talked about skills and passions and the needs of the world I hadn’t expected to see such a clear demonstration of skills and passions being combined like this. I am genuinely impressed and it is my hope that this young man can take this further and help satisfy the needs of the world.

If he can, then he will become one of the few who can truly achieve the outcome which Aristotle promoted:

“consider your skills, your passions and the needs of the world;
where they intersect; therein lies your calling.”
Footnote

For future reference (and “witty dialogue” for presentations) you should be aware that devs love pictures of kittens. Whenever something is lacking in a pitch, the normal solution is to chuck in a picture of a kitten and even hardened, grown men will start cooing!

London Hackathon

The weekend of 29 Jun 2012 to 1 Jul 2012 saw the CFK Books team at the London Hackathon run by Markco Media.

It was quite a challenge being surrounded by so many clever people, and 10 year old Mark made the most of the opportunity to make new friends.

Here he is presenting his latest prototype of The Ace Card Game! That’s the material that we’re curently working on for Workbook 2.

the 20 questions game


workbook 1 – the 20 questions game

Have you ever played the children’s game 20 questions? Think of an animal – you know the rest! Now imagine if you could program your own computer to play the game! And include a system which is able to capture every animal that you could ever imagine?

  • It’s so simple, a 10 year old could do it.
  • 12 units about using HTML and PHP
  • 12 appendices with the complete code
  • Cross platform – Windows – Mac – Linux
  • Based entirely on free, open-source software
  • Extention tasks for the more advanced

The book is available to order directly from the publishers.

If you have the book already and you want a copy of the ready made CSV file, have a look in The Den! We’d rather you didn’t! Remember, you’re supposed to be making your own CSV file!

Digital Shoreditch

Coding For Kids Books will be at Digital Shoreditch Inspire Day which is taking place on Monday 21 May 2012. Come along and see a whole host of organisations who are there to show you what’s happening in the field of education and beyond.

We have Workbook 1 back from the printers and will have some examples on display at the show! Come and hear what we have to say. We’re on stage at 2.00pm on Monday.

The official release date for Workbook 1 is 21 May 2012.

In the meantime, the team has started preparing Workbook 2. It’s due for release in July 2012 and you’ll be able to work on it over the summer. That also means that your teachers might be able to have a look see as well!

Managing Folders and Files

Once you have XAMPP installed and running on your computer, your browser will be able find your files under localhost. Visit the Hardware and Software report if you need to know more about installing the right tools. Under XAMPP, the default address for localhost is . . .

http://localhost/xampp/splash.php

That link will give you an error if XAMPP is not installed yet.

If you already have XAMPP running on your machine, and then you click on the link above your browser should take you from this web site to the heart of your own computer and you should find yourself looking at something like this . . .

Once that happens, you know you have XAMPP up and running.

The next thing you need to do is keep control of your projects. We do that by keeping each project inside it’s own folder. And periodically, when we have progressed a bit, we copy the files to a newer folder and keep working from there. Then, if anything goes horribly wrong, we can go back to an earlier version of our project and start working (again) from the last known good version.

This is the way that we do simple version control. If you know any devs, they will tell you to use GIT because it’s a bit of software that does version control in a different and more professional way. When you are more advanced, you can try out GIT. For now, we recommend that you use folders for version control. It’s simple and it’s easy to understand.

You will have to keep your projects in the xampp work folder below the htdocs folder below the main xampp folder, because that is where localhost expects to find them!

It’s normal to build and test everything on your own computer first. Then, if you want to, you can upload your web apps to your own web site. Don’t upload all the earlier versions, just upload the one that works! And make sure that the folder structure on your web site follows the pattern that you used on your computer from the xampp work folder downwards.

Hardware and Software

We have worked on a variety of computer systems and most of the time we use the set up shown below, running either on a Windows XP machine or on a Mac under Lion. That doesn’t mean that you have to do the same! There are plenty of alternatives out there which will work, so feel free to mix and match.

Windows

Mac

Linux

Browser

Firefox

Safari

Firefox

Text Editor

Crimson Editor

Smultron

Vim

Web server

XAMPP

XAMPP

XAMPP

You will need a web server. Your own computer (if it has 512Mb RAM or more) is perfectly capable of running a web server and we recommend that you download XAMPP from Sourceforge by clicking on the link above. Sourceforge is a respected provider of quality, virus free, software for the dev community and for others.

A quick search of the web will lead you to the alternative web servers for your OS if that’s what you want.

Windows

Mac

Linux

Alternative web server

WAMP

MAMP

LAMP

We prefer using XAMPP (some call it ZAMP and some call it EX-AMP) because it provides us with a uniform user experience across all platforms. XAMPP stands for

X

Cross platform

A

Apache the core “web server” application which understands HTML etc

M

mySQL a powerful tool for managing relational databases

P

PHP a popular programming language (from about 1999 onwards)

P

PERL a popular programming language (until about 2001)

Many professional web servers out there on the internet, run on Apache. The professionals may use fully packaged collections like XAMPP (because it contains Apache) or they may just use a collection of the exact bits and pieces they want.

The team that built XAMPP did it as a free open source project, and have not updated it since 2005. By all means run XAMPP on your own computer as a learning tool. But, take advice before trying to use it as a DIY system and installing it on your own bit of the internet. In any case, if you’re like us at CFK Books, you’ll be renting your web space from a bigger organisation, and they will be providing the back end services (like Apache) to make your whole site work.

That means that if you have a personal web site, and you know how to FTP your files, you can simply plonk the right files in the right folder, and (assuming you wrote it properly) your PHP and HTML should work fine.

Have a look at Managing Folders and Files to see how to keep track of the work that you do on your own computer.

Why?

The team at CFK Books includes adult coders, junior coders and ex teachers. And between us, we hope to provide you with a selection of projects which you can really get your teeth into!

The overriding objective is to get more kids to give coding a try. Some will like it, and some won’t, but we know that by getting them started at an early age that some of them will take to it like a duck to water. That will enable the right kids with the right talents to take this further and to really make a difference.

In the UK we have one big advantage over the rest of the world. We “invented” the English language. And coding is done in English – well, sort of! Even if coding languages do look challenging at first, they are actually in English! Now, imagine if you were in France, or Russia, or China, and you had to learn to code?

This is an opportunity which the UK government should seize now, before it’s too late. If the economy is in a mess, what could a contingent of highly sophisticated UK coders do about it? Build worthy solutions which export markets would actually want to buy. But first, we need more coders.

How can you learn to code? By giving it a try. It’s like riding a bike. You can only really learn by doing it. It’s our job to give you the chance to do just that!