WordPress Plugin Directory Gets a Facelift

Matt Mullenweg recently announced that the WordPress plugin directory has been given a major facelift. A good one too. Take a look:

The new Plugins frontpage

WordPress Plugin Site

- - - - -

The new Plugins tags page

WordPress Plugin Tags

- - - - -

A sample plugin description

WordPress Plugin Description

- - - - -

Sample plugin installation instructions

WordPress Plugin Installation Instructions

- - - - -

A sample plugin FAQ

WordPress Plugin FAQ

- - - - -

Sample plugin stats

WordPress Plugin Stats

The new plugin repository can be found here, in the usual place.

How To: Make Search Engines Like Your WordPress Blog

Wordpress LogoRecently, I discovered that this site had received a 100% SEO score from Domaintools. When comparing this rating to some larger sites, it seemed Sheeped beat them all by leaps and bounds.

What makes it even better, is that I’ve done relatively little to make my blog search engine-friendly, or “SEO-optimized”. Here’s what I did:

1. Modify page titles

By default, WordPress displays your blog’s name then your article’s name in the title. It should be the other way around. Not only is the article/page name first, blog name last good for SEO, humans like it too. Most of the WordPress themes out there use this approach, but if yours doesn’t or you’re using a vanilla WordPress, you can replace the <title></title> code in your theme’s header.php with this:

<title><?php wp_title(' '); ?><?php if(wp_title(' ', false)) { echo ' - '; } ?> <?php bloginfo('name'); ?><?php if (is_home()) { ?> - <?php bloginfo('description'); ?><?php } ?></title>

This will make your titles look like this site’s (check the title of this page).

2. Use Ultimate Tag Warrior and its meta keyword tag inclusion feature

Using Ultimate Tag Warrior to add specific tags to a post is pretty cool, but what’s even cooler is that you can enable inclusion of these tags as meta keyword tags in your pages. While humans do not directly benefit from this, search engines love it.

3. Use index and follow tags wisely

While it may seem nicer to have Google index everything at first, it’s usually not a good idea, especially on blogs. You don’t want search engines to index your whole site, especially if you’re not using excerpts for your archives. On a typical WordPress blog, there’s at least 4 different pages containing identical contents of a post (date/category/poster/tag/etc… archives). This can be penalized by search engines, but even if it isn’t, they might index the wrong thing. I’d hate to search for something and get a result linking to an article pasted in a blog archive for say, 2007.

This little snippet has helped me out a bunch. It also goes in header.php anywhere between the <head></head> tags:

<?php if(is_single() || is_page() || is_home()){
echo '<meta name="robots" content="index,follow" />';
} else {
echo '<meta name="robots" content="noindex,follow" />';
} ?>

All static pages, posts and the main page will be indexed. Archives and search results won’t. If you’re not using excerpts on your frontpage and are extremely obsessive with optimization and avoiding duplicate content, you may choose to remove the is_home() check. Just be aware that people searching for your site with e.g. “Sheeped” won’t find your front page, but rather some article on your site.

4. Use a robots.txt file to block out unwanted queries

You’ll want to place a robots.txt file at the root of your domain, listing paths and regex matches you do not want search engines to index. The robots.txt for sheeped.com looks like this:

User-agent: *
Disallow: /?
Disallow: */feed*
Disallow: */trackback
Disallow: */wp-admin
Disallow: */wp-content
Disallow: */wp-includes
Disallow: *wp-login.php

It disallows search engines from accessing my control panel (why should they?), my RSS feed (duplicate content!), search queries, and other pages search engines don’t need to index.

5. Enforce or remove trailing slashes from page queries

Similar to duplicate content, pages might be indexed twice with almost identical URLs, the only difference being the trailing slash. You can either enforce or remove trailing slashes from all page queries. Personally, I’ve chosen to enforce trailing slashes, and have touched the subject in my article, “How To: Remove ‘www.’ Permanently With .htaccess“. This can be easily done by modifying your .htaccess file. My .htaccess uses this rewrite rule to enforce trailing slashes:

RewriteEngine On
RewriteRule ^([^\.]+[^/])$ http://sheeped.com/$1/ [R=301,L]

6. Use Google Sitemaps

Having a search engine-readable sitemap in the root of your domain helps search engines index your pages quicker. As I mentioned in my article, “WordPress Plugins a Site Wouldn’t Function Without“, Arne Brachhold’s Google Sitemap Generator plugin for WordPress does everything for you. You just have to install it and enable it. That’s about as easy as it gets!

More to come…

Oh, and let’s not forget the cardinal rule of SEO optimization: The best SEO optimization is writing quality content.

WordPress 2.1.1 Includes Exploitable Code

Wordpress LogoIronically, the 2.1.1 security and bug-fix release of WordPress included malicious code that allows anyone to execute PHP code on your server. If you’ve upgraded WordPress during the last 3-5 days, it’s highly recommended that you upgrade to WordPress 2.1.2 immediately.

From the official announcement:

It was determined that a cracker had gained user-level access to one of the servers that powers wordpress.org, and had used that access to modify the download file. We have locked down that server for further forensics, but at this time it appears that the 2.1.1 download was the only thing touched by the attack. They modified two files in WP to include code that would allow for remote PHP execution.

Well, time to upgrade…

Staying Anonymous Online

Following the recent accusations that Google and Amazon (among others) are profiling you without your knowledge, I’ve been asked by many, both online and offline, how they can stay anonymous online. If you’re wondering the same thing, read on!

Onion Routing

OnionOnion routing is the concept of distributing packets among many different servers and routing them onwards randomly while en- and de-crypting them. This effectively prevents anyone from seeing where a packet came from, or where it’s headed. The periodical encryption even prevents the servers that are routing your packets to see where it came from, or where its final destination is. Each individual server only knows where the packet came from and the next server it is to be sent to (hence the name, we’re peeling the onion). Simply put, you’re untraceable.

This technique is being used by everything/everyone from journalists within restrictive regimes, to corporations conducting opposition analysis, and even the U.S. Navy, who used it as a means to communicate while within the middle east, not too long ago. It is, however, not completely secure. If someone had access to both your computer and the server you’re trying to communicate with, they could potentially assess what packets are part of the same circuit. Fortunately, this is very rarely the case.

Why should I use it?

By now you’re probably hyped about the possibility of committing online fraud, hacking, identity theft and other illegal activities. Perhaps not. Either way, it’s certainly possible — just don’t consider yourself the next Kevin Mitnick quite yet. If the CIA really wanted to get to you, I’m sure they could. Besides, Kevin Mitnick’s true strength was social engineering. …Oh yes, there’s some moral/legal issues, too.

Jokes aside, there’s various scenarios where you might want to hide your identity. Personally, I use onion routing when I’m online on campus. Even though there’s no real reason why I should, as I don’t perform criminal acts (that you know of), I just don’t like having someone breathe down my neck. What I do and where I go while online is my business, not the school’s internet administrator with his sparkling Microsoft diplomas and Microsoft Windows Server 2003 running ISA. Yes, we’re quite up-to-date here in ol’ Denmark.

Other scenarios include:

  • You want to find information on treatment for an illness that you do not want anyone to know about.
  • You’re in a country that is known to actively monitor internet traffic.
  • You participate in e.g. online chat-rooms for victims of abuse, rape, etc.
  • etc…

Quote from the Tor website:

Individuals use Tor to keep websites from tracking them and their family members, or to connect to news sites, instant messaging services, or the like when these are blocked by their local Internet providers. Tor’s hidden services let users publish web sites and other services without needing to reveal the location of the site. Individuals also use Tor for socially sensitive communication: chat rooms and web forums for rape and abuse survivors, or people with illnesses.

Journalists use Tor to communicate more safely with whistleblowers and dissidents. Non-governmental organizations (NGOs) use Tor to allow their workers to connect to their home website while they’re in a foreign country, without notifying everybody nearby that they’re working with that organization.

Using it

Tor is the most popular installment of onion routing. It is being used by hundreds of thousands of people around the world. This means that there are thousands of potential servers on your traffic’s path, which ensures your anonymity. For a visual demonstration of how Tor (and onion routing in general) works, see the pictures below.

How Tor works 1 How Tor works 2 How Tor works 3

Tor is surprisingly easy to install, configure, and use — regardless of operating system. For download and installation instructions, please see the Tor download page. For more information about online routing and Tor, see their website.

Stay safe, and happy peeling!

Linspire and Ubuntu to Join Forces

In an announcement posted earlier today, Kevin Carmony, the President and CEO of Linspire, Inc. announced that Linspire will be based on Ubuntu in the future. In return, Linspire’s CNR service will be available to Ubuntu users. Below is a chart demonstrating how Linspire will be set up in the future:

Linspire and Ubuntu Chart

According to Kevin, Linspire will still default to KDE and, most probably, be based on Kubuntu, the KDE flavor of Ubuntu. It will continue to look and feel just as it does now, with the same features and improvements that already exist in Linspire.

The CNR plugin for Ubuntu will be available with the 7.04 release of the distribution, labeled “Feisty Fawn”, which is scheduled for April 2007. From that point onwards, if all goes well, we will be able to perform one-click installations of software that has been a pain to obtain and maintain so far.

At first glance, this is definitely great news. Ubuntu users having easy access to tons of proprietary software like drivers, games, software, etc. — and Linspire being based on Ubuntu, Debian’s… successor, if you will. 87% of the official announcement’s readers think so too, where 4% disagree and 7% have mixed opinions.

Personally, I am a bit skeptical of potential compatability issues; whether or not CNR and apt will successfully co-exist in perfect harmony and happiness, and to what extent Linspire will be supporting Ubuntu over the final Linspire in their package optimization process. Having some packages available to Linspire users and not Ubuntu users because of Linspire-specific additions would really suck — but only time will tell.

Kevin Carmony also included a FAQ in his announcement, targeted at Linspire users.

Taking Over the World

In terms of broadening the use of Linux, this is good news and progress however way you twist it. Generally, things have been moving a lot faster lately with all of the DRM issues of Windows Vista. And not just in the tech-savvy field; the Swedish armed forces have chosen to use Red Hat Linux, Russian schools have chosen to migrate to Linux after a recent Microsoft privacy lawsuit, and finally, PSA Peugeot Citroën in France have made SuSE their desktop of choice. These are just some of many others who have already officially made the switch, including high-profile entities.

Now, if only my X-Fi was supported… Creative, I’m looking at you!

Linux Kernel 2.6.20 Released

Baby TuxThe Linux Kernel version 2.6.20 has just been released. There’s a bunch of cool new features and improvements, including:

Announcement - Super Bowl special!
Changelist

Before downloading the actual new kernel, most avid kernel hackers have been involved in a 2-hour pre-kernel-compilation count-down, with some even spending the preceding week doing typing exercises and reciting PI to a thousand decimal places.

You may like the Wii or the 360 more, but only the PS3 is gaining official Linux support, written by Sony engineers.

Time to compile!

I Ate a Mint Too

Mint LogoI’ve decided to take Mint for a whirl. Mint is basically Google Analytics, just nicer looking, server-run and best of all, it updates instantly. What won me over was definitely Shaun Inman’s informal way of publicizing it — and Paul Stamatiou’s numerous mentions.

Screenshot of Mint, just installed.So, I’ve been running it for a while now, installed some peppers (plugins) and everything looks nice. I can’t wait to check it out when it’s been running for a longer period of time. Check out the screenshot to the right if you want to see what it looks like.

$30 is a bit much for a statistics package, but if you’re a stats-freak like me I can only recommend it. It looks awesome and there’s no delay between updates.

Check out the feature highlights if you’re interested.

Note: If you choose to install Mint, I highly encourage you to create a seperate database for its tables, especially if you’re in a shared environment with per-database/user limited SQL connections. Mint can be a little resource-intensive, but it’s not much. I’d rather have stats go offline than take everything else with it, though.

Mint during a surgeUpdate: Feb 04 2007 - I’m currently receiving my first little surge from StumbleUpon. The page getting stumbled is my article, “How I Taught Myself Programming by Making a Game“. I love being able to sit here, sip some coke, refresh Mint and look at where people come from (the U.S. military, the U.S. government, Harvard, Caltech, Princeton, etc…) where they go, and generally just watch the numbers skyrocket. It is a tingling sensation, really. Kudos to Shaun Inman.

Ubuntu 7.04 Feisty Fawn Includes Proprietary Codec Support

Ubuntu LogoA recent addition to Ubuntu 7.04 Feisty Fawn makes Linux have out-of-the-box support for proprietary codecs. Whenever you try to play a media file you don’t have the codecs for, it suggests to download them for you automatically. What a great addition to the recent announcement that the kernel developers will make Linux drivers for companies for free!

Here are a few screencaps to demonstrate:

1. Attempt to open an audio or video file encoded with a proprietary codec. (Note: I do *not* have universe or multiverse repositories enabled yet, just the official ubuntu repositories) 2. Totem opens, recognizes that it cannot play the mp3, and loads up gnome-app-install. 3. Gnome-app-install guesses at which packages will enable playback of the mp3. “Gstreamer extra plugins” is highlighted by default. 4. I check the checkbox and ubuntu asks me if it is OK to install “community maintained software”. In other words, Ubuntu is asking me if it is OK to enable the “universe” repository (and *not* the multiverse repository). 5. Finally the proper codec is installed for MP3 playback. 6. The MP3 plays!

Screenshots courtesy of this Flickr user.

How To: Set Up Ubuntu Linux 6.06 LTS LAMP Server - Overview

Ubuntu LogoThis is my first large how-to. It’s a step-by-step guide through the entire installation and configuration of Ubuntu Linux 6.06 LTS LAMP Server. The how-to has over 32 screenshots and descriptions for each one, allowing anyone to set up their own Linux server with ease.

The how to currently consists of 4 parts:

Part 1: Preparing For Installation
Deals with downloading and burning the ISO image needed to install Linux.

Part 2: Boot-Up and Configuration
Deals with the beginning of the installation and initial configuration of regional settings and networking.

Part 3: Partitioning Your Drives
Deals with partitioning.

Part 4: Completing the Installation
Deals with the final configuration of user/password and LAMP settings, as well as tests if the server works.

Extra 1: Installation Video
Unedited screencast (4.10 mb AVI) of the installation process, starting from Part 2. 19min 32sec total, feel free to skip past the long wait in the middle. Use this as a reference, if anything, not a guide.

It is my intention to make additions and/or other how to’s complementing this one, so look out for more guides on playing with the Ubuntu Server and Linux in general.