Polishing it up

Right now, I'm working on polishing up LnBlog. The basic functionality is pertty much there, so I figure now is the time to make things work and look nice. I'm thinking there will be one more "clean-up" release in the 0.3.x series, and then I'll start with the new features I mentioned the other day for the 0.4.0 release.

There are lots of little aesthetic and usability issues to address. For one thing, it's not always easy to know where you are in a blog without looking at the browser address bar. I definitely need to add a few labels and it would probably be nice to add some kind of breadbrumbs or "smart" links. Maybe this is something that could go in the menu bar....

There is also plenty of code clean-up to do on the back end. I think I've still got a few vestigial methods floating around in some of the classes and I can think of a few places where things could be consolidated. Not that anyone but me cares about that stuff, but it'll make things easier to maintain.

Quick patch to 0.3.3

I just found a small bug in the new version. Then adding a new article (not a blog entry), the LBCode buttons will actually submit the form. Needless to say, that's not what's supposed to happen.

I have uploaded a new zip file for version 0.3.3, so if you haven't downloaded it yet, don't worry about it. The only people who will be affected are those who downloaded it between the release announcement and now.

The fix is just a single line in one template. Just download this zip file and extract it to your LnBlog/themes/default/templates directory. Just overwrite the old file.

Alternatively, if you don't feel like messing with the zip file, open up the
LnBlog/themes/default/templates/article_edit_tpl.php file in your favorite text editor and find line 9, which should look like this:
<?php include("js_editor.php"); ?>
Simply cut-and-paste this to move it one line up, to line 8. That will put it between the <fieldset> and <form> tags, which will keep it from submitting the form.

LnBlog 0.3.3 is up

I've added LnBlog 0.3.3 to the download page. You will want to log in to the administrative pages and run an upgrade on any blogs you have (use the "Upgrade blog to current version" box) to make sure all the new features are in place. Please note that from now on, the administrative pages will use paths relative to the document root, not the current directory. Therefore, paths like ../myblog are no longer needed. If the blog is in the root of your web site, you can just use myblog. If you have any problems, please e-mail me and I'll try to work them out with you.

This fixes a bunch of bugs and adds a few small features.

First, on the feature side, I added buttons to the JavaScript entry editor for block quotations and code. I also added undocumented img-left and img-right LBCode tags. These are exactly the same as the img tag, except that they float the image to the left and right respectively. I also added optional citations for the two types of quote.

In addition, I've added a page and sidebar link to change your user information, including password. I can't believe I forgot to put this in earlier.

You'll also notice that there's now some basic documentation on the theme system. It's not terribly helpful yet, but it's a start.

On the bug fix front, these comments alerted me to a problem with URLs in comments, which I've fixed. I also fixed the URL computations to account for web servers on non-standard ports.

This page alerted me to another problem that I've fixed. Apparently, in my efforts to make FTP file writimg easier to configure, I broke the configuration for native file writing! Not that native file writing is recommended (it's a pain to deal with), but it should work again now.

The Freshmeat page and future plans

It just occurred to me that I never mentioned that I set up a Freshmeat project for LnBlog. Not that it's gotten an awful lot of traffic, but it's there. Although, I see two people did subscribe to it, which is pretty cool.

In other news, I think I've decided that the next release will focus on three things. First, I want to finish documenting the theme system. I've gotten it to the point where it's fairly flexible and easy to use, and it would be nice if people knew how to customize the look of their pages.

Second, I'd like to modlarize the sidebar. Right now, it's just one big PHP template, and I'd like to make it easier to selectively include and exclude things. It would also be nice to add some configuration, e.g. the amount of history shown in the recent entries and archives secions.

Last, I need to add some kind of search function. It may be an actual built-in search, or just a box to search Google for the current site, or both. It's really starting to bother me, though, as I've got a lot of information on LinLog that I'm going to want to look up periodically, and it would be nice not to have to open up a new window.

Here's another - LnBlog 0.3.2 released

The releases are coming fast and furious lately. Verion 0.3.2 is now available from the download page. In addition to a number of bug fixes, there has been some cleanup of the configuration process, based on the feedback from the last release.

The file writing setup page now includes a new configuration constant - the document root, which stores your HTTP root directory in the fsconfig.php file. This removes the need to recalculate it all the time and allows you to change it easily if there is any problem doing the calculation. Of course, you already have a working installation, you won't need to worry about this.

I also added a page to test the document root and a page to automatically guess your correct FTP root. They're just pop-ups that are called from the file writing config page and you can copy and paste the results. Nothing fancy, just a little something to help people who are having trouble with these.

And while I'm on the topic, I also added (untested) support for adding a port number to the FTP host. It works by using the standard hostname:port syntax in the FTP host configuration. If anyone has occasion to use it, let me know if it works.

The rest of the changes are just small bug fixes and usability enhancements. If you're really interested, you can read the ChangeLog. If you find any bugs or have any suggestions, please feel free to contact me

It was inevitable - LnBlog 0.3.1 released

I knew there were going to be bugs. Here's version 0.3.1, which fixes a bunch of bugs, most of which involved problems with adding articles. It also adds some accessibility features to the entry/article editing form. I've changed around the code a little, added some accesskeys, and associated emphasis in the text.

That's pretty much it. Have fun!

Trackbacks tested

Well, it looks like trackback at least sort of works. I happen to have a copy of sphpblog lying around on my workstation (I looked at it before starting LnBlog and decided for various reasons - both technical and political - that I don't like it), and I remembered that that has TrackBack support. So, long story short, I set up a quick blog in sphpblog, made a dumby entry, and successfully sent a trackback ping to it. So it looks like my brain-dead-simple TrackBack implementation works after all.

Unfortunately, sphpblog didn't have quite as muck luck sending a ping to LnBlog. When I tried, I got the same fsockopen() error that I got when I tried a more complicated TrackBack implementation for LnBlog. It's probably related to my system configuration, but I haven't had much time or reason to look into it yet.

LnBlog 0.3.0 released

Well, I give up - I'm releasing version 0.3.0. I think I've worked all the bugs out of this release, but I guess only time will tell. You can get it here.

If you look back over the past several posts, you'll see there are several new features in this version. I've added real user accounts, a new theme, a mehtod to edit the sitemap that doesn't include changing templates, (largely untested) trackback support, and e-mail notification for comments. I even added documentation on all the new features.

Due to some of the changes, the upgrade procedure is a little different from the usual "upload and overwrite old files." Because of the addition of user accounts, the format of passwd.php has changed, which means that your usual login is no longer going to work. You should delete the passwd.php file in the root of you LnBlog installation and then go to the administration page so that LnBlog will prompt you to create a new login. In addition, you might want to delete or rename you old themes directory, as some of the files will be stale. A change to the templates means that it is no longer necessary to duplicate images and stylesheets between themes. If a theme needs a stylesheet, script, or image that does not exist under the theme directory, then it will use the one from the default theme. Thus you'll want to get rid of any unneeded files in the theme directories.

As usual, I welcome questions and comments. Have fun!

Next release almost ready

Well, I'm just about ready to release LnBlog 0.3.0. It's just about ready, I think. I did just discover a bug in the new sitemap editor (didn't account for "magic quotes" - God do I ever hate those), but things are looking good aside from that.

I still have a few features to test. I need to test out the mail-on-comment feature, because I'm not running a mail server on my local network. Assuming that PHP is set up correctly, though, there shouldn't be too much that can go wrong. I also need to test the Trackback module. It works when I test it against LnBlog, but all that means is that I've implemented the specification consistently. I need to actually send a trackback ping to another blog (which shouldn't be too difficult) and receive one from another blog, which could prove problematic since nobody reads my site.

I'd also like to figure out why Akregator keeps marking some of my old entries as new. I haven't looked into it too closely, because this seems to happen with a lot of RSS feeds, but I'd kind of like to know what's happening. This may wait for a while, though.

Anyway, I'm done adding new functionality for this release. Between the new user login scheme, trackbacks, and polishing up the theme module, this release should be pretty good. At this rate, by version 0.4.0, I'll have all the features that I care about.

Where should I stop?

If you're a developer, particularly an open-source or free software developer, then you can probably empathize with the feeling of not knowing when to stop coding and do a release. I'm having that problem with LnBlog 0.3.0. I've already got what could be a pretty nice release, but I've still got ideas of things to add.

For instance, today I started a little Javascript page to edit the site map. It's a fairly small feature - it just writes a text file to one of two places - but it's also important because it means that users will no longer have to manually edit template files manually to get a custom site map. Another feature I've been thinking about for a while is adding a "user info" page, which can display information on a given user ID, such as real name, e-mail, and homepage. This idea came back to me the other day when I was reading on some web usability site (probably Jakob Nielsen's site) that a link on a person's name should go to a page of information about that person, not his or her e-mail address. Again, a small feature, but one which could (arguably) improve usability.

However, there are other features that should probably wait for a while, such as a full-fledged LBCode parser. I was starting to design one the other day, and it occurred to me that it might be better to get the next release out the door before I worry about that.

Anyway, I think those two are probably the last real features I'll add for this release. The theme tweaking is coming along nicely and I think I'll be done soon.