Finding the right way to organize your books

Pile o'books

A couple of years ago, I read an article on Slashdot that asked the question, “How do you solve the home library problem?” A lot of people chimed in and, while following the ensuing discussion, I became intrigued. I’d always considered organizing my home library, but had never gotten around to it, and now my lack of organization was having negative repercussions.

I’d already found one book where I owned multiple copies, having forgotten that I owned it and therefore purchased it again. And I often found myself unable to find a book, having lost it somewhere among all the different shelves and stacks of novels littered around my apartment. Though it was a mess, it was a mess that made me happy because it was a bunch of books, but it was also time consuming and causing me to waste money.

So, I read through all the comments on the Slashdot article, investigated a few options, and settled on LibraryThing. I say “settled,” though that’s not really accurate; I really like LibraryThing, and enjoy using it a great deal. But in the last two (almost three now) years, I haven’t looked at any cataloging alternatives.

This article begins a short series where I will review three online library cataloging web sites. I’m leaving out Delicious Library because one of my requirements (which I’ll discuss shortly) was that it be online and subsequently accessible from most anywhere, but I’ve heard that DL is really great. So, we’ll talk about Shelfari, Goodreads, and LibraryThing.

Requirements for my cataloging system:

  1. Needs to be relatively fast.
    1. Speed/ease of adding books.
    2. General site speed.
    3. Speed/ease of editing books.
  2. Must be online, but furthermore must be mobile accessible so I can access my library from the bookstore to see if I already own something.
  3. Should be displayable by how I organize my books on the shelf (Genre -> Author alphabetically by last name -> Publication date) so that I can better find things in my physical library.

I’ll inform you of my bias now: After using LibraryThing for more than two years, I could add a half dozen other requirements to that list of features that I’m not willing to live without anymore, but those three were really all I was looking for when I first began my search. Therefore, to be fair, I’ll limit it to those and expound on the extras in the individual posts after the review.

Once the three reviews are completed, I’ll write an article with some recommendations on how you can best build and organize your home library. I’m not a librarian, by any means, but I’ve been messing with this for a while and want to share what I’ve found. I hope you’ll return over the next week and maybe learn something as well.

Image by: lusi

Burn Your Feed with FeedBurner


When we visit a website, our eyes often begin around the center-left of the page and scan rightwards, picking up the colours and general content in a fraction of a second. Within seven seconds humans form a first impression, so it’s important for a site to look good and suitably impress readers.

Once you’ve made a good impression, you’ve got the opportunity to hook your readers and get them coming back again and again. And when they start doing this, they might just subscribe to your RSS feed. You’ve worked hard to make your site look nice, so why wouldn’t you put some time into sprucing up your feed? Once you have regular readers, this might be the primary way they interact with your site, so you want to make it a pleasant experience.

I’m not a coder by trade, and can barely hack my away around PHP to change the plain text I want displayed on a given page. Since I focus on content rather than presentation or code, I look for tools that can handle that part of the job for me. When looking for something to improve my feeds, it was immediately clear that FeedBurner was the solution.

FeedBurner makes improving, managing, and tracking your feed easy, to the extent that I had almost overlooked it altogether. I had taken FeedBurner for granted and assumed that everyone had discovered its wondermous properties of joy and goodness, but when talking with a friend of mine recently, I realized that not only had not everyone discovered FeedBurner, but that those who had might not be using it to its full potential.

You can easily use FeedBurner to syndicate your RSS feed, but it does so much more than that. Over the next week, I’m going to cover how you can optimize and publicize your feed to the best effect. When using these steps myself, I saw traffic to my site increase, and my feed has more subscribers than it did pre-FeedBurner as well. This isn’t just a tool for displaying or tracking your RSS feed, it’s a tool for improving your website and your readers’ experiences with your site.

The first impression is made based on the design and content, but the back-end has to run well to keep people coming back. I hope you’ll return this week to learn about how you can get the most out of FeedBurner; of course, the best way to get the scoop would be to subscribe to my RSS feed 😉

Why I Should Stop Doing Web Development

MAMP does make my failure come faster, at least.
MAMP does make my failure come faster, at least.

A few weeks ago, I got home one evening all jazzed up to hack the Carrington Theme on a local web server I set up on my Macbook. I had some definite ideas for how I wanted the front page to look, so I wanted to edit the theme and achieve my vision.

Three hours later, all I had to show for the effort was having cut it down to a single sidebar and moved that sidebar over a bit.

It all makes me feel pretty stupid, because I work with computers for a living and feel like I should be able to “just get” this.  After all, I’ve built numerous web servers, personal computers, and am experienced with a variety of different operating systems, programs, and web platforms. But when it comes to coding a page, once we get beyond HTML, I’m practically a goner.

That’s the main reason I began using Content Management Systems (CMS) after all. Beyond a simple, relatively ugly page, I can’t create that good a website.  I should just stick to creating the content that the management system manages.

One of my resolutions this year is to write and publish a book, and I’ve got a few other projects that will hopefully come to fruition that I’m not ready to reveal yet. I’m not going to get all this work done if I keep screwing around with stuff I’m not good at, though. If I invest all of my time and energy into something I’m not good at, like web development/design, then there’s no time/energy left for the things I can do well, IE writing what I want to write.

It has become a guiding philosophy for me in the last couple of years that one should gauge and recognize their own strengths and weaknesses, learning to get the most out of what they can do, rather than trying to exceed their limits or waste time doing things poorly. The only metaphor I have for this is in regards to fantasy fiction and wizards: a low-level wizard who knows how to use their power well will be able to apply it creatively and to great effect. In so doing, they may outperform a significantly more powerful wizard who is not creative and doesn’t use their power wisely; instead, the more powerful individual wastes their power because they don’t know how to use it, and the comparatively weaker of the two outshines them.

I can accept not being that great at something, but it means that I need to stop focusing on those projects that I just can’t do well. I’ll produce content, and if I have to someday, I’ll hire someone else to do my web development. For now, WordPress and Alex King’s contribution is good enough for me, and with the few minor tweaks I’ve made to it, it’ll manage my content just fine.

Do one thing very well

When I was a wee lad, I was quite unpopular at school. Regularly picked on, beat up, and mocked, it was no secret that I was a pushover and the other kids could get away with whatever torture they devised for me. The problem was that I was trying to be everyone’s friend, to please everyone, and subsequently I attempted to become whatever anyone wanted me to be. But because I didn’t know how to become what they wanted, I was just an uncool, dorkish poser, painting a big target on his chest for the barbs of others.

Sometime late in 7th grade, though, I snapped and decided to be my own person. Screw them, I thought, I’m going to figure out what I want and do it; who cares what they think? And, much to my surprise, the mocking stopped. Within a year I was, if not popular, at least respected. When I stopped trying to be everything to everyone and became my own person, I was finally recognized as such.

I say this by way of introduction to Unix. A common mandate or philosophy of Unix and Unix software/commands is to do only one thing but do it very well. Too many software companies try to make their product do everything, or try to please all of their customers, and what they end up doing is making something overly complex that nobody can use or even likes. By trying to do everything, they end up doing nothing.

We can take some obvious life lessons from this, but also find some guidance regarding the tools we settle on. In building this site, as well as my other work resources, I try to find those things that do their job simply and well. WordPress is simply the best blogging software I’ve found, and since this site is primarily a blog, it’s my tool. It’s not nearly as powerful as Joomla!, but it works significantly better. Just like Zenphoto doesn’t have all the capabilities of Coppermine, or PunBB is considerably leaner than phpBB, it does one thing and does it well. Coppermine and phpBB are bloated and difficult to work with… so I don’t. If a tool makes my life more difficult, requiring more of my time than it saves, then it fails and isn’t worth using.

I am finally beginning to learn what I do well, and I’m going to focus on that. Throughout this week, I’ll be writing about some of the changes happening both in my life and at SilverPen Publishing. I’m taking steps for what I am calling SilverPen Pub rev. 3.1. Revision 3 began around the end of August 2007, I believe, and this is the next phase of that progression. I’ll be implementing changes a bit at a time until December 31, with revision 3.1 formally going live on January 1. You probably won’t notice many differences, to be honest, but we’ll get into that later. Stay tuned!

WordPress not quite ready for mobile browsing

Instead of redacting this entire entry, I’ll let you know that mobile browsing for WordPress does work now. See my updated article on The Evolutionary Process of Mobile Browsing on WordPress for more details.

One of my design goals for revision 3 of SilverPen Publishing was to make the site more accessible. I’m not a web developer by trade and didn’t really know how to do this, but I knew that I didn’t want to exclude people from visiting my corner of the web. To me, this didn’t just mean making SilverPen more friendly to screen readers and other assistive technology devices, but also to make the site work well on mobile devices.

To this end, I found yet another great plugin by Alex King that queries the user agent of the browser trying to access the site. If it’s a mobile web browser, the plugin serves up a custom template that’s very lightweight and fast to load on mobile devices. It worked very well, but unfortunately it only worked in a vaccuum, and even then had some serious repercussions.

WP Super Cache

First off, it simply does not work with WP Super Cache, and in fact, no mobile browsing solution does. For those who haven’t heard of Super Cache, I’ll explain what it does and why it’s necessary very briefly. Every blog post and page that WordPress serves up is dynamically generated on the fly when you access the site. Putting all the pieces together to make a web page puts a lot of load on the server, and it makes the page load a lot slower for you. Caching allows the server to create static pages, rather than dynamic ones, of the same content and therefore serve it up faster. This reduces load on the server and makes the page load a whole lot fast for you.

Because of how WordPress works, this caching is pretty much vital to running a site on WordPress. My traffic’s not that high yet, but it has more than doubled in the last few months, and I expect it to continue increasing at a similar rate. The last thing I need is Bluehost freezing my site temporarily due to a sudden spike of traffic, so like all good WordPress bloggers, I use WP Super Cache.

To make a long story short, WP Super Cache creates a copy of a page the first time someone visits it. Each subsequent visitor is shown that copy, and this is what breaks WordPress Mobile Edition. Since you’re viewing a static copy of the page that has already been generated, you don’t see the mobile theme, rendering the mobile plugin useless.

If it’s a choice between having the page load more quickly for most everyone and reducing the load on my server vs. having the site more accessible on mobile devices, I’m going to have to go with the former. Especially as data plans move towards 3g and faster mobile browsing.

Search Engine de-Optimization

The second reason that mobile browsing fails for WordPress is because it kills SEO, which harms your ranking in search engines. By its very nature of essentially serving a different set of pages to mobile devices, plugins such at WordPress Mobile Edition fool search engine robots into thinking there’s a second website with duplicate content on it. Such duplicate content is ranked down by search engines, which means your pages are less likely to turn up in searches and you’ll get less traffic.

The mobile plugins and solutions for WordPress all admit that it’ll kill your SEO and recommend you “do something” about it, but don’t offer many solutions. I thought I had found an elegant work-around yesterday in the form of themed multiple domains in WordPress, which would allow me to have multiple domains pointing at a single instance of WordPress, wich each domain triggering its own theme. In this instance, you can easily redirect robots that hit those other domains to a separate robots.txt file, which would tell them “don’t index this site.” For example, if I had and (for mobile browsers), I could have the main site indexed and tell the robots not to index the mobile site.

But I don’t want to register a separate domain for mobile browsers, and I couldn’t get it to work with a subdomain for some reason. Maybe I was doing something wrong there and will figure it out eventually, but it’s not going to happen today.

Not worth my time

In the end, trying to twist WordPress into working on mobile devices doesn’t give a  lot of return for the investment, and I’m beginning to think it will be a non-issue before too long. Even I am beginning to dream nightly of acquiring an iPhone, and browsing with a 3g connection means that, even over a cellular data plan, you can load a site quickly. And newer phones have a lot larger screens, which means that my theme displays fine all on its own.

I know that WordPress now has a iPhone-friendly administrative interface, and I hope that they include more features in the future to help their platform run better on mobile devices. Accessibility is still important to me, but I can’t justify 5-10+ hours of work to make the site more accessible to 0.5% of readers by introducing “features” that degrade or break the site for the other 99.5%.

Updated – Why Chrome Concerns Me

Google has recently announced their web browser, Google Chrome, and while a variety of bloggers and news sites have begun reporting on and hypothesizing about Google’s motivation and the browser’s functionality, nobody seems to have any negative concerns regarding Chrome other than its competition with Mozilla Firefox. Some have shared their concern that this will kill Firefox as well as Microsoft’s Internet Explorer, which is a fine concern to have, but one I think isn’t major. People who care more about privacy will look at Google’s continuous data mining and give Chrome a miss. Firefox will still be used, and it’s Open Source, so it’ll continue being developed (unless Google buys it…). But again, not my main issue.

My concern is where Google states that Chrome is more than a web browser. Rather, it’s “a modern platform for web pages and applications,” with the word application mentioned 5 times in three paragraphs there. While Mozilla Firefox uses Gecko as its application engine, Chrome will use Webkit (along with Safari and Konquerer), just as Google’s mobile operating system (Android) will use Webkit.

Application compatibility and development could certainly put a dent in Mozilla Firefox’s usage statistics, but more importantly, it sends up a red flag to me. I fear we’ll return to the lack of standardization that was a hallmark of the browser wars in the early to mid 90s. As webapps become more prevalent, I fear web developers will have to begin writing apps to be compatible with Gecko, Webkit, and Microsoft, and that’s simply ludicrous. We are finally achieving standardization when it comes to HTML, and with Javascript, PHP, and ASP we’ve got languages that are understood equally by all browsers.

With Google entering the browser wars and choosing Webkit, it appears that we are establishing a lack of standardization for the future, which bothers me. Moreover, as Google moves more towards web development, with their own web browser in place I fear that they will build something akin to Microsoft’s ActiveX, where their web applications will be even more advanced and powerful, but will require their web browser to achieve that full functionality. I am concerned that Chrome will encourage Google to create proprietary web applications.

Of course, they may stick to their creed of “Do No Evil,” and my concerns may be completely unfounded. But as Google gains more power and popularity, I wonder how far they can push the definition of “Good” before losing the favour of their users. Regardless, I’ll check out Chrome so I can support it, but I doubt I’ll be switching to it full time. I already give Google my email and contacts, but adding my browsing into that… I like to pretend to have at least a little bit of privacy.

Addendum:: Google Chrome is Open Source, as is Webkit, so it’s not like THE END OF THE WORLD if they develop stuff that’s Webkit-only. It would just make me a little sad, and be a step in the wrong direction, I would think. Unless Webkit became a standard (and I’m sure someone will make the argument that Mozilla could always switch from Gecko to Webkit), and no news or rumours have arisen yet that such a move is likely in the web development community… though with both Android and the iPhone using Webkit, it certainly wouldn’t be absurd for Webkit to become so prevalent it became a standard…

Regarding Privacy:: Another update, since I mentioned this earlier. Since I’m in meetings all day, I haven’t downloaded, installed, and tried Chrome yet, but CNet takes a closer look at the Terms of Service attached to Chrome. Of particular concern to me is:

By submitting, posting or displaying the content you give Google a perpetual, irrevocable, worldwide, royalty-free, and non-exclusive license to reproduce, adapt, modify, translate, publish, publicly perform, publicly display and distribute any content which you submit, post or display on or through, the services.

Since my own content is copylefted under Creative Commons, I don’t particularly like the idea of Google serving up my content in any sort of advertisement and potentially making money from it.

Gathering Statistics

As bloggers, we invest a lot of time in our websites: skinning them and making them aesthetically pleasing, generating helpful or interesting content, and working to make sure they are fully accessible so everyone can get to that content. So it’s no surprise that we want to know how many people are visiting, and perhaps when they are visiting, and certainly what it is they are looking for and reading when they come. There are a multitude of statistics programs you can employ to serve up this data, but not all statistics programs are equal. I’m going to compare and contrast some of the leading analytics programs to give you an idea of what you might try.


This was the first web statistics program I used, and it was, until recently, my favourite. Displaying everything I might want to know in a single page, I could quickly see how many visitors I had gotten, where they came from, what search terms brought them to my site, etc. To be honest, though, the thing I liked most about it was that the numbers it gave me were very high. It was an ego boost to look at my AWStats page, because it claimed to filter out bots and put them in a separate category (thereby ensuring me that the high numbers I was seeing were both real people and unique visitors). AWStats gave me the impression that it was accurate.

Sadly, that was not the case, which I discovered after installing Bad Behavior. This intriguing little bit of code keeps bots and scrapers from even hitting your page, and after installing it, the traffic AWStats reported I was receiving dropped by a factor of about 5. AWStats can’t differentiate bots from people well enough, and so it was over-inflating my traffic. All-in-all, it ended up being worthless.

WordPress Stats Plugin

I’d gotten a clue that perhaps my visitors weren’t so numerous as AWStats had intimated when I installed this plugin. It showed my numbers as being much smaller, but it felt much more accurate as well. What’s also nice about this plugin is that it fits right into your blog dashboard, but the data isn’t stored in your database. Rather, it is hosted and stored by WordPress, which translates to WPStats having zero impact on the performance of your website. As an added bonus, it will work in any WP blog, regardless of your configuration. Since I use WordPress-MU, this is particularly nice, as a lot of plugins and programs don’t work right with MU. The Stats Plugin is probably my most reliable statistics gathering device.

An additional bonus to the WordPress Stats Plugin is that it can be set to not log your own visits. If you, the administrator, are logged into your WP blog, the stats plugin won’t record your traffic. With other statistics programs, I would find myself hesitant to visit or browse my site because I didn’t want to falsely inflate my statistics, but such concerns are a thing of the past! Unfortunately, WPStats doesn’t have the level of information others do, such as geographical location or bounce rating, so you might want to augment it with something more powerful.

Google Analyticator

This is another program that runs outside your site, thereby not slowing your blog down. It also provides much of the same information the others do: geographic location, number of visits, bounce rate… but I had some problems getting it to work with MU. Like Woopra, which I’ll talk about in a second, it doesn’t handle the subdirectory structure I have at SilverPen Publishing. It will record data from the root site, but not its sub-sites. It will work with subdomains, rather than subdirectories, but I’d have to do a lot of wrangling with Bluehost to get them to edit my Apache files for subdomains to work right, and it’s just not worth the hassle.

Google Analytics is powerful and accurate, and I do use it for the front part of my site here, but it is not one I’ve come to love and rely on.


This might be the coolest one I use, though like the Google Analyticator, it also refuses to handle subdirectories. Currently only in beta (so they don’t guarantee you’ll be able to get an account, as that process is handled manually), Woopra is a full client you install on your computer that displays the data they have on their servers. A bit of code on your page allows their servers to monitor your traffic, so again, this has little impact on the performance of your website because the stats collection is happening in their database.

What sets Woopra apart is that it is real-time. You can watch people visit your site, see where in the world they are coming from, see exactly what page they are reading, and see when they leave. Woopra also gives you the ability to tag your users so you can see names rather than just IPs. This functionality isn’t rock-solid in the beta yet, but it is certainly made easier with WordPress. If a visitor leaves a comment and puts their name to it (rather than leaving it anonymous), Woopra will pick that up and tag their IP accordingly so you can more easily understand your stats.

No other stats program I have seen shows you real-time information like Woopra, and it’s really fun to play with. If you can get an account, this is definitely one to check out.

Please remember that Woopra is still in beta, and development cycles will cause fluctuation in the performance of the program. There are a number of issues that still need to be resolved before Woopra leaves beta, but they’ve got a solid foundation and this program certainly has the potential to be one of the top analytics programs on the Web.

Feedburner Feeds

Rather than for your site, Feedburner provides stats for your RSS feeds, which is also quite important. I encourage all of my readers to get my content through RSS readers (such as Google Reader, which I use) because I have found it to be so much more convenient. However, with Feedburner I was able to discover that, thus far, very few of my readers use the feeds.

With this information, I can change how I display and advertise my content, rather than relying on a method that isn’t working as well as I had hoped. As a sidenote, because Feedburner focuses on feeds, it doesn’t have the subdirectory problems I encountered with other stats programs. But, because it is such a niche product (focusing on the feed rather than the site), it is also one I visit and rely on less. Perhaps once my RSS traffic gets higher, Feedburner will be more worthwhile for me.

Concluding Thoughts

Especially when starting out with a website, it is important to get all the help you can. Statistics programs can give you an idea of what’s working and what’s not, and perhaps show some pathways towards what will work better. They highlight your strengths and weaknesses, but don’t get too caught up in the numbers. Web statistics programs aren’t all-powerful, all-knowing pieces of software (as AWStats aptly demonstrates). Do what you enjoy, write what you want, and use the stats programs to tweak the site. Don’t let your web presence revolve around the stats; they’re not everything.