Work on Ragnar continues, but mostly behind the scenes. I've written a simple node management tool to edit their properties, a friendly interface for deleting nodes, and a node addition page generated from the defined data taipus. Doing this entailed a redesign of the CGI parser, so things feel a bit cleaner now. Finally, an XML export mode is the result of a more flexible output function--this makes designing templates much easier, and lets other programs access Ragnar data without scraping.

Adding text content is now much easier. The filter understands both plain text conventions and html formatting, but strips disallowed tags and attributes through HTML::Scrubber. This behavior is fully configurable, and works well for small comments and large bodies of text alike.

Currently I'm working on file uploads and a better way to define data taipus in the first place. Uploads need to be detected, matched to fields, stored, and a URL written to the database field to match--not an easy task with multipart encoding. Modification of the MySQL tables directly seems to be the best option, as the config file is straight SQL already.

Continue reading (270 words)

Stage 1

I've finished the codebase for Ragnar, my new content management system. Things may be a little hectic around here while I fix bugs and add new functionality, but it should work out in the end. In the meantime, try out the new threaded comment system, and send me bug reports or suggestions for features.

Continue reading (56 words)

Wonko just pointed out to me an incredibly easy way of including XPath expressions inside your XSLT templates, especially within tags that need to have dynamic content like images and links. The best method I’ve been able to come up with prior to this point is to add a custom attribute to the tag, like so:

<cr:code lang=“xml”> <xsl:attribute name=“href”> <xsl:value-of select=“link_edit” /> </xsl:attribute> Edit </cr:code>

But there’s a much easier way to do it, if you don’t mind sacrificing some structure for readability. Just include the XPath expression for the value you want to include in braces, like this:

Continue reading (130 words)

If you run a server with SSHD exposed to the internet, chances are that server is being scanned for common username and password combinations. These often appear in the authorization log (/var/log/auth.log) as entries like:

cr:code Jun 12 13:33:57 localhost sshd[18900]: Illegal user admin from 219.254.25.100
Jun 12 13:37:17 localhost sshd[18904]: Illegal user admin from 219.254.25.100
Jun 12 13:37:20 localhost sshd[18906]: Illegal user test from 219.254.25.100
Jun 12 13:37:22 localhost sshd[18908]: Illegal user guest from 219.254.25.100
</cr:code>

Extend that for several hundred lines, and you’ll have an idea of what one scan looks like.

Continue reading (331 words)