Sf.js

Oct 13 2016

I recently went to the Bay Area to visit my brother and got a chance to go to some meetups and mingle with the local nerdfolk. Here’s a summary of the meetups I attended and what I learned:

Electron Meetup

The first meetup was for the exciting new Node.js-based framework Electron. It lets you build desktop apps in HTML/CSS/JS and then distribute it to Windows/OS X/Linux. I’ve been playing around with it, so I was excited to hear more about it, especially since two of the presenters were from Github and part of the Electron team.

The first presentation was a primer on new features added to Electron. The project only recently hit version 1.0 and it’s still under heavy development. I think for anyone using it in production it’s going to be important to keep track of development and the direction the team goes.

Next we had a demo of building an Electron app to send commands to a robot. All the serious code was handled by pre-existing Node.js plug-ins, but it was a fun demo (showing off the Sphero BB-8 robot), and shows how easy it is to quickly build a desktop GUI app using Node.js packages.

The most interesting presentation from a technological perspective was from a member of the Slack team, showing off their new project Electron-Compile. It’s a way to simplify the transpilation of source code into HTML/CSS/JS during development of an Electron app. Much time was spent demonstrating the cleverness of the team in achieving this, which I can’t reproduce here. It was most impressive, and definitely something I will look into using for my next Electron project.

And finally, the most entertaining presentation from the presenter with the most flair, Guillermo Rauch basically showed off his nifty new Electron-based terminal emulator, Hyper.app (until a recent cease & desist known as HyperTerm). I didn’t really learn much knew, as I was already familiar with the project, but I was dazzled by the things he could do with it. I highly recommend checking out Hyper.app and playing around with it. I would describe it as the Atom of terminal emulators.

TypeScript

My next meetup was at Google’s SF Headquarters to learn about TypeScript, last year’s hot new language to transpile to JavaScript that I haven’t heard much on since. I have a lot less to say about this presentation, as it it simply wasn’t as interesting. The main thing that I learned from it is that, contrary to what I’d heard before, the main advantage of TypeScript is not avoiding type errors at runtime but actually to allow for better tooling (specifically better IntelliSense code-completion in Visual Studio/VS Code). It makes sense now why Microsoft would create and push TypeScript, as it seems well married to their text editors.

NodeSchool SF

Finally, while not a true meetup, I attended NodeSchool SF, an open workshop for learning more about Node.js. I attended a special workshop there on contributing to the Node.js core codebase. There, I found that I had a little trouble actually Node.js from source because on my Arch Linux installation Python 3 is named simply python, and the Node.js make files expect Python 2. I finally got around this by temporarily symlinking python2 to python and overriding my usual $PATH. After getting it compiled, my first commit to the Node.js project was a modification to the documentation regarding building it. Just getting my feet wet, to be sure, but a satisfying feeling.