Why I'm Switching To BlueHost

I have (or probably had by the time you read this) several sites hosted on a shared account on HostGator. That was going fine until one of my sites got infected with a virus, which then cross-infected all the other sites. HostGator technical support were no help, suggesting that I needed to pay SiteLock to fix the problem for me. I paid a freelancer to find the source of the infection and secure the sites; but the infections continued.

Removing persistent infections drives me crazy and wastes my creative time; so I've decided to bite the bullet and shift my sites to separate hosting accounts on BlueHost. They're having a special until the end of March 2016 giving 50% off their Basic plan which is perfect for hosting a single WordPress site. That means if one of my sites gets infected again (God forbid), they won't all get infected.

BlueHost logo

In the process of migrating the sites, I've reinstalled WordPress fresh, and reinstalled the plugins from the repository. While doing this I've noticed one plugin no longer in the repository; so I've dropped it. I've also reverted back to unmodified themes. That should nix the infection once and for all.

If you're looking for a hosting provider, I suggest you check out BlueHost.

Posted in Hosting | Tagged , | Comments Off on Why I'm Switching To BlueHost

How To Export Voice Memos From Your iPhone

I use my iPhone to record audio for my blog sometimes. Exporting these memos is easy once you know how; but since I use a PC rather than a MAC, the iTunes user interface is... well, less than entirely intuitive to me.

Voice memos show up in two places in iTunes

If you click on the iPhone icon and scroll down to On My Device, you'll see them and can play them; but can't export them. Thanks Apple.

But if you click on the Music icon and scroll down to Playlists, you'll find a Voice Memo playlist. From here, you can drag and drop the memos out of iTunes and into a Windows folder.

Posted in Tools | Tagged , , | Comments Off on How To Export Voice Memos From Your iPhone

How To Remove The Google Custom Search Box At The Bottom Of Your Posts

I recently had a Google Custom Search box appear at the bottom of all the posts on my blog, which I don't remember asking for. After a bit of digging, I found that the Really Simple Share plugin was generating it. I'm guessing it's a new feature, that ReadyGraph have turned on by default in order to make some cash. Here's how to remove it:

Go to Really Simple Share -> Share Options.

In General Options, deselect Google Search Box.

And you're done!

Posted in Plugins | Tagged | Comments Off on How To Remove The Google Custom Search Box At The Bottom Of Your Posts

Disable mod_userdir module if your host uses CPanel

I've just had Google Webmaster tools report phishing attacks on all my sites hosted by HostGator. Initially, I thought my sites had been compromised; but since I always use strong passwords and pay attention to site security, I couldn't work out how. So I contacted HostGator technical support and learned that the phishing page came from another site hosted on the same shared host, and was accessible via a URL like:


In fact, it turns out that the website of any other user on the same shared host is accessible via my site's address using ~user. Ouch! And incredibly, HostGator enables this behavior by default.

If your website is hosted on a shared host that uses CPanel, get on to your hosting company technical support and ask them to disable mod_userdir.

Posted in Hosting | Tagged , , | 1 Comment

Essential FileZilla Settings

I recommend FileZilla for transferring files to and from your hosting service provider via ftp. It's much easier than using the CPanel file manager for uploads and downloads, especially when several files are involved. Sometimes you need both though, such as if I'm uploading and extracting a ZIP file; then I'll use FileZilla for the upload, and the CPanel file manager to extract the file.

However, FileZilla has some unfortunate default settings that can cause you grief if you don't change these defaults. In particular, it can end up mangling the CR/LF line termination in the files on your server. Historically, the ftp protocol converts text files to the native CR/LF format for the system the file is being transferred to; but this messes up binary comparisons and is generally a really bad idea since it becomes more difficult to tell if the file has been modified or not. Better to keep the file in the format it was originally in. Also some text editors like Windows Notepad will screw with the CR/LF settings in a file, even if you didn't modify the contents. This is evil.

Whether that all made sense to you or not, I recommend the following changes to FileZilla's default settings to avoid these problems:

Select Binary Transfers By Default

Edit → Settings → Transfers → File Types → Default Transfer Type: Binary

Make TextPad The Default Editor

Install the TextPad text editor

Edit → Settings → File Editing → Default Editor: Use custom editor: path to TextPad.exe

Select Always Use Default Editor

Posted in Tools | Tagged , | 1 Comment

How To Upgrade MailPress

I've recently upgraded MailPress on my comedy blog and The Confident Man Project. Upgrading MailPress is a little trickier than upgrading most WordPress plugins because the automatic upgrade will wipe out your local customisations, like your MailPress child theme.

Here's the simplest way I've found to do it:

  1. On the WordPress plugin panel, Deactivate the MailPress plugin
  2. Using FileZilla:
    1. Rename the old mailpress directory under wp-content/plugins to mailpress-version (where version is the version number in wp-content/plugins/mailpress/Mailpress.php)
    2. Create a subdirectory under wp-content/plugins named old if you haven't already done this
    3. Move the old mailpress directory to the old directory
  3. In WordPress:
    1. Go to Plugins → Installed Plugins so WordPress sees the plugin has disappeared
    2. Go to Plugins → Add New, Search for MailPress and Install Now
  4. Using FileZilla:
    1. Copy mailpress-config.php from old/mailpress-version to the new mailpress directory
    2. Copy your MailPress child theme from old/mailpress-version/mp-content/themes into the new mailpress/mp-content/themes directory
    3. Using TextPad, apply My MailPress Hacks
  5. On the WordPress Plugins list, Activate the MailPress plugin
Posted in MailPress | Tagged | Comments Off on How To Upgrade MailPress

How To Allow Contributors To Set A Featured Image

I'm finally getting into outsourcing, and I came across one small gotcha while outsourcing the transcription of a bunch of YouTube videos on The Confident Man Channel. I wanted my freelancer to transcribe the videos and create a blog post on The Confident Man Project with the text of what I said in each video.

Now I don't want to give my freelancer free reign on my site, so I created a user for them to log in with, assigned the role of Contributor. This allows them to create draft posts for submission, but not to publish them. I still get the final chance to review the posts before hitting the “publish” button. (One day I'll let go of control completely... but not yet).

That's all well and good, except that by default Contributors can't upload and set featured images, which many themes use to entice readers to click on other articles when they visit my site, and is important for SEO.

Continue reading

Posted in Content | Tagged , , , | Comments Off on How To Allow Contributors To Set A Featured Image

How To Stop 404 Errors Redirecting To search.conduit.com

(a.k.a.: How to remove the Conduit search virus)

There's an evil Firefox plugin distributed with some downloadable software which reconfigures Firefox to redirect to search.conduit.com whenever it encounters a 404 error from any website. I know it's evil because it's installed without your consent.

It's also confusing and massively annoying because you don't get to read the text of the 404 page which could actually help you find what you were looking for. Instead, you get to look at Conduit's crappy search engine. I know it's crappy because they need to install malware just to get you to visit it.

I searched forever to find how to remove this beast, and it seemed to keep on coming back all the time! I'd like to stamp this Conduit malware on the head and get it detected by virus scanners. So please submit it as malware to your chosen security software firm, and link to this article so that others can find the antidote easily.

Now that I seem to have got it successfully removed, here's how to disable redirection to search.conduit.com on 404 errors. I'm using Windows 7 but I imagine these instructions will work on other systems too:

Step 1: Disable the Conduit plugin

Go to Firefox -> Add-Ons -> Plugins, and click Disable next to the Conduit plugin.

If it doesn't appear in the list, proceed to Step 2 anyway.

Step 2: Remove the Conduit plugin

In the address bar, visit: about:plugins

Find the Conduit plugin in the list, and note the Path: for the Conduit plugin.

If you can't find the Conduit plugin in the list, proceed to Step 3.

Otherwise, Close Firefox.

Open the directory containing the Conduit plugin in Windows Explorer, and delete the File: for the plugin.

Note that merely removing the plugin isn't enough to stop the bad behaviour. You still need to proceed to Step 3.

Step 3: Delete the Conduit config entries

Open Firefox again and visit: about:config

Click "I'll be careful, I promise!" in the warning box.

In the Search field enter "conduit".

Right-click on each of the preferences and select Reset for each one.

Please share this article with your friends so we can put Conduit and their malware out of businsess.

Posted in Problems | Tagged , , | Comments Off on How To Stop 404 Errors Redirecting To search.conduit.com

How To Resend An Existing Post In Your MailPress Newsletter

Every now and then something goes wrong on one of my blogs, and I want to resend an existing post in my next MailPress newsletter. Perhaps I mess up something in the server configuration and mail starts getting lost, but I don't notice for a few posts.

Creating a new post just so that it goes out in the next MailPress newsletter is a hassle. So here's how to resend an existing post in your MailPress newsletter:

(Be warned, it involves hacking the WordPress database, which can destroy your site if you get it wrong...)

  1. On the dashboard, choose Posts → All Posts and Edit the post you want to (re)send
  2. Note the post id “post=n” in the URL
  3. In another browser window, go to your hosting provider's control panel and open phpMyAdmin
  4. Select the WordPress database for your blog. If you don't remember it's name, open wp-config.php in your site's root directory and look for the setting DB_NAME.
  5. Select the table wp_postmeta
  6. Select Sort By Key: post_id
  7. Find the entry with post_id “n” and meta_key “MailPress_published”
  8. Click Delete on that entry.
  9. Double-check that you're only deleting that entry, not the whole table. (Doing that would destroy your blog).
  10. Back in the Edit Post window, click Update.

Your post will now go out in the next newsletter.

Posted in MailPress | Tagged , | 1 Comment

Fix for Posts with a Featured Image not being sent in MailPress

There's a bug somewhere in MailPress 5.3 that prevents posts from being sent in your newsletter if they contain a featured image. I'm not exactly sure why this happens, but it appears to be related to MailPress's attempt to reproduce the TwentyTen theme's evil habit of changing your site header according to a post's featured image.

Something seems to go wrong in the process; but given that you probably don't want the image in the header of your emails to change according to a post's featured image either, the simplest solution is to disable this buggy behaviour entirely. To do this, you need to edit the file mailpress/mp-includes/class/MP_theme_html_.class.php.

In the function header_image, delete or comment out these 3 lines:

//    case ( $post_id && function_exists('has_post_thumbnail') && function_exists('get_post_thumbnail_id') && function_exists('wp_get_attachment_image_src') && $post_id && has_post_thumbnail( $post_id ) && ($image = wp_get_attachment_image_src( get_post_thumbnail_id( $post_id ), 'post-thumbnail')) && ($image[1] >= self::HEADER_IMAGE_WIDTH) ) :
//        echo $image[0];
//    break;

Posted in MailPress | Tagged , , | 2 Comments