4/7/2003 summary

It's threatening to snow outside. Normally this sort of thing doesn't occur so it's a bit bizarre. Not to mention the fact that it'd be nice if it was nice outside. On the flip side, since I'm at work all day and the only windows in my cube are the ones on my monitor, I'm not wholly sure I care.

I read a terrible article on Freshmeat about Open Source software. The dude says he's a software engineer and that he was "enlightened in 1997 by Free Software" (capital letters and verbiage are his) which is silliness. If he was "enlightened" and really understood the motivations of the hundreds of thousands of faceless developers out there silently (from a media perspective) working on open source software, he'd never have written this article. He'd have known about the synergy that occurs between projects who have some similar goals as they learn from each other--both mistakes and successes. He'd have known that most of us are decent developers looking to learn more about development--that many projects are done to learn--that the production is far far far more important for the developer in question than the product. He'd have known that most developers are not magic makers--that most of us specialize in a few aspects of software development and that a TEAM of people is responsible for a solid product that has solid design, solid goals, solid functionality, solid unit testing, solid documentation, and solid support. He'd have known that as a project matures and evolves as a function of its user base and its usage, it hits a point where the code becomes unwieldy and it needs refactoring. Sometimes it needs to be rewritten. This is good. He'd have known that there are a bunch of http software projects--with different missions and different characteristics. He'd have known the same about SMTP MTAs, database servers, and various other server components. He'd have known a lot of things. He's enlightened for incredibly loose usages of the word enlightened.

Plugin that injects entries into the list

This plugin registers with the prepareChain and injects an entry to the beginning of the entry_list that holds personal information from $datadir/personalinfo.dat which is a pickled dict. I have mine updated via cron at the moment.

I don't really have a wild need to have this information, but it occurred to me that our system allows for this without any problems. I mentioned this to the pyblosxom-devel list and Ted replied that we need more examples. I thought about it during lunch and then whipped together this example (it took 10 minutes again--I'm into these 10 minute plugins at the moment).

Updates:

3/19/2003 Moved code to /~willkg/dev/pyblosxom/ .

1/27/2004 Removed because it's a sucky plugin and there are better ones.

Another quick PyBlosxom plugin

This one counts the number of views for a given entry. It only counts the entry if the renderer asks for the $viewcount value. At that point, the viewcount module will figure out how many views this entry has had (using the id on the entry), add one to it, save the new value, and then return the new value to be displayed.

Updates:

3/19/2003 Moved code to here.

4/8/2003 Updated code to new architecture.

Another PyBlosxom plugin example

This plugin registers with the prepareChain and for each entry it adds a $wc metadata variable. The wordcount is sort of an expensive process since it requires the data of the entry to be populated and we only populate that on-demand. Thus we need to populate the $wc variable on-demand as well.

...

The effects of this is that I can add a $wc variable to my story.html template file and you see a wc: thing on all of my entries.

This plugin and the entry that describes this plugin were written, tested, and documented in 15 minutes.

Updates:

3/19/2003 Moved code to /~willkg/dev/pyblosxom/.

4/8/2003 Updated plugin to new architecture.

Cool article on email usage/abusage

Here is the article. It's well worth reading especially if you find your emaill communications with certain people to be difficult sometimes. My (new) basic rule for email is "unless it has to be sent, don't send it."

Entries entries entries

I just finished the last bit of the overhaul that Blake started which involved separating retrieval of content from content rendering. It's super cool because now content can come from anywhere--it's no longer tied to a single datasource (sql, file system, ...).

I also just promised to name my first born child the be-yoo-tiful name of "xmlrpc_username". I think the way it rolls off the tongue ... it ... it just brings a tear to my eye--it's so beautiful.

I also wrote a plugin that looks at the url to see if it's "/plugin_info" and if it is, then it will build a series of entries based on the installed plugins:

...

You can see it's output here. How do you like them apples?

Updates:

3/11/2003 Fixed the code

3/19/2003 Moved code to /~willkg/dev/pyblosxom/

NOTE! website outages

I'm going to be doing some pretty dicey pyblosxom changes over the next day. This web-site is liable to go up and down faster than a pogo stick!

You might be greeted with bugs! Stack traces smeared in pink and colors repugnant to the human eye! Strange hexidecimal incantations that look more like inscriptions in a pyramid tomb than meaningful web-site error data! Be wary! BE VERY WARY!

Don't fret--it'll all be over in a few days.

Lyntin 3.2 released!

I've been kind of dragging my feet about releasing Lyntin 3.2 because I haven't been getting any feedback from the community. So either no one is using it, or no one replies on the mailing list. Oh well--what can a developer do?

This release has some really great features. I added a scheduling system and re-wrote the ticker to use it. I wrote a #schedule command which allows you to schedule events to kick off using one of several time specifications. It's also got a new #grep command which goes through the databuffer and allows for printing of match context. There are some bug fixes and some refactoring and stream-lining. For the most part, it's a clean-up release.

And now I'm going to kick my feet up and work on all the other things that I've been neglecting.

Everytime you change something you learn something new...

It's true. Take for example this morning when I upgraded sendmail innocently on my server only to discover a bunch of things suddenly stopped working. Some of the things were things I didn't even know people were using.

Hours of tailing the maillog and poking around the sendmail site, I discovered all kinds of exciting stuff about configuring sendmail for smtp authentication that I didn't know about.

Every time I upgrade Apache, I learn all kinds of new things as well. The only thing I wished, is that it wasn't quite so trial-by-fire. Of course, for that to be the case, I would have to know everything and there's a whole lot of stuff out there that I'd rather learn posteriori rather than a priori. Otherwise, I'd just spend all my time studying things I would never have time to use.