Blog

Moving On

This blog’s had a good run, but it was built back in 2009 in my early university days, and it’s now cripplingly dated – making it even harder to be motivated to keep it updated – and my scrappy early solutions at spam blocking have been beaten down a bit, really ruining the ambience. Fortunately I’ve now got a new site available at Tim.FYI.

Read this post

Build Focus: Concentrate better and beat distraction

This blog’s been very much neglected (like every other blog of everybody I know), but I have new exciting news: I’m publishing a tool I’ve been using for a while to help me avoid distraction and keep concentrating: Build Focus. It’s a productivity tool that uses gamification to help train your brain to focus better, by building a quick feedback loop that hopefully kills off your distracting bad habits.

Read this post

Announcing loglevel

Today I’m releasing loglevel. It’s an extremely minimal logging library for JavaScript that hides all the hassle of dealing with window.console (does it exist? does it support method x?) completely and reliably, and provides only the core practical elements of logging: leveled logging calls (log.error(), log.debug()), and a setLevel() method to filter messages.

Read this post

Building RPMs on Windows with Maven

As part of my work on my JS-Test-Runner, I’ve been setting up Maven to do all my packaging for me. Deb packaging was relatively straight-forward (using the jDeb maven plugin), and happily builds on my Linux CI box and the my home Windows dev machine, but building RPMs requires a little more hackery.

Read this post

Mocking Java X.509 Certificates with OpenSAML

I’m currently writing all sorts of code for work with OpenSAML, we’re trying to do this in a nice test-driven manner, but it’s extremely difficult to generate X509 certificates at runtime, and surprisingly difficult to mock them sensibly for our unit (well, here really integration) tests that actual use any of the OpenSAML library.

Read this post

A quick and easy JavaScript test runner

In the process of writing one awesome project (a story for another post), I found it was actually quite tricky to run JavaScript tests (here QUnit tests, to be specific) cleanly without a browser, particularly in a headless environment (i.e. for continuous integration). Clearly, this immediately needed fixing!

Read this post

Condition [...] of an unsupported object DataMapper::PropertySet

I’ve been doing some updating of the codebase of this blog (to add some spam filtering for the comments, among other things, but that’s another post), and I started getting the above error from DataMapper whenever I tried to access the parent post of any comments. Google gives a single result for this error, which is spectacularly unhelpful, so I sort of had to fix it myself :-/.

Read this post

OpenVPN TAP 'currently in use' on 64-bit Windows 7

Problem of the week: I spent an infuriatingly long time trying to set up a VPN connection at work on a new 64-bit laptop I’ve gained using OpenVPN. It (mostly) seemed to install ok, and connect and authenticate with the remote server fine, but it then absolutely refused to set up the TAP connection. Instead, it reached the TAP stage and just gave me a “All TAP-Win32 adapters on this system are currently in use” message every time. Hmmpf. Skip to the bottom for a step by step, but first a semi-ranty explanation.

Read this post

Project: Dispatch

Me, my housemates, and the house itself (housered.org — although we don’t actually have much of a site to date) are pretty tech-tastic. In addition to the 8 computers in the house, we recently bought a neat little linux server that’s now running the TV with XBMC and a cheeky couple of terabytes of RAID’d storage full of content (and doing all the routing on our over-complicated network; does a house need 3 VLANs?). We’re slowly adding more ways to fill the server with content, from polling RSS feeds for things we watch a lot, to a new little script Ed whipped up that listens for specific (n.b, firmly authenticated) emails, so you can quickly get the house to go find and start downloading something you think of from work, and then have it entirely ready by the time you get back.

Read this post

Third time lucky

In a fit of productivity, I’ve once more changed the site, rewriting the entire back-end and improving it hugely, and it’s now all back up and running. Yay! There are still some bits and pieces missing (i.e. any content), but I’m hoping to have it structurally all together by new year, I’ve got a good few posts planned already, and I’ve nearly got a system in place so I can write them in advance of publishing, possibly setting me up to actually keep writing them! Optimism reigns. So what’ve I done, and why?

Read this post

CSP and Latex

I’m currently doing the write up for my 3rd year project, which is significantly less interesting than it sounds. To do that I’m modelling my various threads/devices as CSP processes, so I can prove it works. Unfortunately, nobody has ever heard of CSP, ever, so it’s a bit difficult to typeset. Fortunately, somebody else has done this before!

Read this post

Javascript Twister Spinner, written in Doodle

(This no longer exists due to the great blog migration, see details at the bottom of the post)
I made a Twister spinner in JavaScript on HTML 5’s new canvas, with Doodle.js. It’s a replacement for the bit that you spin to tell you what body part to put where when you’re playing twister, and it’s an essential university tool. It’s also unnecessarily over-engineered in many places, but that was part of the fun.

Read this post

MX Revolution Scroll Wheel in Ubuntu

I got an MX Revolution recently because I broke my old mouse (if you own a VX nano, and the scroll wheel starts to break, don’t put bike oil in there) and the scroll wheel doesn’t have the settings it does in Windows with SetPoint. There’s a SetPoint alternative called HIDPoint, but it’s awful.

Read this post

Mixed Messages

It’s amazing how many ways you can send somebody a message in this new high-tech world, particularly now we’ve all got this neat little internet thing. I’m currently sending Amelie as many as I can, and I’m fairly sure this post gets us up to 13 media. Wham, bam, diggity…

Read this post

PhoneGap and Netbeans

We’ve recently been looking at writing apps for phones (it’s tough to resist a bandwagon), and we found PhoneGap. It’s a framework that lets you write apps for most of the big phone platforms (iPhone, Android, Blackberry etc) in nothing but HTML and JavaScript, and still get at things like the camera. I haven’t got far enough with it to really judge it yet because it’s made to be used in Eclipse, when I actually really wanted to code in NetBeans, and setting that up is a right hassle. After doing that, I figured the internet might want this answer too.

Read this post

HIDPoint is in every way not good

Last night I tried installing HIDPoint, a neat app for linux that’s supposed recreate Logitech’s SetPoint software, which doesn’t run on linux, so that you can correctly set various settings for your mice and keyboards. Turns out, it’s a disaster. I spent about half an hour this morning trying to uninstall the damn thing over SSH. Although their website looks fairly pro, compared to the rest of the open source crowd’s stylings, the program is badly written, doesn’t use package management (even though you inform it of your distribution) and just doesn’t work.

Read this post

Google Calendar + Oxford Weeks (ICal Feed!)

Screenshot (Sorry, this doesn’t exist any more! Details at the bottom of the post)
I fixed my automatic calendar feed! It parses the Oxford University term dates page with a selection of reasonably robust regexes and generates a VCal/ICal feed, which you can import into Google Calendar (and probably in other similar places) so that you get events for each week, making life crazy easy.

Read this post

Accuracy and Grenade mods for Stalker: CS

Long story short; grenades and accuracy aren’t quite right in Stalker: Clear Sky. You can fix this by downloading my accuracy mod, and grenade mod

Read this post

Changing locks in synchronized blocks (Java/J2ME)

In my 3rd year project (J2ME) there’s a lot of threads and locking. I wasn’t sure exactly how some of that works, in either real Java or J2ME, so I’ve run some tests.

Read this post

Scala + CSO on Ubuntu

This year we’ve got a Concurrent Programming option, which I’m taking, which takes our quite abstract Concurrency course and makes it practical. It’s basically design patterns etc for actually writing concurrent programs. It pains them to doing a course that isn’t just abstract, but we do have to see code occasionally. A rant for another post perhaps. Meanwhile the code is written in Scala with CSO, and it doesn’t work unless you set it up just right…

Read this post

Revision. The best kind of vision

I’m struggling to revise, just because every time I learn something I think ‘oh, I wonder if anybody on the net can explain this better’. And then I end up reading some random blog about the subject, which is generally useful and great and all, and then I follow some links, and two hours later I’m looking at funny pictures of cats and I’m suddenly pulled back into reality by the half written notes on the other monitor and damn, I’ve wasted infinite time.

Read this post

Comment is Free

There might, quite possibly, be the basics of a working commenting system at the bottom of this page, ready for the subtle caress of your fingertips. It currently doesn’t do spam checking etc. at all, and it does the bare minimum of sanitizing, just enough to keep the database intact and strip dodgy tags.

Read this post

Is this thing on?

(N.B. This was written on and about a very old version of this site, it’s entirely wrong now!) I’ve just finished writing the PHP behind this blog, and hopefully this’ll work, but we’ll see. I’m pretty sure I’ve got post listings and post displaying sorted, and hit counts and code displaying (like this for example.) The big issue is commenting, which I haven’t really started building yet, RSS, and making sure everything works fully. For example, if you click blog, you see the last 10 posts. There is no way, at all, to see more than that, outside just guessing post URLs.

Read this post