Archive for the ‘technical’ tag
Free Hour
Once a year (today is the day) I wake up and realise I’ve been given a free hour. Does anyone else savour that moment?
(Of course, once a year, I lose an hour – but I prefer not to talk about that…)
Flaky Trackback / Pingbacks on WordPress 2.0.x
It seems that pingbacks and trackbacks (which are pingbacks’ more awkward, older cousin) are a bit flaky on WordPress 2.0.x (for more information on how both are supposed to work, see this excellent tutorial). I’ve long suspected that’s the case, because blog entries I’ve linked to haven’t had pingbacks appear, and it seems I’m not the only one with such problems. However, I’ve tested pingbacks with this blog in both directions against TestTrack, which enables you to test ping- and trackbacks, and it does seem to work. TestTrack is running an 2.1 alpha level of WordPress, so let’s hope that sorts out the bugs when it arrives.
Feedreader
I’d been struggling for a while to find a decent RSS reader for Windows. However, I’ve now been using Feedreader for a few weeks, and am very happy with it. It fully supports nested folders/categories, which is nigh-on essential if you’re regularly monitoring as many feeds as I am (>100). You can effectively aggregate several feeds together by viewing them at the folder level. Feeds can be viewed using the text contained within the feed itself, or you can easily open the original blog entry inline. The OPML import/export support seems robust, and fully supports the nested folders. Feedreader will also discover feeds in a relatively intelligent way if you feed it a blog URL, as well as supporting searching across all cached blog entries.
All in all, pretty impressive.
OpenSSH Niggle #329
It appears that in some fairly recent version of OpenSSH, the support for the ~/.ssh/authorized_keys2 file was removed (along with the known_hosts2 file). It had apparently been deprecated in preference to the ~/.ssh/authorized_keys file a while ago. This caused me some grief when my ISP silently upgraded OpenSSH recently and my automatic backup scripts (which rely on key authentication) stopped working. Renaming the file fixed the problem.
Imperial MEng Presentations
IBM Hursley invited three final-year MEng students from Imperial College to give us presentations on their individual MEng projects today (mine, from several years ago, can be found here). They were:
- Marc Hull, who talked about his project on Balancing simplicity and efficiency in web applications. Marc’s work focused on improving the development of stateful web applications, and in particular on object-relational mapping in Java, in an attempt to allow more straightforward persistence of objects to databases. This has always seemed to me to be an area lacking in usability and ease (see J2EE for plenty of examples), so anything that moves us closer is welcome.
- Matthew Sackman, who talked about his project Glint: Breeding Mobile Ambients with Actors (which won the IBM Project Prize for the best final year Individual Project). Essentially, Matthew seems to be attacking the area of concurrent and distributed computing, in order to improve its robustness against deadlock (and other concurrency problems). He has chosen to do this by writing a compiler for the GLINT language, which is based on an Actor model and is especially particularly suitable for modelling concurrent systems.
- Francis Russell, who talked about his project Delayed Evaluation and Runtime Code Generation as a means to Producing High Performance Numerical Software. Francis’s infrastructure shifts some code generation and execution to the runtime of a program (lazy evaluation). It does this by building up a DAG to represent expressions that are ‘should’ have been already evaluated. The expression it represents isn’t actually evaluated until it’s needed, which enables certain optimisations to be performed (which is useful, for example, in matrix arithmetic). The framework generates and executes the optimised code at runtime (and it also caches this generated code).
I had the chance to meet these folks briefly (Marc and Matthew had also been here previously, when they were part of the team from Imperial who won the Thinkpad Challenge). It was interesting to see some academic work for a change – whilst I’d never be able to make a career out of that, bringing academia and business together always seems to reap benefits.
I wish Marc, Matthew and Francis luck if they choose to develop their projects further.
Perl Getting the Job Done
Sometimes I think we in the IT industry forget that the point of computing is to make the lives of human beings easier; to do things for us and automate our work; not to introduce extra tasks (this premise is the thrust of IBM’s Autonomic campaign). I was reminded of this the other day when I was writing a set of Perl scripts to download podcasts for me by tidying up the output of goldenpod. I wrote these in Perl because, despite its arcane syntax, it is fabulous for the kind of ‘glue’ job I was doing: taking the output of another program, modifying it, doing some tidy-up on my filesystem, etc. This is primarily because of the rich set of modules available, which in my experience dwarfs any other language. It took an hour or two to write, but now that I’m done, it’s rock-solid stable and does its work silently without my intervention, saving me time in the long run.
Most people, of course, wouldn’t write their own podcast-downloading script in Perl (or know how). But because a lot of software I use is out-of-the-box, the fact that I can program my computer to do jobs for me, the way I want things, is something that I think about rarely, even as a professional software engineer.
Fix for Popularity Contest Page Views on WordPress >2.0.0
I installed the popularity contest plugin some time ago to count the popularity of posts on this blog. Unfortunately, up till now it hadn’t been counting page views, which significantly skewed the statistics. I recently discovered, however, that there was a bug in the WP-ShortStat plugin which caused it not to register hits (due to a regression in WordPress). I applied a similar fix to popularity-contest.php version 1.1 and it now works. It looks like a different fix has already been applied to the version in Trac to fix the problem.
Removing the Orange Homescreen on the Nokia 6630 and Others
It appears that Orange, in their infinite wisdom, decided that they were better than Nokia at creating a usable phone, and are in the habit of replacing the standby (home) screen on their some of their smartphones with a custom Orange one. It’s actually pretty awful, as it’s unreadable, doesn’t always update correctly, and doesn’t show some useful information such as the current profile. Orange were too arrogant to admit this at first, although in their defence it looks like there will be a way to disable it on future models. I have a Nokia 6630 and this has annoyed me for some time – I also have a suspicion it has contributed to many of the crashes I seem to encounter with the phone. Fortunately someone has written a small application called HSKiller to kill this homescreen and bring back the default (the page is in French – the download link is right at the top). It has a few minor niggles, but seems to be working relatively well so far for me.
Incidentally, JJLKeyLock is also a pretty handy application for the 6630 and other Symbian S60-based phones, as it provides a timeout-based keylock, as provided on some earlier Nokia phones, but not these.
OpenOBEX and Nokia 6630 (progress)
After getting a 1GB MMCmini card for my new Nokia 6630, I decided to have another go at getting OpenOBEX working with it. After applying a patch from the forums, I’ve now got ObexFS working over USB; I can mount the phone’s filesystem locally. The only problem seems to be that I can’t create directories, which makes syncing MP3s cumbersome. Argh! I’ve signed up for the mailing list so hopefully will get some help there.
Nokia 6630 / Podcasts / Linux
I’ve just spent a frustrating few hours trying to get my new Nokia 6630 to talk to my Linux PC properly, and have given up after OpenOBEX kept segfaulting. I did manage to get the USB connection between the two working, but this seems to do little without the OBEX support.
On the upside, I did get GoldenPod up-and-running so that podcasts will be automatically downloaded for me. This should make it easier to copy them across to my mobile when I have the opportunity. I shall buy a larger MMC card for the mobile if I find I use this often; 64MB almost certainly won’t be enough.