On January 31, 2014 my second son was born. That evening, while my wife and newborn were getting some sleep, I decided to jump on my phone and try to respond to the never ending mound of issues that seem to pile up in the Node repository. One of which was about enabling the
--harmony option by default. Unfortunately one of my comments was misinterpreted by some. I will gladly take the blame for being simultaneously over-broad in my description of features accepted into Node core, and non-specific about what core means.
Though bear in mind I never thought my comment would be taken so far as to lead some to believe Node would actually fork V8, or some such, to prevent ES6 features from being available in Node (especially since we had already done for one feature what this PR suggested we do for several others). Or because just prior to that paragraph I had discussed my conditions for allowing
--harmony to be enabled by default, and it would have been a contradiction to then say it would never be allowed.
My Node Future
The community has proven two things. First is that none of us agree on how an API should be written. Second is that there are very talented developers that will push Node to the limits. My hopeful goal for Node is to introduce a standardized minimal API that sits very close to these C++ bindings. From there the community can create whatever interface they want with as close to zero unnecessary overhead as possible.
Moving at Node Speed
Some days I like to write little apps that sit directly on top of the internal C++ API (Max, promise I haven't forgotten about the router app). Every time I do this I'm reminded of how much performance is left on the table due to abstraction.
Imagine you want to saturate 100Gb pipe with TCP traffic. That means you'll be sending at least 204,800 packets a second. Which also means something needs to be executed at least 204,800 times per second to send that data. Small amounts of extra abstraction start to make a big difference in performance at this level.
This post first appeared on Trevor Norris' blog
These past seven months, David Dias has been with The Node Firm as the first ever #firmintern. David epitomizes everything we love about the Node Community with a contribute first mentality and a sincere desire to help others.
When David joined us, he had already run two conferences, organized multiple meetups and was a dedicated Node.js developer. David was quick to learn and and lead the efforts to upgrade nodefirm.com to use Hapi.js. David helped us enable performance monitoring with New Relic. Together we launched new online initiatives like Node Firm Office Hours and Node.js Performance Analysis Training with Trevor Norris. He helped us make Node Summit amazing.
David worked tirelessly with our course development team in an around-the-clock to help create a custom training program for one of our clients. David was instrumental in making this insurmountable task possible. In fact, we delivered an extraordinary experience within an implausible amount of time. Last but not least, David helped kick off a new initiative where The Node Firm is helping support the Node Core team deal with core issues. David has truly helped make The Node Firm better in the time he has been with us.
It is with great sadness and respect that we say goodbye to David today. Nonetheless, he won't be going far. Join us in congratulating David in joining the Node Security team with Adam Baldwin. We will miss you and look forward to your amazing contributions in this very important project.
Your Friends at The Node Firm
This month's Node Firm Office Hours will feature Adam Christian and Daniel Shaw. They will discuss the challenges of large scale testing and explore what works and what doesn't in the realms of automation, testing and test-driven development.
Schedule (Pacific Time)
10:45am - 11:00am PST Setup and Registration
11:00am - 12:00pm PST Office Hours
Office hours topics:
- What frameworks have you used?
- Favorite testing framework (Node.js) or which framework do you hate the least?
- Unit vs Integration vs Functional. Fight!
- To mock or not to mock.
- Challenges of testing at scale across a large number of devices and platforms.
Join us for office hours Thursday at 11:00-12:00 PT.
Signup now: https://tito.io/nodefirm/office-hours/
Your friends from The Node Firm
The Node Firm is preparing a new half day Performance Analysis training. Each topic has been specifically chosen to address issues most common to Node.js application development. This training will instruct how to quickly identify and troubleshoot existing performance bottlenecks, and architect more scalable APIs going forward.
Key topics include:
- Understanding how Node handles I/O
- The basic tools of Performance Analysis
- How to apply what you find
- Performant module development patterns
- Writing useful benchmarks
We will be introducing this as a prototype for a totally new course format. We will be offering this course online. This will be our first ever online offering! It will feature a unique, engaging format. The course starts with a half day hands-on training session. Then, the following week we’ll reconvene for and optional in-depth Q&A and deepening understanding session.
This will also be available as an onsite course in conjunction with our performance tuning and benchmarking services.
Students taking this course should have strong Node.js programming experience from The Node Firm’s Advanced Node.js Development or equivalent with a solid understanding of core Node.js patterns and primitives including the module system, Event Emitters, Buffers and Streams.
Your friends at The Node Firm