I stumbled across this video that Neil Ford shot of the Hackfight project in full flow. The back-end guys are brainstorming, the front-end people are user-testing... this is the stuff of magic!
Saturday, June 23rd, 2007
Thursday, June 21st, 2007
The final frontier
When I was rounding up my favourite hacks of Hackday, I can’t believe that I forgot to mention one of the most beautifully elegant mashups I’ve ever seen.
- Iridium flares are glorious bursts of light produced by reflections on satellites.
- It’s fun to watch the International Space Station fly over.
- Both of these events are tracked on the website Heavens Above.
- There’s no point looking for iridium flares or ISS flybys if the sky is clouded over.
- Weather information is easily available from, for example, Yahoo’s API.
- By mashing up satellite information with weather information you can figure out whether it’s worth going outside to look into the sky.
The icing on the cake is the way that the results are broadcast. Instead of going to a website, you just need to sign up to a Twitter account. Now you will be notified whenever there’s a flare or flyby over London and the skies are clear. Pure class!
There’s quite a bit of juicy astronomy data available from NASA. Remember a while back when NASA and Google announced that they would be working together? I wonder if they’ve got some geeky goodness planned.
Jessica speculated a while back about reverse Google Maps. Suppose that when you entered an address, instead of just showing you the top-down view of that point on the planet, you also got to see how the sky would look from that point. Enter a postcode; view the corresponding starmap.
Make it so.
Wednesday, June 20th, 2007
A nice write-up of Hackday on Wired. Oxford Geek Night gets a mention too (go, Nat!).
Tuesday, June 19th, 2007
Ninety seconds. That’s how long each team at Hackday had to present the fruits of their labours. That’s a pretty good timeframe to demonstrate the core functionality of an app but it’s nowhere near long enough to explain the background story behind Hackfight.
I was the third presenter (out of a total of 73). I knew I had to try to make every one of those ninety seconds count. At the moment that Chad Dickerson introduced me and the spotlight was cast upon my frame, I went into Simon Willison mode and began to stream out as much information as the bandwidth of the human voice allows.
“Hackfight is a mashup” I began, “but it’s a mashup of ideas: the ideas of Justin Hall with his talk of browsing as a kind of role-playing game and Gavin Bell with his ideas on provenance—your online history forming a picture of who you are.”
I was standing on stage in Alexandra Palace trying to give an elevator pitch of an idea that had been brewing in my head for quite some time.
Ever since I first started talking about lifestreams I knew I wanted some kind of way of tying together all the disparate strands of my online identity. There’s a connection here with the dream of portable social networks: tying together the walled gardens of myriad social networks. The final piece fell into place when I was listening to the South by Southwest podcast of a panel discussion by Joi Ito, Ben Cerveny and Justin Hall. Justin says:
I’m working on this idea of passively multiplayer online games. Watching you surf the Web and giving you xp for using your computer. You might be as high level as Joi but just by doing what you’re doing… My model for this was looking at a D&D character sheet, which proposes to know a lot about people.
Something clicked. This idea really resonated with me but I wanted to tie it into a person’s long-term publishing history—their provenance, in other words. I started thinking about how this might work. I would definitely need some help. Then Hackday London was announced.
My recruitment drive began well before the day itself. I spoke to people at both @medias. Matt Harris—no stranger to the mechanics of role-playing games—expressed his interest. I noticed that Gareth was in search of a project for Hackday so I baggsied his brain. I even managed to turn my presentation at Reboot into a rallying cry for hackers. Riccardo and Colin were both there and added their names to the list of interested parties. Finally, I wrote a blog post right before Hackday to let everyone know that I was looking for help.
On the day itself—once the excitement of the lightning strike had worn off—I began quizzing my friends to find out who had plans and who didn’t. Ben and Natalie were both amenable to getting stuck in. An unsuspecting Paul Duncan was also roped in. I hopped on stage and put out one final call for help.
I had plenty of people. Now I needed to make sure they could work in managable teams. I divided the work into front-end and back-end projects, appointing Nat as head of front end and Gareth as delegator for the back end.
Before a line of code was written, we made plenty of use of the available whiteboards. We began brainstorming all the possible APIs we could potentially use. At this stage we were already thinking in terms of characteristics: how social you are, how many photos you take, how much you blog, how much you bookmark.
The long list of APIs was quickly whittled down to a managable number. The terminology was updated to be more game-like. Here’s what we had:
- Your social networking power based on Twitter. It’s not as simple as just how many contacts you have: your followers must equal or exceed your claimed friends to get a good score.
- Your power of observing the world around you as decided by Flickr. The Flickr API reveals how long you’ve been posting photos and how many you’ve posted in total. From there it’s a short step to establishing an average number of photos per day.
- Your power of cataloguing the world around you as revealed through del.icio.us.
- How much influence you can exert over others. This is gleaned from Technorati’s ranking algorithm.
Assuming we could generate a number for each of these characteristics, how should gameplay proceed? Should it be as simple as Top Trumps or as complex as World of Warcraft? It was Jim Purbrick who pointed out that we were closest to having beat-em-up game mechanics.
Now we needed to consider fairness. How would we deal with the uebergeek who has been blogging, Flickring and social networking for years? This was quickly christened “The Tantek Scenario.” Needless to say, I blame Tantek.
By giving each player a pool of points that always adds up to the same total, we could level the playing field. We chose the number 20 for the total points. This could then be split four ways amongst charisma, perception, memory and willpower. So even if you were superb in all four categories, you could only have a total of 5 points in each. Most people will have a high score in one or two categories and a correspondingly low score in others.
Gameplay proceeded like Top Trumps but with a difference: if you are attacked in one category (say, charisma), you can defend with another category (such as memory). But you can only ever use a category once. So one fight is exactly four rounds of attack and defence. At the beginning of each fight each player has 10 health points. If a player successfully attacks, the amount of health points deducted from the other player is the difference in category points. So if I attack with a willpower of 8 and you defend with a memory of 6, you lose 2 health points.
I mercilessly pounced on unsuspecting passers-by like Andy and Aral and thrust sticky notes into their hands. We then played a round using these paper prototypes. We tested a slightly more complex version of the gameplay involving the ability to bet high or low but the user-testing revealed that this was probably too complex to be easily grasped.
Alright. Enough planning. Enough user testing. The clock was ticking. It was time for the front-end team to start working on the design and the back-end team to get coding.
As day one drew to a close, our numbers lessened. Riccardo and Paul headed for home (or in Paul’s case, the pub and then home). But I still had two incredible teams of ludicrously dedicated people. These are the people who would build what we were now calling Hackfight.
Watching these people work through the night was a humbling experience. It quickly became clear that my programming skills weren’t nearly up to scratch. I helped out a bit with some Flickr API stuff but I mostly just left the lads to it. I even snatched one or two hours of sleep. Colin and Natalie didn’t sleep at all.
By morning, things were shaping up nicely. On the back end, we had a good database schema, ranking algorithms and classes for combatants and fights. On the front end, we had a colour scheme, a logo and beautifully shiny icons. But could we tie the two ends together and still hit the afternoon deadline?
In the end it was clear that we had bitten off more than we could chew. We had a solid infrastructure and a lovely interface but there just wasn’t enough time to build the interactive elements: signing up, choosing an opponent and having a fight.
We still wanted to demonstrate what was possible with this system. If we cut out the interactive elements for now, we could at least show an example fight by having the computer pitch two people against each other. We began adding some real-world data into the system and built a fight page where the moves were chosen at random.
The final result is more of a proof-of-concept but boy, what a proof-of-concept. Watching this idea come to life in the space of 24 hours was simply magicial. I honestly don’t think words can express how impressed I am with the people who built this. All I did was lay the groundwork. They pulled out all the stops to actually make something.
I had one last task. I had to get up there on stage and present Hackfight.
Standing in the spotlight with Hackfight projected on the screen behind me, I rushed through the game mechanics and showed a sample fight. My mind was racing as face as my mouth. I was frantically trying to think of what I absolutely needed to get across. I quickly explained that Hackfight was a platform rather than a finished hack: something that could be built upon to create all kinds of gaming experiences based on online publishing. Feeling the seconds ticking away to nothing, I closed with the one remark that it was absolutely necessary to make:
The team that put this together was awesome.
And with that, I was done. It was later that I realised I actually still had 19 seconds left on the clock. My one chance to do the team justice and I blew it.
Milling with my peers at the close of Hackday, one question kept coming up: would we continue to work on this? We’ve got a good codebase. We’ve got some solid game mechanics. I think it would be great to see this taken forward. The Hackfight team all seemed pretty interested in hacking on this thing a bit more.
I think there’s a lot of potential in this idea. Forget about the basic idea of a fight confined to a web page: think about all the other possibilities: fighting via Twitter, by SMS, on Jabber, even in Second Life. As long as the ranking algorithms are in place and the game mechanics are set, there’s no limit to where and when Hackfight might exist.
The best outcome would be for Hackfight itself to become an API so that other people could hook into the system and build cool fun stuff. That’s an ambitious goal and I don’t have the resources to see it through but having seen what can be accomplished by a dedicated team of unbelievably smart and talented people, I think anything is possible.
Monday, June 18th, 2007
Hacked and slain
I’m back in Brighton after a truly unforgettable weekend at Hackday. Most people wouldn’t think that being cooped up in Alexandra Palace for two days with hundreds of geeks with laptops without access to beds or showers would be much fun. Most people would be wrong.
On the afternoon of the second day, the hacking stopped and the demos began. Over 70 hacks were presented. That’s quite an astounding figure. What’s even more astounding is the level of work that went into these hacks. Each presenter had just 90 seconds with an intimidating spotlight shining on them in an otherwise darkened cavernous hall.
Some of my personal favourites…
Ann created a knitting hack called Buzz Knit. Based on the data coming from Yahoo sources like sport or music, a small knitting pattern is generated: here’s the pattern from TV listings. Then Ann knitted one of the patterns which she presented on stage. The real pièce de résistance was the way she closed her presentation by speculating that “maybe in the future, instead of writing my blog, I’ll knit it instead.”
The gang from Moo created a location-service called NetTwitchr. Enter a post code and retrieve information about your location as well as the current mood of its occupants. This was probably the prettiest of all the hacks presented, thanks to Denise’s leet design skillz.
A duo from the New York Times created a Mobile/RFID/Web integration package called Shifd to seamlessly sync RSS feeds between mobile phones and desktop computers when the two come into contact.
Richard and Andy created a truly social application called Get Us Organised. It’s for those situations when you’re trying to cat-herd a group of people into deciding on a time and place for an event in such a way that it inconveniences the least amount of people—perfect for Pub Standards booze-ups and Britpack geekends. It even creates an Upcoming event automatically. Richard gave a really convincing demo and the immediate chatter on the backchannel included phrases like “Upcoming should totally buy this” and “genuinely useful”. The boys quite rightly won the Most Useful Hack award and received an iPod nano for their trouble.
Watching all of the hacks come together in the space of 24 hours was really a sight to behold. Tom has been getting his thoughts down and he describes his favourite part:
It was the period between nine and two am where everyone was doing precisely what they wanted to do. Where the lighting was atmospheric, where the coding was focused and everyone seemed to flow, where the room was gently buzzing with key-strokes.
I know exactly what he means. The atmosphere was indescribable. It sounds like it should be the most anti-social thing ever: a bunch of nerds with their laptops open engrossed in their own projects. But it was incredibly social! There was a real connection—the kind of connection that’s usually really hard to maintain in a crowd. The level of collaboration on display can only be described as life-affirming.
At the end of the long journey back to Brighton, I was chatting with an equally impressed Aral. We both loved BarCamp. We both loved Hackday. We both love living in Brighton. I mentioned San Francisco’s SuperHappyDevHouse. Maybe we can organise something like that to keep the spirit of Hackday alive.
Sunday, June 17th, 2007
Hackday isn’t really a day: it’s two days. Day two is well underway now. Some sleep has been snatched, breakfast has been consumed and everyone is in crunch mode.
Time is of the essence. In just three hours, the hacking stops and the hacks will be presented: it’s like a marathon session Ready, Steady, Cook with a less culinary and a more cerebral slant (although I have seen at least one cookery-related hack).
At this stage, there is little that I can contribute to the gaming hack. With real programmers like Gareth, Matt and Colin on the job, I’m realising just how crap my programming chops are. Meanwhile Natalie and Ben are doing a great job with the front end design; I don’t think they need any assistance so me.
So basically, I’ve become middle management. My only real input was herding everyone together at the beginning of Hackday, explaining the vague concept I had and then splitting people into groups. Ever since then, I’ve just been skirting around the edges and trying not to interfere too much.
I can’t even begin to express how impressed I am with the work and dedication these guys have shown. They’ve got 1337 hax0r skillz. Amazingly, I get the feeling that this is par for the course at Hackday. I think there’s going to be some amazing stuff shown at 2pm.
It’s just gone 4am here at Alexandra Palace. There are still plenty of hackers gathered ‘round their laptops, scheming their hacky schemes.
The gaming hack continues apace. Super-smart people are working ‘round the clock to put this together. It’s been a real journey of discovery: a mixture of game theory, APIs and maths. Everyone’s pretty frazzled at this stage though. I think my brain has ceased to function. I blame Tantek.
It probably didn’t help that I stopped to play Werewolf. It wouldn’t be a proper geek gathering without a good round of organised paranoia and suspicion.
It hasn’t bee all keyboard-tapping and accusations of lycanthropy. There was a perfectly judged entertainment break earlier, courtesy of Doctor Who.
Of course it would be completely illegal for somebody to record Doctor Who and play it back to hundreds of people assembled together for Hackday. That would contravene BBC licensing agreements. I’m sure the BBC (and Yahoo) would never do such a thing… officially.
Unofficially, it was a good episode; cheers, Auntie Beeb and Uncle Yahoo.
Saturday, June 16th, 2007
Hackday took a very interesting turn this morning. In the middle of a presentation on Fire Eagle—the service that Tom has been trying to hard to keep mum about—the weather turned rather nasty outside. We could hear the rain hitting in the roof of Alexendra Palace and take comfort in the fact that we were snug and protected inside.
Then there was a loud bang. At first I thought that Yahoo and the BBC had gone overboard with the pyrotechnics budget but then I realised that the building had actually been struck by lightning. Okay, no big deal. But the lightning bolt did some damage to the palace’s “smart” system. Believing itself to be on fire, the building opened up its roof vents thus allowing the rain inside where it could pitter-patter down on the many laptops arrayed within. I blame Tantek.
An evacuation into the covered courtyard. Who knew that the first hack of the day would be trying to figure out how to hack Alexandra Palace?
It was actually kind of fun—stiff upper lip; spirit of the Blitz and all that, what what?
Now everything is back on track. The roof is closed. The WiFi is (mostly) up. Everybody’s hacking on something.
I’ve assembled a fairly large team that I’ve split into front-end and back-end factions. Natalie is overseeing the former and Gareth is handling the latter. It’ll be interesting to see whether anything emerges at the end of all this but it’s a heckuva lot of fun in any case.
There’s a great atmosphere here at Ally Pally… it’s a dark, dimly-lit atmosphere like Jabba’s palace but it’s great to be in one place together with so many fellow geeks.
Once the talks are done, the hard work begins. I think my job will mostly involve trying to organise all the people who have expressed an interest in helping me with my somewhat ambitious project. Some very, very smart people promised to help me so I’m hopeful that by tomorrow I’ll have something to show. The tricky thing will be making sure that things don’t get too unwieldy so I plan to split people into smaller, more focused teams. Andy thinks they should be called “Tiger Teams” but I’ve nixed that idea. ‘Cause it’s stupid.
Friday, June 15th, 2007
Help me at Hackday
Hackday is almost upon us. Tomorrow, I—along with hundreds of other geeks—will be converging on Alexandra Palace in North London for two days of dev fun.
I’ve got an idea for what I want to do but I think I’ll need lots of help. At XTech, Reboot, @media and other recent geek gatherings I’ve been asking who’s coming and who fancies helping me out. I’ve managed to elicit some interest from some very smart people so I’m hoping that we can hack something fun together.
Here’s the elevator pitch for my idea: online publishing is hacking and slaying.
Inspired by Justin Hall’s idea of Passively Multiplayer Online Games and Gavin Bell’s musings on provenance, I want to treat online publishing as an ongoing way of building up a character. In Dungeons and Dragons or World of Warcraft, you acquire attributes like stamina, strength, dexterity and skill over time. Online, you publish Flickr pictures, del.icio.us links, Twitter updates and blog posts over time. All of this published material contributes to your online character and I think you should be rewarded for this behaviour.
It’s tangentially related to the idea of a lifestream which uses RSS to create a snapshot of your activity. By using APIs, I’m hoping to be able to build up a much more accurate, long-term portrait.
I’m going to need a lot of clever hackers to help me come up with the algorithms to figure out what makes one person a more powerful Flickrer or Twitterer than another. Once the characteristics have been all figured out, we can then think about pitching people against each other. Maybe this will involve a twenty-sided die, maybe it will more like Top Trumps, or maybe it could even happen inside Second Life or some other environment that has persistent presence (the stateless nature of the Web makes it difficult to have battles on a Web site). I have a feel that good designers and information architects would be able to help me figure out some other fun ways of representing and using the accumulated data. Perhaps we can use geo data to initiate battles between warriors in the same geographical area.
Sound like fun? Fancy joining in? Seek me out on the day or get in touch through my backnetwork profile.
Of course, if you want to do something really cool at hackday, you’ll probably be dabbling with arduino kits, blubber bots and other automata. When I was San Francisco a few weeks ago, nosing around the Flickr offices, Cal asked me what I was planning for Hackday. “Well” I said, “it involves using APIs to…” “Pah!” he interrupted, “APIs are passé. Hardware is where it’s at.”