Force phplist to re-fetch Top Level Domains.

Question from a client recently; why won’t my phplist installation subscribe an email address?

phplist still stores a default list of TLDs in admin/inc/userlib.php –  as a fallback for the TLD list it now stores in the internet_tlds row of the phplist_config database table.  

By default it checks and fetches new TLDs every 180 days.

You can override this behaviour by temporarily adding the line:


to config/config.php and waiting for 1200 seconds / 20 minutes, checking that the internet_tlds row has been updated and replacing the config definition with its default value;


The public URL listing the TLDs is defined in admin/init.php as:

define('TLD_AUTH_LIST', '');

and used within admin/lib.php within:

function refreshTlds()

Transfer Previous Recipients and Facetime contacts between macs on Mavericks and Yosemite Mail

Recovering a trashed Mail installation from an orphaned drive or just want to transfer Recents without using VCards?

The files you’ll need to copy are:


Optionally, copy the other “recents” plists as well for facetime, maps, iCal, messages etc:

…and finally reboot your mac to force the operating system to reload the new plists – instead of using cached copies.


Write a Raspberry Pi disk image to an SD card on OSX

Download your .img file archive.

Extract it the .img to your desktop.

Insert your blank SD card.

Identify it from terminal (diskutil list) or Disk Utility (select the disk, then click File >> Get Info and read off the Disk Identifier).

Unmount  (not eject) any volumes on the SD card, again with the gui or from terminal (diskutil unmount diskxsn where x is Disk Identifer and n is partition ID)

Finally write the image to the unmounted disk using terminal:

sudo dd if=RPi-TC_ARMv6j_R5.img of=/dev/disk4 bs=16k

You can see how far along the dd write process is at any point by pressing CTRL+T in the terminal window; the equivalent of passing SIGUSR1 or SIGINFO to dd:

Testing 2014

…let’s see if this looks as bad as the other posts…

No. It looks like the “featured” tag ID isn’t stored until there’s actually a tag with the name “featured” in the WP database.

Because clearly it’d be impossible to hard-code a check-on-fail-create routine into the theme-load… or is that bad practice? Probably. Perhaps they could ask or warn? Probably. But it’s free-as-in-beer, and I figured it out after a minute or two. Still…

Slowed by botnet attacking WordPress & Joomla sites

From the server admins:

“2013-05-13 17:55:22

It appears that the WordPress and Joomla administrative interfaces of some sites on some servers are being attacked by a botnet. We are deploying countermeasures, but performance may be degraded on the servers in question.”

Looks like a further wave of attacks from this botnet:

Time to get two-factor auth figured out.

Two new sites hosted

Proud to have taken over hosting of the main Engine Room and Somerset Film websites for my friends in Bridgwater.

The current sites are based on Textpattern instead of my usual Fuelphp or WordPress back end; getting them up to hosting scratch was interesting. Although Textpattern lacks some of the distributed administration facilities of WordPress, it’s a nice, lightweight little CMS that tries hard to get out of the way and just *let you build a website*.