Unicode operators for semantically correct programming


Why do most programming languages use the / character when we have a perfectly good ÷ symbol? Similarly, why use != instead of ≠? Or => rather than →? The obvious answer is that the humble keyboard usually only has around 100 keys - and most humans have a hard time remembering where thousands of alternate characters are. Some programming fonts attempt to get around this with ligatures. That allows the user to type <= but have the font display ≤ Are there any modern programming languages whic…

Continue reading →

Easy APIs Without Authentication


A pet cat typing on a computer keyboard.

This is a curated list of APIs which do not require usernames, passwords, access tokens, signing, accept-headers, or anything more complicated than sticking a URL in a browser. (This is an update to my post from two years ago.) When I introduce people to the concept of using RESTful APIs, they immediately get how powerful it is to retrieve information from the Internet and then manipulate it in software. I used to give Twitter and Flickr as examples - they're both fairly well known and have…

Continue reading →

3D Printed, Arduino Powered, Educational, Open Source, Micro-Robots!


Last week I was invited to attend a product launch by BQ. They're a small company based out of Spain who create some curiously innovative products - including smartphones which natively run Cyanogen. I'm particularly looking forward to reviewing their Ubuntu Tablet later in the year. The thing which really caught my eye was Zowi (pronounced Zoë). It looks like this: And it dances like this: https://shkspr.mobi/blog/wp-content/uploads/2016/02/zowi.mp4 Ok, but what is it? Here's what you …

Continue reading →

WordPress Archive Calendar Widget


One of the most addicting aspects of Open Source software is the ability to scratch one's own itches. I've been blogging since 2004 - and while I'd never mistake longevity for expertise - I do take a certain pride in letting my readers know that I've spent over a decade bashing out words. So, I decided to build a simple widget which would display my posting history in a calendar style. And now, it's time to release it to the world! It's available on GitHub and the official WordPress plugin…

Continue reading →

Idiot's Guide To Getting Started with Raspberry Pi's GPIO Pins


The idiot in question being... me! It's been ages since I did any real electronics. Most of my work involves software and pre-assembled bits of kit. I thought that it was time I reacquainted myself with the joys of electricity :-) Because I'm fundamentally lazy, I purchased the all-in-one Raspberry Pi 2 kit from Vilros. Lots of LEDs, some buttons, a nice case, all the cables, resistors, and all sorts of bits and bobs. Including a breadboard! What's A Breadboard? I remember - from…

Continue reading →

Overlapping Animated GIFs


Just a couple of silly experiments on a Sunday afternoon. I think it's beautiful to overly animated GIFs on top of one another. If the topmost GIF has a transparent background it becomes hypnotic to see the synchronisity which appears to develop - akin to listening to Dark Side of the Moon while the Wizard of Oz is on the TV. The background and foreground have differing periods of motion, which gives a rather pleasing effect. It's also possible to overlay GIFs to use as sprites. In this…

Continue reading →

Pair Programing At The Code Club


Code Club Logo.

Running a Code Club sometimes means thinking quickly on your feet. I recently started a new Code Club at work. We thought we had everything set up perfectly when disaster struck. We went in to our assigned room half an hour before the club started and began to set up. Of the eleven computers we needed, only three had mice! Nicola - my co-educator - frantically rushed around the building looking for spare pointing devices. I started switching the machines on. Half of them were unplugged. So,…

Continue reading →

Wanted! Simple APIs Without Authentication


Scrap of JSON which doesn't say much.

As some of you may know, I'm writing a series of short stories to help young people learn how to code. One of the things I wanted to do was introduce the concept of using RESTful APIs. It's so powerful to show people that they can retrieve information from the Internet and then manipulate it in software. Originally, I had wanted to use Twitter and Flickr as examples - they're both fairly well known and have interesting content. The only problem is that both require authentication. I'm an…

Continue reading →

Code Club Lessons - The Checklist


Somehow, simultaneously, all 10 children in my CodeClub shoot their hands up. "Terence! Terence! Why doesn't this work? "Help! My bird isn't flapping!" "What do I press to set this variable?" I am run off my feet. I dash from workstation to workstation, troubleshooting the problems. In every case, my response is the same. "Did you follow the instructions on the sheet?" I say. "YES!" Comes the howl of protestation. "Even this one where it tells you to click on cat before making the changes?"…

Continue reading →

Python Pals and the Letter Logjam


Logo of the Python programming language.

This is the second of my "Python Pals" short stories. They're designed to be solve-it-yourself puzzle stories to help kids learn the basics of programming. All feedback welcome! The Python Pals Write A Wrong Poppy's mother, Ada, was not happy. "I don't care about that," she shouted down the phone, "Why am I always the one who has to pick up the pieces?" She carried on ranting. Penny and Poppy were sat in the lounge. Even though the TV volume was quite high, they could still hear snatches…

Continue reading →

Time To Resurrect The Byte Brothers?


I'm currently getting involved in the Coding For Kids scene. I'm setting up a workshop in my local library to teach kids programming - specifically, the MIT language Scratch. I've been left slightly dissatisfied with the unstructured nature of the Scratch teaching materials. While it's quite fun to teach a cat to dance - it doesn't seem to be building up to anything. I'm also working with AppsForGood - it's a project run in secondary schools which aims to get students to research, design, and …

Continue reading →