This page
This page is a central point for all of my 'stuff'. It is updated automatically. The most frequently updated section is probably the blog, and the headlines can be seen on the right. Also displayed are a few other bits and pieces - some will be for my own use.
If linking to murky.org, it's probably best to link to the blog.
Things I've Seen
Below I've included interesting and/or cool items which I've seen whilst using Google Reader. Do visit the originating site, as it will usually have lots of other good stuff.
None of these articles will be permanently linked from this page, as I share new items, old items will be automatically removed.
You can read more about Google Reader here.
There is a Google Reader Page with these items. It may be up to an hour more up to date.
Right now, my Movable Type database occupies well over half a gigabyte of space on my host's web server - 550 MB, to be exact. Obviously, 6 years of blogging with all of its comments and entries does result in a lot of data, but can it really be this much?
The thing is, not that long ago the database was only around 50 MB - 11 times smaller. A tweet by Gregor was what prompted me to look - he's a Wordpress user and the auto-save and post revision functions that have been added recently have contributed to "massive bloat fail", in his words. And it looks like Movable Type has the same problem - here's a pie chart to demonstrate:
That big lump of hideous green is 'session data', which holds a variety of things but namely auto-saves of entries and templates. That alone is taking up 500 MB of data.
The problem is that MT doesn't seem to have a 'clean up session data' option anywhere, nor did a cursory Google search turn up much information about it. I'd like to know if I can get rid of it, as right now more than a quarter of my hosting plan is now set aside to this session data. I'd be also interested to hear if any Wordpress users are in the same boat since it too has this problem.
WordPress default search kinda sucks. It sorts the results by date, newest first, and interface wise it doesn't have any of the cool things we're used to when we search in for instance Google.
var dzone_title = 'Make WordPress' search function suck Less.';
var dzone_blurb = 'WordPress default search kinda sucks. It sorts the results by date, newest first, and interface wise it doesn't have any of the cool things we're used to when we search in for instance Google. This post explains how you can make your search experience suck less';
var dzone_style = '1';
This post will explain how you can make your search experience suck less. It requires a few plugins and some work on your search.php template file, but it will make you and your users happier in the end.
Sort by relevance, not date
It has already been noted several times, and it's mentioned in the WordPress Trac at least once: it'd be nice of WordPress would sort results by relevance instead of date. Luckily, you and me are not the only one to think that. The people at Semiologic have created "Search Reloaded", a plugin that will bypass the default search and use a more meaningful query to search the database.
It's not perfect, but now, search sucks less. Before installing this plugin, searching for "WordPress" on this site would return 10 recent posts, instead of my WordPress plugins page, which should be number one. Now it is.
Improve the search result interface
First of all, WordPress shows "default" excerpts. It doesn't bold the search terms you used, as search engines do these days, and it doesn't find a snippet that actually matches your query, it just shows the excerpt, or the first paragraph of the post.
This can be fixed by installing Scott Yang's Search Excerpt plugin. This plugin replaces the default excerpt with an excerpt that actually matches your query, and automatically bolds the words you sought for.
Now to make the interface into a complete search fiesta, we have to bold the keywords you search for in the titles as well. This would be a cool addition to the Search Excerpt plugin, but for now, we'll hack it into the search.php template file.
Open up search.php, and find where it says the_title();. Replace that with echo $title;. Before this line, add the following:
<?php
$title = get_the_title();
$keys = explode(" ",$s);
$title = preg_replace('/('.implode('|', $keys) .')/iu',
'<strong class="search-excerpt"></strong>',
$title);
?>
It wraps the highlighted keywords in the same strong tag as the Search Excerpt plugin uses, so you can style these bolded keywords. You might give them a yellow background for instance, by adding this to your theme's stylesheet:
strong.search-excerpt { background: yellow; }
Another nice touch is changing the default title, so it reflects the query used, change:
<h2>Search Results</h2>
Into:
<h2>Search Results for "<em><?php echo $s; ?></em>"</h2>
Pagination
Now by default WordPress will show 10 results on a page, and because of that, so will Search Reloaded. On my blog the link to the next 10 results didn't work though, and I actually wanted more search results on one page, so I opened up sem-search-reloaded.php and on line 102, I changed this:
$posts_per_page = $wp_query->get('posts_per_page');
Into this:
$posts_per_page = 25;
And now it will show 25 results. Because scrolling down 25 results is a bit of work, if people haven't found anything, you want to give them the option of easily refining their search. So below the results, after the endwhile; in your search.php, you add another search box, something like this:
<h3>Didn't find what you were looking for? Refine your search!</h3> <?php include (TEMPLATEPATH . '/searchform.php'); ?>
Even better would be to show people related searches, which would help them refine their search. To do this, install my Search Suggest plugin, and add
<?php related_searches(); ?>
Below the <h3> you added above. This will show a small listing of related searches, using the Yahoo! API.
Catching typo's
Another thing users have come to expect from the big search engines is that they will "catch" it when you have a typo in your query. If the user entered a query which doesn't give any results, you can use the Search Suggest plugin as well.
This time we'll use the other function in this plugin to give a spelling suggestion. Below the "no posts found" line, add the following:
<?php spell_suggest(); ?>
Now, if no posts were found and the Yahoo! API can come up with a better way of spelling the query, your user will get a nice "Did you mean x?" reply, where x is a clickable link.
Tracking search
There are several ways of keeping track of what people are searching for on your blog. One is to use Search Meter, a plugin that creates a panel on your dashboard that keeps track of searches, and also shows which searches didn't give any results. When testing it on WordPress 2.6 I found it wasn't saving all the searches that were done on my blog.
Another way, which I prefer, is to use Google Analytics and track site search in there. It's easily set up:
- Go into your Google Analytics account
- Click "edit" next to the correct profile in your Analytics settings
- Click "edit" again in the top right of the first info block
- You'll get a screen called "Edit profile information"
- Under "Site Search" click "Do track site search"
- In the text input field under "Query Parameter", enter "s" (without the quotes)
- Click Save Changes
- You're done!
Once you've done all this, you should be able to continually improve on your user's search experience! So, tell me, what is your way of improving the WordPress search experience?
This is a post from Joost de Valk's SEO Blog. If you want to track how applying Joost's tips is increasing your rankings, consider rank tracker, it's the best rank tracker out there for it's price!
Make WordPress' search function suck Less.
By default, after someone leaves a comment on a WordPress blog, they are redirected back to the same page, to the section on that page where their comment has been posted. The after-commenting URL usually looks something like this: http://www.yoursite.com/2008/08/yourpost#comment-comment_385
Suppose you use the commenting feature as a “contact me” function on one or more of your pages. In this case, you do not display the comments on the page; therefore, after someone has submitted the so-called comment, by default they are redirected to the same page with no confirmation that their message has been received.
You can customize the redirect in two ways:
- Use a hidden variable named “redirect_to” in the comment form with the value being the URL to redirect to.
- Write a plugin that uses the comment_post_redirect hook.
We will focus on the second option, as it is arguably more scalable and powerful (because you can potentially add complex rules and manage this in one place).
In our example, you can use a plugin to append a “thankyou” parameter to the URL, which the post or page template would recognize and display a relevant message:

The plugin component would look something like this:
<?php
/*
Plugin Name: Redirect to a thank you message
Plugin URI: http://www.theblog.ca/wordpress-redirect-comment
Description: Redirect the user to the same page but display some confirmation that their message has been received
Author: Peter Keung
Version: 0.1
Author URI: http://www.theblog.ca/
*/
$rty_ids = array();
// List the post or page IDs that should get this treatment
// We suppose here that you want this to apply to the pages with the IDs 23 and 26
$rty_ids[23] = '';
$rty_ids[26] = '';
function rty_comment_redirect ($location, $comment) {
global $_POST, $rty_ids;
// Leave out the "redirect_to" condition if you want to ignore what was posted in the form
if ( empty( $_POST['redirect_to'] ) && isset ( $rty_ids[$comment->comment_post_ID] ) ) {
if ( get_option('permalink_structure') == '' ) {
// If your URL looks like "?p=8" then we need an ampersand
$rty_parameter_syntax = '&';
}
else {
$rty_parameter_syntax = '?';
}
// Append a "thank you" parameter so the post or page template can display the appropriate message
// Alternatively, you can put a specific page to redirect to
// Or, you can check the value of the other properties of the $comment object to do something else
// The $comment object contains: comment_ID, comment_post_ID, comment_author, comment_author_email,
// comment_author_url, comment_author_IP, comment_date, comment_date_gmt,
// comment_content, comment_karma, comment_approved (1 for approved; 0 for moderation queue; spam for spam),
// comment_agent, comment_type, comment_parent, user_id
$location = get_permalink($comment->comment_post_ID) . $rty_parameter_syntax . 'thankyou';
return $location;
}
// Use the normal redirect location if our conditions don’t match
else {
return $location;
}
}
add_action('comment_post_redirect', 'rty_comment_redirect', 15, 2);
?>
Then, somewhere in your “Single post” or “Page” template is the thank you message that displays when needed:
<?php if (isset($_GET['thankyou'])) { ?>
<div class="thankyou" style="border: 1px solid red; padding: 20px;">
<p>Thanks for your comment!</p>
</div>
<?php } ?>
If you’re adventurous, you can tweak the plugin to add rules so that different comment forms behave differently — some might display a thank you message on the same page; some might redirect to completely different pages; and the message could be different depending on whether the comment was approved, held for moderation, or marked as spam.
Our friend Ann Rappaport has been at it again…some of our readers marveled at her homemade kitty-litter bucket panniers, but that’s nothing compared to this incredible feat of DIY engineering! She was gracious enough to document the process in words and photos for us. Here it is:

Front Rack Supplies and Construction:
-Metal shelf supports/rods that are a squared off U shape:
Four @ 3 foot
One @ 4 foot
-Electrical Conduit Hangers
Two @ ¾”
-U bolts, threaded at each end and have the flat metal piece that runs between along with the two nuts
Two @ the size to fit your bikes front forks
-Clear aquarium tubing (One foot is more than enough)
-Metal Screws — I used 20 total, but the lengths may vary; buy a few extra of each size
10 @ 3/16”x3/4” long
6 @ 3/16”x 1” long
4 @ 3/16”x1 1/4” long
-Lock Nuts
20 @ 10-24
-Lock Washers
20 @ to fit screws
-Screws to fit your bikes predrilled holes on the bottom of the bikes front forks
Two
Tools:
-safety glasses
-Drill
-Metal drill bits
-Screwdrivers
-Hack Saw
-Metal File
-Pliers
Points of Importance:
1. These shelf rods have an “up” end. Always measure from that “up” end. This allows you to make use of many of the predrilled holes. To check this, measure the distance between the holes before starting. Mine were 12” apart from “up” end going down, but different when starting from the other end.
2. There are slots cut into these rods to put the shelf support into. When cutting place your blade at end of the slot but not any closer to solid metal between each of the slots (some of the predrilled holes are in this solid metal area as well). If you cut “too short” you will need to improvise.
2. Don’t use a drill in one of these pre-cut slots; use a hammer and a punch instead. The drill will grab and get caught. Once a large hole is punched you can enlarge it with the drill.
3. Very important to mark first, then cut/drill each rod piece after you have held it up to the portion of the uncompleted rack that is attached to your bike. Mark all drill holes this way, cut off waste end/extra rod length this way.
4. File every cut [of the rod] as you make them.
5. Verify before you get all those screws, lock nuts and washers that 3/16” is the correct size for your brand of shelf rod.
The Shelf Rods:
The 3′ lengths will each be used for one 12.5 ” piece and one 23.5” piece. From the resulting four 12.5” pieces you make the rack frame (the square). From the remaining 23.5″ pieces you make the uprights that support the rack from below at the fork as well as the ones that connect to the handle bars and the back of the rack.
The 4′ length will be used for two 12.5” pieces which bolt on the rack’s center. Also the uprights from the fork attach to them. The remaining length, under 2′, is used for the various braces.
Order of Construction:
Use these instructions as a guide. They worked for my bike. Your bike is different; it may need a different sequence of steps. I put lock washers on every time I used a screw. You have to assemble, then attach the rack while building it in order to mark where the cut or drill hole should be on the next piece [to be worked on]. Then take parts off/apart so you can cut and drill. It was the only way to ensure correct placement of cuts and/or drill holes. Note on the pictures which side of the shelf rod faces out. I made mine so that the finished side was out and all lock nuts are inside the shelf rod itself.
1. Make the flat surface of the rack; mine is 12”x12”

2. Using a predrilled hole, if available, attach each upright to the bottom of the fork in the existing holes.

3. Place the next two 12.5” lengths onto the rack frame while holding it in position so that you can mark where you need to drill the screw holes both in the uprights and the two 12.5″ lengths.

You will need another person to help with this step. The two 12.5″ lengths will each have 3 holes marked (one at each end and one in the approx. center); the two uprights will each have one hole marked. You will continue with this approach to marking, then drilling or cutting.
4. After drilling these 8 holes, screw the two 12.5” pieces to the frame and then screw the frame to the uprights. The four pieces that are parallel to one another on the flat surface of the frame should all be either on the top of the other two perpendicular ones or all under. I put them on top.

5. Mark where you will cut the extra length of upright off — the mark/cut should be on an angle so it lays flush to the bar it is joined to.

6. Make the uprights that hang from the handlebars. I cut and bent the end to allow the two surfaces to meet better.

Measure and cut the other end for the conduit hangers. I did not have any shelf rod extend above the handlebar. This is contrary to any of these types of racks I’ve seen.

7. Measure and cut the cross brace at the top of the lower uprights (just under the rack but over the tire).
8. Do the same for the cross brace on the uprights attached to the handlebars.
9. Use clear mineral oil to help the tubing slide onto the large U bolts. Cut it so that it does not extend onto the threads. Hold a piece of shelf rod near so that you can mark the location of the drill holes and cuts. Put the metal cross piece that came with the U bolts against the fork; I put the label touching the fork/paint.

Notes:
The many slots have been great for attaching those small bungee cords. It wouldn’t be hard to engineer a way to attach panniers under the rack. The benefit of this being just a platform is that you can attach whatever is needed and are not limited to one thing such as a basket.
We’d like to thank Ann for sharing this with us, and we can’t wait for the next incredible project to come…this lady’s got SERIOUS DIY skills!
Click here for Bike Commuter Essentials from PricePoint.comOne of the nice things about running a bike shop is that I get to stock the place with products that I use and like. So at Bike Works we stock things like Kool-Stop brake pads
For years, I've carried a Topeak Road Morph G
Well, here's the thing. There are a ton of pumps that suck. Pumps that take forever to fill your tire. Pumps that just can't get up to a decent pressure. Pumps that will too easily tear the valve off your inner tube. A pump shouldn't suck, it should blow.
By and large, Topeak pumps blow. And I mean that in a good way. They inflate tires with a minimum of fuss. The Morph G and my new favorite, the Topeak Mini Morph
Filed under: misc hacks, news

[Hungry_Myst] has put together this fantastic device to annoy your friends. It randomly emits high pitched sounds, then stops for a while to make it very hard to locate. He has added an extra level of annoyance by putting the noise in vicinity of 17KHz thus making it almost undetectable by people over the age of 30. The fact that not everyone in the room can hear it makes people go even crazier trying to find it.
The parts list is fairly short, and the directions concise. One thing that is fantastic about this article is that he encourages people to improve it. That alone is not a huge deal, but he mentions in several areas specific additions that would make it more user friendly: on/off, pitch control, and delay control.
Related: [jay]'s Picaxe based Brain AssailantRead | Permalink | Email this | Linking Blogs | Comments
There are so many things wrong with this story I do not even know where to start. Via CNN (full story here):
BERLIN, Germany (AP) — A German man doused his BMW with gasoline and torched it Friday in protest at skyrocketing fuel costs, police said.
The unemployed 30-year-old man drove a black 1995 BMW 3-series sedan onto the lawn outside Frankfurt’s convention center grounds at about 7:30 a.m., police spokesman Karlheinz Wagner said.
He then jumped out, emptied a canister of gas over the vehicle and set fire to it, Wagner said.
Okay, so you are protesting gas prices by buying gas and lighting it, and the vehicle the gas is used to proper, on fire? Seems like kind of a lose-lose situation to me. And it’s a real lose-lose-lose-lose when you add to the fact that dude is unemployed and will likely be fined heavily or put in jail. Don’t know about anyone else, but wouldn’t a fitting protest be to buy and bike and ride public transit?
The story did remind me of an old joke:
Question: What’s the difference between a BMW and a porcupine?
Answer: On a porcupine the pricks are on the outside.
a
Gas Price Protest: Irony at Its Best
Kinda related posts
- Treadmill Bike (1)
- NBC News: Pedal Power (0)
- More Invisible Bikes (0)
- Cops on Bikes (5)
- CNN Front Page (1)
Every now and then, someone will ask us, “How do I attach a rear rack or fenders to a bike that doesn’t have brazed-on eyelets?” Some otherwise ideal commuter bikes don’t come ready with such mounting points, but there’s an easy and cheap solution to this dilemma.
“P-clamps” are your friends! Commonly available at most hardware stores, these cheap and simple devices are a savior for many a bicycle project:

These p-clamps (properly referred to as “cushioned metal loop straps”) come in a variety of diameters to fit most, if not all, the tubing one might encounter on a bicycle frame. My local hardware store sells two-packs of these zinc-plated steel and rubber p-clamps for about $2.00. If you simply MUST have stainless steel bands and ultra-zoot silicone padding, McMaster-Carr sells them (but at a pretty steep price, compared to the zinc-plated models).
Nothing could be simpler to install — just spread the clamp open with your hands, wrap it around the seatstay or fork blade and squeeze it to close. Then, attach your rear rack or fenders with an appropriate bolt. Once the bolt is tight, these clamps will not slip.
I’ve been trying to convert my wife’s bike into a more suitable “bad weather” commuter by getting a fender on the front to help keep her dry and a rack on the back so she can carry waterproof panniers. The bike’s frame, however, didn’t have any place to mount said accessories. P-clamps to the rescue!
Here’s the top end of the seatstays where the upper rack struts mount:

And the lower end where the rack legs would normally bolt into a brazed-on eyelet:

Here’s a pair of larger-diameter clamps pressed into service on the fork blades…allowing me to mount a full-coverage fender (with custom rubber mudflap) to the bike:

Try them out — they are real problem solvers, and for just a few dollars, you can make your bike more versatile.
Bike Commuter Essentials from PricePoint.com
...came out today in the UK.
...knocked my socks right off (not literally, that would be silly).
...paints an astonishingly powerful picture of a future that's the inevitable result of unsustainably high levels of consumption. There's images in the first half hour that are literally breathtaking in the sense of desolation.
...is also incredibly romantic and achingly sweet, yet never clichéd, forced or obvious.
...makes holding hands seem like the most wonderful thing.
...never, ever, ever gets dull.
...makes you appreciate the colour green and the freshness of nature when you've taken it for granted all your life.
...is the best film Pixar have ever made.
...needs to be seen by myself a second time (at least) to write a remotely coherent review.
...pushes computer animation film-making to a point which frankly blows my mind, and leaves other CG animation feature efforts stumbling feebly like cheap straight-to-video guff (Fly Me To The Moon and Space Chimps, I'm looking at you... and frowning).
...is the closest a mainstream movie has come to silent cinema in decades.
...made my eyes well up on three different occasions, which is some sort of record.
...is a masterpiece, a true work of art that transcends animation and cinema.
...should make sales of Hello Dolly leap (well I'll be, it was Michael Crawford).
...must be seen at the cinema. Must must must. The level of detail in the visuals, the use of sound, the sheer spectacle and scale of it - not an inch of cinema screen is wasted.
...ends happily, but there'll be points when you can't imagine how it will.
...is at least the equal of the Iron Giant, which is insanely high praise.
...made me so glad I was watching it with my girl and holding her hand.
...could well be the best film I've ever seen. But I've got to go again. And again. And again.
...should be seen by every man, woman and child on this little planet. Including you.


