Provision Mac Mini Server as Last.fm Player
From rukapedia
I'm provisioning a Mac Mini to act as a Last.fm music player at Casa Mia Café in Charlottetown.
The end result, after all the pieces are in place, is that:
- previously-registered customer enters café
- their mobile device (iPhone, Blackberry, etc.) is detected via Bluetooth scanner
- the devices's Bluetooth device address is used to look up customer's Last.fm username
- the customer's Last.fm library is added to the rotation of playlists playing inside the café (until the customer leaves the café)
Mac Mini Setup
- First boot.
- Walk through Apple setup (language, keyboard, registration, etc.)
- Download Microsoft Intellitype drivers from here to support my Natural Ergonomic Keyboard 4000.
- Install Google Chrome as an alternative to Safari.
- Under System Preferences | Sharing, turn on Screen Sharing (with password) and File Sharing to support remote usage.
Install Last.fm Scrobbler
- Install the official Last.fm client for Mac
Set up Bluetooth Scanning
- Install Xcode (LightBlue won't install without it)
- Install LightBlue (test using these examples)
- Install haraldscan
- Change references to pysqlite2 to sqlite3 in haraldsql.py and haraldscan.py
- Modify haraldscan to send information, via REST, to a web server for logging (source code to come)
- Drop a launchd plist file into the /Users/casamia/Library/LaunchAgents directory so that the scanner runs every 60 seconds:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>net.reinvented.haraldscan</string> <key>ProgramArguments</key> <array> <string>/bin/sh</string> <string>/Users/casamia/Code/launchd/haraldscan.sh</string> </array> <key>RunAtLoad</key> <false/> <key>StartInterval</key> <integer>60</integer> </dict>