Sean Patrick Hagen bio photo

Sean Patrick Hagen

Vancouver based programmer who also does stuff with ttrpgs and video games.

Twitter YouTube Twitch LinkedIn Instagram Github Stackoverflow Pinterest Steam Flickr

CascadiaJS Day One

Another live blog! This time, it’s Day One of CascadiaJS!


I’ve arrived at the venue, got my pass, and grabbed some breakfast. They had a nice spread of fruits, muffins, juices, and coffee. The venue is already pretty packed, but I’m able to grab a decent seat near the back of the room. The set-up is a bit different than I was expecting. I saw a tweet from the Rackspace guys saying that they were setting up their booth – so I was expecting a few booths, showing off different stuff. It turns out that Rackspace is the only company with a booth set up. I don’t really care that much, it just means there’s less chance for awesome free swag. Oh well.


The Wifi password is put up, everyone attempts to connect, WiFi promptly dies.


The conference kicks off! By show of hands, most of the people are attending CascadiaJS for the first time. The logo from last year was kinda cool, but definitely kind of “programmer design”.

Apparently, CascadiaJS is supposed to be an “intimate, single-track conference”.

Also, definitely thinking I should get a MacBook. My lap is starting to get kinda hot thanks to my laptop not being so good with the whole “dispersing heat” thing.


The keynote! The MC starts off with some good jokes.

The keynote speaker is Glen Lougheed, talking about the awesomenes that is JavaScript and the future ahead of us a JS devs.

Skype apparently now accounts for 30% of the call volume made – in the world.


The keynote was awesome, but unfortunately the power doesn’t seem to be working. I’m going to have to turn off my laptop before it dies ( the battery in my laptop suuuuuucks ).


The power bar I’m hooked into is working again, so back to this! There were two great presentations to start off. The first one was from Chris Dickinson, and he was talking about parsers in JavaScript. He had a couple of really cool tools that let you use a CSS style syntax for grepping through code to find things. He showed off a tool that lets you write a pretty simple linter to check your code for standards violations. I’m thinking that could be pretty useful at work.

The second presenter was a Zach Bruggeman 16-year old. He talked about how JS is a great language for getting teenagers ( and even younger kids ) interested in programming. A good point he made is that JS has a really quick “zero to hello world” factor, and a pretty small “hello world to whoa” factor too. To start working with JS all you need is a text editor and browser, both of which come with just about every computer on the planet. Going from “hello world” to “whoa” ( something that shows off how awesome a language can be) is pretty short too, as there are tons of awesome demos out there on how to do WebGL, audio, even game programming using JS.

Now I’m just waiting for the next round of presentations. I think there’s a single presentation, and then we lunch.

* looks at schedule *

That’s correct!

Apparently today’s lunch is being provided by Sauce Labs, so kudos to them.


Next up, a talk about web components and web audio, being presented by Soledad Penad├ęs.

New emoticon: *\o/*.

Talking about getting proper audio in the browser, with Adobe’s Make Noise initiative. We got things like the

Chrome’s Web Audio got chosen by W3C to be the official web audio API.

Web components == custom DOM elements, which is pretty awesome. They can have custom behaviour, custom appearance, and a few other things. They can be pretty powerful.

Soledad shows off the web component that she created that lets you build a synthezier using HTML tags, which is amazing.

I really need to find the code for this and send it to a few friends that would flip out.

Another awesome things about web components: you can style them with CSS!

Check out this awesome project on GitHub


Apparently there’s one last talk before lunch!

This talk is “Making WebRTC Awesome” by Henrik Joreteg.

I’ll admit, I’ve never heard of WebRTC, apparently I need to do some more research.

At it’s core, WebRTC, is a peer connection:

new RTCPeerConnection()

It’s low-latency peer-to-peer networking IN THE BROWSER. Which is pretty damn awesome. With WebRTC, you can build a TELECOM in JavaScript. Holy crap.

Henrik helped build a service called

You can use WebRTC for video, audio, or both. Even screensharing.

Things people can ( or have! ) built with WebRTC

  • surveillance systems
  • baby monitors
  • remote-controlled electron microscopes
  • intercom systems
  • always-on office portals
  • distributed team collaboration
  • peer-replicated broadcasting
  • pirate radio

Data channels are aparently a bit half-baked, but are amazing ( apparently ).

Makes a good point about the big web companies being the next generation of telecoms. Facebook, Google, Microsoft, Apple – FB Messenger, Hangouts, Skype, and Facetime are competing with the telecoms of today.

Federation is the next step for these companies. Until you can use your Facebook account to chat with someone on Google Hangouts, these technologies won’t really take off as new standard of communication. Look into something like [OTalk][].

A great talk, and has given me a bunch of ideas.


Lunchtime! Provided by La Taquira.


All done lunch, time for some more presentation. Apparently some free swag – a Twilio umbrella, actually pretty useful in Vancouver.

The first talk of the afternoon is “The Node.js Event Loop”, by Stephen Belanger

I turn away for two seconds, miss the first three slides, apparently.

We’re talking about the Nodejs event loop. Callbacks are not magically async. Async doesn’t equal fast, it means efficient. Batching operations is always a good idea. Break down your code into the smallest unit possible, and batch those units when possible.

This guy is talking about something I’d love to learn more about, but he’s really not a great presenter. His slides aren’t well made ( way too small of a font for code examples ), he goes through the slides much too quickly, and is basically just reading off the slides.


Next talk is “Computer Science Through Streams”, which already sounds pretty interesting. The speaker is Tom Buchok.

Backpressure: the rate at which file I/O happens is always going to be faster than network I/O. It’s basically the ability to quickly read ahead in a file to get the next chunk to send out, while still waiting for the current chunk to get sent over the network.


My computer crashed ( no idea why ), but thankfully I didn’t seem to lose much. Unfortunately, I seemed to lose a bunch of notes I had been taking on the side. Oh well. Back to blogging!

I’m finding that some of these talks are really great, showing off some great/awesome/cool/neat tech. Things that I’d like to play around with, or things that I’ve been thinking about learning. Or maybe the presenter is just really good at grabbing my attention and gets me to pay attention.

However, I’m finding that some of the talks are not so great. Some of them fail to grab my attention, or the slides aren’t well put together, or the speaker just isn’t exactly the right person to be doing a presentation.

Still having fun overall though.


Taking a short break while the next presenter gets ready.


Next talk is apparently about “Programming Really Big Computers”, from the glance I got at the first slide while the next presenter sets up.


I got the title right. It’s a talk by Neuman Vong, who works at Twitter, which is awesome. He’s talking about using NodeJS with cluster programming, whether it’s spreading computation over all the cores in a CPU, or across multiple compute nodes.

I love how he refers to accidentally waking up all the threads at once as “the thundering herd problem”.

Of course he goes and reminds me that I really want to learn Erlang – and that reminds me I really want to learn Go, Lisp, Haskell, and a few other languages.

Towards the end of his presentation, he shows off some pretty neat stuff on how to create a master-slave messaging system. If you want to take a look, you can check out his slides here.


Break time!


Special announcement!

Apparently there’s a hacker olympics happening tonight! It’s apparently nothing like your regular hackathon. It sounds like a ton of fun, I’m looking forward to it!

The next talk is by Brad Bouse, about “Make Art Not Money”. He co-authored a book with his wife that is an augmented reality book of poetry, which is pretty awesome.

Brad shows off some pretty neat demos using JS and WebRTC. I’ll try and get links and post them here later.

He makes a good point in one of the slides: no mouse interaction! What do you do when you come from a world where everything relies on a single point of interaction? Moving to a world where you use something like the Leap Motion, Kinect, or other sensing hardward and instead of getting just a single point of interaction, but tons of points including things like scale, translation, and rotation could be brain wrinkling.

Some image

Gestures are also a whole different ball game. So much to think about. I’m not sure my brain could handle trying to program something like that.

Some takeaways:

  • performance is really important
  • many atomic actions <= controlling memory leaks
  • control event flow <= multiple libraries interacting can get confusing
  • interface problem solving <= there’s no click ( no mouse! )
  • abstraction

If you want to check the slides, they’re available [online][]!


Next presentation! “High-performance WebGL Apps With LLJS And ASM.js”, by James Long.

…This actually sounds pretty awesome.


This talk is way to interesting to take notes during it, I’m just going to link up the slides later.


So awesome. Also the first presenter that I could tell they were using Emacs.

Next speaker is Nathan Vander Wilt, talking about “Building web apps with D3.js". This one should be interesting, as we’re using D3.js at work, so I’m hoping to learn a few cool things.


Again, this talk is too interesting to take notes, so I’ll post up a link to the slide later.


Registration for Hacker Olympics! Dinner! Hoodies!

That’s it for now, I may blog some more during the Hacker Olympics, but I’m not sure.

This post was authored by Sean Patrick Hagen on 2021-01-31 14:29:52 -0800 PST

Wanna see the commit? Go here: 8dae7b5a7658caef8feef6fa8ffb582636c687c7