My WordPress Theme Review Criteria

I’ve been evaluating themes for WordPress to find just the right theme for the different blogs I’ve created.  However, it seems that just about every theme I’ve tried has issues.  I will attempt to catalog my observations in posts with the WordPress Themes category.  Here are some things that I look for when I evaluate a theme:

  • I prefer posts to be individually identifiable so that I know where the edges of each one is.
  • I prefer comments to be individually identifiable as well, either by shading, numbering, borders, etc.
  • I prefer category counts and archive counts to be displayed.  Many themes omit them and make it very difficult to display them without destroying the look of the theme.
  • I prefer categories to be displayed hierarchically.  This is usually easily solvable, though.
  • I prefer having the tagline (site description) being displayed.  Quite a few themes don’t do this.
  • I prefer having links displayed in their subcategories.
  • I prefer to have at least basic beta information (e.g. SiteAdmin / Register / Login / Logout) displayed.
  • I prefer having pages displayed.
  • I prefer having links for pages in the header.
  • I prefer ordered lists to be displayed with numbers and unordered lists displayed with some marker.  It’s surprising how many themes don’t do this.

I’m using IE7 on Windows Vista.  I may have tested on Windows XP using IE7, but it is unlikely that I will have tried any other browser.  Sorry.

Grades are given subjectively based on the above criteria, my overall impression of the theme (i.e. would I like to spend time on a site that used it) and how much effort was required to make it do what I wanted.  In order for a theme to get an A, it has to be one that I want to use on at least one of my sites.

Comments Off on My WordPress Theme Review Criteria

Configuring WordPress

Table of contents for Installing WordPress

  1. Installing WordPress (part 1)
  2. Installing WordPress (part 2)
  3. Installing WordPress (part 3)
  4. Configuring WordPress

There are a number of things I do to just about every WordPress site I create.  You might ask how many do I create since I’ve just started with it.  Well, 6 so far and I’m seeing other uses for it all the time.

Change the password

The first thing I do is I change the password for the admin account.  If you don’t do that right away, you risk losing access to your web site and having to start all over.

Change the name of the admin account

Something I don’t understand is why user names can’t be changed in the UI.  I don’t like keeping the admin user name around – it just screams “Security Hole!”.  Since you can’t change it in the config UI, I use phpMyAdmin and navigate to the wp_users table to change the account name.  I haven’t seen any problems doing this so far, so it seems logical that it could be offered in the UI.  Oh well.

Change general options

Change the tagline to something that makes sense for the web site.

Set the “Weeks in the calendar should start on” setting to Sunday.

Depending on the web site, check the “Anyone can register” checkbox.

Change permalink options

Change the permalink structure to be date and name based.  This just makes the most sense to me – very organized and easy to understand if I ever have to look an URL.

Change miscellaneous options

Check the “Track Links’ Update Times” checkbox.  To be honest I’m not sure why I do this, but it sounds like the right thing to do.  I should read up on what it means :-) .

Create initial categories

Each web site will have its own set of topics, but every site will have administrative posts.  The first category I create is one called Administration.  Beyond that I might create categories I know will be written about.

One of the features I like is how links – also called the blogroll – are displayed.  Links are typically displayed in the sidebar under the heading of each category to which it belongs.  As such, I create one or more categories whose parent is Blogroll for links.

Replace the initial post

The initial post is like the “Hello, world!” of the web server world.  It’s just there to show that the site works.  There is also a comment attached to this post.  You could delete the post and start over or just delete the comment and type new text.  Either way, the initial post must be replaced.

Typically I will take the opportunity to write a post to welcome visitors to the blog.  That just seems like the polite thing to do.  I also set the category to Administration – posts with a category of Uncategorized or just too untidy for me :-) .

Add initial links to the blogroll

All the sites I’ve created so far have been family sites that are related to each other, so I’ve added links to each one pointing to the other sites.  These links are also categorized appropriately so that they will be displayed together.

I may also take this opportunity to remove the initial set of links.  I’ve looked at them all and some of them are moderately interesting, but only Matt’s seems to be worth keeping on some sites, and even his should be removed from most.

Themes and plugins

This is a topic for many other posts.  There are a bazillion different themes and plugins available that can completely change the look and feel of the web site.  I’ve spent a great deal of time looking at a small fraction of what’s available.  I’ll write more about this topic as I discover new things.

Comments (2)

Installing WordPress (part 3)

Table of contents for Installing WordPress

  1. Installing WordPress (part 1)
  2. Installing WordPress (part 2)
  3. Installing WordPress (part 3)
  4. Configuring WordPress

In the previous two parts I shared my experiences with installing the components required before installing WordPress. We’re finally ready to proceed with the main event.

WordPress is like phpMyAdmin in that it is simply a bunch of files that need to be copied to your web server and then some configuration steps. In this case, though, the WordPress folks have done an amazing job at making it simple. Here is what must be done.

Copy files to your web server

This is pretty straight-forward. You can either copy them to the root of your web server or to a subdirectory. I started by copying them to a WordPressTest subdirectory just to see how things worked. Since then I’ve created a hierarchy of WordPress sites. I’ll talk more about how I made that happen.

Create a database for your site

Here is where phpMyAdmin can be used. I said at the end of my last installment that I may not have needed to use phpMyAdmin. It turns out that the installation instructions for WordPress include instructions for using SQL statements to prepare the WordPress database. This is, in fact, what I ended up doing to start with while I was working out the kinks with phpMyAdmin. There are four commands that must be executed:

GRANT ALL PRIVILEGES ON <dbname>.* TO "<wpuser>"@"localhost" IDENTIFIED BY "<password>";

In the above statements, replace <dbname> with the name of your WordPress database, replace <wpuser> with the name of a user to be used by the WordPress web site, and replace <password> with the password for the user. You will need all of these in another step.

The first statement is pretty self explanatory. It simply creates the database.

The second statement isn’t strictly necessary. I discovered an oddity with the default collation used by MySQL – it uses latin1_swedish_ci. Swedish? Okay, probably because the company that made it is from Sweden. I looked all over for a way to change the default but couldn’t find one. This command takes care of it for me.

The third statement creates an account (if it doesn’t already exist) and gives it all the privileges it needs to manage the WordPress database.

The fourth statement makes sure the privileges are written to the mysql (system) database.

Edit the wp-config.php file

There are really only three lines in the wp-config.php file that need to be modified, but you might choose to modify others:

  1. DB_NAME – the name of the database you created above.
  2. DB_USER – the name of the user you created and gave permission to above.
  3. DB_PASSWORD – the password for the user.
  4. $table_prefix – the prefix for all tables for this web site. The default file sets this to wp_. If you want to use a single database for more than one site you might want to modify this.
  5. WPLANG – you should probably set this to your language, although I don’t know how it will behave for languages other than en_US (which is what I set it to). There is a comment in the file saying there must be an associated .mo file, but I didn’t need one for en_US. This is required by some plug-ins and themes.
Fire up the browser

It’s time to navigate to your web site. You will be presented with a page saying the web site hasn’t been configured and asking if you want to do that now. Configuration is painless, completely painless. You enter three pieces of information:

  1. Name of the blog.
  2. Email address for the blog.
  3. Whether you want the site published or not. I haven’t investigated this feature yet, so I’m not sure yet what it actually does.

After entering this info, WordPress creates the necessary tables and then presents you with a page containing a password and a link to log on with. You’ll want to do so right away (using the admin account) and then change the password.


That’s it. You have a functioning blog web site. There are a number of options I change on all my sites, but you don’t need to do anything to be able to start blogging away.

Final words

Now that I finally have everything up and running and I’ve spent almost a week on this stuff, I have some observations:

  1. The difficulty of getting everything right speaks to the incredible value of companies like Microsoft, Apple, Oracle, and others who build complete solutions and actually sell them. They actually have a vested interest in pulling together all the loose ends to provide their customers with a solution that works. Could you imagine your grandmother (or some non-technical family member or friend) going through what I described in my last two posts? I can’t either. That’s not to say that these companies get everything right. They don’t. But they do offer significant value to those who are willing to pay for it.
  2. The fact that everything I’ve needed is available for free on the Internet with documentation and community support allows people who have enough knowledge and capability to make it work. I try to avoid complaining about companies, particularly my former employer (no one likes to be around a whiner), but I do have pet peeves. One of them is the quality of the documentation and support available from Microsoft. Maybe I’ll write about that in more detail, but not now. I’m just stunned at how much information is available online about these products. I have been able to solve every single one of the problems I encountered so far due to what is made available by people who don’t get paid for it. Wow!
  3. The fact that these components are available for free for those who can make it work has got to have had a significant impact on the spread of information and technology. I’m just amazed at the overall quality and what can be done with it.

Comments Off on Installing WordPress (part 3)

Installing WordPress (part 2)

Table of contents for Installing WordPress

  1. Installing WordPress (part 1)
  2. Installing WordPress (part 2)
  3. Installing WordPress (part 3)
  4. Configuring WordPress

In part 1 of this post, I talked about installing MySQL v4 and PHP v4 and was just about to get to phpMyAdmin.  Let’s start there.


Managing databases can be pretty challenging and complex.  Some folks felt the same way and decided to leverage PHP to develop a web-based admin to for MySQL.  Since both PHP and MySQL are free, they followed the same pattern.  Unlike PHP and MySQL, however, phpMyAdmin is simply a bunch of .php files which get copied to a location accessible to a web site.  For example, if your web site is located at C:\Inetpub\wwwroot, you could simply copy the phpMyAdmin files to C:\Inetpub\wwwroot\phpMyAdmin, which would allow you to access phpMyAdmin by navigating to  Of course, it wasn’t exactly that simple.  There are some PHP extensions that phpMyAdmin requires in order to work correctly, specifically:

  • MySQL
  • MySQLi (for v5)
  • Multi-Byte String
  • Mcrypt

It was at this point that I ask, since both PHP and MySQL were running so well, why couldn’t WordPress, a modern web design environment used by boatloads of people, work with the later versions of these two tools?  I did some research and found that people are in fact using the latest versions.  What clinched it for me was a note on the PHP web site announcing that PHP 4 was being end-of-lifed (meaning it would no longer be supported).  I probably simply glossed over the note when I started since it’s been there since 7/13.

Okay, time to switch.  Fortunately I had installed the software in version-specific directories.  First I installed MySQL 5.  It turned out to be as simple as MySQL 4.  The only thing I ran into was that v5 wanted to listen on the same TCP port as v4, so I shut down the v4 service (which I had called MySQL4) and set it to manual start.  Getting MySQL v5 up and running was pretty straight-forward since I had spent a little bit of time with v4.

PHP v5 seemed like it was quite a bit easier to install than v4 (although it’s been several days now, so the memory could have faded).  There is an MSI installer which takes care of setting up the php.ini file.  I selected the MySQL and MySQLi extensions and it only copied those files that were needed.  Since I was familiar with setting v4, making the few changes to the php.ini file was pretty straight-forward, although I still decided I needed to read the online instructions for PHP on IIS.  Once nice thing is that the installer made all the required changes in IIS for me.  Very nice.

I did have to fix one thing.  In some places it set the path to the ISAPI file using the short file name.  For some reason IIS or PHP didn’t like this, so I had to go in and fix that up.

Now back to phpMyAdmin.  There is a Documentation.html file provided with the installation, so I pulled that up to discover what to do next.  The first thing that needs to be done is to create a file.  Fortunately they provide a web interface for generating one – you just create a config folder in the phpMyAdmin directory and then navigate to scripts/setup.php in your browser.

The first thing the script told me was that I wasn’t connected over a secure connection.  Easy enough to solve since I bought an SSL certificate from last year.  Switching to https solved that problem Next it told me I was missing some PHP extensions:

  • Multi-Byte String
  • Mcrypt

Once I got those installed, I encountered my next problem.  The config folder wasn’t writable for the account the web server was running under.  After modifying the security settings of the folder I was off and running with the setup script.  Hmm, not a very intuitive page.  I found this script to be very confusing.  I finally figured out that I was supposed to Add a Server.  Of course, the settings there required further reading in the documentation (which is conveniently referred to from the setup web page).  I settled on the following settings:

  • Connection type = “socket” since both the web server and MySQL are running on the same machine.
  • PHP extension = “mysqli” since I’m using PHP v5.
  • Authentication type = “cookie” since it is the recommended setting for IIS.  Note that “config” is not good as it writes credentials in a file on the site itself.
  • I had to specify a phpMyAdmin control user and password.  More on that below.
  • I specified a phpMyAdmin database for advanced features.  More on that below.

Hmm, interesting.  As I was writing this up, I looked at the documentation a little more closely.  There is a note saying that phpMyAdmin needs a controluser that has only SELECT privilege on several mysql tables (where mysql is the system database for MySQL).  It turns out this is only needed with very old versions of phpMyAdmin and MySQL.  Oh well.  I created a user (although as I looked at it more closely, I didn’t give it all the privileges needed) and specified that above.

It turns out that there is also one extra step that needs to be done to make sure the controluser has access to the phpMyAdmin database.  You need to grant the account all privileges on all tables in that database.  I was getting an error message in phpMyAdmin until I did that.

The database specified above is related to a the phpMyAdmin linked-tables infrastructure.  There are two different scripts in the scripts folder that will create the database and the tables – one for older versions of MySQL and one for later versions.  My version was old enough, so I used the latest version: scripts/create_tables_mysql_4_1_2+.sql.  I wasn’t completely familiar with the MySQL syntax for reading scripts, so I had to consult the documentation.  You do it using the source command, e.g.

source scripts/create_tables_mysql_4_1_2+.sql

Note that there is an FAQ referenced in this section that points out that on Win32 machines table names are converted to lowercase.  The solution is to modify the my.ini file in the MySQL installation directory to add a variable, like this:

set-variable = lower_case_table_names=0

I can’t count the number of times I thought I set it up only to have it tell me it wasn’t set up.  I finally read the fine print (well okay, it’s not that fine) saying that all the setup.php page does is generate a config file that must then be copied to the root phpMyAdmin folder.  The other thing that I didn’t get right away is that once you’ve created the file and copied it, you need to not run setup.php anymore.  Just navigate to the phpMyAdmin URL on your site.  It would have been nice if the setup script had displayed instructions for doing these two things.  Even better would have been a button to copy the file and a link to go to the home page.

At this point, my phpMyAdmin page now works.  I’ve used it quite extensively and it definitely makes administering MySQL databases much simpler.  There are still some things that aren’t as easy as they could be, though I won’t get into those right now.

So why did I install phpMyAdmin?  Initially it was because the WordPress installation instructions referred me to it.  As you’ll see in my next installment, however, it may not have been necessary ;-) .

Comments Off on Installing WordPress (part 2)

Installing WordPress (part 1)

Table of contents for Installing WordPress

  1. Installing WordPress (part 1)
  2. Installing WordPress (part 2)
  3. Installing WordPress (part 3)
  4. Configuring WordPress

I finally bit the bullet and figured out the issues I was having with PHP and MySQL on my home server so I could check out WordPress.  I’d had issues getting both free applications to be served properly on my server, and enough was enough!  I was determined to get them working over the holiday weekend.

As you may or may not know, all three “products” are available free.  Yes, that’s right, free.  No one makes money for their efforts writing or getting these products to work and do their magic (well, that is probably not entirely true – all their work must be released to the public).  I have somewhat of a philosophical problem with the business model since I am a software developer by trade myself.  I typically like to get paid for my efforts.  However, it appears that there are a myriad of ways people make money with them, and, for now anyway, I’m not willing to fight that fight.

Be that as it may, since I had previously downloaded both PHP and MySQL, I could have started with those versions.  Instead I decided to visit their web sites to see if a later version was available, one that hopefully had fewer bugs and more features – you know, what everyone wants :-) .  Before installing either product, I decided to see what versions WordPress required.  I first went to, which turns out to be a place where anyone can create a blog web site – again, for free.  Fortunately there was a reference there for people that wanted to host it themselves (that would be me; just call me a masochist :-) ).  After rooting around a bit at, I finally found a page describing the minimum requirements.  It said PHP version 4.2 or greater and MySQL version 4.0 or greater.  There was even a blurb about why not the latest versions.  Excellent.  Off I went.


I started with MySQL since it sits under PHP.  There are two primary versions currently being supported – MySQL 4 and MySQL 5.  Based on the WordPress requirements, I decided that I shouldn’t try to push my luck and that I should instead be conservative for a change (well, when it comes to technology :-) ).  The MySQL web site is run by a company who actually does make money off their software, but only the enterprise versions.  The community edition is still free.  It took me a while to find the download, but I finally did.  Of course, v5 is much more prominent and I wanted v4, so I had to root around for it. Ah, there it is.

Fortunately (and also atypical for free software) there was an installer/configuration tool which walked me through the installation and initial configuration.  Once I had it installed, it took me a little bit to figure out how to interact with it.  There is a a command line tool in the bin directory called mysql.exe (oddly enough :-) ) that will allow you to navigate database objects, perform queries, etc.  Since I’ve been working with SQL Server from Microsoft for the past 10 or 11 months, I was fairly comfortable with the syntax, although I did have to use the documentation (yes, there is even documentation, can you believe it?) to figure out where user information is stored.  All-in-all installing MySQL was fairly painless.


Next was PHP.  At least the home page for PHP listed both versions 4 and 5 so the version I wanted was easier to find.  I downloaded the right version (again, v4 due to the WordPress requirements statement) and went to install it.  PHP did have an installer, but it was much more rudimentary than the one provided with MySQL, and it asked questions about extensions – oh, oh, which ones do I install?  Now, I remember the first time trying to install all kinds of extensions that sounded cool.  I decided this time I wouldn’t install anything that wasn’t strictly necessary.  I did choose to install it in C:\Program Files\PHP4 instead of the the suggested C:\PHP, though – I hate putting things at the root of my drives.  Once it was installed, next came the arduous task of configuring it.  The web site has instructions for configuring PHP for various operating systems and web servers, but the instructions also say to go through the php.ini file line by line so you’ll understand it.  Ugh!  I didn’t want to do that.  Fortunately the documentation on the site has enough information to help configure it correctly, and once I made the few minor changes to the php.ini file and the changes to the web site configuration in IIS Manager, it worked like a champ.  I was pretty surprised.  Here are the critical things to make it work on Windows Server 2003 + IIS 6:

  1. Copy everything from the dlls folder up to the root.
  2. Copy the php.ini-recommended file to php.ini.
  3. Make the following changes to the php.ini file:
    1. Set the error_log property to point to a valid file on the disk.  I set it to “C:\Windows\Debug\PHP4\Errors.log” after creating the PHP4 folder.
    2. Set the extension_dir property to the extensions folder in the PHP installation.  I set it to “C:\Program Files\PHP4\extensions”.
    3. Set the cgi.force_redirect property to 0.  They make a big deal about this on the web site for IIS, so I just did it even though I planned to use ISAPI.
  4. Make the following changes to the properties of the web site with which I planned to use PHP:
    1. On the ISAPI Filters tab, add an entry for PHP pointing to php4isapi.dll in the PHP installation folder.
    2. On the Home Directory tab:
      1. Set Execute permissions to Scripts only.
      2. Click Configuration and add an entry for .php to point to the ISAPI DLL.
  5. In the Web Service Extensions section of IIS Manager, create a new web service extension for PHP, again pointing to the ISAPI DLL.

That’s it.  After doing this, I was able to test out a very simple PHP file:

<?php phpinfo(); ?>

If you’ve installed it successfully, this will display information about the PHP software.


The next step was to test PHP on top of MySQL.  There is another free tool call phpMyAdmin that provides an interface for doing this.  I decided once again to see if there was a later version than the one I had downloaded previously.  Getting this to work proved to be a lot more involved than I expected.

It’s getting late, and this is getting long, so I’ll finish this another day.  In the next installment I’ll finally get to the installation of WordPress :-) .  Stay tuned.

Comments Off on Installing WordPress (part 1)

TV antennas

I was sharing with a neighbor information about an antenna a purchased recently and installed in my attic to get over-the-air digital television reception.  I was getting so-so reception with a pair of rabbit ears upstairs on the Vizio VX37L 37″ LCD television, but it would get glitchy periodically.  It was good enough for how we watched it, though.

At the same time I was testing Beyond TV from SnapStream Media using an HDHomeRun dual-ATSC/QAM digital tuner from Silicon Dust to get television reception.  The reception was okay on the machine I was testing on but not as solid as on the television upstairs, so I had to do something about.  After doing a bunch of research, I determined that Denny’s TV Antenna Sales in Ithaca, Michigan had the best information, probably the best prices, and the best service.  I settled on the Winegard MS 2000 omnidirectional antenna along with the DS-25 System Distribution Amplifier hoping they would do the job.  I had to install the antenna in my attic because our homeowners association has rules about antennas on the roof and I didn’t feel like battling with them.  After installing the antenna, I found that the reception wasn’t enough better to warrant keeping it.

Based on the feedback on their site, it seemed like Denny and Rhonda would be able to help me determine what antenna solution would help me get the reception I needed.  Denny directed me to, where I could figure out where the towers for the stations in my area are located.  Here is the procedure to use to get the best results:

  1. Click on the Choose and antenna button.
  2. Type in your address.
  3. Click on options at the bottom and enter 500 or 1000 feet for the height.

This procedure produces a list of all the towers that I might be even remotely interested in receiving a signal from along with the compass orientation.  Once I had that, I could map out the towers for the stations I was interested in and determine a compass spread.  For me that turned out to be a spread of 37 degrees.  Denny said (with the usual disclaimers) that I should have no trouble getting good reception out to about 40 degrees so I should be fine.  Based on my conversation with him, I settled on the Winegard HD 7080P antenna.

Once I got the 7080P installed, reception came in nice and clear and I’m now recording HD programming very nicely.  I would highly recommend Denny and Rhonda for anything related to antennas.

Moved from my blog on Windows Live Spaces where it was originally posted on 8/29/2007.

Comments (1)

Cataloging my DVD collection on the web vs. a standalone application

I’ve been looking for options to catalog my ever-growing DVD collection.  I started with a package from called Movie Collector.  Movie Collector is a flexible Windows application that allows you to enter a DVD UPC code or title and search on a variety of sites.  Once you match it up, you can then customize the information since it stores it all on your computer.  It will even store front and back cover art and generate HTML so you can add your catalog to your web site.  I cataloged over 200 DVDs with this application – which isn’t even 25% of my collection.  Here are some reasons why it didn’t work out very well for me:

  1. The information downloaded from the various web sites usually didn’t match what was on the back of the DVD case.  As a perfectionist (don’t you hate that?) I ended up retyping the plot text for 50-60% of the DVDs.
  2. The downloaded actors list usually had flaws – either missing actors, duplicates, misspellings, etc.
  3. One of the benefits I hoped to realized by cataloging my collection on the computer was to be able to easily link to the various information available on the Internet on actors, producers, releases, etc.  The application did not automatically set the link field for the actors.  I could have written some XSL, etc. to get it to do that, but I just never found the time.
  4. As a result of all these, I could never bring myself to just buy a bar code scanner to enter my DVDs.  I wanted the information to be accurate.
  5. The user interface broke more UI guidelines than you can shake a stick at.  Even with all the issues Microsoft UI has, one thing you can say about MS software – including Windows – is that they spend a great deal of time figuring out how to make UI that is usable.  They don’t always get it right, but most of the time they do.  Examples in Movie Collector include not including keystrokes for moving to different tabs or for selecting buttons.  Maybe my biggest gripe was that it required the use of a mouse.

If I could have gotten around to entering all my DVDs, I could have lived with all these problems.  However, I just found it to be so tedious.  I didn’t spend too much time looking for alternatives, but when I stumbled across something in my roamings across the Internet I’d check it out.  Here are the requirements I looked for a solution to fulfill:

  1. Publish catalog on the web.
  2. Be as accurate as possible with respect to plot, actors, length, release date, etc.
  3. Display cover art.
  4. Search for DVDs based on cataloged data.
  5. Link to other information on the web about the release, movie, actors, etc.
  6. Easy to managed.
  7. Display statistics based on a variety of criteria.
  8. Integrate with media center software.
  9. NICE TO HAVE: Store a list of DVDs I’m interested in purchasing.
  10. NICE TO HAVE: Store a list of DVDs I’ve loaned out to other people.
  11. NICE TO HAVE: Store log of DVDs I’ve watched.

[Read the rest of this entry…]

Comments Off on Cataloging my DVD collection

First blog

I’ve always been someone who wants to do things himself.  I’ve got a web server and email server running out of my house, for cryin’ out loud :-) .  I’ve been waiting to blog until I could host that on my server as well, but most of the good blogging software requires installing something like PHP or whatever and getting that configured has just taken more time than I’ve been able to give to the project.  I stumbled upon Windows Live Spaces by viewing a friend’s site.  It’s not that I hadn’t heard of it before.  It’s just that I never took it seriously before.  So I decided that I would get serious about blogging and created a blog there.  But the more I wanted to write, the more I felt I needed to be hosting it.  I finally bit the bullet and got MySQL and PHP working on my home server.  Then I installed WordPress.  After spending a bunch of time and figuring out how I wanted to organized my blogs, I finally got things working the way I wanted.  I’m not totally happy with the themes and such, but like most things technical, it’s a work in progress :-) .

I could spend a bunch of time writing about my experiences (in fact, I probably will :-) ).  For now, view the About page to learn more about me.

Hopefully I’ll write about something truly interesting that will make this space useful ;-) .

Thanks for reading!

Comments Off on First blog

Page 16 of 16« First...1213141516