Tiny Tiny RSS – A replacement for Google Reader

So they finally did it, Google killed Reader, as the news broke on Wednesday evening the internet erupted in howls of anguish, how could they take away something so vital? Supposedly its death is due to declining usage and Google’s desire to focus on fewer products but many suspect it is simply another casualty in the drive to get everyone on to Google+. One thing is for sure, Reader users were passionate about the service, the outcry reached far and wide and an online petition to keep it running hit over 100,000 signatures in just a few days and currently stands at almost 122,000.

Personally, it has been one of my most used tools, something that I would use many times every day, a feed reader is by far the easiest and quickest way to keep up with the vast flow of news and information generated every day on the internet and is invaluable for keeping up with those blogs that only update sporadically. There are all sorts of reasons why killing Reader is a bad idea, Rupert Goodwins explains better than I ever could in this article on the Guardian website but the fact remains that come the 1st of July it will be no more so a replacement had to be found.

Continue reading Tiny Tiny RSS – A replacement for Google Reader

Python tools for the MCP23017 I/O Expander

I’ve been playing around with the MCP23017 I2C I/O Expander on my Raspberry Pi a bit more this week and as I mentioned in an update to the last post I’m now running this 3.2 kernel that has hardware I2C drivers for the Pi. The next step was finding a better way to control the expander than using i2c-tools.

Python isn’t something I’ve really used much before but there is a nice python-smbus module that makes interfacing with I2C devices relatively straightforward so that’s what I’ve used to knock up a couple of simple tools to control the MCP23017.

The first one is a command line tool that allows you to set any of the 16 IO pins as high or low, usage is: -b <bank> -o <output> -s <high|low>

eg. to set GPA1 high it would be: -b a -o 1 -s high

This gives a response of: Output GPA1 changed to high

The code is on GitHub here, other than a working I2C setup all you will need are the Python bindings for SMBus which are in the python-smbus package on Debian.

The second tool is a simple web interface built using WSGI, something I’ve never used before – it’s basically CGI for Python.

The web tool can be controlled through its own built in web form (very simple but good enough for demo purposes and can be built on) or via GET requests with optional JSON style responses which will allow it to be easily integrated into other projects.

eg. to set output GPA1 high: http://rpi/mcp23017.wsgi?bank=a&output=1&state=high&mode=json

This gives a JSON like response of: {“GPA1″:”HIGH”}

I want to extend this now to cater for input as well as output and to report on the current state of the outputs.

The code for this is also on GitHub and as well as the python-smbus module you will need apache with mod-wsgi, if you get permission errors make sure that the apache user (www-data on Debian) has permissions to read/write to the i2c bus dev entry, eg. /dev/i2c-0

UPDATE 2/6/12: I’ve created a plug in expander board using the Ciseco “Slice of Pi” and the MCP23017, see this post for details and a step by step guide to getting it working with the above Python tools including a link to a Raspberry Pi kernel/modules with I2C compiled in.

The Emperor’s New Desktop?

This post is a bit late but I wanted to make sure I was settled in my decision on Unity, Ubuntu’s new desktop. I had been running Ubuntu Natty Narwhal on my test box since before the first alpha so I was quite familiar with Unity and its quirks and initially I wasn’t a fan at all. It seemed ugly, feature lacking and buggy and throughout the alpha and beta period it seemed that it was just being rushed out to meet the 11.04 release regardless of whether it was ready or not. I didn’t think I would be using it and had even given serious consideration to going back to Debian testing for my main desktop box.

Anyway, with the final release of 11.04 I duly upgraded my main desktop machine and thought I would give it a go as my day to day desktop for a while, fully expecting to switch back to the “classic desktop” (ie. Gnome 2.x) before long but it didn’t happen and I have to say that Unity has grown on me. I’m not missing any of the things I thought I would and so far I’m even managing to live with the one thing about Unity that annoyed me the most during testing, namely the Global Menu.

For those not aware the Global Menu is the Apple style feature where each applications menu appears in the top panel instead of within the application itself. I understand Apple’s original reasoning behind this feature, ie. the menu is always in a consistent place and slamming the mouse to the top of the screen puts you in the right place but in a modern multiple monitor environment it just doesn’t stand up, that and it is currently inconsistent as it requires every app to support it. App support will get better over time I’m sure but I still think it is irrepairably broken on multiple monitors. Fortunately for those that really can’t stand it, the global menu can be disabled without too much effort but I am still trying to live with it for now to see if I can get used to it.

The other niggle with Unity that hadn’t really bothered me until I started to use it properly is the scroll bars. With a traditional scroll bar you can move your mouse to the right of the window and click to jump up/down at any point along the permenantly visible bar whereas with the new hidden scroll bar you have to look for the thin indicator and hover your mouse over that before you can access the scroll controls. It’s definitely slower and harder to use and as with the global menu it is inconsistent at the moment as not all applications use it.

The new dock on the left I wasn’t keen on initially and I missed the old task list panel at the bottom but now I’ve got used to it I actually prefer the dock, it seems quicker and gets less cluttered. The only change I’ve made is to make it narrower with smaller icons as it is a bit large by default.

In summary Unity is a mixed bag, it’s far from the disaster I thought it would be but it’s not the second coming either. There is still a lot that could be improved but I think it will get there, the issue of the duplication of effort between Unity and the very similar Gnome 3 is a completely different topic though.

Installing Android 2.3 Gingerbread on the HTC Desire

As a follow up to my Android 2.2 guide from July here is how to install Android 2.3 Gingerbread on the GSM HTC Desire using AdamG’s Oxygen V2.0 Gingerbread ROM.

This is a clean ROM built from the Android Open Source Project aka AOSP so doesn’t have HTC Sense. If you like the Sense UI you might want to check out LauncherPro in the Android Market which offers a lot of similar features. Note that video recording doesn’t work at the moment but this will be resolved once the Nexus One gets its OTA update which should be in the next few weeks.

I’ll assume your phone is already rooted, if not follow step 1 from the 2.2 Froyo guide here first.

As always you do this at your own risk and note that technically you will void any warranty you may have.

Download the following files (don’t unzip them):

Updated Radio ROM from here (11.3 MB)
Oxygen Gingerbread ROM from here (59 MB)

Installing Gingerbread: Continue reading Installing Android 2.3 Gingerbread on the HTC Desire

Sniper SelfTrack App for Android

One of the driving forces behind my switch from the iPhone to Android was the ease and openness of the development platform and that development didn’t require a Mac. It didn’t take me long to get stuck into the SDK and I am pleased to say that my first Android app has been published onto the Android Market today. “Sniper SelfTrack” is an application to control and handle responses from the Sniper SelfTrack GPS vehicle tracking device.

The SelfTrack app allows the user to easily control all the functions of the Sniper SelfTrack tracking system from the main screen and will display user friendly messages on receipt of a message from the tracker and shows the vehicles position using the Google Maps API. Context sensitive help is available by pressing and holding each button and the user can select the sound played on receipt of an alert as well as if they want haptic feedback (vibrate on button presses) and whether to load the basic map only or the full aerial photograph view (slower on a mobile connection).


  • Show current location of vehicle with map only or aerial view
  • User friendly display of messages from the tracker
  • Customisable alert sounds
  • Listen in to the vehicle
  • Turn AutoTrack on/off
  • Turn immobiliser on/off
  • Turn Tow Alert on/off
  • Turn Alarm Alert on/off
  • Turn Overspeed Alert on/off
  • Change Overspeed setting
  • Get a status report from the tracker including battery voltage, GPS status, GSM signal

You can find the application by searching for Sniper SelfTrack in the Android Market app or by clicking here on your phone . You can also find it on AppBrain here. Obviously it is only going to be of any use if you have one of the Sniper trackers in your car.

I’ve really enjoyed getting back into some non web based coding. I’ve never seriously programmed in Java before but it’s sufficiently C like that it didn’t take me long to get to grips with it along with the Android specific things like the BroadcastReceivers, Intents, SmsManager and the Google Maps API. Everything is so well structured and documented that anyone with a rudimentary background in programming shouldn’t have any problem getting started.

An application like this that only works with a specific device is going to have a limited market admittedly so I’m hoping I can come up with something with a wider appeal for my next project – let me know in the comments if you have any ideas for apps you would like to see available on Android.

Installing Android 2.2 Froyo on a HTC Desire

After over 18 months as a very happy iPhone 3G user I decided it was time to make the switch to Android with the wonderful HTC Desire. As a long term Linux user Android would seem to be my natural place and with the Desire the hardware seems to have pretty much caught up with the Apple world so there was no excuse. Having this great new phone without running the latest and greatest release of Android seemed silly though and not wanting to wait for HTC and O2 to pull their fingers out and release an official update the only answer was to root it and install an unofficial ROM. I was pleasantly surprised how easy this was.

So here is a guide to how I installed Android 2.2 with HTC Sense on my HTC Desire using unrevoked3 and AdamG’s “Official” Froyo HTC Sense ROM (version 1.0c).

Obviously I take no responsibility if you follow this and anything goes wrong but it worked for me on my Desire with HBOOT 80. Rooting using the new unrevoked3 is a breeze and a Goldcard is NOT required and as long as you are careful to make a Nandroid backup of your original setup before flashing a replacement ROM then you can’t really go wrong.

Note that by doing this you will void any warranty you may have.


Linux PC (Ubuntu 10.04 in my case)
HTC Desire
USB Cable
Titanium Backup from the Android Market
Unrevoked3 from here (16.1 MB)
Updated Radio ROM from here (11.3 MB)
Froyo Sense ROM from here (134.4 MB)
About 30 minutes

Continue reading Installing Android 2.2 Froyo on a HTC Desire

Has Firefox lost its way?

Creative Commons License Photo credit: Garrett LeSage

I’ve been hearing a lot of dissent in the Firefox-using ranks lately and have to say that I have been feeling some pain myself, on multiple machines and different operating systems. Once heralded as the lightweight, reliable, alternative browser, Firefox seems to be becoming slower and more bloated with each release.

As a multi-platform user I was a big fan of the Mozilla Suite for years and was quite a late convert to Firefox, hanging onto Mozilla for a long time after the main development focus had switched to Firefox. Eventually it was the breadth of extensions available for Firefox that finally swung it for me and if I’m honest that is the only thing that is making me cling on now.

I’m finding myself using Google Chrome more and more often, the dev channel version for Linux is now completely functional and is extremely fast, possibly more so than the Windows version. If I can wean myself off a couple of Firefox extensions I will be on Chrome full time and there are more extensions becoming available for Chrome all the time. The latest development version of Chromium (the open source version of Chrome) being able to convert Greasemonkey user scripts into extensions can only speed this process up.

How are Firefox and Chrome shaping up for you, or do you use something different?

3 Quick & Dirty WordPress Plugins

WordPress Moleskine notebook
Creative Commons License Photo credit: Nikolay Bachiyski

I’ve added a page with three very quick and dirty WordPress plugins I made and use here. They are very simple and were made for my own use so those that need configuration don’t have any settings pages, you will have to edit the plugin file manually, not that they require much in the way of configuration. They are:

Google Latitude Shortcode – Add your Google Latitude location using a WordPress shortcode.

Short URL Auto-Discovery Header – Adds a short URL auto-discovery header, useful if you have an alternate URL for your blog that is shorter than your main one.

QR-Code-Link – Add a WordPress widget with a link to a QR Code for the current page.

I don’t have the time to offer any support on these plugins but I thought they might be useful to someone.

More information and downloads here.

Spotify – Free the music

SpotifyI’ve been raving about streaming music service Spotify to anyone who will listen for a while now…

Financed through very infrequent and unintrusive ads or a rather expensive £10/month subscription, Spotify is the latest attempt to save the music industry from piracy, and it’s making a big impact.

The application is available for Windows or Max OS X and also runs flawlessly under Wine on Linux (which seems to have resulted in no ads at the moment) and mobile versions are in the works.

As well as browsing for artists, albums and tracks Spotify also has a radio feature where you can select music by genre and time and it also allows you to share songs and playlists with friends easily.

It’s a brilliant way to explore new music and the range available is staggering with a few notable exceptions being The Beatles, Pink Floyd and Led Zeppelin (get with it guys!).

If you love music you’ve got to try Spotify.

XBMC Fox For YouTube

I was recently pointed in the direction of XBMC Fox, a useful Firefox extension that adds a new option to the right click menu in Firefox which will send URLS to XBMC (Xbox Media Center) for on screen playback.

Dead handy but it doesn’t work for YouTube though… so I’ve modified it so it does.

For YouTube just right click any link of the form and select “Send This to XBMC” as normal and it will work

Only the firefox extension is required, nothing to install on xbox, just make sure web server is turned on in settings.