Not Sure Where To Start?
Connect With Me
Hosting I Use & Recommend
Author Archives: Graham
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 … Continue reading…
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 22.214.171.124:
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.… Continue reading…
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!… Continue reading…
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.… Continue reading…
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 … Continue reading…
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:
- On the WordPress plugin panel, Deactivate the MailPress plugin
- Using FileZilla:
- 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)
- Create a subdirectory under wp-content/plugins named old if you haven't already done this
- Move the old mailpress directory to the old directory
- In WordPress:
- Go to Plugins → Installed Plugins so WordPress sees the plugin has disappeared
- Go to Plugins → Add New, Search for MailPress and Install Now
- Using FileZilla:
- Copy mailpress-config.php from old/mailpress-version to the new mailpress directory
- Copy your MailPress child theme from old/mailpress-version/mp-content/themes into
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 … Continue reading…
(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, … Continue reading…
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.
(Be warned, it involves hacking the WordPress database, which can destroy your site if you get it wrong...)
- On the dashboard, choose Posts → All Posts and Edit the post you want to (re)send
- Note the post id “post=n” in the URL
- In another browser window, go to your hosting provider's control panel and open phpMyAdmin
- Select the WordPress database for your blog. If you don't remember it's name, open
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… Continue reading…