Nature watching at home

“Are you sure which side of the glass you are on?” – Nine Inch Nails

This sheltering in place has made me into a budding birder (not really). I am moved everyday by the beauty of the nature right outside my window.

A gopher snake on the neighbors doorstep.
Released back into the wild.
A little lizard snuck in.
Leapin’ Lizards! These lizards are quick.

Music for Savage Breasts and Scorned Women

I went searching for a misquotation “Music soothes a savage beast”, and found…

William Congreve writes in his tragic play The Mourning Bride (1697):

Musick has Charms to sooth a savage Breast,
To soften Rocks, or bend a knotted Oak.
I’ve read, that things inanimate have mov’d,
And, as with living Souls, have been inform’d,
By Magick Numbers and persuasive Sound.
What then am I? Am I more senseless grown
Than Trees, or Flint? O force of constant Woe!
‘Tis not in Harmony to calm my Griefs.
Anselmo sleeps, and is at Peace; last Night
The silent Tomb receiv’d the good Old King;
He and his Sorrows now are safely lodg’d
Within its cold, but hospitable Bosom.
Why am not I at Peace?

These are the first words spoken in the play by a character. The speaker is the titular Bride herself, Almeria, and she speaks immediately after music plays; “soft Musick” according to the stage direction. Placed in context the misquoted line makes perfect sense. Almeria is saying “nice music, but it was no help.”

Given the time period, “a savage Breast” likely refers to the native people of whichever continents the Restoration-era English thought was most uncivilized. It’s made clear by the subjects of the second line that a savage was considered nearly as tough as wood or stone. Harsh, but the imagery is so compelling it gives Almeria a powerful juxtaposition to her own grief-induced immunity to the music’s soft appeal. Congreve was known for penning clever dialog, often for actresses he might have been having real life affairs with.

I was floored to learn that in The Mourning Bride Congreve also gave us the vastly more famous “no fury like that of a woman scorned”, which is also a less lovely paraphrasing of two lines spoken by the character of Zara, a captive queen:

Heav’n has no rage, like love to hatred turn’d,
Nor hell a fury, like a woman scorn’d.

I hear you Zara. Sadly, I can’t relate as well to Almeria, having lost the love of her life, not to be soothed by “By Magick Numbers and persuasive Sound.” I’ve never experienced any emotion that wasn’t helped by the right musical selection, but we live in a golden era of musical variety. Too much variety some would say. The more the merrier, I say. The more savage, the better.

A bit of coding, a byte of the cloud. Learning to code a cheap and cheerful alerting tool in an AWS Lambda function.

Code can do it. You can code. Do it.

Years ago I learned on the job to write little PERL programs and Shell scripts to manipulate data in files submitted by clients who could not deliver their transaction data conformed to a record layout that my employer’s application could ingest. Did I lose you already? I chopped up some stuff to make it work. That’s what I love about code, it can do anything to anything for anything that needs doing with data.

At Tesloop, needs are much more realtime. When one of our vehicles arrives at a location where it is scheduled to pick up or drop off passengers, it’s that moment and the minutes that follow when the driver (pilot) or passenger may need help from the Operations team. Our developers created an SNS topic on AWS that our serverless application (using Kinesis Analytics) posts to when a vehicle enters a custom geofence that we have defined around each location. To give the team a heads up, a Slack post is best. Our driver mobile app also posts to Slack when arriving at locations, but redundancy is good and triggering based on the vehicle data creates some additional benefits. All we needed was a way to make a Slack post for each post to the SNS topic.

Inspired by a post on Medium by Joseph Terranova it seemed trivial to extend his code to extract a vehicle ID number from the data and construct a link to our fleet monitoring dashboard. I did this as a proof of concept, to be improved upon or completely re-architected by our developers later. The immediate goal was simply to alert the Ops team.

Below is the code you can copy-paste into your Lambda function after following Joseph’s instructions for creating your Slack webhook and SNS topic. Don’t forget to replace the values for:

  1. Slack webhook path (line 1)
  2. Slack channel (line 2)
  3. Slack posting username (line 3)
  4. Switch values (line 10-18)
  5. Message template (line 28)
var services = '/services/…'; // Update this with your Slack webhook URL path
var channel = '#fleet-status'; // Update this with the Slack channel to post in
var username = 'Vehicle GeoFence Alert'; //Update this with the Slack username to show on the posts
var https = require('https');
var util = require('util');
function vehicleName(vehicleId) {
switch (vehicleId) {
case 9999991:return "Rex";
case 9999992:return "Toro";
case 9999993:return "Ruby";
case 9999994:return "Wally";
case 9999995:return "Deuxy";
case 9999996:return "Bravo";
case 9999997:return "Duke";
case 9999998:return "eHawk";
default:"Mystery Mobile"
exports.handler = function(event, context) {
console.log(JSON.stringify(event, null, 2));
var vehicleId = event.vehicle_id;
var message = vehicleName(vehicleId) + ' is arriving at a stop! See it on the fleet dashboard:' + vehicleId;
var postData = {
"channel": channel,
"username": username,
"text": message,
"icon_emoji": ":round_pushpin:"
var options = {
method: 'POST',
hostname: '',
port: 443,
path: 'services'
var req = https.request(options, function(res) {
res.on('data', function (chunk) {
req.on('error', function(err) {
console.log('Houston, we have a problem: ' + err.message);
req.write(util.format("%j", postData));

view raw
hosted with ❤ by GitHub

The result for me was nice little notification posts like the one shown below. Done. Did it.

Slack say what?

Oh no, I broke my nerdboard. How DIY electronics skills and open source software saved the day, and my hands.

My hands were hurting. I work in software development, spending many hours each day typing, and I also play bass guitar in two bands (one coincidentally named Static Hands). The toll this took on my hands became so great that I was experiencing muscle spasms that immobilized my right thumb. Ouch.

At the greatly appreciated suggestion of a coworker, I looked at the Kinesis Advantage ergonomic keyboard. The reviews promised it would be like typing on clouds, but the price is steep at $350. I found one used for $150, a bargain, but this one had a defect. The tilde key was sticking, not the key cap as happens from a spilled soda, but inside the switch underneath. Uh oh.

DIY electronics skills to the rescue! I opened the keyboard and desoldered the offending key from the cool, curved circuit board that reminded of samurai armor.

The Kinesis Advantage “Nerdboard” comes with space for your favorite action figure.

Inside we see the curved circuit boards that the keys are soldered on to.

The desoldered key’s now empty circuit board contacts.

With the sticking key gone I still needed to re-map the tilde key, because I use the back tick character (which also lives on that key) for quoting code in Slack. An open source, free application called Karabiner did the job with ease, after a few puzzled minutes figuring out its quirky user interface.

Should you ever need key re-mapping, please support the creator of Karabiner with a $10 donation. Many open source software projects survive on donations alone, and they are worthy of our support. In the realm of audio, there is the venerable Audacity, which has saved me on more than one occasion when expensive audio editing applications broke down… but that’s for another post.

Musical Mithridatism

“Why do you listen to angry music?” The question caught me off guard, when my mom posed it out of the blue. Why did I? Angst alone would have been an adequate explanation then, I was an angsty teen. Which begs the question; Why do I still listen to angry music now, as a happy adult?

At least one reason is people keep making truly great angry music. Ken ModeHead Wound City, Meat Wave, Retox, and Frameworks have all impressed the hell out of me with recent or upcoming releases. My musical projects aim only to keep such good company. An awful lot of us keep on creating whilst being in a bad way. Why?

Counterintuitively, angry music listeners and angry music makers have always been the nicest people I’ve had the pleasure of meeting. Many friends and coworkers have expressed the same, that a person’s angry music preference (dare I say penchant) and a deeply positive, empathetic personality go hand in hand. Now there’s got to be some common thread among all these lovely hate mongers. I call this phenomenon musical Mithridatism.

Mithridatism is the practice of protecting oneself against a poison by gradually self-administering non-lethal amounts.

From Wikipedia

I first heard of Mithridatism in Naseem Nicholas Taleb’s Antifragile – where he posits that to become a thing that thrives on unexpected shocks, stressors, volatility, and such, one must engage rather than avoid these hazards.

Having a reliable means to release your anger is a beautiful thing… and a beautifying thing.

Taking your poison pills of powdered angst on the regular makes you a little less likely to get angry, and when you inevitably  do still feel your blood boil you have the antidote waiting. Just press play and enjoy the noise. Silently screaming along is almost as satisfying as actually screaming in the faces of your tormentors. And it’s a lot less messy than smashing things.

Finally, listening to and making music aren’t far removed neurologically speaking. In fact, there’s plenty of brain scan evidence showing that when musicians think about music it activates the same regions of the brain as when they play, in spite of the fact they aren’t holding an instrument. I think this extends to non-musician listeners and acting out the aggressions expressed in the music they listen to. As far as your brain is concerned, listening to pissed off music is a similar enough activity to expressing your own pissed-off-ness.

So what’s your favorite anger anthem?