Going Solar

“This roof is perfect for solar panels.” That was not just another offhanded observation about the house we would soon buy, it was a persuasive selling point for us. We had been renting apartments in California for 7 years and knew when we made the leap to a house with the option of installing solar panels we surely would do so.

Solar panels installed on my roof

Electricity from the grid in California is expensive, relative to the US average, though that wasn’t my primary motivation for going solar. Sure, saving money is great, but we are a two person household using relatively little electricity. We will eventually buy a fully electric vehicle (EV) to replace the plug-in hybrid that’s in the garage right now, but unsure how far off into the future that is. Our motivations to go solar are a bit less obvious.

A sampling of states’ average cost of electricity for residential customers shows California is at the high end, but there are a number of other states with higher or comparable rates.

I mentioned that I don’t use very much electricity compared to the average person. I switch off the lights off when I leave a room, though with highly efficient LED bulbs that doesn’t matter quite as much as it once did. It’s the way that I use electricity that makes me want that electricity to come from sustainable or renewable sources. My audio recording gear and music making toys are very inefficient.

To my ears the best sounding amplifiers have old fashioned arrangements of components that draw a lot of electricity, making them rather inefficient. If curious, read about Class-A and Class-AB versus more efficient power amplifier topologies on Wikipedia. (More on my gear in the post script section.)

Making music is important to me, but making it with vintage gear feels increasingly frivolous. There are audio processing plugins that do a very good job of replicating all the classic gear. My only justification for using hardware is that I get better results and stay engaged longer when I’m turning knobs and pushing faders. Now if only I could do it without dirty power from the dirty power company (LADWP in my case)!

Solar power makes me feel alright about keeping all that tactile, interactive gear switched on humming along for as long as it takes to make something exciting. With the photovoltaic (PV) panels on our roof produce more electricity than we draw from the grid, over time. Net Energy Metering (NEM) lets us cover the cloudy months with the sunny months. 

I will share an update when we’ve got a full 12 months of solar behind us. So far, so good, and so loud. 

PS – What gear you asked?

My mix monitors are ADAM Audio F7, which I love and recommend to anyone shopping for monitors. ADAM explains the amplifiers inside the F7 and even shows a nice little picture of the amplifier that powers the ribbon tweeter on their F7 A/B Amplifier page. Optimizing for best audio reproduction means sacrificing some efficiency and Class-AB operation means there is always some electrical current being drawn by the amplifiers in the F7’s.

 

My big, hefty SUNN guitar amps sound amazing to my ears, but they were designed to fill clubs with sound. They did that by making their big vacuum tubes draw lots of electricity, running them hot! That heat is the evidence of wastefulness. I feel a bit better knowing that our solar panels are offsetting that by putting more energy back into the grid than we pull out. My SUNN is powered by the sun.

 

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: https://fleet.tesloop.com/dashboard/vehicles/' + vehicleId;
var postData = {
"channel": channel,
"username": username,
"text": message,
"icon_emoji": ":round_pushpin:"
};
var options = {
method: 'POST',
hostname: 'hooks.slack.com',
port: 443,
path: 'services'
};
var req = https.request(options, function(res) {
res.setEncoding('utf8');
res.on('data', function (chunk) {
context.done(null);
});
});
req.on('error', function(err) {
console.log('Houston, we have a problem: ' + err.message);
});
req.write(util.format("%j", postData));
req.end();
};

view raw
snsToSlack.js
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?