Being the thoughts and writings of one Gustaf Erikson; father, homeowner, technologist.

This category is about this weblog

Thursday, 2006-04-13

Blosxom: hiding category and archive pages from search engines

I’ve long been concerned that people finding my weblog via Google or other search engines get directed to my archive or category pages (like instead of the individual entries. A whole year’s postings may contain enough terms to lead people to it, even though the individual posts don’t.

This is annoying for users and wastes bandwidth. I didn’t know how to fix it until I found this article by Fazad Majil. It described my problem exactly and recommended putting the following meta tags in the <head> of the relevant pages:

<meta name="robots"
 content="noarchive,noindex,follow,nocache" />

This will allow the pages to be followed but not indexed or cached.

The problem was how to distinguish chronological archive and category pages from the main page or story pages. The solution was Barijaona Ramaholimihaso’s pagetype plugin. This gives you a variable you can check against with interpolate_fancy.

My head.html template now contains the following code:

<?$pagetype::pagetype like="(category|chrono)">
  <meta name="robots" content="noarchive,noindex,follow,nocache" />

I haven’t noticed a significant slowdown in traffic to the affected pages, but that will take some time.

Next up is getting “Previous” and “Next” links up to each story. Barijaona has a plugin for that too, prevnextstory, but I haven’t had time to implement it yet.

Monday, 2006-03-20

Temporary interruption of service

Faithful readers of this blog, all two of them, will have noticed a temporary interruption of service this weekend. I was in London and was in no position to do anything about it. But now the issue has been fixed and I can blog again! The freedom! The exhilaration!


Sunday, 2006-03-05

Podroll launched

I’ve started documenting the podcasts I subscribe to in my podroll. I haven’t yet found a simple way of getting the subscription info out of iTunes, so I’m maintaining it manually for now. I’ll link to the the website of the ‘cast and to the feed, if applicable.

I have semi-serious intentions of reviewing the podcasts in the future, but right now I just want to get the ball rolling. Comments welcome!

New category: plugins

I’ve started to amass a few blosxom plugins that I’d like to share, so I’ve created a new category plugins to keep them in one place. Most are pretty basic, and I haven’t had time to ensure that they’re as general or easy to configure as I’d like. Comments and patches are welcome.

Here’s what’s up now:

Coming soon: the submit plugin.

Blosxom plugin: acronyms

This plugin allows you to define acronyms and abbreviations. When they appear in a post, the acronym will be wrapped in <acronym> tags and you’ll get a handy tooltip explaining what it means.


(Here is the original post about this.)

Blosxom plugin: category_desc

This plugin allows you to add a description to your categories. I use it on category pages to explain what the category is about, and also in tooltips in the category links for each story.


(Here is the original post about this.)

Blosxom plugin enhancement: rendertime

The plugin rendertime allows you to see how long it takes to render all or parts of a blosxom blog. When I tried it, the default version didn’t work on my site. So I updated it to use the standard Perl module Time::HiRes. You can get the updated version here.

(Here is the original post about this.)

Saturday, 2006-03-04

Vanity links!

Inspired by this post by Dennis Forbes I whipped up a little plugin that provides quick links to, digg, and reddit submission forms, and also a quick way to search Technorati. You can see the horror at the bottom of each post.

The plugin isn’t ready for prime time: I’ve yet to figure out how to customize it for differing permalink schemes, and it lacks documentation. However, if anyone is interested I’ll post it as a work-in-progress.

Note: I have only tested this with and Technorati, as I don’t have accounts on digg and reddit. Feedback regarding these services is welcome.

Monday, 2006-02-27

Entriescache and meta tags — preventing index file corruption

I had some problems with corrupted entries in the indexfile for entriescache recently. Yesterday it happened again, which pissed me off no end. So I’ve been researching ways to prevent this.

My first thoughts were to use a real version control system, like CVS or Subversion. I could then use the revision tags to keep track of creation and update times. But this wasn’t an option for me, as neither CVS nor SVN exist on my host, and I don’t feel like compiling them statically.

So I had a look at the entriescache plugin itself. There’s an option to write a meta-creation_date when the post is indexed. This is then “authoritative” in case the timestamp in the index file is changed.

The problem was that I had edited my some of my posts a lot of times since starting to use entriescache. So I wrote a script that updated (or rather, backdated) the timestamps according to the data in the index file (which had been restored from backups). After this, I changed the option that controls whether the plugin will write a meta tag, and reindexed.

Voila! I now have a meta tag in each and every post that can be used to keep track of the posts creation time if all else fails. And since it’s added by the plugin, I don’t have to add it manually in the editor.


I made a slight change to the plugin too: the default timestamp format is in the middle-endian US way (MM/DD/YYYY). I modified it to write and read ISO 8601 dates instead.

Saturday, 2006-02-18

Minor feedback enhancements

I sat down and made some minor changes to Frank Hecker’s most excellent feedback plugin.

I “removed” the email option from the submit page. In the standard plugin, if someone submits an email address, it’s displayed and not obfuscated. I don’t feel that’s right. Even if I would say that the email is displayed, I doubt people would notice. And if they did notice, they’d demand that I do something about it. So now the option only reads “URL”, even though you basically can put any string there anyway.

I downloaded version 0.19 from Frank’s site, but a quick diff didn’t show any big changes. I’m going with my version (0.16) because if it ain’t broke, why fix it?

To continue an immortal Engadget neologism, props be to Frank for producing a plugin that easily enables comments in Blosxom.

Wednesday, 2006-02-08

Filestamp hiccup

I glanced at the Archives yesterday and was shocked to see that all entries before this year were dated in January 2005. The file that entries_cache uses to record timestamps was corrupt. I restored the file from backups, but I was a bit tense. Although most posts aren’t date-specific, there’s enough stuff in there to make me nervous of losing the date part of the post.

I’ve been looking at Wordpress for a while, mostly as a new way of doing stuff. I’ve moved away from using Blosxom as an “online notebook”, with an emacs open in a screen session all the time. I’ve also started using WP at work, and I think it’s a really slick tool.

An eventual migration would be a bore though. I’d have to generate post titles in exactly the right way to keep permalinks, and I’d have to hack the templates to something I like. Sure it would be fun if I had copious free time, but that particular commodity is in very short supply right now.

Update: blergh, just installed WP to have a look and there are a lot of issues to solve before a migration:

  • Permalinks — I don’t dare experiment with this on the live server due to mod_rewrite magic.
  • Import will have to be either by RSS or by pushing stuff into the DB directly. The latter option will enable me to keep Markdown syntax where appropriate, which I’d like. I noticed that when moving from Movable Type to Blosxom the editing of old posts was much harder using HTML. But if I go that route I have to learn the database structure and stuff.
  • Appearance. Man, Kubrick gets old…

Tuesday, 2006-01-31

Integrating feeds into Blosxom

My recent work fixing posting via email to this blog, coupled with my previous efforts getting my links posted, has got me thinking that there has to be a better way of handling this.

My post-by-email is basically “grab the content of the body and put it in a file”. The integration is a custom script that reads the RSS feed for my links daily, munges it into Markdown syntax, and then writes to a file. This works fine for now, but what if I want to use Blogline’s clippings, or Newsvine’s blog? I don’t want umpteen blogs floating around: I want one, which I can update in multiple ways.

So what’s needed is a RSS/Atom reader that subscribes to the feeds of the content I’m creating, fetches the relevant data, formats them in a source-dependent fashion, and then posts the data.


  • Perl preferred for hacking reasons, but other langs acceptable. Must run on my hosting environment (basically a Linux server).
  • per-feed formatting customization (sounds like a job for XSLT)
  • per-feed posting customization (I want to aggregate all links into one post, while other stuff might as well go up immediately)

Writing my own stuff for this feels like inventing lots of wheels at the same time. Any tips?

Update: Looks like Blagg may fit the bill. It’s very blosxom-like in style.

Update 2006-02-01: The Perl module XML::RSS::Parser looks like it can do a lot off stuff. I’ll have a gander at the docs during the next few days.

Wednesday, 2006-01-04

Blogging hiccup

I encountered a weird configuration change in the remote server I’m using, which meant I could list directories with tramp but I could not open and edit files. This put a cramp in my writing style.

After enabling debugging I found that the default method I was using (“scp”) wasn’t working anymore. Changing it to (“ssh”) fixed the problem. This post is mostly an excuse to test this.

Update: yay, it works!

Wednesday, 2005-12-14

Converted to UTF-8

I was fed up with mixing native ISO-8859-1 content (generated by me) with external content (from etc.) containing UTF-8. So I used this script to translate all the ISO characters into UTF-8.

I’ll be keeping an eye on the content in the future to see if anything slips through.

Also, this post is composed in vi. Because anything is better than nano.

Friday, 2005-12-02

Defining acronyms

I’ve long wanted to automatically add a <acronym title="explanation">TLA</acronym> to all the TLA ’s and FLA ’s in my posts. And I don’t want to do it by hand, not when I use Markdown for everything else.

I asked around on the Blosxom list and got pointers to two existing plugins, Autolink by Fletcher T. Penney, and Automatic LuckyGoogle by Todd Larason. I found Fletcher’s code easier to grok, being more or less what I started hacking myself before I got bogged down in the plugin internals of blosxom… So I copy-pasted some stuff and now I can type XSLT and get a cool dotted underline and a tooltip.

One small step for me, an even tinier step for the semantic web.

Update 2006-03-02: you can get the plugin here.

Saturday, 2005-11-19

About “observations”

As much as I think Dave Winer is an ass sometimes, I must say that the free-form blogging he engages in — just post a link and a comment to it — is pretty attractive sometimes. Having to invent a descriptive title every time you want to write something gets old fast, especially in Blosxom, where your title is essentially your filename in your text editor.

Thus “Observations”, a new dubious feature of The occasional scrivener. Inspired by Fredrik Lundh I will use these as a scratchpad for random thoughts and one-liners. Todo: add anchors so people can link to the nuggets. This will have to be automated somehow, or perhaps Markdown has support for this now.

Update 2005-11-20: I hacked together a little Perl script for this. Next plan is to use this as an input method for mails sent from my mobile. Ubiquitous blogging, ahoy!

I also created a new category for them. However, due to the fascist nature of the Atom plugin, I won’t move the already created posts there.

Wednesday, 2005-11-02

Chilling Effects FAQ

Question: what is defamation?

Answer: An attack by speech on the good reputation of a person or business entity. Speech that involves a public figure—such as a corporation—is only defamatory if it is false and said with actual malice. It also must be factual rather than an expression of an opinion. In the United States, because of our strong free speech protections, it is almost impossible to prove defamation against a public figure.

Question: What is the difference between libel and slander?

Answer: Libel is a defamatory statement expressed in a fixed medium such as a writing, picture, sign or electronic broadcast. Slander is a defamatory statement expressed in a transitory form such as speech.

Question: What is disparagement?

Answer: As defined in Black’s Law Dictionary (7th ed. 1999), disparagement is “A false and injurious statement that discredits or detracts from the reputation of another’s property, product, or business. To recover in tort for disparagement, the plaintiff must prove that the statement caused a third party to take some action resulting in specific pecuniary loss to the plaintiff.”

(From FAQ about Protest, Parody and Criticism Sites.)

[SvSe] Datainspektionen - FAQ

Om personuppgifterna behandlas uteslutande för journalistiska ändamål gäller i huvudsak bara bestämmelserna om säkerhet i PuL. Inom ramen för ett journalistiskt ändamål ligger att informera, utöva kritik och väcka debatt om samhällsfrågor av betydelse för allmänheten. Undantaget är inte avsett bara för etablerade massmedier och personer som är yrkesverksamma inom sådana medier utan även andra kan behandla personuppgifter för journalistiska ändamål.

Uppgifter av rent privat karaktär omfattas normalt inte av undantaget, även om uppgifterna publiceras i ett sammanhang som i övrigt har journalistiska ändamål eller rör personer som det också lämnas andra uppgifter om som omfattas av det journalistiska ändamålet.

(Ur Vad gäller när personuppgifter behandlas på webbplatser?.)


Update 2005-11-04: this post has been edited in accordance to the wishes of H & N Consulting.

[Note: I’m posting this during my lunch hour.]

A mail today [2005-11-02] from H & N Consulting:

Dear Mr. Erikson,

We regret to inform you that our company today has decided to take legal actions against you and your employer.

You have not lived up to the agreement you sent us yesterday. You are still slandering our company and CEO. We have proof that we did not spam any web blogs. These proofs will now be used against you in a court of law.

Unfortunately, we will also sue your employer since you have posted these accusations during regular business hours.



H & N Consulting

[This email did not have a confidentiality agreement attached.]

This is my reply:

These accusations are absurd.

The are no references to the name “XXX” in my posts.

You have crossed a line. Go ahead with your lawsuit. When I have been served, I will comment on the situation in accordance to the rights of free speech. You may be assured that the name “XXX” will, in the future, be associated with suppression of free speech and legal posturing.

Good luck in trying to build a business with a reputation like that.

[The referenced name has been altered to “XXX”.]

Update 2005-11-03: after the first white heat of anger, I’m feeling much more sanguine about the whole affair.

I have contacted my hosting provider, and he suggested (but did not require) that I remove all references that may give cause for offence. I have now done so.

I have contacted my employer and explained the situation to them. By the way, this website is covered by a disclaimer.

The fact that the legal threats were not delivered by a legal representative gives rise to the suspicion that no-one within the profession will touch this with a ten-foot pole. That, or financial constraints.

I have uncovered some interesting facts about the Swedish data protection law, PuL. Specifically the Ramsbro case, where a man was acquitted for publishing the names of bank presidents and financiers on the internet.

Basically, you can publish personal facts (including names) if you do so in a “journalistic manner”, to inform, critizise, and cause debate. I feel that the fact that a 2-bit “search engine optimisation” company can use vague legal threats to shut down free speech on the internet to be cause for debate.

As to the accusations of slander, I cannot see how that applies, as slander is “defamatory statement expressed in a transitory form such as speech”.

Thanks to the good people in #mobitopia for their support and advice.

Monday, 2005-10-17

How this site fares in Nielsen’s weblog usability criteria

Jakob Nielsen has a list of top 10 design mistakes by weblogs. Here’s how I stack up.

1,2 No author bio and pics

Well, I have nice (updated!) pic on my About page. The bio could be more extensive, but hey, who reads that stuff anyway?

3 Nondescript posting titles

Could get better there, I suppose.

4 Links don’t say where they go

Also something I could do better, but I have been aware of it.

5 Classic hits are buried

Hmm, nice idea. I need to find the classics though.

6 The calender is the only navigation

I have both date based and category based archives.

7 Irregular publishing frequency

Huh? First, this is not my job, second, get an aggregator and stop surfin’ like it’s 1999, Jakob.

8 Mixing topics

As before, this is my site, I post what I want to.

9 Forgetting that you write for your future boss

Always worth thinking about. I feel that the skeletons in my digital wardrobe are pretty few, but I haven’t really done a full scan Google on myself.

10 Having a domain name owned by a weblog service

No probs there, unless the guys behind AllAboutSymbian kick me out.


For what it’s worth, I think Nielsen is a bit of an ass sometimes. But most of the above stuff makes sense.

Update: removed the butt-ugly <h4> tags.

Monday, 2005-10-03

Bad blog day

I had an unusual number of blog ideas today, but the implementation was spoilt by buggy software and non-existent connectivity. So I’ve saved those ideas for another day.

Thursday, 2005-09-22

Comments ahoy!

Frank Hecker has enabled comments, lets hope I can emulate him. His plugin is called feedback.

I’ve been posting more and more comments on other blogs lately, so it would be nice to have a reciprocal relationship in this regard.

I’ll be looking at this in my copious free time.

Updated: looks like my time is a lot more copious when I’m doing something I enjoy. Comments are enabled. Moderation is per email. We’ll see how it works out.

Wednesday, 2005-09-21

WordPress removed

I removed the WordPress installation after reading Natalian’s experience with an earlier version.

As I’m not using it, I don’t want to maintain it security-wise.

Monday, 2005-09-19

Posts in Swedish

I’m thinking about including posts in Swedish in the blog, mostly about politics and local issues that no-one outside our little country cares about anyway. If I do, I’ll prefix the subjects with the string “[SvSe]”, which is a geeky way of saying that the contents of the posts are in Sweden Swedish, and not, for example, Finland Swedish (“SvFi”).

Thursday, 2005-09-08


I’ve implemented a parallell metablog containing interesting referers for now. I plan on expanding it a bit, but can’t be arsed to re-implement AWstats or something. Basically this was just a perl hacking fix.

Anyway, you can see the results here; login is metablog/metablog. I’ve put it under lock and key to keep the referer spammers out. It goes without saying that this is beta.

Hovering over the referer will get the user agent; over the target URL, the timestamp.

Nice to see the mobile clients, and also the hits from Google’s mobile portal.

I had help in implementing the search term extraction features from Nelson Minar’s searchspy. Kudos to Jim for the pointer!

Monday, 2005-09-05


Wow, the server restart certainly made a difference. The blog is back dynamically.

I’ve been hacking a bit on a way of getting referrer info from my server logs. I’ve written some perl scripts that’ll push them into a “sideblog” where they’ll be organised by date. Due to the extreme hackedness of the code and the desire to avoid referrer spam I’m keeping it under wraps for the time being. Maybe I’ll put out something when it’s a bit more polished.

Static rendering

The blog is running under static rendering at the moment, the response times were horrendous. I don’t know if I’ve pushed through some weird Perl barrier or if the server is feeling poorly. At least RSS feeds seem to be working OK.

Update: server box was rebooted, much snappier now.

Saturday, 2005-09-03

Rendertime plugin updated

I updated Eric Davis’ rendertime plugin to use the Time::HiRes module instead of Perl’s syscall function. The original version didn’t work on my hosting site.

You can grab the updated plugin here.

Update: Time::HiRes is a standard module in later versions of Perl (from 5.8, I think). If you don’t have it on your system, you can get it from CPAN.

Thursday, 2005-09-01

Atom feed in place

I’ve installed the Atom feed plugin for Blosxom and it should be working OK. I’m having some issues reading the feed in Bloglines (links get squished in the text) but that may be due to my choice of plugins.

When faced with a choice, I usually pick Atom feeds over RSS, if only to annoy DaveW.

Sunday, 2005-08-28

Design is futile

I don’t know why I bother with the design of this blog. 90% of the blogs I read I read in Bloglines anyway. Perhaps it’s just so that random visitors will get something other than the stock Blosxom look.

“Your plugin has been assimilated”

It’s with some amusement that I saw a question on the blosxom list go from my own hapless contribution to a full fledged plugin in less than 24 hours. (The gory details are here.)

My idea was category_desc, the code was Stu McKenzie’s. I guess I’ll take up the baton and write some documentation.

The basic premise was that I wanted to provide a more detailed description of a category when viewing its “front page” ( for the category “bar”, for example.) The link between categories and descriptions is in the %descriptions hash. This hash is accesses by the head sub and the variable $category_desc::description is accessible in the flavour.

Caveats: you have to know how to write Perl for this plugin to work for you.

You can see it in action at

You can also do this with the config plugin and with postheadprefoot. In both those cases, a file has to be created in each category directory. This method keeps everyhing in a central place.

Update 2005-08-28: the information is now available in the story flavour too: Stu explains it here.

Update 2006-03-02: you can get the plugin here.

Wednesday, 2005-08-24


I got the postheadprefoot plugin to work, after some frustrating days. I actually printed out debug info to a file to find out what was wrong. But this message put me straight: simply uncomment a line in the plugin to get it to work.

(In my defense, I had already identified that line as the problem, but didn’t really feel that I could change it — it was by Rael, after all.)

So now the archives live on their own page, no longer cluttering up the sidebar.

Some small CSS changes were also made, mostly to try to balance semantic markup with some sort of aesthetics.

Friday, 2005-08-19

Links are live

The links section of this section is now listed on the main page, and not hidden by the hide plugin. If you’re subscribed to my feed you’ll now get my links from two sources. The links here contain basically the same info as the ones, so you may consider dumping that feed.

Tuesday, 2005-08-16

The quest for commenting in Blosxom

Argh. Why is it so hard to get a decent commenting system in Blosxom?

I’ve tried writeback, which although simple has the following cons:

  • hard to integrate into my blog — it would entail duplicating a lot of code from my foot.html template.
  • stores entries in a hard-to-parse format — this makes the retroactive moderation of comments a pain
  • security issues
  • no easy way to turn off comments based on the post’s age

I got a tip about pollxn (thanks, Dave!) and installed on a test installation. It was easy to get started, and the comments are stored in their own text files, making moderation easier. Automatic comment closing was implemented. But there were some cons too:

  • fugly code that’s non-trivial to enhance
  • a separate system, with limited access to Blosxom plugins that you may have installed
  • comments are separate from posts, so that you have a separate window containing the comments. This is too close to Radio to be comfortable.

So what do I want from a system?

  • easy to install and maintain — no stupid security holes
  • notification and monitoring via email or separate web interface/command line tools. This is needed for dealing with the inevitable abuse and spamming.
  • speaking of spamming — good countermeasures. Easy to install CAPTCHAs, hashcash solutions or abstruse math hacking.
  • comment closure

I would have thought that there would be more tools and plugins for this. Maybe everyone is waiting for Blosxom 3, or blog comments are thought of as a lost cause due to spamming.

Sunday, 2005-08-14

Resisting temptation

I’m resisting the temptation to do something radical with this blog. I’d like

  • a new look — the basic content/menu structure is OK, but I want to play around with colours and fonts.

  • better control over the umpteen little scripts that do dynamic stuff; update the now-reading list, links etc.

  • enable commenting — with strong anti-spam measures.

Update: the todo page has been updated with some new ideas.

Thursday, 2005-08-11

Unicode characters

I’m a bit torn about how to handle the “meta-strip” below each post, the one containing the posting date, permalink, and so on. The octothorpe (#) is almost universal for denoting permalinks. Some people have recommended the ‘paragraph sign’ or pilcrow (¶) instead, but I’m not happy with that in Verdana. I’m going to try with the ‘N-ary product operator’ (∏, ampersand notation: ). The big Pi suggests P as in permalink, and also the kind of Grecian edifice that stands the tests of time.

The small pi is included here for possible future use: π (π).

I got the ampersand codes for above from this page, which weirdly is a subset of a Jane Austen-oriented site.

The vertical bars separating the fields was getting too bold, so I’ve replaced them with non-breaking spaces. I’m looking for a good, unobstrusive character to separate the fields. Maybe I’ll just style the bars differently.

Update Digging around on Alan Wood’s Unicode resource site, I found the following interesting candidate for permalink characters:

  • hash/octothorpe: # #
  • pilcrow: ¶ ()
  • n-ary product: ∏ ()
  • small letter pi: π π (π)
  • lozenge: ◊ ()
  • nabla: ∇ ()
  • reference mark: ※ ()
  • double-struck capital P: ℙ ()
  • strictly equivalent to: ≣ ()
  • place of interest sign: ⌘ ()
  • OCR belt buckle: ⑄ ()
  • OCR fork: ⑂ ()
  • Black star: ★ ()

Update 2006-02-02: some more chars I want to mess around with:

  • Latin cross: ✝ ()
  • open center black star: ✫ ()
  • eight spoked asterisk ✳ ()
  • eight pointed black star ✴ ()

Sunday, 2005-03-20

Sidebar links

I’ve relegated my links to the sidebar, and hidden the links category from the main page with the hide plugin. This is in keeping with other “mainstream” blog packages way of handling external links.

The solution is extremely crufty at the moment — this whole blog is aquiring behind-the-scenes cruft at an alarming rate. I hope to do something about it soon, in my copious free time.

Thursday, 2005-02-17

Automatic linkblogs

When it comes to maintaining this blog, I’m trying to stick to the DRY principle expounded in The Pragmatic Programmer (“don’t repeat yourself”). I’ve recently discovered, and it’s every bit as cool and tagalicious as everyone says.

It’s pointless to grab URLs and post them here as linkblog entries and then do the same thing on That service is way better than anything I could come up with, and it has an API. Keep it simple, and don’t repeat yourself.

To that end, I’ve spent a happy evening coding a little perl app that’ll grab the latest entries from my account. If they’re tagged with linkblog, they get posted here too. One place to enter the data. Maintaining it will be a bit different, there are some things, such as attributions, that can’t easily be handled in the interface. But I can always fix that later.

The app is not ready for prime time yet. I’ve based it more or less blatantly on this code but tweaked it for my setup. I’ll post a link when it’s finished.

Wednesday, 2005-02-09

Throwing in the towel (nearly)

Michael nearly pulls the plug on his blog. Low-life spammers are responsible, of course. This actually makes me feel less bad about pulling comments from this blog. But it still sucks.

Clearly, something has to be done. I see a great need for a Bayesian filtering system for blog comments. This has worked wonders for my email spam, and is a really good weapon to have in your arsenal. But I haven’t seen anything like it yet, at least for Blosxom.

(Michael’s system, Movable Type, has its own problems with serving pages. But the base problem is the same.)

I’m thinking about writing my own comment submission form that’ll use SQLite or Berkeley DB to process the raw entries, apply Bayesian statistics to them, and present them nicely for moderation. Blosxom’s file-based layout has obvious drawbacks when it comes to rapidly handling lots of data from different angles.

When I’ll have time for that is another matter.

Thursday, 2005-01-27

Comments are off again

I’m fed up with dithering with comments and trackbacks. I’ve removed everything for the time being. If you have a pressing need to tell me something, see the contact page for directions.

I could insert a rant about how commenting should be an integral part of blogging and what a pity it is that spam is poisoning the commons, but the fact is I have no visitors and nothing interesting to say anyway so why should I bother with comments?

I’ll try to get a real hang of how the new-and-improved commenting plugins work with blosxom in my copious free time.

Sunday, 2005-01-23

First year anniversary

Today it’s been one year since I started blogging. My first post was a “review” of the Lord of the Rings. Since then I’ve written 49 capsule book reviews (one for each book I’ve read), used three different weblog packages (one homegrown, Movable Type, and now Blosxom) and basically bored more and more people each day.

It’s been fun until now, and I’m definitely keeping it up for a while. Resolutions include:

  • getting comments working while defending the blog against spam

  • learning more about Blosxom and helping out on the mailing list

  • maybe writing my own plugin (don’t know what it should do yet, though)

I’ll also try to write better about interesting stuff and less about blogging.

Friday, 2005-01-21

New category: scrivener


I found that I had a lot of site-specific posts about the ongoing re-design of this here blog, so I thought I’d experiment in creating a new category.

This is how I moved my entries:

  1. Got the redirect plugin from Fletcher Penny.

  2. Found the entries that were site specific from the original category, and listed them in a file for future reference.

  3. Created a new directory for the category.

  4. Moved the files to the new directory.

  5. Added the moved files to the redirect configuration file (see below).

Thanks to Doug Nerad for pointing me to the redirect plugin.

Anyway, now all site-related entries will be found in the scrivener category. Enjoy or avoid, it’s your choice.

Thursday, 2005-01-20

Ugly XML icon

Some people want us all to use the ubiquitous XML icon. Other people think it’s ugly. And some of us wouldn’t care one way or another — myself included — if we didn’t know that Dave Winer is responsible for it.

Anyway, I’m replacing that icon with a blogbutton: RSS 1.0
blogbutton. But before I banish it into the bit bucket, I’ll share with you how it’s made. It’s not an image, but a bit of CSS:

<a title="RSS 1.0" href=""
   style="border:1px solid; border-color:#FC9 #630 #330 #F96;
   padding:0 3px;font:bold 10px verdana,sans-serif;

that looks like this when rendered: XML.

Cool huh? I got it off the net somewhere along the way. Thought I’d share. If someone owns up to claim authorship, drop my a line.

I might add that my objections to the icon is not primarily aesthetic (after all, the replacement is orange too, but that’s OK, because orange is the new black) but functional. The XML icon implies something else than a link to a syndication feed. I must admit I was puzzled the first time I encountered it. Then I found out what it was for. But it is puzzling. The new icon at least advertises what it is in a better way.

Update: Ned has another CSS logo.

Tuesday, 2005-01-18

Commenting redux


Well, as with many technical problems, the solutions present themselves after a night’s sleep.

There was no problem with the URL rewriting (I had simply disabled the writeback plugin previously, and neglected to enable it last night while testing). These are the steps I followed to enable trackbacks.

  1. Install and configure the Blosxom Writeback plugin. There are clear instructions in the package.

  2. Download the stand-alone Trackback implementation from Movable Type.

  3. Copy the tb.cgi, header.txt and footer.txt to your cgi-bin directory.

  4. Edit the tb.cgi file. I simply replaced the $Password variable with a good password.

  5. Create the directories tb_data and tb_rss in the same directory. (To be wholly honest, I don’t need if these directories are needed.)

  6. Enable the display of the trackback URI where you want it (check out the flavours included in the writeback package).

All done!

I’ve tested this a bit, and as far as I can tell, I don’t get a mail from wbnotify when a trackback is received. So something will be needed to keep track of what’s posted.

Original post

I was forced to disable comments a while back because spammers were making this blog into a cesspit — as they’re making blogs all over the planet as we speak.

I’ve been working with enabling comments or even better, enabling trackbacks. Trackbacks are not immune to spam, but I agree with oblios in that a weblog is a publication. By at least requiring the commenter to have access to a blog of their own, you raise the bar slightly.

All well and good, but unfortunately it seems that blosxom and trackbacks are compatible, not many people seem to have implemented them. In particular, I found very little info on the nitty-gritty of how to configure blosxom’s writeback plugin and the stand-alone trackback CGI. I found an additional wrinkle, too. I use Apache’s mod_rewrite to translate /cgi-bin/blosxom.cgi to /weblog/, and I think I need to hack writeback to reflect this.

All in all, a slightly frustrating experience. I love blosxom and like its philosophy, but the technological laizzes-faire model of decentralized plugin development can feel sub-optimal at times.

Sunday, 2005-01-16


I’ve started posting links with or without short commentaries. They’re the ones with arrows instead of titles.

You can, if you’re so inclined, subscribe to just the links by using this link:

However, there’s no way of subscribing to the main feed and not the links. Deal with it, or write a filter ;-).


Gotta get this blog mobile-friendly, maybe XHTML-MP is the way to go.

Got these references from Tarek:

  • O’Reilly tutorial, pt 1
  • O’Reilly tutorial, pt 2
  • Openwave tutorial
  • Introducing WALL

Update: I added the XHTML-MP DTD to the page, and everything seems to validate. I’ll check it out on the mobiles I have later.

Under construction

I’m gonna do a pretty radical redesign (or undesign) of this blog.

As no-one reads this anyway I figured I could do the changes on the production sytem, rather than mess around with testing and staging.

So if it looks weird to you, this is the reason.

Update: done, for now. Some tweaking to do, but overall, I’m pretty happy.

The main points fixed are:

  • moved the sidebar to the foot of the HTML source. This means that the content will be shown before the nav stuff when using w3m, links, or lynx. The techniques in the article “Creating Liquid Layouts with Negative Margins” were used to accomplish this.

  • I’ve improved the semantics of the layout, with real h3 headings instead of just strong tags.

Saturday, 2005-01-15

Site update

I’ve updated the design a bit (see the footer for attribution). I like it so far, but may try to make some changes in the next couple of days. At least I’m not ashamed of the layout anymore.

I’ve implemented the Blosxom meta and interpolate_fancy plugins (see the colophon for details). This means that you can now see when a post was updated.

Fiddling with CSS

I’m dinking around with a new CSS stylesheet. The changes will mostly be internal. I got my inspiration from Frank Hecker’s well-designed stylesheets, along with the pointer to the liquid 2-column layout detailed in A List Apart.

The first design for this blog was a OSWD design called Oggle. I found OSWD to be a great resource to get going with CSS, as you get something that you can start with and hack around until you’re happy. But ultimately the cut-and-paste without knowledge of what I was really doing started bothering me.

The design as it is now is usable, but not something I’m really happy with. I’ll try to fix things in the coming days.

(By the way, I think this is my 300th weblog post. Go me!)

Wednesday, 2024-10-20

Double century

Wow, somewhere along the line I passed 200 posts. This will be the 207th.

There’s the drivel-generating power of emacs for ya.

Wednesday, 2024-09-22

Dealing with comment spam

Let’s face it: it’s a war we can’t win. But in the meantime, here’s how I handle the (modest, for now) amounts of comment spam on my site.

I’ve set up wbnotify to mail me when I get a comment. When spam arrives, it’s usually consistent in the form of included URLs, i.e. the same link is posted more or less at the same time.

I got a script called from somewhere (if someone recognises this as their handiwork, please contact me so that I can attribute this correctly). This script makes it very easy to search your writeback files for the offending string, and to optionally delete them.

This solution is dependent on you having command-line access to the writebacks themselves, but I suppose it can be used “offline” if you download the files via FTP and run the script locally.

Wednesday, 2024-09-15

Disabled comments

My sanguine views about dealing with comment spam have proved to be too rosy. I’m hit bad by idiots posting spam. So I’ve taken comments offline until I can find an effective way of dealing with this shit.

Summary of the state of play so far.

Friday, 2024-07-09

The worst form of blogging

… is the pointless day-to-day diary of your daily doings.

If you can read Swedish, you can read my form of this sin at huset, my daily recap of my “vacation” working on our house. (I’ll leave the fact that it is impossible to afford to pay a professional to do stuff on your house in Sweden for another rant.)

My defence of this practice is that I want to try it out, and also that random thoughts occur to me when I’m sanding a wall or whatever, and I think: “I’m so blogging that”. (Of course, by the time I turn on the computer in the evening I’ve forgotten all about it.) This helps me through the drudgery of manual labour.

Also, I rather like the idea of a free-form database of info like what colours we’ve used on the walls.

But I’m painfully aware of the blog-wankery involved … we’ll see if I’ll keep it up.

Tuesday, 2024-06-08

Pictures at Mr. X

MrX Photographers is a site devoted to digital photography. Terje, the guy behind the site, is a Mobitopian and all around nice guy.