Introduction Last year I tried running Fedora on a MacBook Pro (Intel i5 processor) to see how much pain was involved in switching to Linux completely. I was also interested to see whether using virtual machines for day-to-day tasks was feasible, via Oracle’s VirtualBox. In the end I didn’t make the switch: an idle guest […]
Today I tried to install texlive on Snow Leopard via Macports, in order to make use of pdflatex with pandoc. However I received this error: Python interpreter is too old This would exit Macports with an error, suggesting that a bug should be raised. It appeared to be looking for Python 2.6 specifically, which is […]
Way back in March, I found that Inkscape contains some security vulnerabilities related to its processing of XML entities at the start of an SVG document. I’ve persisted privately since discovery to get a fix from Inkscape core developers, alongside the Ubuntu Security Team, to no avail. Following the generally accepted tenets of responsible reporting, […]
For readers who are unfamiliar with it, Stack Exchange is a group of discussion boards whose novel approach of peer voting and meritocratic moderation has revitalised the forum as a source of interactive help on the internet. Having learnt how the community works (at Stack Overflow, for programming questions) I’ve a few thoughts on how […]
I recently fixed a WordPress site that was having trouble sending mail from the popular contact form system, Contact Form 7. The site was running on a Fasthosts web server. Incidentally, I don’t recommend this hosting service; from what I can tell, they disable all the system() PHP calls, making it impossible to run backup […]
One sometimes neglected issue connected with Internet security and privacy is the degree to which unencrypted URLs should be used to carry personal information. I’ve seen it frequently in unsubscribe links on email circulars: rather than having a unique user identifier, the user’s email address appears in the clear. This is okay if you’re at […]
Some code I’m working on requires that a table is locked against any reads or writes for a short duration, and I’ve found that, with MySQL 5.1.x, any other tables that are accessed within the same lock period need also to be locked. So, I was doing something like this: This fails on the select […]
Whilst I am warming to the “Mac way” of doing things, I do like making use of F/OSS where I can. A case in point is processing photos, for which – of course – all free software fans should be using Gimp. Whilst it’s probably not quite Photoshop, it is well featured, powerful, and (as […]
I’ve been meaning to look at Git for yonks (though, as I write this, I can’t help but wonder how long one yonk is). It turns out that there are more Git introductions on the web than most people have had hot dinners, so to differentiate it, I’ll try to make mine titchy. So, here […]
A little while back, I was developing a user interface that made use of a table containing form elements – and I ran into a very unusual browser problem. My JS code contained an <tr> HTML insertion using MooTools’ element.set() on a tbody element, and I received a customer report that the interface wasn’t working […]
One of the ways in which my PHP coding style has evolved is the way in which long statements can be split over several lines. This takes advantage of the free-form nature of PHP, and saves the need to create intermediate variables that are only used once; it also encourages staying within reasonable character margins, […]
I only use Pastie for work, and so rarely have reason to share snippets publicly. During a design discussion, it’s easy to forget to tick the ‘private’ feature – hence this GM script, which does it completely automatically. I forget my head sometimes… Updated 15 Mar 2011: added second URL without ‘www’ alias.