new stereo component

kit Some assembly required

Anyone who’s visited my house can tell you that I have lots of recorded music, in the form of vinyl and CDs. God bless my wife for putting up with it all.

When MP3 players became a thing I started digitizing my collection. Over the years I have accumulated thousands of digital tracks which I store on a server in my basement.

I have long wished for an easy way to play these tracks on my [analog] home stereo system. Recently I was clued in to the solution: run MPD on a raspberry pi. [Thanks for the suggestion, Chris Hermansen!]

It’s come together and I can now listen to anything in my collection on my stereo…controlled from my phone! Here’s the project overview:

1. purchased a raspberry pi [leftmost board in photo above] from Ada’s Technical books for $46.
2. downloaded n00bs from the raspberry pi website and copied it to a microSD card
3. connected keyboard, mouse, and TV to the pi
4. powered it up and installed raspian OS using the n00bs software
5. configured wifi networking
6. installed MPD using apt-get
7. ordered a DAC module [aka a ‘hat’] from Scotland
8. installed the DAC [middle board in photo above]
9. put the case together [pieces on right in photo above]
10. edited /boot/config.txt to use the DAC driver
11. configured MPD
12. connected the little pi to my stereo system’s aux input
++ At this point I tested using local command line client MPC to confirm I could play music
13. created a public read-only samba share for my music files
14. configured the pi to automount that share on boot
15. created a port forwarding entry in my router for port 6600 [for MPD traffic]
16. installed MPD client on my phone
17. wasted lots of time trying to determine why the client connection was being refused by MPD
18. after rebooting the pi — success!


In my tribe people live in families
The family has a mother a father a son a daughter a dog & a cat
They live in a happy home with walls floors dishes doors and a basement
The son and daughter go to school
The mother and father go to work downtown
The cat steals the dog’s food
The dog chases the cat downstairs
The cat runs back upstairs and slams the basement door
The dog is trapped downstairs and begins to howl
The son & daughter come home from school
The daughter says ‘why do I feel like shit?’ & goes to her room
The son says ‘I can’t get no satisfaction’ & goes to his room
The cat licks her fur
The father & mother come home from work
The father says ‘I need a drink — what’s for dinner?’
The mother says ‘guess what happened at work today?’
The dog howls
The cat grooms
The sun sets. It is beautiful.
The mother chops meat the father cooks rice
The daughter and son dive into social media & games
The father says ‘why do I feel like shit?’
The mother says ‘I can’t get no satisfaction’
The dog sleeps. The cat spits up.
The dishes fly off the shelves. The doorbell rings.

cross-cultural dissonance

My textbook for learning the Japanese language includes an audio CD with various vocabulary and grammar exercises. I listen to it occasionally in my car.

Last Wednesday evening it was playing while I was driving to the Seattle Go Center. Clearly I have not made it through the entire disc yet because I was completely taken by surprise when a woman’s voice started singing ‘The Battle Hymn of the Republic’ [in Japanese].

I found this hilarious. Why did the authors of げんき select this particular song? Do they know it was written and sung during the American Civil War?

Whatever the reason, the unexpected cultural dissonance popping out of my car stereo speakers made me LOL.

new strings

I have always thought of changing strings as one of the necessary evils and inconveniences one must put up with as a guitar player. But I’m starting to get the hang of it.

I purchased a new set of coated strings with the hope that the coating might lessen somewhat the annoying scritchy sound generated by sliding my fretting fingers over the fretboard when changing chords.

This does require taking off the old strings and putting on the new ones. Ah, not fun! my brain cried.

However I ended up doing a decent job. Here are four little tips to help:

1. Crimp the string 90 degrees before and after sliding it through the winder hole;
2. The first pass goes OVER the tail end of the string [emerging from the winder]; all subsequent passes go UNDER the string tail;
3. Keep tension on the string as you wind it;
4. Once it’s fully wound and tuned, pull the string up from under the sound hole to stretch it a couple of seconds and then re-tune it.

Hey, not so bad.

silent tweets

Occasionally I notice a lot of network activity on my android phone. Usually if it continues for more than a minute, I just reboot the darn thing and hope that kills whatever process is hogging the network. However as a former IT guy, this afternoon when I saw unusually high network activity on my phone, I decided to take a few minutes and do a bit o sleuthing.

I examined the connections, saved the remote addresses for three of them, and looked them up: – OVH Hosting (HO-2) – twitter – unknown

I figure maybe OVH Hosting is used by a vendor’s backup service for their cloud. I was more interested in seeing a connection to Twitter, as I do not have any Twitter apps installed. It appears that some app is silently tweeting from my device. Tweeting what, for what purpose? Rather curious.

So now I want to figure out which of my installed apps are using Twitter without public acknowledgement. I just installed a packet capturing app on my phone — I will post an update once I’ve had time to examine in more detail.

[…] OK I captured some network data and after examining it, I see data being exchanged with both Twitter and Facebook… even though I have no twitter app on my phone and I have not logged into my facebook account. Interestinger and interestinger! I am not sure how to map the network traffic to specific apps on my phone. Need more research.

[…] Progress: I found an app called ‘Network Connections’ which maps apps to connections and even saves connection data. So in short order I discovered, unsurprisingly in retrospect, that both Instagram and Facebook Messenger are connecting to facebook servers. D’oh! Also interesting is the chattiness of the NY Times app.

Still haven’t ID’d the twittering app but I feel like it’s only a matter of time now.

subject too dark

“Check out the sunset!” my wife exclaimed. It was striking, and I ran upstairs to get my camera and tripod and setup on our front yard for a shot.

I framed the shot, set the exposure to manual, selected a shutter speed of a couple of seconds and hit the shutter release. Instead of taking the picture, my nice camera displayed the stern message “subject too dark”.

WTF? Isn’t manual exposure supposed to override any automatic calculation in this fancy camera? I tried longer and longer exposures, and then tried using the Shutter priority exposure…but no matter what I did the camera insisted “subject too dark”.

Glumly I tromped back inside and sat down with the Internet. Eventually I discovered that in order to use manual exposure settings like this, one needs to switch autofocus to manual on the lens.

Truly nonintuitive, however it fixes the problem! While it’s too late for tonight’s sunset, maybe nature will oblige again tomorrow. Another device lesson learned.

radicalization eh

behavior barometer The December 11 2016 issue of The New York Times Magazine‘s ‘First Words’ column titled ‘To the Extreme’ discusses current usage of the word ‘radicalization’. Citing quotes such as the attacker “may have been self-radicalized” and “I do not have information yet to show what the path of radicalization was”, columnist Jack Hitt does a nice job rounding up samples of usage as well as popular theories and philosophies attempting to explain this idea.

“Radicalization seems to mean something, the gist of which is this: that there is a knowable and coherent process, like a kind of matriculation — that moves a once-normal human being along some grisly progression until he or she is killing people. It’s a sturdy box of a word filled with apparent meaning, yet when pressed upon to deliver specifics, mostly collapses like cardboard.” –Jack Hitt

Hitt’s provocative article got me thinking about the distinction between radicals and military personnel. Or more precisely, the shifty tenuous distinction. Because it seems that training people to obey orders without question and using teamwork and military equipment to kill ‘the enemy’ is an awful lot like radicalization. It’s a removal of shades of gray, to simplify the world into good guys [us] and bad guys [them]. Killing bad guys is easy because they are evil — by killing them we are saving the world. And we know who is evil because our superiors have good intelligence and are rarely mistaken. Not to mention that our country is the greatest in the world and those other countries suck.

Radicals seem to have gotten confused as to which side they are on. Their group identification swaps.

From a bird’s eye perspective, one group’s radicals are another group’s patriots. As long as groups’ differences appear larger than their similarities, we will continue to pit one group against another.

Is this a radical idea? Or am I beating a dead horse here?

speaker repair

before A while ago my home stereo started sounding distorted. At first I wasn’t sure what caused the problem. My friend and neighbor D suggested that I look at the speakers.
damage Upon removing the speaker covers the damage was obvious. I had identified the component causing the problem.

Google provided the information that, for my particular model speakers, the foam surrounding the woofer tends to disintegrate after about 15 years. My speakers are over 20 years old. Close examination revealed the damage seemed to be restricted to the foam around the woofers. damage CU

So I purchased replacement foam and after approximately three hours of work per speaker [two of which were spent waiting for glue to dry], my speakers are repaired and sound good again.

new foam

Party on y’all!

reflections on rigged elections

Thankfully, this election season will be ending in a few days. I know I can use a break from the campaigning, pontificating, accusations, and spin.

Before it’s over, however, candidate Trump has raised accusations of election rigging. This is because he is scared he will lose. But by bringing up the topic, many journalists, pontificators and even just plain folks are discussing various angles and aspects of election fraud, in this country and others. Greg Palast is exposing voter disenfranchisement and roll purging, spearheaded by Republican state officials. None other than Garry Kasparov [yes, that Kasparov] wrote an op-ed for the New York Times describing his experiences with rigged elections in Russia.

What I have yet to see is someone pointing out the more subtle, systemic rigging of American presidential elections via the grand old two-party system. Hence I will type a few sentences.

My ballot listed seven presidential candidates for which I could cast my vote. The televised debates, however, prohibited all but the candidates from the two biggest parties to participate. This can be seen as a type of election rigging.

One can drill down deeper into the mechanics of the party machines, and see how very un-democratic they are when deciding their selection of candidate. See for instance Debbie Wasserman Schultz’s behind-the-scenes machinations and the subsequent fallout.

Eliminating this deeper, systemic rigging seems difficult. Let me know if you have a plan.

lessons upgrading php on centOs

I wanted to upgrade php from 5.4 to 5.5 on my oc server. I know 5.5 is still terribly out of date but it’s an incremental upgrade for CentOs 6.8, which I am still running. [Don’t hit me.]

Because the default CentOs repo does not have version 5.5 I installed it from the remi repo like this:

sudo yum install php55

But then I ended up with both versions of php on the system. And the default php command still ran the 5.4 version. In order to use the 5.5 version I had to use the command ‘php55’ which of course doesn’t work for httpd which uses the plain old php command.

I removed version 5.4 from the system but the php command still tried running that old version [now nonexistent].


To update the php command to use php55, I did the following [thank you Internet]:

source /opt/remi/php55/enable

The source command magically configures the php command to use the binaries specified in the enable file… cool!

Then restart httpd.

Now I must remember to install the correct version for any additional php modules I may need by specifying the version like this:

sudo yum install php55-php-mbstring

OC is happy now and so am I.