Nodevember 2015: my keynote, and a novel in four chapters

I keynoted at Nodevember 2015, last November in Nashville, Tennessee. There were some technical issues with the audio and video not being very much in sync I think, and that's why the video has taken some time to be published. Thanks to the organisers for recording it! It has been made available just today :-)

https://www.youtube.com/watch?v=t-F-93Q7s04

What you might not know is that I almost didn't make it to the conference. And I also had written a sort of novel detailing what happened before, during, and a bit of after. So, without further ado, here it goes:

Chapter 1 - 22h of travel

The day to travel arrives, and I was in the airport early enough. For some obscure reason, the check-in kiosks didn't work with my passport, so I went to the business counter. The counter person felt very entitled to interrogate me on my motivation to go to the States and which company I worked for and whatnot, as if she was a border control guard or something. Perhaps I was dressed too informally? I was in between amused and inconvenienced, but tried to play along. It's good to have business cards handy to prove you're not a faker in these cases. What is not that good is that my title says "Troublemaker", perhaps I need to get a limited run that says "Senior software engineer" or something of the sort, but she did crack up when she saw the title, and after that, she stopped being a cretin, but also said that she couldn't find my connecting flight. WHAT!!? I started producing all my reference numbers and codes and she finally managed to locate my other ticket. But it did scare me a little bit! To note: I've never had issues with other companies inconveniencing me at check-in time or "losing" my tickets.

After security, the first thing I saw was the flight was delayed. I was somehow concerned about the flight being delayed an hour, because I initially only had 2 hours to make the connection via Charlotte! So I went to the American counter and asked them. She said that maybe they could make up for it, and that there was an entire team focused on making sure that if people didn't make the connection they would welcome them and re-book them on a suitable flight. OK then!

Something like 20 minutes later they started calling for passengers on my flight to "present themselves" in the gate very URGENTLY. I was quite confused as it wasn't boarding time yet - but I made my way to the gate which was something like a thousand miles away.

There it was absolute chaos as apparently the plane we were supposed to fly to Charlotte with needed some emergency repair, and the piece they needed would not be ready until 19h (my flight was at 13:20). They were trying to re-book every passenger on alternative flights, so imagine the pain of having to explain and argue what's happened... some people didn't speak English and didn't understand what was going on, and feared they would miss other flights they had days later, etc. It was very stressful! I started to wonder: was this a signal that I shouldn't attend this conference? It all seemed so complicated... and all I had to do was to leave the airport and take the train back home while I still was in UK land.

When I reached the counter they said they could book me on other flights via Washington (not Charlotte) that would arrive two hours later to Nashville, so I figured it would not be that bad. At least it was the same day! Except the flights were with United, and the seats were pretty awful compared to the great seats I had got initially, and then also United doesn't fly from T3, but T2, and I had no idea of how to change between terminals from the departures area. I wondered again if this wasn't a sign for me to go home, but I asked her how to transfer and she told me to follow the signs for "Flight connections" which was very awkward, but anyway.

Things got interesting here: I walked the one thousand miles long corridor again and came back to the terminal hall, looking for the "flight connections" sign. I found it, but no obvious way to connect to anything---except for a mildly concealed door that looked like a service door. It had a sign with instructions: press the button, wait for the door lock to release, get into the corridor, wait for the door lock to lock again, then do the same thing but on the door inside. I could only think of Metroid's air-lock corridors!

https://www.youtube.com/watch?v=NRjEcvy3Ds0&t=1m57s

I did this strange thing while thinking that I was going to be detained or something equally weird at some point by unknowningly intruding some area I should not be in, but I kept my bunch of four tickets on hand at all the times so I could explain my weird story and apologise for me being where I should not be, if necessary.

Apparently I was on the arrivals area then. Weird! I pretended I was "connecting" so I could somehow find a way to go from one terminal to another. I had to explain my story to three different people in counters: "American cancelled my flight, they re-booked me with United, so I need to change terminals. Yes, I still haven't flown. I came from London Heathrow". I also had to clear security again. Then I followed more long corridors and stairs down a sort of mini bus station where you queued for a bus that would take you to some other terminal.

Finally in T2, I had to find a United counter, but before I could speak to them, some other person intercepted me to ask again for how long I was going to be in the States, where did I live, etc, etc... it was like the fourth time they asked me this, but at that time I wasn't even considering giving up the whole trip, I was just moving by inertia.

I reached the counter and then changed my "not valid for travel" tickets for actual tickets. I tried my best at asking for nice seats to compensate for the loss of my nice seats, but she said she couldn't do anything (obviously). Good thing was that my United Silver was still valid so she could at least put me in boarding group 2.

And so the rest of the trip to Nashville was mostly boring as it should have been from the beginning. By the time I was waiting for the connection in Washington I was essentially falling asleep and mixing Vancouver, Portland and Houston airports in my mind each time I looked at the small regional hall. When we boarded the plane, a baby started crying out of her lungs and I looked at it with such a look of hopelessness and despair that the person on my right looked at me with the most sympathetic gaze ever. We had a sort of brief cathartic moment in which she told me she had been flying from Barcelona and had started her trip at 7 AM or something, and I was almost 20 hours up by then. 2 minutes after we both fell asleep, sort of leaning on each other which was super weird, but we were just so tired, and I don't remember anything else from the flight.

Chapter 2 - Jetlagged in Nashville

The following day I focused on finishing my talk. I had been working on it intermittently between a ton more of things on the previous months and I kept changing my mind on everything—including the title. I kept telling people about my ideas and getting their ideas back into my ideas, and so I had this massive bunch of concepts I had to amalgamate into something that made sense... and it's hard to do that when you're spread too thin! So it was good to finally have some time to focus and work on this thing ONLY.

At some point I wanted to get food. This is where I found that Nashville was not a pedestrian friendly place, and less so the area where the conference was going to be held on, which is more residential. I tried to cross a road with three lanes in each direction and after walking something like 500 metres without finding a crossing I gave up and called a Uber to bring me downtown.

I wasn't really keen on using an Uber because I don't trust them, but everyone insisted we used Uber, including the conference organisers. So I prayed for the best and told them to bring me to a sort of an Australian style coffee shop downtown (the trick I've found for "decent coffee" is to look for "flat white" in foursquare, not just "coffee", and specially not if you're in Amsterdam as it tends to lead you to Amsterdam style smoking cafes).

Once I had some food I figured I could walk a bit and see some bits of downtown but I started to get super overwhelmed with the jetlag (it was like 22h or 23h my time) and all the loud country music blasting from every bar in every corner and the people who were SUPER HAPPY to be partying and had to express it by yelling at pedestrians - in my jetlagged state it looked to me like an alternate universe in which Country music is the thing in Ibiza, instead of house and trance. Consequently I called another uber minutes after because I thought I was starting to hallucinate.

Chapter 3 - Old friends and fried chicken

Next day was the actual conference day 1, I was late for the opening and the initial talks because I kept working on mine, but I showed up at about lunch time and was greeted very nicely by the organisers and people in the front desk. They showed me everything around and were also very impressed that I had managed to walk to the venue! To be honest, I wasn't sure I would make it because it all seemed so un-pedestrian friendly, sometimes the pavement would just abruptly finish as if the owner of that house didn't want anyone to walk past it, and I had to tiptoe over a thin kerb or attempt to cross to the other side of the road, but I needed to exercise somehow!

I said hi to many people I knew already and I liked both the setting (a very nice university campus) and also the vibe: it reminded me a lot to JSConf.US in that there were a lot of interesting people talking about many interesting topics, and I was very excited to be part of it!

I had lunch with Kassandra Perch and some other people I hadn't met before, but everyone was very open and welcoming, so it wasn't an issue to not to know anyone. I also watched her talk later that afternoon, and it was decidedly stunning, required viewing. Ed Finkler's closing keynote on mental health was also very interesting. Both these talks worked really well with mine as we each covered different aspects of health - individually and community wise. I managed to catch a bit of the ending of Kelly King's talk on implementing board games with arduino and it was fun as well.

I also found Ben Acker who I had met in Cascadia JS last year, in Portland. He also knows Oli Evans, a cool hardware hacker in London too (he invited me to their nodebots day back in July )--let's say they are all Good People! Ben essentially told me he was ready to help if I needed anything and that included giving me a ride to and from the hotel, which was super amazing! So not only did he give me that peace of mind that I would not need to use those shady Ubers, but he also listened to the crux of my almost done talk, and gave me some more interesting feedback and encouraged me, and I think that was great!

So it was thanks to him that I wasn't late for the opening keynote ;-)

But before that, he offered to drive a bunch of us to some place called Hattie B's to have "traditional southern" food. i.e. fried chicken! It was really good! I am not so sure about the boiled vegetables or the mac'n'cheese, but it was fun to be hanging out with all this JS people and eating this delicacy.

Chapter 4 - Surprise after surprise

On Sunday, William Golden (the conference "instigator") asked our colleague Jason Orendorff (of ES6 fame) to introduce me. Which he didn't expect! So he was terrified for a bit and tried to decide what he would like to say about me. In the meantime we tried to find a way to connect my fancy lightweight laptop with the HDMI dongle to the venue's VGA input. Their "HDMI to VGA" thingie didn't work, so at the end I had to copy my slides to a USB pen and use their own laptop, which was easy to do because they were just HTML. Another speaker had the same issue. The solution would probably be to carry a USB3 to Display Port dongle as well, because most venues that "take Macs" actually just take Display Ports, and everyone else seems to just use VGA, not HDMI. Except that Dongle doesn't exist because I guess Apple just wants to kill Display Port as soon as possible!

Technical issues aside, Jason came up with a fun intro for me and I did my talk.

I had the feeling that people were at least having a good time because they laughed at the jokes etc, but I didn't expect the organiser to come up to me right after the talk and say "have you seen what is going on on twitter?" - apparently the talk had gone TOO WELL =)

Here's some tweets I favorited for future reference and for the day I'm feeling down or sad

https://twitter.com/jcreamer898/status/665928722881585152 https://twitter.com/WillsLab/status/665920848239452160 https://twitter.com/serdavosboling/status/665920345237532673 https://twitter.com/lroggendorff/status/665919645992542208 https://twitter.com/nicholaswyoung/status/665914713587523584

After my talk I attended Kyle Simpson (also known as getify)'s talk on CSP but I was still a bit high on adrenaline I think, and couldn't really focus much, but there were mentions to another of my excellent colleagues, James Longster from devtools and his work on functional programming, which made me happy.

I also joined Kassandra again for lunch and suddenly I found myself on a conversation about hardware and "internet of things" and javascript, which was very cool. I didn't know about all the things but I learned a few.

Later I attended a talk on the path from novice to senior developers by Aimee Knight. It was interesting to hear how she got to change careers and the type of resources she recommended for novice programmers nowadays—for me it's a bit complex to give advice sometimes because my way of learning is so different from the way people learn these days, so this was loaded with good content in that respect.

I also listened to Laurie Voss from npm talk about how they structure their service ("the registry"). Not that I will go and start implementing lots of microservices tomorrow but it was very interesting to hear how they sort out their availability issues. There was a lot of npm inc. people in the conference, and I happen to follow a number of them on twitter, so we had the chance to finally "devirtualise" us! They're nice people.

One of the other talks I saw was on hardware animations from Donovan Buck. It was super cool! Normally I tend to find "introduction to robots and JS" talks kind of "fine and entertaining" but I've seen a ton of those already and they're starting to lose the cool factor to me. Not this one! He explained physic limitations of motion and servos and how they all combine together to create 'drunk' robots if you don't take those into account, and how to teach these robots new animations by imitation instead of programming them out of individual single animations. He had an amazing sort of spider-y robot with many legs and it was just a joy to see that in action.

The room was super packed and Jason Orendorff had to wait a bit to clear the stage before he went and gave his talk on implementing AI on games using JavaScript. He explained a bit of games theory which can be really terse and boring but did so in a way that was really interesting and interactive by asking feedback from the audience all the time and also live coding in a giant sized emacs window and giant sized devtools console. It was really good fun!

The closing keynote was by Douglas Crockford. I was a bit not too sure about going to it because I was getting tired, but I tried and... wow. He essentially went on a tirade of hating "everything" on the internet-the DOM was bad, JS was bad (except for the good parts, and JSON), CSS this, HTML that, ... then he said they had devised an idea for a safe internet called "Seif" and proceeded to vaguely explain how it would be implemented, which totally defied all logic and specially all logic if you happen to know how browsers and standards are made. The core idea is that he just needed a website to be written in his new "Seif" environment, which would be run by "a progressive browser" that installs a complementary app that knows how to deal with his Seif app. This app would be programmed in JS but the UI would be built in Qt. They would use QR codes to access URLs and there was another bit about generating entropy using the webcam, but he promised not to use it for any nefarious use (YEAH SURE). So once that one website was up and a browser implemented a way to access that "website", his point would be proven and we could all move ahead and write only using Seif.

I honestly wasn't sure if he was serious or just trolling the entire room. I kind of expected him to turn around and yell something like AAAAH HAHAHA IT WAS A JOKEEEE right before jumping off stage, but no!

Some of the sentiment:

https://twitter.com/seldo/status/666020124537790464 https://twitter.com/aredridel/status/666030204884774912 https://twitter.com/jakerella/status/666027164693889026 https://twitter.com/supersole/status/666025151302094850

After this left me totally puzzled, I decided to not to go to any after party thing and instead went back to the hotel (thanks again to the fantastic Ben) and just... do... nothing.

But I went back really happy with the conference, the outcome of my talk and the connections I made! The next day I stumbled upon a couple of attendees in the hotel and we talked for a bit on various things-there was good vibes even after two days of intense four track talks!

If you have a chance to be there next year, do go! There was a nice mixture of beginner / advanced talks, and also technical / non technical. Even if the conference was "node-" themed, they were open to all things JS. People were open minded and generally merry.

Also again, the organisers and volunteers were really nice and attentive and they made me feel very comfortable and relaxed.

Hope you enjoyed my short node-novel!


~~~~~~~~~~~
~ The End ~
~~~~~~~~~~~