Kids Javascript

Saturday mornings with a one and a half year old and a nearly four year old can be 'fun'. Before you are even half awake the phrase “can we watch a wee episode?” or “do you have the iPad?” will have set the tone. The lure of the Octonauts is strong.

Not being keen to produce four eyed little gogglebox addicts – we limit TV access. So I have to be creative in how we satisfy the Octonauts addiction. We make octocompasses, papercraft GUP-As and I could draw a GUP-B being attacked by an axe wielding octopus in my sleep.

None of this was working on Saturday.

So, as with web development, when your usual approach isn't working you reach into your tool belt and get out the … JAVASCRIPT.

Photo

After the keynote from @seb_ly at DIBI this year I've been itching to have a play with particle emitters and different images to create animated particles with different frames. 

A quick “git clone https://github.com/sebleedelisle/JavaScript-PixelPounding-demos.git” followed by a Google image search for Octonauts and we're into some interactive javascript funtime.

Then a half hour over breakfast with the wee lad shouting “add a giant sea squid”, “make them faster”, “make them more explodey”, “nooooo – not the GUP-B – noooooooooo.

Live Reload and MASSIVE font in the editor made it good fun – I'd say 'pick a number to go here' and we'd wonder at how the GUP-A suddenly appeared 10 times the size. Every change led to bouts of huge laughter and the announcement that javascript was “crazy”.

Magic fun.

Next weekend – a 3D kelp forest background.

Code Retreat Aberdeen

Yesterday we held the first Code Retreat Aberdeen. About two dozen coders (and one designer) gathered to take part at the University of Aberdeen. It was a joint effort between myself on the Refresh Aberdeen side, and Bruce Scharlau on the Aberdeen Uni side.

Dsc_0185

If you haven’t heard of code retreat before the description at http://coderetreat.org/ does a better job than I will here… Code Retreat is very much a coders event. We tackle a single problem in pairs, writing code for 40 minutes before having a quick review, deleting our code, swapping pairs, and starting again. We do this all day. Insane. Insanely brilliant.

Adrian Mowat from Edge Case facilitated, and kept it pure with an instistence on pair programming and TDD. The TDD part caused some funny looks at the start, as many of the participants had never worked a truly TDD workflow before (a fair number of students). The first iteration (or two) were largely about getting to grips with testing frameworks and principles.

The general hubbub between iterations changed really quickly through the day from “why TDD?” to “TDD makes me slow” to “TDD changed how I thought about the problem” to “TDD led me to a more elegant and smaller solution”.

I’d call that a pretty successful day.

I took part properly for the first three iterations to keep numbers even, and then looked to spend more time getting to grips with facilitating.

Dsc_0147

My three iterations covered Java, Ruby and JavaScript. In all three the writing of tests was the focus, rather than the writing of code. I loved this. I don’t write as many tests as I should – and have a habit of bashing through a rough solution rather than writing tests to test my assumptions. So this was good discipline.

The afternoon was interesting. Talking to everyone about how they were finding the process, seeing where a nudge in the right direction can kick people out of timesinks, and generally observing the workings of the code retreat was fascinating.

Thanks to Adrian for facilitating. And thanks to the sponsors Codify, Fifth Ring and The University of Aberdeen – because of them we managed to keep the event free to attend and provide breakfast pastries, a great lunch from itsyworld and some pixelly event t-shirts.

Feedback has been excellent, so we are definitely planning to do another later in the year. If you fancy it make sure you’re on the Refresh Aberdeen mailing list to hear about it.

Dsc_0185

Thanks to Kevin for the photos, and to his kids for helping us finish the cakes.

DIBI Day 2 – Conference

A quick run through the talks from DIBI '12, as much to remind myself later as to inform the masses. You'll find links to all the speakers on the dibi site at https://www.dibiconference.com/schedule/ until I get time to come back and slot them in. I jumped tracks a few times – why don't you play 'guess the track' basd on the description.

Hybridify Yourself

Seb Lee-Delisle, 'Design it and build it'

This was a great talk – really upbeat, enthusiastic, and I would imagine most of us left with a feeling we should really play a bit more with 'visual stuff' built with code.

He live coded a javascript particle emitter on stage – piece by piece – to show the 'designers that don't code' how easy it is. Before that he'd used a C64 emulator to create generative art. Great stuff. Reminded me of the old days of drawing line patterns on the speccy to get weird moire patterns wiggling about on the screen. Speccy for loops ftw!

Takeaway – the journey informs the destination – just get stuck in

The 2 Pauls, 'the challenges of designing for everyone – revolutionising the UK government online'

I should really have gone to the node.js talk on the other track – but this is really interesting stuff. The talk centred on a review of the key design principles of the project – with examples of how they are applied. Some of the comparisons of the 'old way' and the new interpretation are properly impressive. I love the thinking behind most of this. To hear government talking about MVP, RWD, Agile etc… is pretty exciting actually. If you haven't been already, have a rummage around https://www.gov.uk/

Takeaway – user test user test user test

Chew

Brian LeRoux, 'Mobile web programming is a bloody mess!'

This was a good run through of the landscape for mobile, and background on phone gap. Brian obviously knows his hardcore JS and I got a lot out of this one – one of the more practical talks.

Takeaway – mobile is hard, but debug tools are here and they work so stop wining

Chris Mills and Bruce Lawson, 'The DIBI Panto'

That's not the actual name of the talk – but it may as well have been. Costumes, sound effects, boos from the audience. Banging the drum for standards, accessibility and feature detection. Nothing particularly new for me – but a good fun presentation.

Takeaway – funny is good

it ships today

Ted Roden, 'Going Solo'

Ted has a pretty brutal, focussed, down to earth view of the 'startup landscape'. And his view is from a distant hill. His approach to releasing features – don't start something you can't ship today – makes me happy. I'm not sure why – it just does. I'm kind of annoyed this clashed with Paul Boag – who I'd also like to have seen – but I'm pretty sure I made the right choice. Great talk.

Takeaway – 'it ships today' 

Scott Rutherford, 'Failing up'

This wasa really interesting run through of the birth and toddler years of User Voice. Some funny stuff, and some really interesting stuff about how to deal with software / hardware fails in the face of customer demand.

Takeaway – react quickly and openly when stuff goes wrong

Cameron Moll, 'The burden of being creative'

Cameron did some of his presentation live using the Paper ipad app to draw his slides. It was an interesting approach, but slowed things up in a few places. I was impressed with his penmanship, the standard pen in Paper is a nightmare to write with.

Cameron built up an equation to define creativity. I'm not sure I agree with his final equation – but I like the idea of demystifying creativity in this way. 

Overall

So Seb gave the most awesome/brilliant (delete as applicable) talk, and Ted gave the best takeaway (it ships today). The workshop on Monday was great fun, and the conference day flew by. The beef noodles for lunch were tasty, and the pizza at night appreciated. I even got a 5am Saint in. 

DIBI is a great conference – you should definitely go next year.

Now, I'm off to write some generative javascript art to be seeded by some arduino interactive tinfoil fuzzy connections through the analog inputs to run through a node.js back end, sync'd onto every screen in the house.  Should be fun. 

Hybridify Yourself

DIBI Day 1 – Arduino Worshop

I now love arduino beyond reason. This was a genuinely enjoyable afternoon spent surrounded by pretty focussed nerds playing with LEDs and C. I seldom get a chance to take part in a workshop – and this was good fun.

@nrocy ran a pretty good workshop. It felt structured, but flexible enough to handle questions, and was paced well to cover material while allowing a bit of play during the afternoon. We had to type stuff out, actually writing code with some guidance rather than just listening to explanations of what 'test-proj-4.txt' does. Perfect approach.

We ran through the 'hello world' stuff, some theory, and had to build circuits based on circuit diagrams (rather than arduino wiring diagrams) which was a solid start. I haven't written C in anger since the mid 90s – so you certainly don't need major C skills to get stuck in. 

We even got to play with tinfoil. No hats though (sad face).

Image

 

What I enjoy about arduino is the same thing I enjoyed back when I was first learning BASIC on the spectrum – you can achieve a host of cool things using a small test code set. Tinkering with a small program – just changing variables, sequences, and testing in / out puts gets a new dimension when you have physical STUFF to play with.

If you get a chance to do this workshop take it.

 

Whisky Web ’12

Earlier today I went to Whisky Web.  

I went down on the train on the morning so missed the opening keynote (sad face) as I only got to venue at 9:45.

But here's a quick round up of the talks I saw:

Open street map
Derick Rethans

I loved the obvious passion for the subject matter, and totally want to organise a Refresh Aberdeen mapping party in the summer. Maybe map everything at Balmedie before the BBQ?. I've also doodled out half a dozen things I need to investigate on OSM. You can't ask for more from a talk. Great stuff.

Essential Node.js
Mike Amundsen

I've played with node.js a bit, I like it. It's nice. I got a fair bit out of this talk. A reminder of the reason node exists, some tips on using it, and some reassurance that I'm doing alright with express and socket.io in my project. JS is fun. Mike was probably the most polished speaker.

The emperor's new clothes
Kevinjohn Gallagher

This wasn't my cup of tea. I can live without argumentative Zeldman bashing, boobies on slides, and endless innuendo laden star trek jokes. Sorry man – maybe caught you on a bad day.

Mashing Up JavaScript
Bastian Hofmann

I found this one a little frustrating. Great content, fired through at lightening pace, with huge enthusiasm. Jumping from presentation to editor to terminal to browser was hard to keep a handle on though – making it feel really disjointed. That said, I've also filled a couple of pages with js stuff to try out around ideas from the talk. So with a bit less jumping around this would be a great talk. Or a really good day long workshop.

Is your App ready for the cloud
Thijs Feryn

I really don't look after any apps that need the level of hosting that Thijs gets excited about. I enjoyed the talk though – interesting issues and knowledgeable speaker. I want to find out more about the MS cloud offerings just out of interest.

How the Web evolves with Hypermedia
David Zülke

Loved it. Keynotes should present a world view. We saw a world view. And a shark. Have some code to change next week off the back of this. Great fun, thoughtful stuff.

Photo_2

Overall

For a conference pulled together at such short notice it had a great atmosphere, some good talks, and tasty vegetarian lasagne.

Well done guys.

As I type this (sitting on my train north drinking a cold Nero triple latte) everyone else is getting a whisky master class from @whiskycraig. Bad timing of the last train home – Craig is the man! 😦

I don't know how everyone else felt about the ticket price. Personally, £50 for a full day catered conf with sharks and malt whisky at a proper venue seems cheap.

Juozas said in the closing remarks that they hope to bring it back next year, you should all get a ticket.

iOS event horizon

A list of the handsets being used on one of my sites.

It goes without saying that the iOS devices head the list. Looking in Google Analytics at the mobiles being used it blows my mind that I have no idea what most of these phones look like.

I have truly passed through the iOS event horizon. I can’t look back. Something must be done.

  • Apple iPhone
  • Apple iPad
  • Apple iPod Touch
  • SonyEricsson LT15i Xperia Arc
  • Samsung GT-I9100 Galaxy S II
  • Nokia C3-00
  • Samsung GT-I9001
  • HTC Desire
  • RIM BlackBerry 8520 Curve
  • HTC Wildfire S
  • Samsung GT-P1000 Galaxy Tab
  • SonyEricsson E15i Xperia X8
  • HTC ADR6300 Incredible
  • LG P500h
  • Motorola MB526
  • Motorola MB860 Atrix
  • Nokia N8-00 N8
  • RIM BlackBerry 9300 Curve 3G
  • Samsung GT-i5500 Galaxy 5
  • Samsung GT-I9000 Galaxy S
  • Samsung GT-S5570 Galaxy Mini
  • Acer A500 Picasso
  • Fujitsu T-01C REGZA Phone T-01C
  • Google Nexus S Samsung Nexus S
  • HTC EVO 4G

Refresh links

I thought it might be handy to post a list of the various links that I mentioned last night, in various chats, while at Refresh. Save me from sending a stack of tweets.

If I missed any – shout.

Mute #self to clean up my stream

Using twitter as a route to channel data to other apps is something I've played with for a while. 

Back in 2009 I knocked up a wee site to turn tweets into charts – mainly to document coffee overconsumption and cycling mediocrity – some examples here. (I haven't kept the ever changing twitter API stuff up to date, so it's not consuming new tweets, or allowing new sign ups any more.)

The downside of using datatoy was that I looked somewhat mental and self obsessed to my followers. “bikerun 21 km” and “coffee 1 nero triple latte” are hardly classic tweets.

It was like the Path sleep/wake nonsense.

I'm now playing with things like Arduino, Twine and odd toothbrush APIs  – and I really want to feed some of the data from these through twitter. Routing through twitter opens up options for easily processing through sites like ifttt.com, and lets me watch the stream of data in one place if I want to. 

But this would create a lot of junk tweets. Junk tweets really annoy people. And really annoyed people sometimes kill. I don't want to be killed. 

I could create a new twitter account just for these tweets, but that's a bit faily. There has to be a better way.

#self

A standard marker like #self at the end of the tweet would allow clients to filter out all these auto tweets. So followers see a nice clean twitter feed, the tweeter has the convenience of a single twitter account, and the auto tweets can follow a nice clean path. A lot of clients have mute filters. Adding #self kills these tweets immediately.  

Mute-self

So my examples above become “bikerun 21 km #self” and “coffee 1 nero triple latte #self”. 

Wider adoption of this principle beyond twitter could make the Path wake/sleep option useful again. I love the feature, but I don't want to flood everyones stream with my boring sleep tracking. Applying a #self tag would allow others to easily ignore that message. 

If I want to use runkeeper, track my blood pressure through a sensor, or hook my wireless bathroom scales to my twitter, or monitor the quality of my toothbrushing – I just apply the #self tag.

Then when I want to process the data I just hook up to my tweets mentioning #self.

The tweets are still public, and can be viewed like any other when not filtered out. So 3rd party sites don't need full auth to just consume my feed and do stuff with my data – produce visualisations, summaries, reactions.