One of my favorite GIFs


… Hanigan’s reaction …

Image from


I have a really old Nexus 7 ( and upgrading that to Lollipop basically made it unusable.  It was terribly slow.

I unlocked the bootloader and reflashed with 4.4.4 ( and that was much better.

But that’s really no fun so I decided to give CyanogenMode a shot (  It was a bit overwhelming at first to work out that:

  • nakasi is the codename for that tablet at Google while grouper is the codename for the CM team
  • CM 11.0 is based on Android 4.4.4
  • M vs N vs stable vs snapshot … (

I finally settled on this but that’s no fun either so I built it from scratch.

Everything is all documented and there are even steps to make sure the GMS apps are installed so the resultant build is very much usable.

That was fun.

SPP server for Windows

I have posted a simple protocol server for Windows on GitHub:

There is more technical info in the README of that project.

The server will probably require a little configuration from the user.   The reason is the WSAPI loopback used for capture does not allow for programmatically changing the sampling rate.  Since the SPP player requires a certain format, the user will  have to set the properties of the playback device to match.

Here are the steps to do so for a Win7 machine.  First open up the “Playback devices” from the system tray.



Choose the “Properties” button of the sound card being used:



Choose the format the best fits SPP.  SPP defaults to 16bit 44.1kHz, but it will also support 16bit 48kHz.



A corresponding update to SPP has been posted on the Play Store that adds an option to choose either 44.1kHz or 48kHz for the sampling rate.


I published my first Android app and it’s called the Simple Protocol Player.  I probably should have spent more time thinking up a better name.

Here are some docs.

And the Play Store Link.

New raspbmc

I had the auto-update for raspbmc turned off so I decided to update.  The UI performs much better with this version.  I did have some more remote issues.  The “back” button and “i/more” button on the remote didn’t work anymore.

The fix was to update the XML files related to the remote.

First .xbmc/userdata/Lircmap.xml

  <remote device="devinput">

And then .xbmc/userdata/keymaps/keyboard.xml


This maps:

  • left arrow/back to back
  • i/more to info
  • asterisk to the context menu
  • play/pause works as expected

Starting a new X session

I like the idea of virtual desktops and it’s a nice tool, but what I really wanted to do was to start a completely separate X session on my Ubuntu box.  A bit of googling suggested that I create a separate user account (so that the two X sessions don’t conflict with eachother) and that I run the X session on a different terminal from where the X session was launched.

So I did that.  I created a test account, hit CONTROL-ALT-F4 to get to the terminal, logged in with my newly created account, and ran this command to start the new X session:

startx /usr/bin/gnome-session -- :1 vt5

And that seemed to go fine but all that gave me was this blank Ubuntu screen on terminal 5:


So close, yet so far.  After playing around, I found that to start the whole Unity experience, I needed to enable the Unity plugin in compiz.  So, I hit CONTROL-ALT-T to bring up a terminal:


And from the command prompt ran:

ccsm &

And then clicked the check box next to “Ubuntu Unity Plugin”:

Nice.  The gnome session fallback is easier to setup since that doesn’t use compiz and the whole UI starts immediately:

startx /usr/bin/gnome-session-fallback -- :1 vt5