The sneaky shall inherit the earth

Ge moet maar durven

“Wie niet waagt, blijft maagd”, as they say over here. This guy promises to ask his spam buddies to stop comment-spamming, als long as you put a link to his site. A while ago, he used to promise only “If you dont like advertising comments please send me an email with your site address to tedirectory(at)yahoo(dot)com and I will not write on your site” (cf yahooinsiders), but now he seems to have expanded his influence. He is spamming several of my websites continuously. The source seems to be some people over at Global Net Access, Atlanta (via spam.tinyweb.net).

Which makes me dream of ‘Big Spammer’, a TV-show where known spammers are followed by a hidden camera for a couple of weeks (‘see how he has been wearing the same shorts for a whole week now’) after which they are sued, convicted and dragged to jail, while all their computers are crushed by a huge truck. Mmmm, revenge …

K2 Sidebar modules vs. widgets

I upgraded to the latest version of WordPress recently, and in the process my K2 Sidebar modules were deleted because now WordPress has ‘widgets’ built in. Having used both systems for a while, I can only conclude: it’s a big step backward.

K2 Sidebar modules

k2-sidebar

The K2 theme comes with this plugin installed and it is the perfect sidebar framework:

  • it has an HTML, navigation, RSS, calendar … block and if you really need to do something very specific, there’s always the PHP block.
  • per block you can decide on which type of pages it should be displayed. E.g. you can show the navigation only in the static pages, and your recent comments only in the blog section. You can even exclude the showing on individual pages (e.g.: if on one page you need an IFRAME of 800 pixels wide, you can disable all sidebar modules.)
  • the blocks show the name that you gave them: you don’t have blocks named ‘Text 1’, ‘Text 2’ but e.g. ‘About’ and ‘Adsense’. This is much clearer if you want to change the order afterwards.

Just compare this: the RSS block for K2 and Widgets:
k2-sidebar-feed wp_widgets_rss

Which is why I dove into the WordPress forums to find a way to disable those simplistic widgets and get my original sidebar back. Here is the trick: the disable-wordpress-widgets plugin (also on code.google.com – via wordpress.org) disables the Widgets. I then installed the lastest stable version of K2 (0.9.6) over my WordPress 2.2.1 and not only are the sidebar modules active again, the sidebar was recovered as it was (from the database, probably). Awesome! Throw out those widgets!

Test your karma early in the morning

The “WordPress Automatic Upgrade plugin”“: if it works flawlessly (like when I used it on video.forret.com), an amazing tool! It upgrades your WordPress installation to the latest version, while taking a backup of files and database, and disables your plugins right before and re-enables them right after.

Stilleven (2) However, when it doesn’t work as expected (like yesterday morning here on blog.forret.com), it can be painful. In my case: my K2 template was broken after the upgrade. There is no ‘revert’/’rollback’ function, so you just have to dive in the K2 PHP code and disable the odd line here and there. Once you’re done, you realize that the new version of WordPress now has Widgets pre-installed, and the K2 Sidebar modules you so carefully handcrafted are gone. So you have to frantically look for the right widgets to do rebuild your sidebar, like the Flickr Badge Widget,the Folding Pages Widget, the Executable PHP widget and Google Adsense Widget. Then you nervously look for the right HTML code for your Adhese ads, and try to get the widgets in the right order. And only then you relax to drink your first coffee of the day (it was 6AM).

Thanks for the tip, Pascal 😉

url.rewrite for WordPress on Lighttpd

LightyThis blog now runs on a Lighttpd (Lighty) webserver instead of Apache, and this means the configuration for ‘pretty URLs’ or permalinks of WordPress doesn’t work like it used to.
(As you might have noticed, I use permalinks like /2007/02/this-is-permalink/)

Whereas WordPress can automatically adapt the Apache .htacccess file to something like
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

it does not do anything automatically for your Lighty .conf configuration file (which is logical, since an application should not be allowed to mess with a central config file).
Continue reading url.rewrite for WordPress on Lighttpd

Create your own WordPress plugin

wp-plugins
Wordpress has a really nifty system for adding functionality: the WP plugins. There are a ton of them around, but if you have some knowledge of SQL and PHP you can make your own plugins! You of course have to know how to display stuff, how to add a configuration panel to the Options or Manage tab, … When I read the code of some well-developed plugins, I thought: it should be easy to come up with a WordPress plugin template generator. So that’s what I did: here’s the first (far from complete) version of the WordPress Plugin Generator!

Currently it supports the following features:

  1. return the result as
    • REPLACE TAG: replace all occurences of <!--myplugin_tag--> by a certain text/html
    • AFTER/BEFORE POST: add after/before each post (e.g. for tags, DiggMe buttons, Adsense, …)
    • CALL FUNCTION: call the myplugin_showhtml() function (e.g. in sidebar.php)
    • BY PLUGIN PAGE: the result is displayed when the wp-content/plugins/myplugin/myplugin.php page is called (e.g. for results in XML or TXT format)
  2. add the result only to posts, pages, search and/or archive pages
  3. add a config page to the “Options” or the “Manage” panel
    (here I need to do some work to create a good way to generate the display code and the form processing – showing and changing parameters of your plugin)
  4. add optional GPL license text

I of course try to use the guidelines published by WordPress and Installer. I’ll write something about that later.

Continue reading Create your own WordPress plugin

My 10 essential WordPress plugins

Xampled: samples from Donna Summer
Since I’ve been doing quite a lot of WordPress blog upgrading recently, I’ve been diving into its plugins a lot. There are lots of them around and I have grown a liking to some of them.
Here’s a list of plugins that I’ve found to be essential to any of my WP installations:

  1. WP Installer
    what: install plugins/themes without using FTP
    why: makes installing and maintaining plugins really easy, even behind a firewall. This is the first plugin I always install.
    where: mattread.com
    install: installer-04.zip
  2. Akismet
    what: delete comment and trackback spam – not perfect but indispensable – pre-installed on Dreamhost accounts
    why: save you time and annoyance by filtering out the real comments
    site: akismet.com/
    install: akismet.zip (v1.2.1)
  3. WP Cache
    what: keep cached copies of your pages – pre-installed on Dreamhost accounts
    why: speeds up your site
    site: mnm.uib.es
    install: wp-cache-2-0-21.zip
  4. Brian’s Latest Comments
    what: displays your recent comments in a nicer format
    why: gives a better view of the popular articles
    site: meidell.dk
    install: brianslatestcomments.zip
  5. K2 Theme
    what: more than just a theme, includes a WYSIWYG sidebar and customisable header image
    why: if you can live with its looks, the most powerful theme available
    site: getk2.com
    install: k2-091.zip
  6. MightyAdsense
    what: manage your Google Adsense code insertion
    why: easily decide what ad goes where without modifying your theme
    site: mightyhitter.com
    install: mightyadsense41.zip
  7. RunPHP
    what: run PHP code inside your blog posts
    why: create pages that actually do stuff
    site: www.nosq.com
    install: runPHP2.1b.zip
  8. Popularity contest
    what: keep track of # views, comments … of all your posts
    why: makes it easy to show your popular posts
    site: alexking.org
    install: popularity-contest.zip v1.2.1
  9. Ultimate Tag Warrior
    what: add tags/keywords to your posts (Technorati compatible), show related posts based on those
    why: last tagging plugin you’ll ever need
    site: neato.co.nz
    install: UTW3-141592WP2.zip
  10. Google Sitemap generator
    what: creates a Google Sitemap XML file automatically
    why: because you need it, and you won’t do it manually anyway
    site: arnebrachhold.de
    install: sitemap.zip v2.7

Samples from Funky Drummer (James Brown)
And some nice to have’s:

  • FlickrRSS: show Flickr photos in your sidebar
  • Gravatar: show avatars for commenters (currently under reconstruction)
  • Sparkstats: show blog and comment activity
  • Backlinks: show incoming links trend
  • Dagon Sitemap: list all posts per category (index or sitemap)

WP-Cache speeds up your WordPress!

Ever wondered if you needed a caching plugin for your WordPress blog? You have the impression your blog’s homepage takes forever to load? You hate it when your friends call your blog ‘interesting, but so slow’?

Well, I did, so I wanted to find out just how slow it was. I set up an MRTG monitoring system on my Dreamhost account. First thing I did was to add 2 tests:

  • the download time of my blog’s home page (which involves quite some PHP/MySQL)
  • the download time of a small CSS file on the same site, which involves no PHP

Let’s take a look at the CSS file first:
Getting a CSS file from my site: always fast
The green line is my 500ms treshold: everything above it is too slow.You see that most of the time my CSS file can be downloaded faster than that (actually the average is around 250ms). There is the occasional peak, which might be caused by temporary network congestion or a server busy doing other stuff – it IS a shared hosting after all.

Now compare this to the time it takes to get my homepage: Continue reading WP-Cache speeds up your WordPress!

Fancy WordPress themes on Dreamhost

new WordPress themes on Dreamhost

It used to be that when you installed WordPress on Dreamhost, you only got 3 standard themes installed. Now you get a whopping 50: 2exquisite, 534, Abstrakt3c, Almost-spring, Artsemerging, Barthelme, Blue Kino, Classic, Connections-reloaded, Craving4green, Dapit_hapon, Darknight2.0, Daydream, Default, Disconnected, Durable, Fasttrack, Fluidityrs, Fspring_widgets, Greening, Hemmednoajax, Leone, Lush, Milc3, Modern, Newzen_2.0_build_105, Nineshadesgreen, Nolimits, Ocadia, Orchids, Phoenixblue, Plaintxtblog, Pressrow, Qwilm!, Rounded-v2, Roundflow, Rusty, Shadedgrey, Simply-vic, Sirius, Stripedplus, Tbs-blue, Thirteen, Tiga, Typoxp, Unsleepable, Veryplaintxt, Vslider2, Wpandreas03, Wpglass, Wpjeriko01.
Continue reading Fancy WordPress themes on Dreamhost

Migration to WordPress: me vs Murphy

Some of you might have noticed my recent domain dance: blog.forret.com to peter.smoothouse.com to peter.forret.com and back. You might ask yourself the questions: why was that necessary, couldn’t he have done it in a smoother way and why did it take so long? Those would be three relevant questions. I am used to managing DNS and blogs for other people, so my pride got hurt in the process too.

PROLOGUE: WHY BOTHER?
I have been blogging since 2004 and have built blog.forret.com up to Google Pagerank 6 and Technorati rank 8000. For the non-bloggers amongst you: it’s an ego thing. I don’t want to start again from a PageRank 0, Technorati rank ∞. So that’s why I didn’t stop until I got it back.
Continue reading Migration to WordPress: me vs Murphy

Blogger snafu: emergency migration to WordPress

One of the reasons why I have been posting less the last couple of days, is because I was working on a migration from Blogger to WordPress. I was still working out some DNS stuff (don’t let me get into that, it’s complicated stuff , to do with how Bluehost‘s -my hosting provider- DNS management works).

So I was just writing a piece on how Google bought Writely with my w.bloggar local client, and when I publish I get an error: “Post was saved as draft, please log in to http://www.blogger.com/ to publish it“. Weird, never have that normally. Anyway, I log in, get the Blogger CAPTCHA ‘word verification’ box and I publish. But I see no changes on blog.forret.com. I publish again. Nothing. Then I click the ‘View Blog’ tab in my Blogger interface. This is what I see:

Blogger Fuck-up
Apparently:

  • my blog is now published to some new awkward blogspot location.
  • my template is gone
  • the new template advises me to discover wordpress.org

Continue reading Blogger snafu: emergency migration to WordPress