One of the first plugins I wanted to write for WordPress was a decent spam filter. At the time (late 2004) there were several plugins already out there, but they were all rules-based and I wanted something more adaptive. So I wrote a few simpler plugins for practice and soon abandoned the idea, since I really didn’t get much spam — or even many comments for that matter.
After a seven month absence, I came back here to find over 4000 comments in moderation, most of it spam. It took a week to sort through and clean that mess up, all to preserve the 5% of legitimate comments buried in there. Then after a 2 week vacation, I was stunned to see my empty moderation queue back up to 2700 comments. No rest for the wicked, I guess.
(more...)
If you’ve ever visited before, you should immediately notice the new layout. I’ve been planning to rearrange this for some time and I’m very glad that it’s done. There are still a few rough spots here and there (and I have yet to test this in IE) but the wrinkles will get smoothed out shortly.
What’s new:
Moved to TextDrive, who have graciously extended hosting to the LightPress project. These guys are great and I’ve never seen a hosting environment so free of restrictions. It makes my life a lot easier since I can actually do stuff when I log in.
Upgraded to the latest version of LightPress (1.1.0-rc1). The upgrade was simple and I just had to update a few tags & template filenames that have changed since version 1.0. The new design would not be possible without the upgrade and would have been a PHP monstrosity in WordPress.
(more...)
I just wrote a quick plugin to help someone solve a WordPress performance issue. There’s definitely something wrong with this picture. I mean, I’ve been supporting LightPress and made the switch precisely because of performance issues (the templates are nifty too), didn’t I?
Granted I only found out about the problem because of Ludo’s outraged post on LightPress.org. Blaming MySQL is certainly a new twist on resolving performance problems, even if it’s utterly wrong in this case. My position on database queries: design them properly (that includes the underlying tables too) and they will work like a charm no matter database engine you use; write them poorly and thou shalt get bitten. MySQL and Oracle will both grind to a standstill with an unoptimized query that joins poorly designed tables.
It will be interesting to see what comes out in the end. Is it a plugin? Is it a WordPress query that scales badly? In any case, I know I don’t have to worry about the same problem over here in LightPress-land.

Ok, I think everything is sorted out after the switch to LightPress. Comments are working properly again, feeds are fixed (despite my best efforts to break them over the last few days) and I think all of the permalink & style issues have been sorted out.
I can’t blame this on LightPress, the 1.0.0 release is solid and works fine if you don’t tinker with the code. But I’m constantly trying to “improve” things and as a result I’ve been busy fixing my own bugs! I’m happy to report that my tags/keywords plugin for LightPress is working very nicely now — if you wondered why my feeds were scrambled, this was the culprit. It’s not ready for general release just yet, but soon I hope.
Rest assured that if you’re using any of my WordPress plugins, they’ll continue to be supported. After all, they’re still running “behind the scenes” on this site, even if LightPress is handling page rendering.
Things that have been removed during the switch:
- Comment thread feeds — this isn’t supported in LightPress yet, but I’ve added it to the list.
- RSS 0.91 feeds — there’s a limit to how many old formats can/should be supported. I’d recommend switching to the Atom feed, if only for it’s support of relative URI’s.
LightPress 1.0 was released earlier this week and I finally made the switch. I’m really hoping that I haven’t missed anything in the transition — the initial conversion was simple but my test site diverged from my WordPress site several times in the past. If any parts of this site seem broken, please let me know!
I’m much happier with my LightPress templates, they’re much cleaner to work with. I’ve also written a bunch of LightPress plugins — including a new version of Jerome’s Keywords — and they took about 1/4 of the effort of the WordPress versions. I think that’s a pretty good trade. I’ll post the new plugins as soon as I can, along with a quick conversion guide. Ludo has received permission to convert Michael Heilemann’s Kubrick theme so look for that to appear shortly, too.
Comments are the only thing not working properly at the moment. All of my test comments have gone straight to moderation. It could be a Spaminator problem (bundled with LightPress) but it’s more likely a bone-headed configuration error on my part since they seem to work fine on all of the other LightPress sites, including both of my test sites. More to come…
I’ve been doing some Xdebug profiling on LightPress to ensure that speed is properly balanced with memory usage, thanks to some tips from Sencer. While I was at it, I thought it might be fun do a few profiles on my WordPress development site.
Xdebug offers numerous profiling modes, but the one I’ve used here is the “Total Execution Time” (4) profile which sums the excution time for each function call and lists functions in descending order. E.g. if the function apply_filters is called 10 times, the total will show the sum of the 10 separate calls (note that further calls made within a function count do count towards its total). This is a useful profile to determine which functions make up the bulk of WordPress processing time.
(more...)
After a complete rewrite, I’m pleased to announce the release of PreFormatted 2.0 beta. This is a plugin for WordPress 1.5 that reduces page rendering time by pre-formatting post content, excerpts and comments when they are saved to the database rather than formatting them every time a page is viewed. The original version of PreFormatted (primarily developed for the WPFF/LightPress project) suffered from a few design limitations but these have been eliminated in version 2.0.
The highlights:
- “Pre-formatted” data is now saved to the database separately from the original data.
- Generates pre-formatted data when unformatted content is viewed for the first time.
- Compatible with other formatting plugins such as Markdown and Textile.
- Extends LightPress formatting by allowing the above to be used. Note that a LightPress plugin (to be released soon) is required.
For more information please visit the PreFormatted plugin page.
Special thanks go out to Denis de Bernardy who provided numerous suggestions, testing and a patch or two. You can see PreFormatted 2.0 in action on both his site and mine.
It’s official: the cumbersome title of WordPress Fast Frontend has been put to rest, replaced with the elegant “LightPress”. I happily welcome this change, even if my suggested name didn’t make the cut. In fact, LightPress is so simple it makes you wonder: why hasn’t anyone used this name before?
The other news is that LightPress has defended it’s claim to speed. The test results show LightPress serving pages faster than TextPattern, and 3 times faster than WordPress 1.5.1.
I still haven’t made the switch yet. Why? Demand for my WordPress keywords plugin has far outstripped my expectations, and I’m having trouble finding time to finish the LightPress version! But the LightPress plugin will actually be the basis for the faster (and simpler) 2.0, so the change is coming soon.