Archive for the 'Blogging' Category

Note: I've reorganized this site to use tags; the category archive remains to support old links. Only posts prior to April, 2006 are categorized. Tag Archive »

January Blogging Challenge

Uncle Roger has again laid down the gauntlet, establishing the January challenge for posts about resolutions:

…come up with an evaluation of last year’s goals and a new set of goals for this year.

This should not be a facile collection of cliches like “I will lose weight” or “I’m going to save some money” but carefully thought out, significant goals for your life. Don’t just list indefinite, non-specific platitudes, but specific, achievable goals. Include a plan for accomplishing each goal with concrete milestones and dates.


…this challenge includes a review of your goals from last year (if any).

I’m pleased to say that I’m half finished with the challenge, as I’ve already reviewed last year’s resolutions. I’ll be posting this year’s by the end of the week(end).

These challenges have been alot of fun… I encourage you to join in this one. Be sure to link to Roger’s post, and comment over there (and here if you want). If you’ve already posted your resolutions, go link them to the challenge.


Inspired as I was by Michael McCraken’s I-Search plugin for Cocoa apps, I decided it was time to try another of Michael’s projects, Blapp. Blapp is a Cocoa weblog editor for Blosxom (and Blosxom-like) blogs. I’ve always edited my posts with wikieditish, a browser-based Blosxom editing solution. This has the advantage of allowing me to post from anywhere I have web access.

On the other hand, I write most of my posts on my Mac, and I can always use wikieditish when I’m not at my Mac. So far, I’m pretty impressed. Blapp allows me to preview my post as I type, even using my story template and css files from the site so I can see what the article will really look like. It also supports the use of an external app as a filter, which allows me to see my preview with full Markdown rendering.

Setup was a bit of a bear – I had to edit my story template a bit (Blapp doesn’t seem to understand interpolate_fancy-style variables, and I had to merge my css files (normally, one @import‘s the other. Figuring out the rsync setup was a bit of pain as well, but liberal command-line testing of the rsync command with the -n (make no changes) switch helped.

More good news, Blapp is open-source, so I can take a shot at fixing some of my complaints myself (when I have time, and when I finish reading Cocoa Programming for Mac OS X). If you blog with Blosxom and use OS X, I recommend giving it a try.

And yes, this is my first Blapp-edited post.

Taking out the Trash

Regular readers are aware that I disabled comments on this site about a week ago, after receiving over 2000 spam comments in just a few hours. Alert readers may have also noticed that all comments have been missing since; all postings have showed 0 comments regardless of prior comments. This is because when I disabled comments, I not only wanted to prevent further postings but also to prevent the display of the 2000+ morsels of nastiness. The quickest way to do both given my Blosxom setup was to simply remove the writeback plugin.

I’ve made adjustments to my .htaccess file what will prevent the same type of posting in the future, but I expect the spammers to adapt. The delay in re-enabling comments was the need to clean out the spam. Because I use Blosxom and writeback, my comments are store in the filesystem, in a dir tree that matches the site layout, one file per blog post (i.e., all comments for a given post are in one file). With over 2000 bad comments spread across 224 different files, I wasn’t about to clean things up by hand. Instead, I wrote a perl script to help me do it.

Even though it’s used alot in Blosxom and various plugins, I’ve never had a firm grasp of perl’s File::Find module, so instead I decided to use File::Find::Rule instead. (For a nice explanation of this module, see File::Find::Rule in the 2002 Perl Advent Calendar.) The only problem is that the module (and several prerequisites) were not installed on my webserver. Having shell access, I was able to install local copies of the needed modules. Being very busy over the holidays, I only got around to this today.

The script is called scrub, and is available under the GNU General Public Licence. You can download scrub. Please note that scrub is written as a command line utility – you will need shell access on your webserver to use scrub. If there is demand (and if no one else does it first), I may develop a CGI version of scrub to run from a web server.

So how does scrub work? Why, Voodoo magic, of course. In fact, the darkest Voodoo of all… regular expressions. Supply a regex, and scrub can list all comment files containing the regex. It can also display the matching comments, and a count of files matched. Most importantly, it can remove offending comments when run with the -scrub option.

scrub is designed to work with comment files created by the writeback plugin. These files contain each comment, along with the name and url of the poster as supplied on the posting form. I’ve modified my copy of writeback to also log the IP address. Any information in the comment file can be matched by the regex… so if you are logging IPs as I am, you can quickly find (and eliminate) all comments from a given IP. scrub overrides perl’s $/ magic variable, which is the input separator. By setting $/ to "-----\n" (the comment separator in writeback files), scrub can process each comment as a single unit.

Here are a few examples of scrub usage:

  1. List all files containing ‘’, display total:

    scrub -regex '' -list -count
  2. Remove all comments containing ‘’, show progress via filenames:

    scrub -regex '' -list -scrub
  3. Show all files containing raw html hyperlinks, and the actual comments:

    scrub -regex '<a href' -list -show

Example 3 above brings to light a deficiency with scrub – the regex’s are always case sensitive. If I post a revision, this will be addressed.

If you find this at all useful, please leave me a comment… they are enabled once again.

November Blogging Challenge

Last month, Dugh issued the October Blogging Challenge, which grew from a week of daily posts to a month of daily posts. This month, I’d like to do something a little different.

As you probably know, today is the official release date of Mozilla Firefox 1.0. Firefox is a free, open source web browser. Not only that, it’s also the best web browser I have ever used, and one of my favorite pieces of software. It is easy to install, simple to use, and yet more powerful than the marketshare leader. It is highly configurable via extensions, yet you could never install a single extension and still have an incredibly useable, powerful browser. It is one of a handful of products which I can say has changed the way I use computers. It is made for all users, not just tech geeks like myself. In the past year, even through several beta versions, I’ve encouraged many people to switch- including my children. If you’ve never used it before, I encourage you to Get Firefox… but that is not the point of this post, or of the Challenge.

Of all of Firefox’s features, the one I want to focus on is the people. Firefox is a product of the Mozilla Foundation, a non-profit organization created to support the development of the open source Mozilla platform. Thousands of volunteers have contributed… bug reports, code patches, suggestions, themes, extensions, and even cash. There are many people, none of whom I know, who deserve thanks today. Ben Goodger, Chief Engineer for the Firefox project, touched on this today in his 1.0 release anouncement post on his Firefox Weblog. Ben himself deserves thanks as well, for seeing this project through and delivering a world-class product. On a personal note, he even found time to comment on this site when I complained about the Firefox marketing effort several months ago. No complaints now!

So to Ben Goodger, everyone at the Mozilla Foundation, and everyone who has contributed to the Firefox project – Thank You. You have done a very great service to the community of the web.

The November Blogging Challenge, then, is simple. If there is an open source project, a useful website, or even a blog which has benefited you in some way, blog a “Thank You” this month. Tell everyone about why you like it, and tell those who made it that their work is appreciated. If you have the means, consider supporting your favorite open source project with a donation, if they accept them. Today I donated $50 to the Mozilla Foundation as another way of saying “Thank You,” and “Keep up the good work.”

Update: If you participate in the challenge, leave a comment or trackback ping this post!


October has ended, and so has the October Blogging Challenge. Started by Dugh as a one-week challenge, I foolishly re-challenged him to a full month of blogging. He accepted, as did Uncle Roger. It was… challenging. I missed two days, but I did publish 31 posts… even if some of them were lazy.

It’s been a lot of fun, and good blogging ‘exercise’. We’ve been kicking around some ideas for a new challenge, but we haven’t settled on anything yet. Dugh is soliciting suggestions. I’m going to try to keep blogging at least once a day, but it will be nice to have any pressure to do so!