Elliott C. Back: Technology FTW!

WP Super Cache Benchmark

Posted in Blogging, Performance, Plugins, Scalability, WP, Wordpress by Elliott Back on September 28th, 2008.

If you’ve thought about whether upgrading from WP Cache 2.0 to WP Super Cache is a good idea, hopefully this benchmark will convince you. I followed my instructions on benchmarking Wordpress with Apache Bench on four configurations of this blog’s main page to measure performance:

  1. Without any caching plugins
  2. With WP Cache 2.0
  3. With WP Super Cache (no compression)
  4. With WP Super Cache (compression enabled)

wp-caching-plugins.png

The results show that WP Super Cache is a clear winner, performing 225% better than the older WP Cache. Here is the raw data I gathered during the test:

No caching:
Requests per second: 22.81 [#/sec] (mean)
Time per request: 4383.559 [ms] (mean)
Time per request: 43.836 [ms] (mean, across all concurrent requests)
Transfer rate: 613.75 [Kbytes/sec] received

WP cache:
Requests per second: 872.30 [#/sec] (mean)
Time per request: 114.640 [ms] (mean)
Time per request: 1.146 [ms] (mean, across all concurrent requests)
Transfer rate: 23549.46 [Kbytes/sec] received

Super cache (no compression):
Requests per second: 1518.90 [#/sec] (mean)
Time per request: 65.837 [ms] (mean)
Time per request: 0.658 [ms] (mean, across all concurrent requests)
Transfer rate: 41150.81 [Kbytes/sec] received

Super cache (compression):
Requests per second: 1960.39 [#/sec] (mean)
Time per request: 51.010 [ms] (mean)
Time per request: 0.510 [ms] (mean, across all concurrent requests)
Transfer rate: 53108.70 [Kbytes/sec] received

For more tips on how to improve your Wordpress performance, check out Wordpress Performance: Why My Site Is So Much Faster Than Yours. Another interesting WP caching plugin is Batcache, which uses the memcached backend to serve requests out of a cluster of machines’ RAM memory.

Sigh. Not a spammer.

Posted in My Blog, Plugins, Spam by Elliott Back on November 20th, 2007.

I got a lovely email just now threatening me for being a notorious spammer:

Your doing it to drive up your Google Rank is pitiful, though I’ve informed Google of your attempts to game their system. Further evidence of scraping will be dealt with through the legal system. Perhaps a note to [your employer] will be of use as well.

I sent back my reply, which indicates that no I am not a spammer, thank you very much:

I’m terribly sorry you are experiencing web scrapers, but honest-to-god it’s not me. I wrote a plugin a long time ago for Wordpress called “WP Autoblog” that can take an RSS feed and import them as a series of posts. The posts get branded with attribution like “Post by XYZ and software by me” which you’re probably mistaking for something I’m actively a part of. I wrote the plugin to aggregate some of my family blogs (ericback.com, elliottback.com) together into a single feed, but it quickly became abused by spammers so I pulled it. You can read more here.

sad.png

All this in spite of people making photo-aggregators, sitewide tagging, and making Planet sites. I can’t believe how much grief a hacky Wordpress plugin has given me over the years. Hopefully as it gets more and more out of date, this query count will start to drop from 400k (not that much) to a few hundred. Then I will smile.

Monetize Your Blog With Image Ads

Posted in Blogging, Monetization, Plugins, WP, Wordpress by Elliott Back on April 11th, 2007.

There’s a new monetization service from AdBrite which is quite promising. It’s called BritePic and offers to overlay assorted controls on top of your images, as well as unobtrusive advertisements. Their list of features is long, but rather unimpressive:

# Email this image
# Link to this image
# Embed this image (you still get the ad revenue, even if your pic is embedded elsewhere)
# Zoom in and out (see demo)
# Captions that slide out when you hover over the pic
# Ads from AdBrite
# Link the image to another URL
# Subscribe to RSS

What really shines is the user interface for their BritePic enhancements. It’s a sheer, transparent overlay that reacts to mouse events and hides when not active. For example, it adds a header which you can mouseover to show the advertisement:

New gallery host!

There’s also a menu added to the bottom to produce a list of features:

New photo hosting!

I’m definitely going to start running the ads on this blog, just because I like how easy they are to use, and how little they get in the way of the user experience. I coded up a quick Wordpress plugin to replace all image tags with appropriate adbrite tags, and it works fine for me so far: adbrite-images.rar. You need to replace the Adbrite ID with your own, and then activate and you’re good to go.

Want a Wordpress Plugin?

Posted in Ars Pro Bono, Plugins, Wordpress by Elliott Back on January 12th, 2007.

I don’t have any great plugin ideas recently, so I thought I might post a drop-box here on the blog for you to leave plugin requests. If there’s a plugin or feature you wish you had in Wordpress that you don’t have, leave a comment! Be specific in the requirements you have.

wp-for-you.jpg

I’ll release any plugins I implement from the suggestions here as GPL plugins for the entire Wordpress community to enjoy.

Lifestream WP Plugin for Wordpress

Posted in Code, Plugins, Wordpress by Elliott Back on December 14th, 2006.

I liked the idea of a Lifestream view for my blog, so I took at Chris J. Davis’ Lifestream plugin. Unfortunately, it was limited to a small subset of RSS feeds, which I did not find useful. So, I rewrote the “engine” behind the lifestream to produce my own lifestream plugin. Enjoy!

wp-lifestream-logo.jpg
Version 0.1 BETA! Use at own risk! Not production code!

Features: What it does

You might wonder what this lifestream implementation offers over others. The primary differences are:

  • Pluggable, auto-detected data-source modules
  • Disk-based caching interface
  • RSS, Database, Facebook, Flickr API integration

WP-Lifestream ships with the following modules: Wordpress, Flickr, Facebook, Last.fm, and Wordie. Here’s a screenshot of it in action:

lifestream-page.jpg

Download & Installation

This is the hard part. Download lifestream.zip. You’ll need to do the following, then:

  • Put wp-cron.php in your plugins folder and activate it
  • Put the entire data folder into your theme folder
  • Put stream.php and life.php into your theme folder
  • Customize stream.php to fit your template
  • Put images/lifestream somewhere sensible and change the references to it
  • If you want to use the Facebook or Flickr widgets, edit data/lib/common.php with your credentials
  • Make things writable that need to be. Things like data/lib/flickrcache, data/lib/cookie.txt, and data/cache are good places to start

That’s a pain. I’ll make it easier in the future, I promise.

Adding a new source

Adding a new source is the easiest and most fun part of the new infrastructure. There are just three things to do:

1) Write a class which implements a method called Refresh(){…} which will be called whenever the caches need to be refreshed and a method called Items(){…} which should return an array[time] = array(title, link), and has a member name defining its unique display name.

2) Create a file for your new source, and put it in the data directory. It should call $lifestream->AddService with your class, like $this->AddService(new YourDataSource());

3) Create a nice icon and add it to the images/lifestream folder and in stream.php. In the future module classes will be fully encapsulated with their own styles and icons.

If you do create a new class of source, please email me and I’ll include it immediately!

Changelog

.01 - initial version

Next Page »