Thinking Anew

Two Days of Node.js

Main Ballroom Before the Big Event Starts

The beautiful City of Vancouver (in British Columbia) played host to the North American Node.js Interactive 2017 conference earlier this month. That close to my backyard, it was simply inexcusable not to attend! I wasted no time in getting the support of my employer and am glad I did. Here’s a little summary of my experience and what I learned at the two-day conference to share.

Keynotes

The conference began with a series of short (10 to 20 minutes) keynote sessions on a wide spectrum of topics. Mark Hinkle, Executive Director of the Node.js Foundation, kicked things off with a “State of the Union” address on how well the technology is progressing. Also announced was the launch of the Node.js certification exam beta. Look out for that if you are keen to demonstrate your Node.js skills. I signed up a while to be notified, but haven’t heard anything since. Hopefully in the coming weeks.

Mark made a special mention of Node School, a self-organized effort to develop curriculum and resources for running Node.js training workshops. Very similar to the work that Software Carpentry and Data Carpentry are doing to teach programming, Unix and data management to the research community. Given the resources that Oracle has provided, it won’t be difficult for the Oracle APEX community to emulate these initiatives.

First Class Citizen

Franzi Hinkelmann (Google) on Node.js' importance in V8

Franzi Hinkelmann flew across an ocean and continent to let everyone know that supporting Node.js is now a priority for Google’s V8 team. In fact, the recent delay in releasing Node.js version 8 was in part, due to major changes in V8 (Crankshaft → TurboFan + Ignition) in the V8 engine, and the team wanted the community to receive a version of Node.js that would be more future-proof. Great news!

On Open Source

Panel on issues sustaining an open source ecosystem. From left: Jory Burson, Erin McKean, Tracy Hinds and Maggie Pint

After round of lightning keynotes, the welcome session ended with an all-women panel to discuss some of the major challenges maintaining open source (OS) projects. I was especially thrilled to listen to what Maggie Pint had to share. Maggie’s the maintainer of the Moment.js, a library for manipulating dates in JavaScript that I’m sure many web developers have used in their projects. She was very candid on some of the issues she has had to deal with maintaining the project, for example, how she has to deal with snide remarks on the Internet. A good reminder for us consumers to provide constructive criticisms without needing to be mean.

Maggie opened the panel discussion with her take on monetary rewards for working on OS projects. Funding to pay developers is nice, but having companies granting employees time towards working on OS projects is even better. Large companies like IBM and Microsoft can quite easily manage and provide such support, but it is a challenge for smaller companies with limited resources to do the same. For that reason, I am very grateful to Insum Solutions for the chance to participate and contribute to open source.

A third takeaway that stuck with me was that YOU don’t have to be an expert coder to be able to contribute to open source. Most projects have other needs like writing technical writing, project management and community engagement. If you have these or other valuable skillsets, consider lending your expertise. The community will appreciate it!

Sessions

Most, if not all sessions were about 20-30 minutes long. A little different from what ODTUGers are familiar with. This format provides attendees a lot of breath, but unfortunately, at the expense of depth.

As an APEX developer, who sometimes dable with Node.js, these were my picks:

Day 1

Highlights

  • Love VS Code! Chris presented a comprehensive walkthrough on writing, debugging and deploying Node.js applications. An impressive demonstration of intellisense, Docker-based deployments and working with Azure cloud, all within a FREE tool!
  • Need a good use case for WASM other than game engines? Try stdlib. The workshop was an eye-opener, demonstrating how you could do a good amount of data analysis and visualization all within the browser using JavaScript.
  • GraphQL, cool tech but as an APEX developer, I have yet to be convinced with a good use case. Something worth exploring for data integration perhaps?

Day 2

  • Break-Up with Your Server, But Don’t Commit to a Cloud Platform by Linda Nichols
  • High Performance Apps with JavaScript and Rust, It’s Easier than You Think by Amir Yasin
  • Effective Typed JavaScript by Jeremy Morrell
  • New DevTools Features for JavaScript by Yang Guo
  • Using minikube (Kubernetes) for Local Node.js Development by Troy Connor
  • Serverless Bots with Node.js (workshop) by Alan Ho and Amir Shevat
  • TypeScript - A Love with JavaScript by Bowden Kelly
  • Grokking Asynchronous Work in Node.js by Thorsten Lorenz

Highlights

Sessions and workshops that I enjoyed on day two mostly fell into two buckets: Serverless and TypeScript.

Serverless is one of the newer buzzwords made popular by cloud vendors like Amazon (AWS Lamda) and Google (Cloud Functions). My interest stems from a presentation I did at Kscope17 that examined the role of Microservices in APEX applications. Since we run most of our code/logic on the database, the challenge is to find a fit for such technologies, especially in the cloud era. I expect to spend more time looking at this in the near future.

Bowden Kelly cited an interesting paper that examined the significance of applying type-checking in JavaScript development. The study examined 400 projects on Github and found that 15% of bugs identified could have been fixed before a release. I am not surprised! The lack of type-checkign was one of the major reasons why I had a distaste for the language, and so, dialects like TypeScript and Coffeescript are a welcomed addition. For APEX developers, you might be interested to know that TypeScript support was baked into APEX-Nitro v4.

The other interesting topics were on Minikube and Chrome’s DevTools. Minikube allows you to run a local single-node Kubernetes cluster. This helps with simulation and testing of Docker container deployments. Though currently you would use kubectl to deploy, it sounds like in upcoming releases (see report), paid versions of Docker will support pushing containers to Kubernetes clusters.

Conclusion

Sticker Collection

Node.js Interactive is a great event to attend whether or not you are a hard-core Node.js programmer by trade. Would have been nice if lunch was provided so that attendees didn’t need to compete with downtown office workers for food, but I suppose it had to do with the more affordable conference fee? And like all developer conferences, besides good content, the other benefit of attending is the opportunity to network with peers, speakers and vendors. I met some of the core people involved with Loopback project before Strongloop was acquired by IBM, and had the chance to allay my fears that Loopback was not going away in favour of some IBM-branded product. I was also pleasantly surprised to have met two friends at the event, and even learned a few things about GraphQL and Serverless from them!

The conference returns to Vancouver in October 2018, so for the folks heading to Oracle OpenWorld next year, consider planning a trip north to our beautiful city. There’s much knowledge and scenery to soak up!