Hacked.io 2013

IndigO2

I had the chance to attend Hacked.io yesterday. The event still goes on today, but I had other matters to deal with, so am sadly unable to go today.

It was held at the IndigO2 inside the O2, quite a venue!

When I arrived they were still doing the sponsor presentations, but I heard nothing enticing: Windows 8 development (err… no, thanks), XCode SDKs for controlling light bulbs via the network (really? no HTTP APIs for a networked hardware device in 2013?), and etc.

And I am also beginning to have a real issue with most of these API offerings, and it is that they are not thought for mobile apps usage. They are designed with a back-end mindset, and they assume that the API key is going to be kept “secret” in the back-end, but that’s not how mobile apps should work. If you install my app on your device, I shouldn’t need to keep an intermediary server so that you can access third party APIs through the server, just so that I can keep my key still a key. Cost can be one reason, but privacy is another. API designers: please think about that.

There were many familiar faces; it’s funny to find the same people at different events through the week. Makes for a bit of tightly knit small community feeling. The local-global village, if you want (ha).

I attended The Lab’s intro to Firefox OS as I hadn’t seen Francisco Jordano give a talk before. He was quite funny and got quite a crowd listening and asking questions. He quickly went through the way you can build apps in Firefox OS, stressing that it’s just web technologies built with the same web technologies that all other web stuff uses, and definitely got some people enthusiastic about it. Slides are here. Ruth John showed a more advanced version of her Anger Management App, Pocket Kitten. Now it can show puppies in the evening, when it’s darker, using the ambient light sensor! (NOTE: I already talked about this app back in January)

Then the amazing Morena and me went upstairs to see the presentation on… NODECOPTERS by Andrew Nesbitt! (Slides)

That was such an insane lot of fun. I hadn’t seen any of those in action yet, and didn’t really know how they worked, but the way they do is quite clever: there’s a sort of standard API, and they are, of course programmed with Node.js!

Some code, taken shamelessly from their page:

var arDrone = require('ar-drone');
var client = arDrone.createClient();

client.takeoff();

client
  .after(5000, function() {
    this.clockwise(0.5);
  })
  .after(3000, function() {
    this.animate('flipLeft', 15);
  })
  .after(1000, function() {
    this.stop();
    this.land();
  });

So you can even program for nodecopters despite not having one, using Voxel Drone, a 3D simulator-Minecraft style, that got lots of aaaaaww oooohs in the audience. I suspected it, and confirmed it afterwards: the simulator’s 3D view is rendered with three.js, or at least it’s in the dependencies of voxel-engine, on which the simulator depends.

I was amused by all the demos, and the anecdotes: “a guy tried to fly a nodecopter over Westminster, and the police took it down… they definitely don’t like these things”.

Now, of course, I want one, but I don’t have any use for/time to hack on it. Plus, living in Westminster I now know what to expect if I happen to fly it outdoors. Scary!

It was also interesting that there were two kids in the room, and one of them asked a very good question: “how does the nodecopter know when to go up or down based on the music?” This was because the presenter had shown a demo of a dancing nodecopter, using dancer.js and some dubstep music. Sadly, the answer he gave to the kid was nothing short of unfathomable at that age: “the server gets the values and then they are sent to the nodecopter and…”. But how do you explain that to a kid? Makes for a good Sunday reflections-time ;-)

Then the guy from Paypal started his presentation on how mobile payments would solve the pain points of traditional shopping, and played some feel-good videos that showed people in the States checking in a cafe, or in a burrito stall, and then showing their faces to the people in the till so that they could pay with paypal. I didn’t see how this is going to solve any issue customer wise (this requires a data connection, requires an specific app built for your platform, you still have to queue when there are crowds, the business needs an internet connection, etc…) and to me it created another huge privacy issue–having to check in places so that businesses can collect my data in an easy way? Uhm… I think I’ll stay with paying with my bank card. At least it’s just one entity to worry about.

Downstairs again, I wandered around the place and spoke to some guys who had a massive amount of hardware parts over their table, and were tinkering with all the pieces and doing stuff, whatever that consisted in. One of them was trying to get a temperamental 3D printer back in shape, another was measuring things with a multimeter… the usual business ;-)

Afterwards I found Francisco Jordano again, and he provided me with some awesome hands-on information on hacking on and building Gaia which I’ll share with you quite soon. Plus he revealed to me the existence of window.postMessage which I hadn’t heard of yet, and a nifty use for it.

It was a pity that someone (or something) was consistently bringing the wi-fi network down, despite the efforts by the organisers to get that person to stop being “a twat”. When I left, they were starting to install a wired network, so cables were showing up over the tables, going down to the routers, and technicians were crimping Ethernet cables, just like in the old days! My laptop doesn’t have an Ethernet port and I didn’t bring the USB-Ethernet adapter anyway, so no connection for me. I might have stayed for longer if I had been able to get any work done. Oh we are so dependent on the network nowadays, aren’t we? :-)

Many thanks to Kevin Prince and Francisco Jordano for inviting me to the event! :-)