A Spotify Alarm Clock for Raspberry Pi

Back in July, I transformed a Raspberry Pi into an alarm clock that plays Spotify playlists.

Favorite Part
One of my favorite parts of the project was physically assembling the Raspberry Pi. It's great that the very first step of the project is using a tool (your two hands) to construct a different tool (Raspberry Pi) to build an alarm clock.

Biggest Surprise
I remain surprised that a robust solution for "I wanna wake up to curated music" doesn't already exist. It seems like a no-brainer... wouldn't everyone want to wake up to handcrafted tunes? [1]

Outstanding Challenge
While the setup is awesome most of the time, any deviation from the pre-set schedule requires an unwise amount of rewiring, both before and after the fact. At the moment, my solution for sleeping-in on a Monday is unplugging the speakers.

Read More
For more details on the project, check out the full post: A Spotify Alarm Clock for Raspberry Pi.

Ghost/Website Refresh

In late August/early September, I compulsively decided to rebuild this website. It was stressful at the time, but I'm happy with the results: the site looks better and upgrades should be easier. You can check out the full post, if you're interested in reading more: How To: Manually Installing Ghost.

Also, I've made an adjustment to the instructions since initially posting them: I've switched from nohup to forever to keep the site running in the background. You can read more about forever in Ghost's forever documentation and on npm's forever page.

The Importance of Documentation

Finally, having completed both of these projects, here are two quick thoughts on documentation.

One
I should have documented both of these processes as I was working on them. Trying to document the process after the fact is rough. It's especially rough when you take on a second project, and document that second project, before finishing the documentation on your first project. I definitely had to do some reverse engineering, figuring out what worked and what didn't work, to complete parts of the documentation.

While that was annoying at the time, what I really care about is leaving an accurate trail for others looking to complete similar projects.[2] Or, if I get an idea from somewhere online, I absolutely want to give credit to those sources. The fog of time makes that work hazy and less precise than I would prefer.

Two
I was surprised at the poor quality of much of the documentation I found online; it made me appreciate just how much thought and effort has been invested in consumer-facing areas to make processes apparent and instructions available, clear, and relevant. I'd love to see more of that enthusiasm for good design applied to the internet's developer-facing areas.[3]

Up Next

This isn't a design project, per se, but it does feel like a huge undertaking: I'm looking at leaving Verizon and jumping on board with Google Fi. In theory all I have to do is sign up and get on with my life. In practice, nothing is ever that simple.

I may start sketching interface and database designs for a new Android app. I don't particularly want to start another Android project right now -- I'd rather try to play around with Apex and Salesforce, or maybe Oracle. However, it's an app that would help me plan events, and it's something that would actively make my life easier. So we'll see.

Finally, I may double back and polish up my own documentation for the Ghost and Raspberry Pi projects... because stones and glass houses and what not.


  1. Then again, perhaps I like music more than the average person. ↩︎

  2. More likely: an accurate trail for myself in the future. ↩︎

  3. For what it's worth, Google does a good job with their Android Developers site. ↩︎