Blosxom Development Excitement
August 22, 2007.     Douglas Nerad

In case you aren't subscribed to the SourceForge Blosxom Developer's list you probably aren't aware of a couple things...

There is strong movement towards getting the current working version of Blosxom up-to-date and ready with a set up "default" plugins. Basically this entails bug fixes, XHTML and Atom support and bits and bobs into the V2 code base. The plugin package would include a few highly useful and functional plugins that much of the community seems to use.

The second bit of news is a frank and open discussion on where to go next. Rael had tried and started on Blosxom V3 (you can download updates to V3 here) but the project fizzled. When Rael moved on to pursue other endeavours V3 was essentially dropped.

Now various developers are forming an idea of what they'd like to see in V4, which will ignore much of the ideas in V3 (let's pretend V3 didn't happen). The discussion has been going on for a bit, but if you want to hop in and contribute then peruse the dev archives. Then, if you think you've got some good ideas, join the list and get them out!

For a long time people have "lamented" that nothing seemed to be happening on the Blosxom front. Now it is, folks. Get in there and participate!

Old and New Annotated Blosxom Script
August 22, 2007.     Douglas Nerad

Quite a long time ago Frank Hecker annotated Blosxom so coders could get in and understand better what was going on. Now Rob Reed has done the same, but on a more massive scale, including a 160+ page PDF!

If you were ever interested in learning how Blosxom works, especially if you're new to Perl, then Rob's annotations might be just the thing for you!

Interpolate Fancy as JavaScript
August 20, 2006.     Douglas Nerad

I've used the interpolate_fancy plugin fairly extensively to make conditional elements in my flavours so they appear only where I want them to appear. It's a really useful plugin once you get the hang of it.

Apparently Kyo Nagashima at hail2u thinks it's a great plugin, too, and has started converting it to JavaScript so the principles can be applied to any website. A lot of the syntax is exactly the same, too.

<?foo eq="123">display if "foo" is equal 123</?>
<?foo ne="123">display if "foo" is not equal than 123</?>
<?foo lt="123">display if "foo" is less than 123</?>
<?foo gt="123">display if "foo" is greater than 123</?>
<?foo like="123">display if "foo" includes 123</?>
<?foo unlike="123">display if "foo" does not include 123</?>
<?!foo>display if "foo" is not defined</?>
<?foo>display if "foo" is defined</?>
<foo/> display "foo"
I know Blosxom has spawned many children for the CGI, but I think this is the first derivative of a plugin. Good work, Nagashima-san!

Blosxom Sourceforge Project Underway
September 23, 2005.    

Kevin Scaldeferri took the initiative and set up a Sourceforge Project for Blosxom. If you would like to sign up send your SF user account name to the MailingList and get on board.

Rael also sends his blessings:

...I guess what I'm saying is that I've had a ball working on it, enjoyed very much getting to know many of you, and I believe done good works along the way.

Where Blosxom goes from here is up to Blosxom and you.

Converting Variables from V2 to V3
September 23, 2005.    

S2 (Stu MacKenzie to most of us!) has put together a list of variables if you're thinking of converting Blosxom V2 plugins to V3. Find his complete listing below the fold!

(click here to read more...)

Getting the Ball Rolling Part Two
September 02, 2005.    

Find below an email is submitted to the MailingList on my opinion concerning the further development of Blosxom.

(click here to read more...)

Getting the Development Ball Rolling
August 31, 2005.    

Not long ago Rael announced he might be interested in handing off Blosxom to other developers. Today on the MailingList a discussion was started again on this subject. The two primary topics as of this posting are where to host the project (Sourceforge seems popular but Perl.org was mentioned, too) and under what license to work. The current license is under what is sometimes called the MIT license, but other options mentioned include the GPL/Artistic-2.0, which is a Perl license.

If you have any interest in the future of Blosxom's development please get on the MailingList and follow along!

Regular Expression Cheatsheet
December 15, 2004.    
For novice programmers trying to grok some of the code involved with Perl, here is a handy cheatsheet of regular expressions used in Perl, PHP, and *nix in general.

Almost a year ago Stu MacKenzie posted the following explaination which is similar. I'd meant to post it some time ago and never got around to it. Here it is, finally!

# A "phrase" is defined by (); thus (abc) means "locate 'abc' in the string". Also used for making backreferences to matched bits.

# A "set" of characters is defined by []; thus [abc] means "a" or "b" or "c". Putting ^ in front of the characters means anything-but-these-characters; thus [^abc] means anything but "a" or "b" or "c")

# In all other uses, ^ means the start of the string.

# As the last character in the pattern, ? means the end of the string

# + means the preceeding character or set must be present one or more times

# ? means the preceeding character or set may be present zero or one times

# \ is an escape char; when preceeded by \ the following characters gain special meaning: d, D, w, W, s, S, and b. \d is any digit; \D is any non-digit; \w is any word character; \W is any non-word character; \s is any whitespace char; \S is any non-whitespace char; \b is the boundary between a \w and a \W.

# A full stop normally means "any character" (except a newline, in most cases). To specify a full stop, escape it with \, as \.

So, Rael's sample [this is in answer to a List Member's question regarding interpolate_fancy] breaks down something like this:

(^[^\.]+/?$) -- the string begins with one or more of anything that's not "."; the string ends with zero or one /

| -- or --

(^$) -- the string begins and then immediately ends; i.e. it's an empty string

| -- or --

(index\.\w+$) -- "index" followed by "." followed by one or more words, all at the end of the string.