Distance Debugging Logo

I've been making slow, steady progress towards recapturing in Drupal everything that WordPress provided out of the box. Here are my most recent updates:

  1. Added a recent posts block and archive by month block on the right side using Views. That seems to work very well. This also gave me "posts by month" pages for free.
  2. Enabled the autosave module to store blog entries (and any content, really) that I am writing every 10 seconds or so.
  3. This is more a convenience thing than an actual necessity, but I remapped all URLs of the form ?m=XXXXYY, which were old WordPress style URLs and are what is still in Google, to map to new month/XXXXYY URLs using apache mod_rewrite. If folks are interested, I'm happy to share my RewriteCond and RewriteRule directives.
  4. I forgot to mention this last time, but I have installed the TinyMCE module so that I can get WYDSIWYG editing for any content, including blog posts.
  5. Turned on the ping module to ping pingomatic with updates.
  6. Enabled anonymous commenting, and made the comment form show up for each blog entry. I added a simple text CAPTCHA because that seems to be the least offensive of the options. With WordPress, I used Akismet and Bad Behavior and got 10 or so spam comments a week that had to be deleted and the occasional one that slipped through. I think an easy CAPTCHA is a better approach. If it fails or is too onerous, I'll add the Akismet and Bad Behavior modules.

Still todo:

  1. CSS template still horribly screwed up. Sorry it looks so bad. I think I'm going to write a simple new theme from scratch that holds all the necessary info and that I really understand, rather than try to hack an existing one as I did with the current version.
  2. Remap some of the old WordPress URLs that are still in google to their new equivalents to keep my incoming links correct.
  3. Spell check
  4. ???

It's starting to approximate a halfway decent blogging platform, with surprisingly little work.

I have once again signed up for NaBloPoMo to get myself back in the regular blogging habit. I've joined the DreamInCode and Midwestern bloggers groups, so I'm looking forward to seeing what others are writing about. This year, instead of being hosted on a private website, it is being hosted on Ning, the do-it-yourself social networking platform. That's interesting to me in and of itself as I read and enjoy the blog of one of the founders of Ning (and several other big companies), Marc Andreessen, so I am also curious to see if all the nice things he says about it are true.

Yet another great thing about NaBloPoMo is that it gave me an excuse to finally undertake a project I have been putting off for months: migrate this blog from WordPress to Drupal such that it fits in with the rest of the Distance Software site. Drupal is a general content management system, so I can host my main site and articles, plus have a blog, a file sharing area, project maangement, and what have you, which I couldn't do (easily) with WordPress. However, I didn't want to just use the default blogging feature, which leaves much to be desired, so I've been frantically installing modules and configuring the system to begin to approximate what you'd get with a normal blog. Here are some of the steps I took:

  1. First, I needed to import all the content from WordPress into Drupal. That proved to be very straightforward using the fabulous converter tool found here. One oddity: when I entered my database settings, it didn't like "localhost" for the hostname, but it happily accepted 127.0.0.1, so a word to the wise.
  2. Next I removed all the posts from the front page (this is the default for some reason), and decided I wanted to have a nice paged series of posts instead of one huge page, so I created a new view using the Views module that filtered to show nodes of type "blog" and status "published". I set it to be at the URL /shoutingdistance so that people looking for the old blog would be redirected to the new page.
  3. I wanted my posts to show up with nice URLs like /this-is-my-latest-post instead of node/124, so I used the ever-popular pathauto module to set that up, and created nice aliases for the existing and future posts.
  4. I needed syndication to be set up correctly. This turned out to be a breeze with Views, because they already offer an RSS argument option. A search for the concept quickly turned up this page, which explains how to set it up. I switched feedburner to use that new URL, and then I installed the feedburner module to redirect all accesses for the existing feed to the FeedBurner feed, which seems to be working, but we shall see.

So now I have something that approximates a blog, but I have quite a few things left to do:

  1. It's using my default page template so it ends up laying out all weird (this is mostly my fault for making a screwed up CSS template in the first place), but I want to override that with a new format.
  2. There aren't any archives or anything. I need to create another view that can be added as a block on the blog page so that people can see older posts in a simpler way.
  3. Turn on goodies like Akismet and Bad Behavior to block spam and spam attempts, so I can turn comments on. Right now folks, you are SOL.

I will continue to post on the various improvements as they happen, but I hope this helps others who might be considering transitioning from traditional blogging software to Drupal. It's definitely doable, but it's definitely not out-of-the-box ready for blogging, in my opinion.

During my long blogging hiatus, I've been up to a few things:

  • Kicking off my new business, Distance Software. The website isn't much to look at yet, but I've got the new logo (one is also coming for Distance Debugging shortly), and I'm working with that same designer to create the new site.
  • I've started a new Drupal setup to start to try to create a community debugging site/forum. There isn't much there yet, but I'm going to start porting over content that I've posted here, as well as new material.? Check out FixIt!
  • Ported distancedebugging.com and distancesoftware.com over to new digs on a dedicated server at SuperbInternet.
  • Helping with the planning for BarCampMilwaukee.? I had a lot of fun at last year's event, and I'm hoping to contribute a lot more time and energy this year.? I'm going to have Distance Software sponsor, and I'm also running the BCM site here on my box to give it some bandwidth and horsepower.? We'll see how it holds up!

Look for lots of new posts now that I'm back in the saddle.

I found a nifty drop-down menu that I want to use to conserve space, but right now everything is a little wonky so bear with me. Eventually I'm going to compress everything down, remove the bottom boxes, and create more space for the content, which I think will be easier on the eyes. Until then, there is some duplication and the menu is hard to navigate, so please accept my apologies.

Follow up: I've finished the main revision and I'm very satisfied with the results. I think there is less screen clutter, at the expense of less information. If you have problems viewing or have other suggestions, please leave them in the comments.

Well, I've made it to 100 in only 6 months. I've installed a new plugin called Bad Behavior, that is supposed to block SPAM bot access attempts, which I guess appear as distinctly different accesses from regular folks. If you get blocked, I apologize, but I've been forced to look through 100+ comment SPAM messages a day in Akismet and I'm more afraid that some legitimate content will get flushed accidentally at this point, so I've stepped it up a notch. Time will tell if this solution meets its promises.

The site has begun to approximate the layout I had in my head, with the content boxes encircling the center content.  If you have a smaller screen, you may have to scroll the outer window to see the whole page, but I'm hoping for the majority of visitors, the content will appear in its entirety, and you should only need to scroll the interior box to read the posts.  I may shrink the scroll box a bit so that it will fit even on a small screen (like my 12" laptop screen).

I am still somewhat baffled by the notion that DIVs and SPANs are somehow supposed to replace tables, since for the life of me, I cannot get any combination of them to layout in the simplest possible side-by-side configuration.  For instance, the group of three boxes beneath the post scroller was done with a table.  Why?  Well, you can't just use DIVs, because they break afterwards since they are block element so they stack vertically.  You can't just use SPANs, which don't break, because at least as far as I can tell, because I am using DIVs inside to represent the title and content of each box, the SPANs non-breaking aspect is ignored.  I'd switch the titles to be SPANs instead of DIVs, but SPANs don't accept a width or height attribute so all my title boxes would be different sizes which is visually unappealing (at least ot me).  I'd use DIV with style: inline, except that has the same problem.  I'd float them all to the left to get them to stack up, except then I'd need to put in some kind of placeholder DIV to bump the footer down, and the float property seems to be the thing I understand least because I guess it pulls those elements out of the static layout and adds them to their own layout so I'm even worse off when things start to go wrong.

But hey, I create a table with three cells, set the margin information, stick my two DIVs in each cell and voila, a nice, simple side-by-side layout that is easy to understand and debug.  If some HTML guru out there who really understands this stuff can explain to me how to get the effect I'm looking for here, I'd love to have a better understanding. Hours of web research have turned up very little that would work for me here.

I apologize to those that have come here recently to look at an individual post and found it unreadable. A helpful comment noted that while the main site looked fine, the individual post page was screwed up. I had forgotten to apply the same trick to the Single Post template (page.php) that I had applied to the Main Template (index.php). It should be fixed now. If this problem shows up anywhere else, please let me know.

For those who are interested, getting a scrollable DIV is fairly straightforward. The key is to set a fixed height, and then set overflow to "auto". Like this:

.scrolldiv {
height: 500px;
overflow: auto;
}

Then, if the content exceeds that height, it will give you a scroll bar automatically. Look for a belated "this week in debugging" with more info later today...

I've tweaked the layout a bit so that you can scroll the posts while keeping the sidebars and header in place.  My goal is to ultimately make it so that all the sidebar content fits onto a typical screen so that you can see all the archives, search, etc without having the scroll the page, and you only have to scroll the post content.  Let me know if this is good/bad for you.  I'm probably going to keep playing around with this for a few more iterations, so please excuse me in advance if you stop by and things are little out of whack.

1/27/07: I've updated my fix for the link categories issue, so check out this more recent post if you are looking for help.

I've just upgraded to WordPress 2.1 and there were a few glitches that I've mostly resolved, but I thought I would make a note of things for others who might be having trouble.

  • The big problem is one that appears to be somewhat widespread. There are no longer separate database tables for link categories and post categories, just a single categories table. WordPress is nice, and it is free, and it works great, so I'm not here to complain, but their justification that they were somehow changing this to take advantage of some elegant abstraction seems questionable to me at best. It broke my template, and I think it broke a lot of other people's templates, and most annoyingly, the API doesn't seem to have been modified to offer a method that only returns just the link categories, or at least I didn't have time to puzzle through and figure it out. I hacked it by looking at the range of category IDs that constitute the link categories and changing the "get links" query to filter out anything lower than the lowest link category. This only works because the post categories are a contiguous block, and the link categories are a contiguous block and as soon as I add one or the other it will probably break. There is clearly some other way to determine what is a link category, but I haven't had the time to get serious about figuring it out. Anyway, the links on the front page are now accurate, but the display is screwy because the wp_get_links() method seems to have changed as well, so bear with me... [Ed note: I have a better fix now, see this post.]
  • The admin interface has some nice enhancements; more AJAX background loading so things are quicker, autosave while editing a post, plus integrated spellchecker! That all makes me very happy.
  • All my plugins appear to still be functioning, so kudos to the developers.
  • They changed the name of the Links tab to Blogroll, which is a weird narrowing, considering that most blogs I read link to a few blogs, but lots of other miscellaneous sites. At first I thought the functionality had changed, but it's just a renaming of the existing Links functionality.
  • There's a little bit more confusion between what the "Write" tab does and what the "Manage" tab does. I'm sure I'll get it figured out.

Overall, it was a snap to upgrade, after I'd sorted out the category confusion, and it seems to be a bit faster. I would definitely recommend the new version.

I enabled and configured FastCGI on this server, so I'm hoping that will make things a little more zippy for you. It seems to be working so far, and things do seem to be faster. Apparently it's not a perfect solution, so please post a comment, or drop me a line using the contact link at the top if you notice any weirdness.

Syndicate content