Sean's Tech and Writing Blog
17 October 2014
I'm pleased to say that you can now download the examples from Scratch Programming in Easy Steps for free in the Pi Store on the Raspberry Pi. You can find them filed under Tutorials there. I've also included the PDF sampler from the book and some of my 10-block Scratch demo cards.
I hope that this will make it easier for readers to download and experiment with the example files, and will also introduce some new readers to the book.
The process of submitting to the store was fairly easy, although it took me a while to work out the installation process. To submit to the store, you upload a zip file containing your files, and you have to specify which file will open when somebody clicks the Pi Store's launch button. For projects like mine, this is tricky because it's really a collection of Scratch programs, not a single game to run. I had planned to use 'readme.txt' for the start file, but that didn't work because there's currently a bug in the store where it sets text files to be executable. While there are workarounds (such as writing a bash script that removes the executable status on your text file), the simplest solution is to open a PDF at launch instead. That also gave me an opportunity to design something that looks a bit friendlier when somebody opens it.
I'll be interested to see how many people these files reach through the store. The Pi Store could be a great way to get new software and ideas to other Raspberry Pi fans.
09 October 2014
Blood Swept Lands and Seas of Red is an installation at the Tower of London to commemorate the 100th anniversary of the First World War. It fills the moat of the Tower with 888,246 ceramic poppies, each of which represents a British military death in the war.
Last week, I was pleased to be able to spend the morning as one of the volunteers assembling and planting the poppies in the moat. The installation is a beautiful tribute to the lives lost during the war, and a powerful act of remembrance. It was touching to see mementoes left by members of the public in memory of relatives they had lost in the war, but probably never known. As I walked around the Tower after my shift, I spoke to a few members of the public who asked me questions about it, and I had a sense that many people were moved by the installation.
The last poppy will be planted on 11 November, and the installation will then be gradually disassembled. You can buy one of the poppies, with proceeds being divided among six service charities.
Here are some photos I took on the day. By showing the poppies up close, I hope it helps to give a sense of scale to the installation. It looks spectacular from the walkway around the tower, but getting up close really brings home just how many poppies there are, and how many people it represents.
It was a wonderful experience to contribute to this unique installation, which draws upon poppies designed by Paul Cummins, a setting by stage designer Tom Piper, and contributions from thousands of staff and volunteers. Thank you to the Tower of London and the team behind this project for giving me the opportunity to be part of it, and for looking after us all on the day.
25 September 2014
One of the biggest challenges that organisations face is finding and identifying the right talent, so I'm pleased to announce the publication of a book that helps to address that problem. The Interviewer's Pocketbook is a compact guide for hiring managers, showing how they can plan for and conduct successful recruitment interviews. A successful interview is one in which you can identify the right person for the job, and point to evidence that shows the candidate is best suited to the role. Too many interviews rely on gut instinct because there is little formal training for many interviewers, especially in small businesses, so this quick guide provides some tips to enable you to better differentiate candidates and hire with confidence.
The book was originally written by John Townsend in 1987 and updated by him in 1999. I updated this edition to reflect changes in equality legislation and business culture, and to focus exclusively on recruitment interviews. (The previous editions also covered other internal communications situations that required one to one meetings.)
For more information, including the table of contents, see my page for the Interviewer's Pocketbook here. I'll update it with a free sample in due course, and will let you know on the blog here when it' live.
The book is published by Management Pocketbooks and is part of their popular series that is often used in large companies for internal training. The book is also available through book stores and I've posted some links to where you can buy the book here.
I have a limited number of copies available for review in the UK, so please contact me if you're interested. If you know someone who might be interested in this book, please do share this blog post or the book page with them. Every share, tweet, comment and review is very much appreciated!
23 September 2014
The Raspberry Pi Foundation updated the Raspbian software the week before last. The good news is that Minecraft is now preinstalled in Raspbian, so you can start playing it, and more importantly programming it in Python, straight away.
However, it installs into a new location, so you might need to update any programs you've written so they can find the Minecraft Raspberry Pi API. Here's the code you need to get Minecraft working again:
mc = minecraft.Minecraft.create()
mc.postToChat("Welcome to Minecraft!")
The important line is the second one - the API is now found at this location. The rest of this code posts a message to Minecraft to show it's working.
If you're a Minecraft fan, try out my Minecraft Maze Maker program!
29 August 2014
If you follow me on Twitter, you might know that I'm still updating my travel photography gallery. The latest galleries are China, San Francisco, Blackpool (including Dr Who in the illuminations), and Hot Air Ballooning.
Here are a couple of samples. Click them to go through to the full galleries. You can browse the full gallery here.
30 July 2014
The team behind the Scratch programming language has released ScratchJr for the iPad, following a successful Kickstarter campaign which I was pleased to support with a small donation. ScratchJr is aimed at younger children, aged 5 to 7 years old, and has a simplified interface and set of blocks for making scripts. It has some great looking graphics, and the blocks can be used to create some surprisingly sophisticated effects. The app can be used to make stories with different scenes (a new feature in ScratchJr), and simple games too.
Our nieces and nephews are already experienced iPad users, so I'm confident that the interface will present no challenge at all to young children. They quickly learn what the icons mean and happily explore what they do.
Here are three scripts you can use to make an arcade game in ScratchJr:
To understand how that program works, and get an overview of the new app, see my review of ScratchJr on the iPad, including how to make an arcade game. If you're a fan of ScratchJr's older cousin Scratch, check out the bonus resources from my book Scratch Programming in Easy Steps.
28 July 2014
At this month's Londroid Meetup at Skills Matter, there was a chance for developers to learn more about how to create successful apps for Google Glass. It presented an opportunity to see the devices, but most importantly, a chance to hear from Google representatives about what Google has learned about making Glass apps through trial and error. Senior developer advocates Hoi Lam and Timothy Jordan gave talks, sharing their favourite apps and best practice using Google Glass.
Here are the key takeaways I noted:
- Know your techs. There are three ways you can develop Glass apps. You will be able to use the upcoming Android Wear notifications, which will push notifications from your Android phone to your Google Glass. You can use the Google Mirror API if you have a web service to deliver that into Google Glass with minimal changes. Or you can use the Google GDK (Glass Development Kit), which adds some Glass-specific features to Android, including voice triggers and gestures. The Mirror API can enable you to implement your app more quickly, but it means output is pulled from the cloud. It's best used when it will feel intuitive to the user if there is a delay in getting information, such as in a searching application. The GDK is suitable when you need an app to work offline, need a real-time response, or need deeper hardware integration.
- Design around user intent. Although I'm talking about applications here, Glassware, as they call it, isn't like a phone or a tablet app. Users won't expect to open an app and then do something. Instead, you should design around their intent and cut the time from their expression of that to you delivering a result. For example, a tablet user might open a mapping app and then search for directions. A Google Glass user would just ask for directions.
- Design for Glass. App developers are experienced at porting from "one rectangle to another", but Google Glass isn't just a smaller rectangle. It's so different to existing mobile platforms, that you need to rethink the experience you provide. Jordan suggested thinking about what it is you always wanted to do with your services that you can now do with Google Glass, and then focus on that one feature. Wordlens, for example, provides hands-free translation of signs using the camera, leaving your hands free for maps and baggage. Augmedix enables doctors to look up medical information without turning away from the patient, and enables them to build stronger rapport and better study the patient's condition.
- Don't get in the way. Google's vision for Glass is that it should not interrupt the user and take them out of the moment. Lam had a great example of how he's been using Google Glass to photograph his daughter while playing with her. He can look at her all the time and use both hands to guide her on the climbing frame, but can capture that moment using Google Glass. Google's aim is that the device should enhance living in the moment, rather than pulling people out of it. As a result, users should be able to ignore your Glassware without any penalty, and it shouldn't require them to take action.
- Be relevant. Google Glass isn't designed to provide all the information, all the time, just what's most relevant now. Think about how you can use contexts like the time of day and the location to provide relevant information to the user when they need it. For example, it would be great if a shopping list app presented a reminder just as you're passing the shop, Jordan suggested. Because of the need to focus on what's relevant now, you can't just port your mobile apps across and expect to end up with something usable.
- Avoid the unexpected. One of Google's guidelines is that you shouldn't surprise the user in a way they don't want. This probably applies to every platform, but it's especially important for Glass, because the nature of the device means that unpleasant surprises would feel particularly intrusive. Nobody wants to see cabbage adverts in their glasses at 3.30am. Jordan presented CNN as a good example of managing expectations. When the software is configured, it makes it clear to the user how many alerts they will see and when they're likely to see them.
- Build for users. Jordan said that Google had tried building some applications that didn't work, and advised against building something just because it seems cool and takes advantage of the technology. Instead, you should focus on a problem that people have and help them to solve it. Again, this might seem like something that applies to every platform, but it's still a good filter to put your idea through before developing it. The idea of a facial recognition app came up that would tell you who somebody was when you met them again, having forgotten their name from your previous encounter. That seems like a cool idea, but it would get in the way of the real social interaction. In practice, I think it would be pretty hard to use without somebody knowing it was being used on them, which would be a particularly graceless way to socialise. (Facial recognition apps are currently not allowed on Google Glass in any case).
- Be wary of head gestures. They can be a cool way to control Google Glass, but people lack fine motor movements, so they're not good where precision is required, including in scrolling.
- Make it glanceable. Jordan presented two different designs of a running app, both of which showed the steps taken and the percentage of the run completed. One of the pics had a photographic backdrop showing some running shoes. When the room was polled on which design they preferred, it was evenly split. The screen with the shoes in, though, took longer to glance at, eye-tracking studies had shown. The eye is distracted by irrelevant information and graphics, and when you're running, you can't take in information as quickly. Keep the design simple, and think about what the user really needs. During the run, they need coaching support, not a complete data set.
- Expect design delay. Plan to spend time iterating on the user experience. Until you've tried it, you won't know what works effectively, so allocate plenty of time to experiment with this new interface.
It's early days for Google Glass, and there was a lot of excitement in the room just seeing the devices and trying them out. There's clearly a lot of potential for innovative new applications, particularly for platform-based services, which will be better able to build a business model on a device that is not conducive to advertising, and that does not yet support monetisation. What are your thoughts on Google Glass?