Node.js postmortem debugging for Linux

You can now debug your Linux-based Node.js application on SmartOS using a core dump.

TJ Fontaine:

Max Bruning and I decided we wanted to be able to load a core file from a Node.js Linux process and be able to run ::findjsobjects on it in mdb.

If you run Node on Linux with --abort-on-uncaught-exception, you can inspect the state of JavaScript objects using the core dump created when your process crashes.

This gives you a fighting chance at tracking down the unique kinds of errors that occur most frequently in production. If you’ve ever ran non-trivial Node programs in production, you’ll understand that this is a huge accomplishment.

Update: If you’re new to debugging Node on SmartOS, check out the latest MDB and Node.js article by David Pacheco.

“Mr. Market”

Warren Buffet, from his Letter to Shareholders, 1987 Berkshire Hathaway Annual Report:

Ben Graham, my friend and teacher, long ago described the mental attitude toward market fluctuations that I believe to be most conducive to investment success. He said that you should imagine market quotations as coming from a remarkably accommodating fellow named Mr. Market who is your partner in a private business. Without fail, Mr. Market appears daily and names a price at which he will either buy your interest or sell you his.

Panther Beach

A week ago was Martin Luther King, Jr. Day, which I spent visiting Panther Beach in Santa Cruz with friends. It’s not the most accessible beach. The parking “lot” is a patch of dirt off Highway 1 and getting down to the beach involves a steep hike. But it’s a great spot if you can reach it. We got up near the tide pools and took these shots as the sun retreated on this winter evening. All shots taken with an iPhone 5.

Three Talks

I’ve been busy this month speaking at HackSI, YUIConf, and Bayjax. The videos will be available soon, but you can check out the slides now:

My testing talks reveal what I’ve been working on for a few months: yo/tests, a commit-based test report for YUI that helps us ship quality releases. Compared to Jenkins’ build-based test silos and build-based CI dashboards, yo/tests actually lets engineers know what’s broken by organizing results around commits instead of build numbers and hiding flaky tests and infrastructure.