Alexander Dickson

Speaking at JSConf Australia

Last month, on November 15th, I had an exciting opportunity to talk at the first JSConf in Australia, titled JSConf Downunder. My talk was titled Emulating with JavaScript and it was a great experience. There was stress, nervousness and enjoyment, all bundled into one eventful month.

A month or so ago, I decided to take a look at something that always fascinated me when I was a teenager: how the fuck do regular computers run NES software? At the time, I wasn’t a programmer so I swept the issue under the proverbial rug and continued playing the games I used to love playing on the Real Thing™ (disclaimer: Nintendo don’t actually want you to do this).

With a hunger for knowledge and no fucking idea of where to start, I went to trusty Google and started trying to figure it all out. The short of it: I knew nothing how computers worked, so I had a long and interesting journey in front of me. After a lot of trial and error, I started to understand how things worked. I started with this Stack Overflow question first, and then read Charles Petzold’s Code, which is an amazing read. Really, it is.

After I had some clue of what I was doing, I wrote a Chip-8 emulator with JavaScript. This was relatively straightforward, so I took on the next challenge: a JavaScript NES emulator. From Chip-8 to the NES is a massive jump, and it rattled my brain and challenged me like I’d never been before.

At roughly the same time, JSConf Downunder was announced and so there was a call for speakers. I submitted a proposal with a what-the-hell attitude, and kept tinkering away. I didn’t expect to be selected, but I still wanted my hat in the ring. So, you can imagine my surprise when I received an email informing me that I would be giving my talk.

Public speaking is something I’d always shied away from, and now I was going to have to position myself as someone who knew something about writing emulators in JavaScript. Of course, I wasn’t completely vacuous, but I knew there was only so much I could know after spending only the last month submersed in it. To this end, I crunched and started cramming as much information into my brain as I could. I wanted to kick ass, and I knew the only way to do that was to have an in-depth knowledge of my subject matter.

I spent 3 weeks solid writing my talk and slides, and demo’d to one of the organisers three times, as well as to friends over Skype. I also demo’d it to my partner, which proved to be quite useful, as she didn’t understand the subject matter, allowing her to pick up on other nuisances, such as my ability to say um and uh 300 times in 45 minutes (that might be an exaggeration).

When the big day came, I got up at 6am (why did I go to the pre-party?) and made my way to the venue. For some reason, I became extremely nervous on the day. I don’t know what to put this down to, but it may some form of social anxiety. Anyway, I decided to say fuck that and I marched up when it was my time to shine.

To make things more stressful, when I was setting up my slides, I noticed the projector was a mirrored version of my laptop, effectively cutting me off from all my notes I wrote in Keynote, as well as the current time and next slide information. To make it worse, my slides were also in the wrong resolution, so they were letterboxed. What’s the worse that could happen?

For anyone who knows me IRL, they know I have a quirky sense of humour, ranging from dark humour to poorly executed off-the-cuff dad jokes. To satisfy my enjoyment in putting smiles on people’s faces, I decided to incorporate these into my talk. I kicked off the talk, and once I was up there, all thoughts of nervousness disappeared.

I spoke about computer architecture in general, the NES hardware, emulating those components with JavaScript and mixed in a bunch of jokes, which were mostly well received. I had a few fuck-ups, like forgetting which slide should be coming next and leading into the wrong one, and mispronouncing some terms that I’d only ever read. I also said awesome probably too often.

At a SydJS a few months later, I gave a follow up talk titled How to write a disassembler and debugger in JavaScript to accompany your emulator. It was a lot shorter, and I wasn’t nervous at all in the lead-up.

Giving a talk was such an awesome experience and was one of the highlights of 2012 for me. I recommend it for everyone, seriously, get off your ass and give a talk. Don’t wait until you feel like you’re a subject matter expert; just sharing your experience is fun for you and your audience.

Want to discuss this post? Just mention me @alexdickson.