Fast, Cheap, Reliable VPN for Linux

I did some research into VPN services because even if I'm not in the US or UK for a while I don't want to be prevented from accessing certain websites there and signing up for services there.

You can sign up to the PureVPN shared IP services here. I have good experience (hulu with maximum quality streaming, iplayer work fine) with the cheapest version.

I recommend chosing the Monthly or Quarterly plan for tests ($14), but there is a three day test account ($3) available as well. It seems there is a bandwith limit now, and without you pay more.

Payment processing can take a few hours so be aware you can't start you fun and tests directly. Settings for network manager (gnome) can be found here. It works fine for me after installing network-manager-pptp-kde. Let me know in the comments if you need help. The most important part is to deselect everything in that one list except CHAP in the advanced settings and dselect MPPE. You can also try the nm-applet from Gnome, which you can of course also use in KDE. In my experience it often works better than the KDE version anyway unfortunately.

You may run into problems if your router doesn't support pptp forwarding. Then you either get a better router, or - in the long term probably the cheaper and better option for your speed - get a better router.

By signing up via a link from this blog you support the author.

The Story of the VP8 Encoder and Decoder

An x264 developer blogs about the work on writing a decoder for ffmpeg and how the code is not really perfect and the spec not really existing:

For example, Google’s decoder will, if told to “swap the ALT and GOLDEN reference frames”, overwrite both with GOLDEN, because it first sets GOLDEN = ALT, and then sets ALT = GOLDEN. Is this a bug? Or is this how it’s supposed to work? It’s hard to tell — there isn’t a spec to say so.
-- x264dev

Interesting to see the story of the great new universally accepted web video codec from his view. I bet developers at Firefox, Opera, and last but not least Google think similarly...

Check the Strength of your Passwords

There's a great new website which tells you roughly how long it would take
to brute force crack your passwords, giving you a good indication of how
good your passwords are. Of course you should not input any of your real
passwords for security reasons, but you can just replace any small
character with any other and any special character with any other to get a
good idea of how long it would take. It's just a rough calculation.

Increase Speed and Save Traffic with Opera Turbo

If you have a traffic limitation I have some great advice: Install Opera.
Starting with Opera 10, there is the integrated "Opera Turbo". With the
help of that proxy you not only speed up the loading of websites by 4x and
more, but you also decrease the amount of data transfered, which makes
your volume last much longer.

After a whole day of 3G web surfing, Opera Turbo had saved me 2 GB of
traffic! (Only about 100 MB were left, that 20x less!) So the first thing
after setting up 3G should be setting up Opera with Opera Turbo!

Oh and you'll probably also want to put this list into your Opera urlfilter.ini. This stops Opera from loading ads, saving you even more traffic. But you can't use save as, you must use copy & paste to get rid of the html elements in the file.

Mobile Internet with the Skypephone S2 in Ubuntu

It does not (yet) work out of the box. There is a little trick you need. You need to manually load the usbserial module supplying the vendor and product ID. You can find those IDs via the lsusb command. Just add an 0x at the beginning and then load the module:

sudo modprobe usbserial vendor=0x1614 product=0x0407

The support should be automatic in one the next upcoming Linux kernels, though. You can of course automate the module load with an entry in /etc/modules:
usbserial vendor=0x1614 product=0x0407

Then the module is always loaded in the right way at boot time and you just need to plug in the mobile phone for it to pop up in Network Manager (with the help of Mobile Manager). Once that's the case in Gnome with nm-util you can use an easy wizard that should already include your settings. In Kubuntu 9.10 the KDE support for connecting was broken, though. But it's fixed now in Kubuntu 10.04. Too sad many of these changes are never backported...

And now: Enjoy mobile Internet! (And don't miss my next entry on how to save traffic and speed up your new mobile internet.)

If you're in the UK, order your next Three SIM via my agent link, please.

Backlight Finally Works - Generic Poulsbo GMA 500 Fix via ACPI Video Interface

The trick is to go into drivers/acpi/video.c and remove the part that disables the acpi handling if there is an intel opregion present. The patch looks like this:
diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
index 60ea984..ad8fc2d 100644
--- a/drivers/acpi/video.c
+++ b/drivers/acpi/video.c
@@ -2394,9 +2394,6 @@ static int __init acpi_video_init(void)

- if (intel_opregion_present())
- return 0;
return acpi_video_register();

You can compile the module by getting the sources of your running kernel, cding into the acpi directory (drivers/acpi), applying the acpi patch and then executing
make -C /lib/modules/$(uname -r)/build M=$PWD video.ko

Then just sudo insmod ./video.ko.

Alright, here's the more elaborate version by Joey Lee hopefully entering the kernel soon:
drivers/acpi/video.c | 17 ++++++++++++++++-
include/linux/pci_ids.h | 1 +
2 files changed, 17 insertions(+), 1 deletions(-)

diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
index 9865d46..25a70e0 100644
--- a/drivers/acpi/video.c
+++ b/drivers/acpi/video.c
@@ -88,6 +88,11 @@ static int acpi_video_bus_add(struct acpi_device *device);
static int acpi_video_bus_remove(struct acpi_device *device, int type);
static void acpi_video_bus_notify(struct acpi_device *device, u32 event);

+static const struct pci_device_id intel_drm_blacklist[] = {
+ { } /* Terminating entry */
static const struct acpi_device_id video_device_ids[] = {
{"", 0},
@@ -2531,8 +2536,11 @@ static int __init intel_opregion_present(void)
#if defined(CONFIG_DRM_I915) || defined(CONFIG_DRM_I915_MODULE)
struct pci_dev *dev = NULL;
u32 address;
+ int i;
+ bool in_blacklist;

for_each_pci_dev(dev) {
+ in_blacklist = 0;
if ((dev->class >> 8) != PCI_CLASS_DISPLAY_VGA)
if (dev->vendor != PCI_VENDOR_ID_INTEL)
@@ -2540,7 +2548,14 @@ static int __init intel_opregion_present(void)
pci_read_config_dword(dev, 0xfc, &address);
if (!address)
- return 1;
+ for (i = 0; intel_drm_blacklist[i].device != 0; i++) {
+ if (dev->device == intel_drm_blacklist[i].device) {
+ in_blacklist = 1;
+ break;
+ }
+ }
+ if (!in_blacklist)
+ return 1;
return 0;
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
index 3bedcc1..78858b1 100644
--- a/include/linux/pci_ids.h
+++ b/include/linux/pci_ids.h
@@ -2669,6 +2669,7 @@
#define PCI_DEVICE_ID_INTEL_82443GX_0 0x71a0
#define PCI_DEVICE_ID_INTEL_82443GX_2 0x71a2
#define PCI_DEVICE_ID_INTEL_82372FB_1 0x7601
#define PCI_DEVICE_ID_INTEL_82454GX 0x84c4