Google Bootcamp Sarajevo

Two weeks ago, I was invited to fly to Sarajevo and run a Google Bootcamp. We debated about the content for a bit, and settled on a training & hacking day around AngularJS. A couple of hour-long talks from me, and as much hacking as possible. Cue frantic writing of slides.

On Friday we flew there via Vienna - not quite believing it was real - and yesterday they came, they saw & they hacked:

Presenting at Google Bootcamp

It was a fantastic day. Everyone had great fun & got their brains filled with new ideas. Me too.

I'm still churning over the event in my mind, it's still buzzing my brain, so I can't really write an elegant post about it yet. But if you'll indulge, here are a few random memories while they're fresh:

The attendees were great. Apparently there's not really a tech scene in Sarajevo like there is in London. Talks like this are a rare thing. But everyone was straight in and hacking. There were some really great ideas being hacked on & everyone was keen to learn. Geeks of Sarajevo, I salute you.

Doug Crockford - I stole some of your JavaScript jokes. I'm sorry. JavaScript jokes are hard to write and you cornered the market early. To make up for it I told people to use JSLint & buy your book.

I met the President! Well, I met a President. The event was held at a university, and the current Arch-Chancellor is the ex-President of Bosnia. He gives good handshake.

At the start of the day, they clipped a microphone on me and said, "Say something while we check the levels." Normal people say, "One two. One two." I recited The Owl & The Pussy Cat. Parenthood has changed me.

One of the local TV stations showed up and interviewed me. That was weird. On a day like this, hackers come up to you and ask things like, "How do you conditionally hide DOM elements generated by an ng-repeat tag?1" But TV people ask you questions like, "What do you think this means for Bosnia?" Under the circumstances, I think I switched gear fairly smoothly. :-}

As if we didn't have enough to worry about, I decided that we'd organize a couple of extra lightning talks. I figured on a day like this it's my job to throw as much information into people's heads as I possibly can. Amer - one of the guys helping me out - and I threw some ideas onto a whiteboard, and people voted. Less and Hadoop won the popular vote, so we each improvised 10 minutes of information. The bonus talks seemed to go down really well. I'm glad we did it. (For the record, I did the Less talk. That's easy. You pretty much just have to say, "Less exists!" and people get it. Less rocks. Less is easy and it rocks.) (For the other record, I'd offered to do a Vim Masterclass. It lost to Less by one vote. Sadface.)

I love doing this kind of thing. It doesn't matter if it's a guitar or a slideshow clicker in my hand, I like it. There's a feeling that comes upon you in the hours before the deadline. If you run away from that feeling it's called stagefright. If you run towards it it's a complete adrenaline rush. And speaking as a sedentary programmer who hates sports, it's rare that my body has reason to produce adrenaline.

I wrote my own slideshow software. I'd normally scoff at such wheel re-invention, but I really wanted to be able to show Angular working live, within the slides, so I wrote an Angular slideshower that ran Angular code inside my Angular slides2. But on the morning of the event I hit a minor crisis. The room was unexpectedly huge, and they handed me a wifi clicker. I'd expected to be standing near my laptop and hadn't written clicker support into the code. To my relief & amazement, I managed to hack it in in about 5 minutes. Say what you like about JavaScript, but I couldn't have done that in Java or Objective-C half as fast.


  1. Answer: Don't. Filter the ng-repeat values up-front instead.
  2. It's rough - I might find some time and polish it up into a real app - but you can see it here if you like.