Someone had suggested via Skribit that I blog on the topic of Blogging by Mac. I decided to broaden the topic by giving you a behind-the-scenes look at what is involved for me in running Keener Living. While this will mostly interest fellow bloggers, there is probably a trick or two in here for anyone interested in technology.
My recurring tasks are
- Doing a weekly backup of my WordPress database, and a monthly backup of all files (including a backup to my Amazon S3 storage space)
- Updating my SiteMap once per week
- Checking the Google Webmaster Console to see if Google has uncovered any problems in searching my site and to see what the keyword trends are.
These are activities that are actually on my task list, to ensure I do not forget to do them.
A couple of these tasks are performed with the aid of specific WordPress plugins. The plugins that I have installed are
- *Akismet (spam detection)
- *FeedBruner FeedSmith (redirecting feeds to FeedBurner)
- *Full Text Feed (to ensure feeds show the full articles)
- Google XML SiteMaps (for generating a sitemap file)
- *iWPhone (to accommodate iPhone viewing of the site)
- *Related Posts (for showing related posts at the bottom of each post)
- ShareThis (to enable easy sharing of a post on del.ic.ious, Digg, etc.)
- twitterRSS (to show my Twitter “tweets”)
- Twitter Tools (a more full-featured tool for showing my “tweets”)
- WordPress DataBase Backup (does a database backup and stores on my site and downloads to my Mac)
- *WordPress Mobile Edition (to enable viewing via Mobile Devices)
- wp-cache (provides caching of blog pages)
The asterisked items are turned on all of the time. I only turn on the sitemap plugin to generate a sitemap and only turn on the backup plugin to run a backup. I sometimes use the Twitter-related tools, but have recently decided they add little value and are probably just a performance drain, so they are currently disabled.
Most of the plugins require no additional coding on my part, but a few do. For example, the Related Posts plugin and the Twitter-related plugins do, with the code for the Twitter Tools plugin looking like this:

This code checks to see if the Twitter Tools plugin is activated, and displays my “tweets” if and only if it is. The code you see is a snapshot of my sidebar.php file, viewed within TextMate, an editing tool I use a lot. It is specifically designed for Mac systems, and is probably the most popular coding software among Mac coders. I also use BBEdit, another popular Mac editor, especially for comparing various versions of a file. The most useful single software item I have for blogging (and many other activities) is TextExpander, which corrects my spelling errors, lets me add in custom shortcuts, and has an html package that saves me a lot of typing.
Note also that the above code limits the viewing of “tweets” to the blog’s home page, via the function is_home(). That is, use of this function keeps the tweets from showing on the sidebar of individual posts.
This talk of code reminds me of a couple of other tools I use:
- Every time I change any coding, I always check the site (or specific affected pages) on the W3C Markup Validation Service. It is so easy to make a small coding mistake that totally dicks the XHTML validity of a site. You don’t even have to do php coding to break it … it could be as simple as leaving off an “li” end tag in a listing within a post. It could turn out that your browser ignores the mistake and displays everything okay, while other browsers display the sidebar at the bottom of the page.
- After any design change, I use the BrowserShots site to test how the site looks on different browsers. I also personally verify my site on as many different browsers as I can. On my Mac, I check the site on FireFox and Safari and, via VMware Fusion, I check it on IE7 which resides on my XP Pro partition on the iMac. I also use my laptop to check it on IE6, FireFox, and Opera.
This talk of code also reminds me: I have spent huge amounts of time doing research related to blogging. A good bit of this has gone into learning enough PHP and CSS coding to do what I felt I needed to the site. But, I have also had to learn a bit about the Apache servers. For example, in checking my Google Webmaster Console stats one day, I noticed that Google had encountered a “404, page not found” when trying to index articles in my “Life Management” category. The reason was simple: I had deleted that category, as I tried to simplify my category listing. But, I had not thought about the consequences.
So, to keep from having Google see too many 404 pages, I modified my htaccess file as follows:
Redirect 301 /category/life-management/ http://www.keenerliving.com/tag/life/
Looks simple enough, but it took me a long time to learn about redirects, and there is still much I could learn. The key thing I learned, though, is that I can’t just make changes to my site on a whim … some can have serious consequences.
A final thought on making code changes and the like: I use a test site to test major changes out before implementing them at Keener Living. In addition to experimenting with various site designs there (I continue to look for a more visually-compelling design), I also test out the latest versions of WordPress there before implementing them for real. For example, I am currently running the latest “alpha version” (pre-beta) there.
Now, what about the actual blogging part?
I use Google Reader to research leads on articles. Here is a snapshot of my Google Reader page:

I typically view anywhere from 500 to 1,000 headlines per day. I mark the most interesting ones with a Star. That seldom turns out to be more than 2 or 3 a day, and often I scratch some of these from the list after looking at them a second time.
I also use 3×5 cards to capture topics that occur to me while I am just setting around. Sometimes I will even use a legal pad to flush out an outline for an article, just as I did with this article. There’s something to be said for being low-tech part of the time: even uber-geek Paul Stamatiou notes that he uses a notebook in class instead of his MBP.
But, as I recently confessed, I think I rely too much on the use of topics “occurring to me.” I really should add “brainstorm and select topics” to my list of recurring tasks.
And, finally, part of my time goes to providing tech support by answering questions that come in through email. This is not really a huge amount of time, being somewhat sporadic. Some weeks there are no questions, while other weeks there may be a dozen.
That pretty well summarizes the broad-strokes of the behind-the-scenes stuff for me, but I am happy to answer any specific questions you have. And, of course I would love to hear how you do things differently, so I can learn from you.

I think it’s really good that you put in the redirect for the category you removed. Of course, it’s helpful for anyone who may have tried to go to that and got the 404 error, but also, it’s better for the web to have these addresses be more permanent. There is a great article from Tim Berners-Lee on this topic entitled Cool URIs dont’ change that explains why you want your URIs to be static and unchanging.
Also, TextMate is excellent, but unfortunately, it’s difficult to harness all of its power based on the existing documentation. There are screencasts that show how to do HTML expansion and many other things (so you wouldn’t have to use TextExpander for that particular purpose), but it is difficult to see how to do those types of things just by poking around with it.
Also, there may be some ways to automate some of your weekly tasks, such as backing up your database archives to Amazon’s S3. Depends on whether your hosting provider allows you to run cron jobs or not. If not, maybe using Automator or AppleScript on your Mac could do the trick…
Thanks for the great post. Interesting to hear how you’ve been run the site.
Hi Thomas,
Thanks for the URI link. I’ll check it out.
You are certainly right about TextMate. I doubt that I use 5% of its potential. Its docs could be improved a lot. Nonetheless, I use it frequently.
Good point about the automation of backups. I will look into it. I know there is at least one RoR script I could use for automating the S3 backup, directly from my server, but I would want to monitor its impact on bandwidth before automating with it. Server to server transfers could possibly exceed the bandwidth limits of my host, although I doubt it. Would sure be faster than me backing up manually, and probably more reliable.