At Digital Arts we feature all sorts of inventive projects – everything from a vintage-tube-based chess set to a tweet-powered Olympic Games (and that's just in the last week). The imagination and ingenuity of the people who make these sorts of creations is incredible... but it's also enough to make you feel a little jealous.
But just because you don't know everything about coding or engineering shouldn't stop you making something cool, because doing your own hacks is a great way to teach yourself a few new skills.
One person who has done this more than a few times is Tom Scott – a self-described "maker of things" with a list of works longer than... well, longcat – qho just recently made a Nyan Cat service for fax machines (below).
With such a big history of hacks, Tom is used to working in unfamiliar territory. He told us, "Most of the skills I've learned have come from the things I've made: rather than learning for the sake of it, I learn because I need to.
"The best example of this would be some of the projects I helped put together for the [Sky] TV show Gadget Geeks last year: Suddenly, I needed to do lots of graphical displays, and so I learned Processing. Then I needed to work with a 3D printer – which meant I needed a crash course in Python!"
Any project starts with an idea. But once he's come up with that, how does Tom go from there? He explained: "The idea tends to arrive, fully formed, and then I've got to work out how to build it. Sometimes it just isn't practical--there are half a dozen things on my ideas board that won't work unless I have the budget to hire a helicopter. Most important is how to make it quickly: I have a worrying tendency to lose interest in things after a while...!"
So it's possible – and not unusual – to teach yourself new tricks as you go along with a hack. But how can you actually do it?
In my spare time, I've had a few silly hack projects – normally a joke website making fun of some aspect of British culture (hey, it's what we British people do best). Most of the time, I don't know what I'm doing, but it hasn't stopped me yet.
My first main tip is to break down the idea and figure out what it means from a technical perspective. When you start to figure out what the sort of functions it needs in order to work are, read about your selected topic online and get a bit of an idea for which bits of the puzzle you'll need to put together. Once you know the basics of the technology you're working with, it's easier to know which bits you need to look for specifically.
There's also no harm in working with what's already out there. There are plenty of great guides and tutorials out there, but if you're trying to do something quickly or don't need to reinvent the wheel, use what other people have made available for reuse as a starting point!
One of my projects was pretty much only possible because of this: I wanted to make a version of Twitter that felt like [the recently demised] Teletext.
The freely-available code already out there was much better than what I could come up with, and by working with it, I was able to better understand a bunch of the tricks involved.
Two sites worth keeping an eye on for work you can build on are Github and Instructables. GitHub is particularly useful if you're doing a coding project, while Instructables is great for learning about hardware hacks.
But if there's nothing ready to modify, don't feel too proud that you can't ask for help. If someone's managed to do something that stumped you, send them a message and ask for advice.
Another project of mine involved making a parody version of a popular Twitter snow map that collated people's tweets to build a real-time weather forecast. Who better to ask how to make that... than the maker of it himself? I asked Ben Marsh, the developer of #uksnowmap, if I could use some base code of an older version, and he kindly said, "Go for it!" And so, with my own tweaks and fixes, I got my project going in no time.
If you want to have a go at teaching yourself as you go along with your own hacks, Tom has one final bit of advice for you: "Never stop. If you spent ten pounds on it, it's likely to fail--but if you spend a million pounds, it's still likely to fail! So make lots of things, because each one is a different roll of the dice, and you never know which one will succeed!"