Or, as I've been saying in my head for the past two hours... "Wanna see something totally badass?"

Check out this picture. This is a new plugin I've written based on phpOpenTracker.

Yeah, yeah, most of you don't care. But those who do care will impersonate Keanu Reeves - "Whoa."

It's actually working. Just a few more little features and we're golden.

Tell me- Do I make too many WordPress plugins?

I've upgraded EzStatic to fix a problem with the WordPress 1.5 Default template, and also to add PHP code execution to PHP embedded in posts/pages.

The new version (1.9) will execute PHP if you write it directly into the post editing box. You need to surround the code with the usual php tags. You can have several code sections in a single post.

To activate the code, you must check the checkbox that will appear (when EzStatic is activated as a plugin) underneath the post content editing box.

The code is more secure than other solutions because it will only execute the code if the author of the post is of a minimum user level. By default this is level 8, but you can change it easily in code.

You can use PHP code on either posts or "static" pages in WordPress 1.5.

EzStatic retains its ability to embed external static files that are specified in the querystring.

Check out the download on my hacks page, and the documentation in the wiki.

This version is only tested on WP 1.5. It may work on 1.2, but I make no guarantees. Try an older version of EzStatic if you're using WP 1.2.

I know I'm opening a can of worms here, but I'm lazy and don't feel like going back through the support forums right at this very moment.

I've been messing around with some new script stuff for Exhibit. Exhibit is the plugin for WordPress that inserts photos on this site. Anyhow, I'm trying to incorporate the thumbnails a bit more, as you can see if you click this link to the popup link page.

The local version uses some styles and PNG files to make the background transparent when you click the "Info" link at the bottom. I want to display photo info, but I don't want it to cover the photo, but I don't want to expand the size of the window too much, and I would really like thumbnail navigation inside the popup...

So what do you like best? I know there's someone out there who wants next/previous links in the popup, and this version will be able to do that.

In other Exhibit news, I think I only told Valerie about the exciting new virtual file system stuff that Exhibit 2.0 does. You drop in an additional plugin and Exhibit can access your Flickr photo groups just as if they were sitting on your own server. With another virtual file system plugin, you could set up one site with WordPress and Exhibit as a "photoblog" (Did I mention that Exhibit 2.0 will have gallery-like output? I guess not.) and then on your "blog" site you can reference the files in your gallery through the regular Exhibit interface, just like they were in that blog. Additional photo-storage systems should be similarly easy to implement.

I've started work on the photo cropper. You will be able to specify either the entire photo to use as a thumbnail, or a custom region that you draw onto the image.

I've decided that Exhibit 2.0 will support up to three image sizes for each photo - native, web, and thumbnail. With this you could (possibly) toss another plugin in there that would let you display smaller, usable photos in your blog, but still let the relatives get top-quality prints from online photo places. Haven't decided how final the photo printing feature is yet, but it sounds like something Berta would want, so I may do it.

And the interface is already somewhat improved. Not as much clutter, and still all of the features. I can't say it'll hit the server less, but it's going to be a smooth UI experience. I hope.

If I get ambitious, I'll put some screen captures online. Exhibit 2.0 isn't running anywhere yet, nor is it ready to test, so don't get too excited.

Anyway, your thoughts on the popups are welcome.

Here's an animated GIF of the integrated Image browser so far:

I stopped by BlogBinders today to see what it would take to turn the blog into a book. As it turns out, just the posts (not the comments) in a regular-sized paperback would about to over 1100 pages. Just 2004 was more pages than could be perfect-bound. Wow, yeah!

In case you were wondering, you can get BlogBinders to work with WordPress even though it's not advertised. Just pick the MovableType option for a blog type, then put the xmlrpc.php page for your site into the XMLRPC field. For this site, it's just "http://www.asymptomatic.net/xmlrpc.php". The xmlrpc.php file comes with WordPress and is installed in the blog root. The blog index is always "1" for WordPress.

After significantly reducing the date range of posts and previewing the generated proof, I was left wanting. No comments? No ability to filter posts? No images? No sidebars to insert LinkLog (elsewhere called "asides") entries into? Bah!

I remembered seeing a project before, and tried searching for it again. WP2PDF actually works with WP 1.5! There are a couple little glitches, but if you just want a one-off, it works great. It includes comments in the body text, which is cool. I did not explore any way to filter posts or do sidebars, but since the whole code is available to view, you can add anything you want.

The best part is that when you get the PDF produced, you can run it over to CafePress for printing and distribution. The base cost is $7 less than BlogBinders and you can design the entire book cover as opposed to just a small logo and teaser copy.

A few changes to the code and I'll have a book for 2004 ready in no time!

I put my current version of OSA online. To refresh your memory, OSA is a spam filter for WordPress. The development precept is to keep in lockstep with WP 1.5 development so that it's a working solution when 1.5 is complete.

The new version uses a three-strikes-like method of filtering on the common set of criteria. The main things that this filter does that others do not are:

  • Provide reasons for what it does with the comment that are easy to view in both the digest-based email reports and the comment management page.
  • Use peer-to-peer blacklist distribution so that no central site is attacked for attempting to thwart spam.
  • Provides a professional interface for both managing spam moderation and dealing with spammers.

This plugin actually rehashes a lot of what the core WordPress spam stuff does, but provides reporting features that WordPress does not. For instance, WordPress will summarily delete comments that contain entities in the a-z range. This is fine, but I want to know that it happens, and WordPress wil not inform you of this.

WordPress also doesn't do anything to slow down the submission of comment spam, and the beginnings of that code exists in OSA.

I'm not putting this forward as a complete solution for spam. The blog software is beta and the spam filter is alpha. There are incomplete pieces, notably the granular blacklist editing. Due to the nature of the peer-to-peer blacklists, scanning the blacklists is going to be more important. There should be tools (not included in this distribution) that help manage that.

All of the warnings aside, with relatively infrequent babysitting, the code is performing well. I think I blew through the last of the trackback spam bugs yesterday, and the interface has been revised to reflect the new weighted rating system.

I have imagined a new tactic to combat comment spam- A centralized verification system. Upon receiving a borderline rating on a comment, the spam plugins could forward the user to an external site that would verify that user's identity for the purposes of keeping their comments from being marked as spam. It would be kind of like TypeKey, but with two exceptions:

  1. The commenting user would only need to log in after submitting a comment that was judged suspect by a filter.
  2. The site owner could specify the external security system to use to verify the user's identity as part of the filter options.

The process would be something like:

  1. User submits borderline comment.
  2. Blog pings verification server via XMLRPC with comment id and validation URL.
  3. Blog forwards user to verification server to pass authentication tests.
  4. Upon the user's completion of the authentication tests, the verification site pings blog via XMLRPC with "passing" or "failing" codes sent in step 3.
  5. Verification site forwards user back to blog's comment page.

Giving this more thought...

I need more control over Pingbacks in WordPress than I have. I want control over which URLs in my content are pinged. I'll have to consider this, as well.