Weekly Head Voices #136: Slightly more than nothing much.

The majestic view from Bodega onto the Dornier cellar and the Hottentots-Holland mountain behind it.

Welcome back peeps! Make yourselves at home.

It seemed that nothing much happened during most of the week, but I started writing anyway. It turns out there was slightly more than nothing much. Writing stuff down does have its perks.


Pro-tip of the week: Install vimium. It’s a chrome extension which enables you to SURF THE INFORMATION HIGHWAY with just a bunch of keyboard shortcuts.

I avoided this for the longest time because it has the word “vim” in its name, but I was wrong.

I can now waste time on reddit, twitch and youtube 73% more efficiently, every day.

nerd works

As far as I can remember, my work week was pretty straight-forward.

I started implementing PDF reports again, but for a different application. wkhtmltopdf is now magically broken in different ways from the previous time. Compared to bundling and maintaining a stripped-down TeXLive, or paying the $995 license for pdftk with which PDF forms can be programmatically filled in, this is the best choice at the moment.

Remember, there are no answers, only choices, even when baking PDFs.

For Most Major Sideproject (MMS) I unfortunately had to do some front-end programming. I say unfortunately, because the back-end is all machine learning and cleverness, and then I smash my little programming clown car into the idiot brick wall that is web frontends. At least react makes the crash slightly less painful, and this time react-router helped me to get my URLs synchronised with app state fairly easily.

Ok maybe it’s not that bad.

My new Robotdyn Arduino SAMD21 M0 boards arrived! This is arduino, but with a 32bit ARM Cortex M0+ instead of the Atmel 328p on the UNO boards. After some more hours of struggling to get Arduinos talking to each other via XBEE radios, I now know much more about programming these gadgets than I ever wanted to.

Mostly due to the very-badly-documented-and-seemingly-unsupported itead arduino-xbee interface boards I’m using, I am closer but have not yet received any cigars. (pro-tip: That extra top 3.3V jumper does more than just control level shifting. It also connects A0, RTS and DIN together. If you think you’re going to use A0 for RTS, your xbee will mysteriously hardware reset every 5 seconds. However, if you disconnect the jumper, your board will hardware reset every 5 seconds no matter what you do. Pro-tip: Don’t buy itead.)

new beer warlord

On Wednesday I tasted a new craft beer (this does not happen very often anymore, as I’ve had almost all of them) during a Top Secret Business Meeting. It’s the War Lord IPA by Darling Brew:

This might even be more metal than their Bone Crusher <INSERT HEAVY METAL GUITAR RIFF HERE>, which is extremely high praise. As IPAs go, I will definitely make this choice again, perhaps  even in the very near future.

part of the weekend never dies

On Saturday and Sunday morning (overnight parties are the BEST parties) we had long-time friends over for a dinner party.

Something like 25 years ago we did the Magoebaskloof hiking trail together. There’s nothing like sharing meals of dried soya (just add water, INDISTINGUISHABLE from meat the packet said), dried mash (“smash” I believe) and dried vegetables during days of hiking through the forest for getting to know each other better.

Besides the hiking, and many student parties, there was also the little matter of me meeting my life partner through this connection. Not unimportant.

Anyways, craft beer (King’s Blockhouse IPA, nice and strong), great local wine (a Chardonnay-Pinot Noir blend which more or less satisfies my “expensive Chardonnay” criterion) and brilliant food (chicken, extremely slow over the fire) acted as the culinary backdrop for naturally flowing and energising conversation.

Thank you long-time friends!

Late morning Sunday we left for a family lunch at Bodega, restaurant at Dornier vineyard. This restaurant has made previous appearances in WHV #76 (July 1, 2014) and WHV #102 (January 20, 2016).

Again I can do nothing other than award it the WHV three thumbs up award! Wine-food-scenery-climate combinations really are amazing.

(I just noticed that the wine which was paired with my Mauritian (no, no Martian fish yet) seabass, and blew me away, also blew me away in 2014. It’s the Donatus White, Semillon-Chenin Blanc blend. External memories FTW.)

let us ponder: wa

Westerners are often very individualistic.

We are brought up with the mission to “be yourself”.

In Japan, there is “wa” (和) which wikipedia describes as: … harmony. It implies a peaceful unity and conformity within a social group, in which members prefer the continuation of a harmonious community over their personal interests. (emphasis mine)

I understand that this has a different set of downsides to our individualism, but group harmony sure sounds nice. Perhaps in the future society we are going to start building soon, we could somehow combine “wa” with a deep respect for the scientific method, and in this way finally transform into the Star Trek Federation that we were promised.


Have a productive but especially harmonious week kids! I hope to see you again soon.


Weekly Head Voices #134: SCARF.

Untitled artwork by GOU#2 (age 7), who is also known as My Most Favourite Middle Child.

I somehow forgot to take photos this past week. At the very last moment, GOU#2 delivered, as if commissioned, the piece shown above.

The WHV visual element lives to fight another day!

The rest of this post is divided into three parts: One for the programming nerds, one for the running nerds and one for the arm-chair psychologists. Feel free to pick and choose!

C++ quo vadis?

This week, we spent more than a day chasing an elusive memory-related access violation (big words for “crash”) in the software we recently released.

In the end, the bug was only really reproducible on Windows 7 (not on Linux, not on macOS, and only with great difficulty and infinite patience on Windows 10). It turned out to be hidden deep in a well-tested, industry-backed open source C++ library.

This and the specific nature of this bug again demonstrated to me that C++, although I love it dearly, simply has too many well-disguised flaws (let’s call them foot-guns) which will eventually lead to even the most experienced and sharp programmer making mistakes.

In spite of the recent language renaissance (C++11, 14, 17 with 20 imminent) and a slew of improvements, it’s still too easy to write unsafe code.

With contenders like rust (rustlang AJ, rustlang!) which enable programmers to write programmes which have C++-level performance but are by default safe, could C++’s days be counted?


It was time to retire my trusty pair of Asics Cumulus 18 shoes.

They had clocked just over 900km, which is perhaps a little too much. By the end, I could feel the bones in my big toe’s main joint (apparently also known as the big-toe’s MTP or metatarsophalangeal joint) crunching down with each strike.

Normally not prone to these types of visits, I had no choice but to pop out to the Run Specialist Store in Edward street on Thursday to get a new pair of activity-proof foot covers.

They let me run on a treadmill (whoohooo running!) with a high-speed video camera. In the footage, we could see that indeed my conversion to forefoot running had been successful (which was good to hear, because it had cost me about 100km of pain), but that I tended to land on the outsides of my forefeet.

The minimal shoes I had had in mind were not (yet) to be.

Instead the run doctor prescribed a pair of Saucony Kinvara 8s, which make my old Asics look like previous generation gardening shoes. I’ve since taken these out on two runs. They are super light, and super springy (everun FTW?), but I have to say that I have my doubts about the durability of the outsole. I’ll report back.

In February, I’m pretty happy that I managed to squeeze in just over 110km of running, which is not too shabby (by my standards, as always!) for the short month.


Yes, winter is coming, but this, although also quite useful, is not that type of SCARF.

I am still reading David Rock’s book Your Brain at Work, and SCARF is his mnemonic for Status, Certainty, Autonomy, Relatedness and Fairness.

These are five social needs, the threat or confirmation of which can have profound effects on humans.

If you feel that you are being unfairly treated, for example, this triggers a low-level threat response which fundamentally complicates dealing rationally with a situation.

Conversely, if for example an interaction grants you more certainty or even better autonomy, you are magically able to contribute significantly more cognitive capacity and creativity to that interaction.

Both the fundamental threat and reward responses go for all five of these qualities. Once you know what to look for, it’s easy to go through some of your memories and to see where one or more of the SCARF needs played a role.

Although one (hopefully) mostly intuitively integrates this in one’s daily dealings, I think it’s super useful being able to enumerate the SCARF social needs like this. It helps when managing oneself in any situation (especially when your prefrontal cortex is exhausted, which is just about always), and it certainly helps when you might find yourself in position where you are able to contribute to another human’s well-being.

The end

Have a great week friends, I hope to see you again soon!

P.S. if there are any arduino uno -> hardware serial -> xbee experts in the audience, I would like to have a word. (sparkfun shield. with software serial can talk to xbee. with hardware serial, and sparkfun switch in the right position, xbee won’t respond. uno is a robotdyn clone.)