Documentation update

I've uploaded an updated version of the official documentation.  You can view it here.

Sadly, I hadn't updated the documentation in years.  Some of it was misleadingly out of date — for instance, it still claimed to run on PHP 4.1, which hasn't been true since version 1.0, which I put out in 2011.  So, yeah, it was kind of embarassing.

The new documentation takes care of some details like that.  It also rounds out the documentation for all the standard plugins.  Or, rather, all the plugins that will be standard in the next release.  So it'll be slightly ahead of current until then (though the next release shouldn't be too far off).  It could probaby be a little more comprehensive, but at least every plugin has a page now.

LnBlog 1.2.0 - No Need to Give Up

Hey, look!  It's another LnBlog release!  And only two years since the last one!  Boy, Pete sure knows how to keep those improvements coming, doesn't he?

So...yeah.  Here's another release.  Development isn't anywhere close to what I'd call "active", but I'm still using this thing for my own site and I'm still maintaining it.  In fact, I'm still adding the occasional feature.

The most visible change is probably that the HTML editor plugin is now inclued and enabled by default.  So instead of writing posts in a dialect of BBCode, you can just use the TinyMCE WYSIWYG HTML editor.  Note that the editor is implemented as an update to the old TinyMCE plugin, served via the free CDN.  So if you want to write your HTML in a text area, you can just disable the plugin.  And if you want to write your posts in LBCode, you can still set the markup mode as normal and the editor will be disabled.  There are also a bunch of other fixes in this release - the list of tickets is available here.

You can grab a copy of the latest version from the traditional download page (complete with checksums and GPG signature).  The recent releases are also linked to from the project issue tracker, which has been switched from MantisBT to The Bug Genie and includes things like a "releases" page, planning pages, and so forth.  You can also use the tracker to file reports for any bugs you happen to see.  Anonymous reports are disabled due to spam, so you'll need to either create an account or log in via OpenID.

Enjoy!

LnBlog 1.1 - No Need for Users

Wow, it happened again! Another release!

This version has a few minor feature additions. Mostly just small stuff that I wanted. Honestly, it's not like I have any users, so at this point it's really just releasing the source to code I'm writing for myself.

Anyway, this release includes things like the ability to schedule a draft for future publication, the ability to set the main page of a blog to be an article (rather than having the list of articles as the main page), a new "author bio" sidebar plugin, and some various bug fixes. You can see the changelog here and download the code here.

LnBlog 1.0: Resurrection

Hey, whaddaya know? I finally released version 1 of LnBlog! Yay!

OK, so it's not really that big a deal. Just a few bug fixes and some minor features. But still, it works a little better and is slightly more modern. It's also a relatively stable state, as opposed to the random set of semi-tested changes that have been hanging around in my working copy for God knows how long.

You can find the change log for this version here. The only real new features are in the entry editor - an AJAX-based preview and dynamic addition of file upload fields. Other than that, it's mostly various bug fixes.

Anyway, feel free to mess around with it. You can get it from the download page. If, by any chance, you want to upgrade an existing installation, just copy the new files into place and run the "upgrade blog" from the admin page. Please report any bugs using the issue tracker.

Public Mercurial repository online

To go with the newly-added issue tracker, LnBlog finally has a publicly accessible code repository.

Last week I started playing with Mercurial and switched LnBlog from Subversion to that. In the process, I set up a web-accessible central repository. Previously, I'd just run the Subversion repository on my local machine, but since Mercurial makes it so easy to set up the web-based repository, I figured why not?

You can access the repository at http://hg.skepticats.com/lnblog. Feel free to browse the code, clone the repository, and send me any changesets if you're so inclined.

I have returned

It's been three years since I updated this site, but I'm back. After a fairly long hiatus, I've decided to pick up development of LnBlog again.

There are several reasons for this. The first, and most pressing, is that I still use this software for my personal blog, and I don't really want to migrate to something else. For one thing, writing migration scripts is a drag. For another, it's kind of a point of geek pride to have written the software that runs you site.

The second, and only slightly less pressing, is that I actually still have this application on my resume. And why not? After all, it represents three years of work and tens of thousands of lines of code. So it's a significant accomplishment. Unfortunately, it's also horribly out of date. In other words, it's not such a great example of my current work. In fact, much of the app isn't quite up to my current standards, so I'm going to fix that. Although I am happy to report that, when I was looking through the code the other day, it wasn't nearly as bad as I thought it was going to be. I've seen people get paid to write much, much worse code, so I guess I shouldn't be too hard on myself.

Anyway, in the coming months, I'm going to be slowly updating LnBlog. I'll start with a 1.0.0 release, which will really just be my new starting point - some bug fixes, a few extra features, and killing off support for PHP 4.

To facilitate this, and to ramp up my own software engineering discipline on my personal projects, I've instituted an issue tracking system. You can check it out at http://tracker.skepticats.com/. If you find any bugs or have any feature requests, feel free to create an account and report an issue.

I'll update this site little by little as I get around to it. I have much less time for this than I did when I originally developed LnBlog, so don't look for lots of huge new features or updated documentation. Think frequent incremental releases adding minor features, fixing bugs, and refactoring things. But at least it's better than the project being dead.

BotBlock with Invisible CAPTCHA

It looks like LinkSleeve has been failing me lately. The past week I've been inundated with comment spam. So, to fix that problem, I updated the BotBlock plugin. You can download version 0.2.0 here. Just unzip and drop it in your LnBlog/plugins directory, overwriting the old version.

For the new version, I basically rewrote the plugin. The old version did nothing but force bots to download the comment form before submitting, which was fairly useless.

The new version, however, implements an invisible CAPTCHA. This is not the annoying image-based CAPTCHA you see all over, but rather a simple math problem. Furthermore, it's "invisible" to anyone with JavaScript enabled - i.e. it includes JavaScript code to automatically solve the CAPTCHA and hide the form field. So, for 90% of visitors, the comment form should work as before, but block any bots that don't interpret JavaScript (which is a lot of them). For the rest, there will be a simple math problem and they will be prompted to type in the answer. (Note: There is an option to turn the non-JavaScript text off, if you're so inclined. Of course, that makes it less accessible, but apparently lots of people are into discriminating against the disabled.)

As a fall-back measure, I also included an option (on by default) for some simple content filtering - that is, comments with HTML links in them get blocked. The idea is that most of the comment spam I get includes plain text, HTML, and BBCode links, but LnBlog only allows plain text in comments. Therefore, anyone who posts a comment with an HTML link is either a spammer or too stupid to read the instructions. Either way, we probably don't care what they have to say.

So there it is. I haven't had any comment spam since installing the new version on my site. Of course, I'm still having problems with TrackBack spam for some reason. Apparently the LinkSleeve and TrackbackValidator plugins aren't working for this particular wave, though I don't know why. I'll have to work on that.

I have returned

It's hard to believe it's been 6 months since I posted an update here. That's by far the longest lapse since I started working on LnBlog.

If you're curious as to the reason, I started doing some serious refactoring back in late April and May, so the codebase was in serious flux. Then I got distracted looking for a new job. Then I found a new job and got distracted adjusting to it. Then I had to move for the new job and, well, you get the idea.

So now I'm settled in at my new job as a full-time LAMP developer, I'm moved into our new house and about ready to put the old one on the market, and so now I feel like a little hobby coding again.

I'll start with the bad news. I'm probably not going to be releasing anything for a little while, what with having to fix up the code and refamiliarize myself with where I left off. I'm also switching to PHP 5 after the next release, so if your host only has PHP 4, sorry, but you're out of luck. PHP 4 has finally been officially EOLed anyway, so it really is time for everyone who's still on version 4 to upgrade.

The good news is that I've already uploaded some fixes to my site, so it should be mostly working again. I've also been getting lots of good experience at my new job, so I'm expecting the overhaul of LnBlog to speed up. I've also got lots of new features in mind, particularly on the user interface side. But first I have to clean up the mess I made earlier this year.

There will be more updates in the coming weeks. Stay tuned!

LnBlog 0.9.0 is finalized

Well, I'm done. LnBlog 0.9.0 is now officially available. You can grab the zip archive here or go to the download page to get it.

There are a lot of new features in this version. You read a somewhat more thoughtful discussion of them in the beta 1 announcement. In this post, I'll just give the quickie list.

  • Most data files are now XML. Old formats are still supported (no need to convert).
  • Support for running blogs on multiple subdomains from a single installation.
  • Consolidated the per-blog PHP wrapper scripts.
  • Support for saving draft entries to be published later.
  • New Linksleeve anti-spam plugin.
  • Improved support for blogging APIs, including support for the MoveableType API.
  • Reply management pages for bulk listing/deleting of replies.
  • Improvements (?) to file writing configuration.

To upgrade from a previous release, follow the usual procedure:

  1. Make backup copies of each of your blogs, just to be safe.
  2. Rename your old LnBlog directory on the server.
  3. Upload the new LnBlog in its place.
  4. Copy your old LnBlog/userdata directory into the new LnBlog directory, overwriting the existing files.
  5. Log into the administration page and run an upgrade on each of your blogs.

As an additional note, the URLs for XMLRPC-based services has changed. LnBlog has adopted the Wordpress style and just consolidated them all (APIs, Pingbacks, etc.) in a single xmlrpc.php script located in the root LnBlog directory. If you want to use a blogging client that supports the Blogger 1.0, MetaWeblog, or MovableType API, you should point it to that file.

It's late and that's about all I can think of for now. As usual, feel free to pass on any comments, suggestions, feature requests, or bug reports. You can e-mail me, leave a comment, or use the SourceForge issue tracker or forums.

Last beta for 0.9.0

Time for the last beta release: LnBlog-0.9.0b3.zip. No new innovations here, just some bug fixes for draft updating, JavaScript on subdomains, and a few other things. Barring any more bug discoveries, this will become the final release before too long.