Huawei K4505 with Ubuntu 10.04
I just acquired a new Vodafone Mobile Broadband modem to replace an aging ExpressCard version I had that wasn’t working too well. It came in the form of a Vodafone-branded Huawei K4505 USB stick. It didn’t work completely out-of-the-box with Ubuntu 10.04, at first appearing unrecognisable. After some hunting, I discovered that these sticks initially present themselves as USB Mass Storage to allow you to install the Windows drivers. You have to give a few magic incantations on Linux to make them switch into modem mode:
sudo aptitude install usb-modeswitch sudo usb_modeswitch -v 0x12d1 -p 0x1521 -M \ 55534243123456780000000000000011060000000000000000000000000000
Once the modeswitch command is executed, the USB stick will present itself as a modem and you can use the standard Ubuntu NetworkManager mechanisms to define your service provider and set up the connection. The stick should remember its state, and so you should only ever need the above utility (and command) once.
HTC Desire – Bad Points
Recently I acquired an HTC Desire, when seems to be the de-facto Android phone of the moment. Generally, I love this phone – I wrote part of this blog post on it, and the quality of the hardware is frankly astonishing. Irritatingly, one can’t help but feel a little smug comparing it to the iPhone. However, I don’t want to become yet another mindless gushing fan. So instead of raving about it, I thought I’d provide some provide some constructive criticism on the aspects of the phone I don’t like so much:
- The battery and power management needs some work. Like all smartphones, the Desire has plenty of battery-sucking components, such as GPS and WiFi. I spend more time than I should really have to turning these off and on manually to conserve power. For example, Google Maps should be able to turn the GPS on by itself, rather than rely on me to do it. Most software based solutions, such as Locale, JuiceDefender, and so on, simply don’t work reliably enough (for example, mobile data connections frequently won’t turn off or on): it’s obvious that Android isn’t exposing enough APIs and these applications therefore have to rely on hacks. Better built-in power management would be welcome.
- The volume switch is really annoying. In theory, it’s nice to have a hardware control. But I find myself hitting it accidentally when holding the phone, and reducing the ring volume down to vibrate. Sometimes I don’t even notice. I’d prefer to see a soft volume control, less easy to hit accidentally.
- The openness of the platform is in question. I can install whatever applications I want. However, I still have firmware on the phone that’s been mangled by both HTC and (in my case) Orange. The HTC modifications are fairly nice, but the pre-installed Orange applications are just irritating, and cannot be removed easily. Orange has a bad habit of mangling phones they ship; presumably they think they need to do this to ‘differentiate’ themselves. Worse still, it turns out one can’t simply ‘reinstall’ the firmware: the closest process is to root the phone – an awkward and unsupported process I’ve yet to be brave enough to attempt.
- Many of the pre-installed widgets are far too large (witness the SMS widget, which consumes an entire screen), with a lot of unnecessary chrome.
- The Music app is a bit flaky and crashes once or twice a day.
Turning off Sametime Pop-ups
I use Lotus Sametime a lot at work, but it has an irritating feature that by default brings all conversations to the front whenever something new is added to them. Nevertheless, this can be turned off. You just need to know how to navigate the labyrinthine preferences menu:

This screenshot is from Sametime 8.5.1 on Linux, but other platforms are probably similar.
Disabling Synaptics Touchpad with Ubuntu 10.04
I recently installed Ubuntu 10.04 on my Thinkpad T61 and set about disabling the touchpad, which I always find irritating. There seemed to be lots of guides to this, including this one, but none of them seemed to work for me. Eventually I figured some fairly simple steps which did work:
- Install two packages if they aren’t already installed (
gpointing-device-settingsis the more modern version ofgsynapticsand will uninstall it if it’s installed):sudo aptitude install xserver-xorg-input-synaptics gpointing-device-settings
- Start
gpointing-device-settingsfrom the command line and select “Touchpad off”, as shown here:
- Exit the tool and reboot.
Kick-Ass
I haven’t written a film review in some time, but having just come back from seeing Kick-Ass, with it still fresh in my mind, here goes…
Kick-Ass is definitely a comic book movie. It’s been portrayed in some circles as the anti-comic book movie, and that’s certainly the impression I had going in: the first ten minutes or so leave you in no doubt that the protagonist isn’t a professional, well, hero. But at the end – without spoiling it – you’re left in no doubt that it is a comic book and not reality. As evidence, the characterisation (for example, of Kick-Ass’s girlfriend, Katie) is pretty shallow. The violence is graphic and for me a little unpleasant at times (I can’t stand watching any kind of torture, and the whooping of the idiotic frat boys at the back of the cinema made it more unpleasant). Nevertheless, the film is definitely amusing – and I didn’t find the overtones of violence or language coming from Hit-Girl as unsettling as many have (if you don’t know, she’s 11, says “cunt” once and “fuck” plenty of times, and kills many people in a variety of gruesome ways).
Kick-Ass isn’t for the faint of heart, but there was a point in the film, where Kick-Ass is being drawn into the web, where I was totally engrossed and could have been watching Batman or Spiderman – except Kick-Ass is glossier, more colourful, and cooler. Despite the cringe-making violence, this is a cool film, albeit one that walks very very close to the moral tightrope (although, again, not entirely just because of Hit Girl). I like it. But many wouldn’t.
Logitech Presenter R800 with USB HID in Windows XP SP3
I recently acquired a Logitech Presenter R800. It’s a beautiful device – not particularly cheap, but very slick and easy-to-use. Unfortunately, Windows XP (Service Pack 3) on my system refused to recognise it – the device was listed as USB Receiver in Windows Device Manager, but Windows kept claiming it couldn’t find the driver. It is presented to the system as a standard USB HID device, so there is no Logitech-specific driver: it uses the standard Windows HID Driver. It worked perfectly out of the box on Ubuntu 9.10.
After 3-4 hours of research, I found the answer. Running a differencing tool between the C:\Windows\Inf folder on a colleague’s PC and mine showed that mine was missing the usb.inf and usb.PNF files from that folder. It wasn’t clear why they were missing, but having copied them over from his machine, the driver installation then worked perfectly. So that’s worth trying if you encounter a similar problem with this product (or indeed any USB HID device).
Highrise Backup
I no longer use Highrise, but when I did, I used this Python script to back up my contacts. Hope it’s helpful to someone.
Updated 2009-12-14: Added license
#!/usr/bin/python # # Copyright (c) 2009, Andrew Ferrier All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # # * Redistributions of source code must retain the above copyright notice, # this list of conditions and the following disclaimer. # # * Redistributions in binary form must reproduce the above copyright notice, # this list of conditions and the following disclaimer in the documentation # and/or other materials provided with the distribution. # # * The name of Andrew Ferrier may not be used to endorse or promote products # derived from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. import httplib2 import getopt import sys try: opts, args = getopt.getopt(sys.argv[1:], "a:d:", ["user-auth-token=", "domain="]) except getopt.GetoptError, err: print str(err) sys.exit(2) userauthtoken = None domain = None for o, a in opts: if o in ("-a", "--user-auth-token"): userauthtoken = a elif o in ("-d", "--domain"): domain = a else: assert False, "unhandled option" if userauthtoken == None or domain == None: print "You must specify both the user-auth-token and the domain" sys.exit(2) url = "http://" + domain + ".highrisehq.com/people.xml" http = httplib2.Http() http.add_credentials(userauthtoken, "x") offset = 0 content = "" while True: response, newContent = http.request(url + "?n=" + str(offset)) if response.status != 200: sys.exit(response.status) numContacts = newContent.count("<person>") offset += numContacts content += newContent if numContacts < 500: break print content
Winchester Waitrose
Just come back from the new Winchester Waitrose. Upsides are:
- Large; decent selection of food.
- Looks like usual upscale Waitrose food quality.
- Pleasant, well-turned out, professional staff (Sainsbury’s Winchester, I’m looking at you here).
- Clean and well-presented store (once again, a glance in Sainsbury’s direction).
Downsides:
- It’s too far out of town. OK, it probably isn’t if you have a car, I admit. I’m in the minority by avoiding one for cost reasons (which might cause one to question why I choose to shop at Waitrose, so it probably works for most of their customers). But, for me, it is a trek. I’ll probably be trying out Waitrose Deliver to see if that might help.
- Poor range at fresh bread counter.
veryPC AT20
I recently bought a veryPC AT20 as a more powerful replacement for an aging Debian-hacked NSLU2 that I had serving up files, doing backups, and other such tasks. I thought I’d do a quick review in case it’s of value to anyone considering a machine from veryPC (at the time of writing, it seems to be no longer for sale, although the veryPC AT10 looks similar).
I particularly wanted something more meaty than my NSLU2 so I could do full-disk encryption, fully-encrypted offsite backups, so it seemed ideal. The variation I ordered has:
- Dual-Core Intel(R) Atom(TM) CPU 330 (1.6GHz)
- 1GB RAM
- 1TB Western Digital “GreenPower” Hard Drive
- Intel 82945G/GZ Integrated Graphics
- Onboard audio, 6 USB 2.0 ports, a serial port, a parallel port
- Integrated 100MB Ethernet
- RaLink RT2561/RT61 802.11g PCI Wireless Card
- DVD-RW drive
(total approximately £370)
Very PC seem fairly reputable, and their customer service was adequate, if not outstanding (they didn’t keep me up-to-date on my order until I emailed them, at which point they interrupted me by calling, they didn’t always respond to sales enquiry emails, and were coy about their returns policy). Nevertheless, they do offer a 3-year warranty as standard, which shows confidence in their products.
Nevertheless, the PC arrived fairly promptly (~5 days), and appears to be robustly built: whilst compact, the case is very solid and feels strong. The whole machine exudes a feeling of high build quality, and is mostly constructed from metal rather than cheap plastic. Here’s what it looks like from the outside:

The machine came shipped with Ubuntu (Desktop) pre-installed, although I rapidly reinstalled it with the Ubuntu Server (a wise decision anyway, since VeryPC forgot to include information on the default username and password!). As such, every piece of hardware works well with the exception of the wi-fi card, which, using the default driver, suffered from frequent drop-outs (a problem I’ve had before with the RaLink cards under Linux). Replacing the standard driver with a ndiswrapper verison (more information here and here) resolved this. Channels 12 and 13 also don’t seem to work correctly with this driver, so the wi-fi network has to run on another channel.
The main disappointment was the noise generated by the machine. To be fair, VeryPC described it as ‘ultra quiet’, and with other noisy items on (e.g. a modern laptop with the fan spinning), you won’t hear it. However, in an otherwise silent room, you definitely will – and you don’t have to get close to it either. I haven’t done any formal tests, but if you want a completely silent machine, this is not the one for you. If you can tolerate a small amount of fan noise in very quiet environments, it should be OK.
Another minor point: the machine has an external power supply brick (like a laptop). VeryPC didn’t make this clear, but you should factor it in if you’re considering buying one.
Otherwise, though, I’m fairly satisfied. It does what it says on the tin, I’ve had no reliability problems whatsoever (save for the wi-fi card issues mentioned above), and the machine is running 24h a day and doing a solid job. So kudos to veryPC for putting together a good bit of kit.
Dialling Problems with Vodafone 3G on Windows
As I’ve written about before, I use a combination of Vodafone 3G and the AT&T Network Client on Windows to access my corporate VPN. Recently, I’ve been seeing this error a lot when ‘dialling’ the 3G network (I connect it via the Windows dialler, rather than the Vodafone client):

This morning, I figured out what it was that was causing the problem. AT&T was open when I was dialling, and had the modem selected in the ‘Cellular’ tab (which I don’t normally use):

I hypothesise that it’s got a lock on the modem when this is selected (even if the ‘Cellular’ tab is not selected). Quitting the AT&T client appears to allow the connection to be created. You can then restart it and connect to the VPN in the normal way (using ‘existing internet connection’).
Hope this helps someone.