Saturday, July 06, 2013

Thought on Jeff Foster's "An extraordinary absence"

All is well for sure. It's not hard to recognize when things are well. Sometimes the dream has you at your balls though! Yesterday in San Rafael at Open Secret Bookstore I browsed a book by Jeff Foster ( Same, same, of course, packaged in way the message touched me differently. My brain often abuses the "all's well" idea (using the word "idea" on purpose here) to withdraw from difficult emotions, but that is beginning to feel disconnected and cool and not all enlightened :)  I can't quote him accurately, but it was about how life is the greatest movie ever made. What I got was that the whole point of going to the movies is that you _are_ getting sucked into the story, laugh and cry with its twists and turns and get really involved with the characters. We allow ourselves to be so completely immersed, precisely because we know it's a movie, and not real. So at least for me that triggered a huge insight into a misunderstanding. When we - momentarily or permanently - wake up from the dream of believing our life to be real and and seeing it for what it really is - just this what's happening right now - and that we are the actors, directors and the props of this production, we can get really involved with everything, including ourselves. Like, "Dude, I love this Sven character, he plays his role so well!, and man that Nik guy, what's the actor's name, you know the one who they had meet up with Sven in Thailand 11 years ago and then he fell in love there and stayed on? Dude I so hope they'll be doing another season!"

Cross-posted from a Facebook comment

Wednesday, May 29, 2013

Raspbmc and iTunes revisited

One thing I didn't get to work with iTunes was the Android remote app to switch from local speakers my AirPlay-enabled speakers, so I gave this another go. Meanwhile, a friendly dev named baal had pushed forked-daapd further to support Remote 3.0: see here. So I downloaded his code and followed his description.

BTW, the Hyperfine Remote, the Android app I want to use, appears as "Remote for iTunes" when turned on to look for iTunes and queried on Raspbmc or some other Linux with

avahi-browse -r -k _touch-remote._tcp

After putting the name and the code in the .remote file as described all over the 'net, the Remote app was picked up, and started showing my music library. However, no sound. And no switching. All I got was

[2013-05-29 02:16:31] player: Could not open local audio

[2013-05-29 02:16:31] player: Could not activate local audio output

[2013-05-29 02:16:31] dacp: Speakers de/activation failed!

[2013-05-29 02:17:30] laudio: cannot find card '0'[2013-05-29 02:17:30]   laudio: function snd_func_card_driver returned error: No such file or directory[2013-05-29 02:17:30]   laudio: error evaluating strings[2013-05-29 02:17:30]   laudio: function snd_func_concat returned error: No such file or directory[2013-05-29 02:17:30]   laudio: error evaluating name[2013-05-29 02:17:30]   laudio: function snd_func_refer returned error: No such file or directory[2013-05-29 02:17:30]   laudio: Evaluate error: No such file or directory[2013-05-29 02:17:30]   laudio: Unknown PCM default[2013-05-29 02:17:30]   laudio: Could not open playback device: No such file or directory

in the forked-daapd log.

Turns out Raspbmc doesn't have local sound support with ALSA and installed. I found and followed the good man Jeff Skinner and his instructions here.  And edited /etc/asound.conf to read

pi@raspbmc:~$ more /etc/asound.conf

pcm.!default {
 type hw
 card 0

ctl.!default {
  type hw
  card 0

And: Local sound works!! No drops, so that part's great. But even though I see the AirPlay speakers registered with forked-daapd in its log (on debug level), and I do see them in the remote app as a choice in the app's volume settings. Clicking it briefly flashes a "Switching [...]" message, but it reverts back to the local speakers' choice.  I do see this message in the log:

[2013-05-29 09:07:03] dacp: DACP request: /ctrl-int/1/getspeakers?session-id=100

but no other error message, so not probably not too bad (call me a hopeless optimist!). Perhaps I need to add the Airplay speaker to the DB. Suggestions welcome!

Tuesday, February 19, 2013

Samba configuration on Raspbmc 1.0

Now that I installed version 1.0 of Raspbmc, a donation-based Debian Wheezy / XBMC OS for the Raspberry Pi. I needed to set up my services again, i.e. Samba, Zero Configuration, iTunes server, Apple networking and time machine. Samba took me a little bit mainly because there is so much confusing information on the 'net. So here is my brain dump on how to get Samba 3.6.6 configured:


----------------------- Network Related Options -------------------------
workgroup = SVENHOME
server string = %h Samba Server Version %v
netbios name = PI
usershare allow guests = yes

# --------------------------- Logging Options -----------------------------
log file = /var/log/samba/log.%m
max log size = 50
syslog = 0

# ----------------------- Standalone Server Options ------------------------
security = user
passdb backend = tdbsam
username map = /etc/samba/smbusers
encrypt passwords = yes
obey pam restrictions = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n$
map to guest = bad user
follow symlinks = yes
wide links = yes
unix extensions = no
lock directory = /var/cache/samba

# This will prevent nmbd to search for NetBIOS names through DNS.
   dns proxy = no

# What naming service and in what order should we use to resolve host names
# to IP addresses
   name resolve order = hosts wins bcast

    browsable = yes
    read only = yes
    guest ok = yes
    path = /media
    force user = root

   comment = Home Directories
   browseable = no
   writable = yes
   create mask = 0700
   directory mask = 0700

   path = /media/Iomega_HDD/music
   force user = pi
   comment = Music
   browseable = yes
   writeable = yes
   create mask = 0777
   directory mask = 0777

   path = /media/Iomega_HDD/pictures
   force user = pi
   comment = Pictures
   browseable = yes
   writeable = yes
   create mask = 0777
   directory mask = 0777
Add pi to the samba users:
sudo smbpasswd -a pi
sudo smbpasswd -e pi
sudo smbpasswd -e pi
And log on from Windows 8 as SVENHOME\pi and ditto from my laptop running Ubuntu 12.04 LTS without a hitch.

Sunday, February 10, 2013

Arduino Laser Show: I

So, this popular German computer magazine called C't now also publishes "C't hacks", and I got a copy. Anton and I were immediately drawn to the Arduino-controlled low-cost laser light show. The main ingredient - besides the Arduino and the laser - are the read/write mechanics of two old hard disks. So I got some junk 2.5" HDs from work and we opened them up. After removing the platters we found that the galvos (the electromagnetic drivers of the read/write head unit) were pinned out over  ribbon cable to a little connector, and we didn't know which pins were data and which galvo power. First useful job for the new lab power source! After trying all possible combinations we found them, but they  were different for the two little drives. What was also interesting and useful for later was that 0.1 V would already drive them to center, so I am not sure we'll even need a motor driver for that. A simple Mosfet would probably do. Since Arduino Analog Write is PWM at 900Hz, we might need a Low-pass RC element as well, we'll see. For this first stage, we needed to solder wire to the tiny pins - glad we had that giant magnifying lamp from the San Jose lab! We put plumber's putty over the pins to keep everything protected.  The green laser was ordered tonight as well, and we cut little mirrors from the HD platters. Intense excitement!

Thursday, January 31, 2013

Remote access to the Raspberry Pi

Goal: Log in to the Pi from WAN.
Problem: Pi is on the LAN without 192.. address, and my Cable provider changes my WAN IP address from time to time.
Solution: Sign up with a dynamic DNS service, and set up a little program on the Pi that frequently posts its WAN address to the service.

It's dead simple with, and described neatly here on their support page.
Dynamic DNS Help and Support - No-IP

Of course, something needs to be listening on a port. So that port needs to be forwarded from the router to the Pi. I have a AVN Fritz!Box, which has a config page for such things. So for instance, to allow ssh access, you'd forward port 22 to port 22 on your Pi.

Works flawlessly on my setup!

Wednesday, January 16, 2013

Heike's German web site is up now!

Just wanted to let you know. Since I was an unreliable resource as web admin for my wife for her US business web site at, she decided to go with a pro for her new German presence at ! While I had picked Drupal as a CMS, Volker Buchwald, her new designer/developer/web master, does things in Joomla! Looks great - congrats Volker!! If you need a site like this, I plug for him with his web address

BTW I also really like Heike's new studio. (Ahem I spent quite a few weekends on the floor, the painting walls, the furniture, the Ethernet cable routing, the ISDN phone system etc etc :-))

Best of all, EFT Tapping and Matrix Reimprinting works great on me too, and I get to go to her Eckehart Tolle night tomorrow, since the kids are off to skiiing in Austria (Bezau to be precise, and yes, sweet little 6-year old Annika will be away for the longest ever 9 days from her parents, but she was soooooo excited on the train platform this morning!).

Sunday, January 06, 2013

Raspberry PI as an iTunes server with forked-daapd

OK, so I have my basic connectivity to the Mac OS with avahi, the HD containing the music is being automounted mode 0666/0777 with autofs udev, and I can see the Pi from the Mac (not from my Windows 8 box yet, for which I will wait for the release of Raspbmc, currently at RC3Raspbmc 1.0 has been released, I have configured Samba, works very well now).

forked-daapd is a free iTunes server, and diegocaro describes a forward port to Raspbian here, which he recommends instead of the foorked-daapd  normally packaged with Raspbian Wheezy due to  problems with the libevent-2.0 dependency. His port uses libevent-1.4.1. I followed his description, and lo and behold, it works, i.e. I can see my music on a iTunes client. Well, it almost worked. I did get drops.

I experimented with the iTunes setting in /etc/forked-daapd.conf

        # Should iTunes metadata override ours?
        itunes_overrides = true

I upped the log level in the conf file and looked at the log output with 

tail -f /var/log/forked-daapd.log

and saw that I started to process the 'iTunes Music Library.xml' file, whose entries refer to the old mp3 file locations back from when I still had the music HD directly on my Windows box, resulting in a slew of "Could not find..." messages. Now the iTunes client is still seeing the share, but hangs at Loading and then reverts back to the local library. So I turned the commented out itunes override again.

The drops are still happening, and more web research will be needed about that. Meanwhile, I wait for that Raspbmc release. Now with the Raspbmc March update, forked-daapd is working great! It picked up all my music, and NO MORE DROPS!! I love it! Banshee and Rythmbox on my Ubuntu Laptop pick up the service just fine, so does iTunes on Windows 8, iTunes on my wife's Mac. I even tried Rythmbox and Banshee simultaneously, no problem. Hyperfine Remote for iTunes on my pad on the hand shows the library content correctly but doesn't play it. Pairing worked as described in the source's README (the Device name is "Remote for iTunes") , but when I select a song, it simply doesn't play at all. Stay tuned for that part.

Friday, January 04, 2013

Raspberry PI USB automounting

Update May 13: This is no longer necessary - raspbmc does automount the drives now.

Somehow I thought that the Raspbmc OS variant would automount my USB drives, but it didn't. I tried installing usbmount, a Debian package, but didn't get the automount at boot to work.
So I gave autofs a shot, which on Raspbmc, my distro, is already installed.

[Edit: With Raspbmc 1.0, it's no longer there, so I installed it with

sudo apt-get install autofs

Then I found that both drives are already mounted in /media, so the rest here is no longer necessary!!
I am unsure now whether they are now mounted because something else than autofs now ships with raspbmc or whether the default autofs installation took care of it

I took me some reading, but I got both USB drives to automount with autofs. The Multimedia drive is an NTFS file system, whereas I formatted the other one as HFS+ to be used as a Time Machine drive for my wife's Mac.

There are two files that I needed to touch: /etc/auto.master and /etc/

In auto.master, I needed to comment out everything, including


and then added at the end

/mnt/auto /etc/ --timeout=120 --ghost

This last line tells autofs that it should look at the lines in /etc/ and mount those in under /mnt/auto. The --ghost option causes autofs to create the directories there before they are mounted. After 120 seconds inactivity they will be unmounted.

In /etc/, I put

mm      -fstype=ntfs-3g,defaults,noauto,rw,uid=pi,gid=pi          :/dev/disk/by-uuid/844019F84019F222
tm      -fstype=hfsplus,defaults,noauto,rw       :/dev/disk/by-uuid/d5fd173f-c472-3594-8448-e61b466a52a0

This is almost self-explanatory, but it took me a while to get to the disk/by-uuid trick. /dev/sda1 etc would not work if I ever unplugged the drives and reconnected them in a different order as the OS assigns them different letters then (I read this can be fixed with an entry in the udev config, but I didn't go far enough with it). Usage of disk/by-label seems widespread, but my disk labels contain spaces, and I couldn't figure out how to encode this in Ditto with the colons in disk/by-id!

After that I had the ntfs drive under /mnt/auto/mm and the Apple drive under /mnt/auto/tm. Automounting worked after restarting the autofs daemon with

/etc/init.d/autofs restart

I confirmed that this still worked after reboot. Now that I can see my music, on to forked-daapd for serving music with iTunes protocol!