Installing Pi-Hole

Once I’d got my Raspberry Pi back up and running, one of the things I was desperate to try out was Pi-Hole, a DNS sinkhole capable of running even on my extremely old Pi. DNS sinkholes make it possible to block ads, trackers and malware at source, speeding up browsing and improving privacy. The particular advantage of a Pi-Hole is that it cannot operate at the network level, blocking ads automatically on every device that connects to a WiFi network. Well, it’s got to be worth a go, right?

Continue reading Installing Pi-Hole

Raspberry Pi revisited

As documented a long, long time ago, I’ve got an old Raspberry Pi (B 1.2) kicking around. I wanted to try to teach it some new tricks, but once again my first challenge was getting it set up. This time, I don’t even have a TV I can plug its composite output into and I couldn’t be bothered to get HDMI working. I’m going to have to do this completely blind. Continue reading Raspberry Pi revisited

SSD part 3: Upgrading to Windows 10

The first SSD I installed was into my laptop, back in April 2014. But since then I’ve shuffled them around, and I was back to having an old HDD. This was just about tolerable, but with the 240GB OCZ Trion 100 (a ‘meh’ quality SSD) available for under £40, and Windows 10 upgrades nagging, I thought I’d rectify the situation. Unfortunately, it didn’t exactly go well.

Continue reading SSD part 3: Upgrading to Windows 10

Installing CyanogenMod 12.1 onto a Nexus 4

And so it came to pass that the Nexus 4, which was already a year old when I bought two years ago, started getting slow. I was hopefully initially that Android M (marshmallow), Google’s latest version of the operating system, would help: it apparently has a lower RAM footprint than L (lollipop). But unlike in the case of my Nexus 5 (which has already received the update) Google does not intend to ship M to Nexus 4s. Thus I had three three options: slug it out; hack a version of Android M onto it; or install a maintained fork that would (eventually) pick up the benefits of M. I chose the latter, going with the most popular fork: CyanogenMod, version 12.1 (a stable version 13 – i.e. one based on M – is expected around the New Year).

Installing CyanogenMod is not a walk in the park, even following the detailed instructions available on the CyanogenMod website and working out of Ubuntu. The following commands were useful ( is an OpenGApps package and TWRP is, well, TWRP).

Unfortunately the “stock” OpenGApps package doesn’t seem to fit in the system partition of a Nexus 4 (and hence use of Advanced Options is advisable). To ascertain how many Google Apps needed excluding, and to effect that change, the following commands were useful:


factoriseAs I mentioned in my previous blogpost, I am now the proud owner of a Pebble Time. This week I took the plunge and decided to make my own watchface in honour of xkcd #247 (“Factoring the time”). Pebble watchfaces have historically been written in the programming language C, although (given the relative unpopularity of C) the team there have also built a JavaScipt API, PebbleJS. I mean, I’ve never written any C before, but there’s no time like the present eh?

C turns out to be a particularly intensive language to work in, especially without the benefit of large utility libraries. For example, its array handling is poor, lacking push/pop functions, an accurate count function or indeed join/implode. The other thing I struggled with was performance enhancement. The major challenge when developing a watchface is battery conservation. Although Pebble provides some guidance covering this aspect, it remains vague (and difficult to even deduce through trial and error. For example, my initial design factorises the time afresh every minute using a blunt force recursive technique (given the maximum target is 2359, this is not too inefficient). But equally, I could store the pre-computed factorisations in a file. Would this be better or worse for battery conservation? Who knows.

The full code to the Factorise watchface is available from Github under the MIT licence.

Pebble Time: First Thoughts

Pebble TimeAbout a fortnight ago I added at Pebble Time to my collection of gadgetry. It’s one of the more basic second gen smartwatches, with a 64-colour e-ink screen rather than a touchscreen, as well as a microphone. Most of its functionality is derived from a bluetooth connection to a mobile phone. To buy one in the shops will set you back around £200. Continue reading Pebble Time: First Thoughts

SSD transfer (again)

Sims 3 screenshotThis week’s task was move by existing my old SSD from my laptop to my gaming desktop, which I’ve had since September and am otherwise very happy with — certainly, the AMD FX-6300 Six Core CPU + Radeon R9 270X can handle most things thrown at them, with the unusual exception of The Sims 3 (no idea why the Sims is an exception; maybe something to do with the age of the game). Continue reading SSD transfer (again)

Moving WUBI from one hard disk to another

Today I upgraded my 500GB hard drive to a 250GB SSD (transfer lead not included). Although that sounds like a downgrade, I wasn’t using much more than 100GB. The change from HDD to SSD represents a massive speed boost, particularly on startup/shutdown, but also across a whole range of operations. I have to say, credit where credit is due, the Samsung Data Transfer program included did its job admirably, cloning 100GB of data over USB2 in just under two hours.

My only hiccough came when I tried to boot into Ubuntu. Having previously dual-booted it alongside Windows via (the now unsupported) Wubi without incident, I was braced for problems. First step: get back the boot menu, so I can even express my interest in booting into Ubuntu. Thanks to HowToGeek, this goal was soon accomplished. Next, however, I update grub to let it know where Ubuntu actually was on my system. error: no such device, it complained bitterly, file '/ubuntu/disks/root.disk' not found.

Continue reading Moving WUBI from one hard disk to another

Sony DR-BTN200 Overhead Bluetooth Headphones

I’m really happy with my Sony DR-BTN200 Overhead Bluetooth Headphones (currently £55 on Amazon), in particular their insane battery life. In terms of feature set, the controls are well-designed, meaning that recourse to either my phone or tablet is rare. On the flipside, the continuing problems with Bluetooth in general on Android 4.4 devices are a pain, so much so that I’m yet to trust my headphones with actually making a call. As someone who is not used to headphones, wearing them for very long periods (over an hour, say) can be uncomfortable — but a discomfort offset by not having wires all over the place.

In order to use the headphones with my PC, I bought an el-cheapo USB Bluetooth adapter. After I downloaded the right driver for it (link), it’s working nicely, although it sticks rather oddly out of the laptop, while being too small to want to carry separately for fearing of loosing it.