Daily Links for Tuesday, September 22, 2009

Office Web Apps: The beginning of the end for Microsoft?
InfoWorld / Randall C. Kennedy

So when Microsoft makes noise about embracing the cloud, then delivers something designed to preserve the status quo, we feel compelled to call them on it. OWA is not the capable, feature-complete Web implementation the company led us to believe it was developing. Rather, it’s a poor attempt at placating its critics (not to mention its grumpy shareholders) by paying lip service to cloud computing ideals and principles while at the same time trying to co-opt the new as a means to prop up the old.

Possible futures for the Linux desktop – the full list from LinuxCon

On Monday at LinuxCon 2009 I gave ten possible futures for the Linux desktop. Several articles have highlighted one or two or these, but here is the full list.

Of course I added a few spoken comments, but be certain of one thing: the Linux desktop is not to be discounted and, as I list as the fifth possibility, it could end up with sizable marketshare:

  1. It goes away.
  2. We stop using desktops, so who cares?
  3. The Linux desktop becomes a tactic instead of a strategy.
  4. One Linux desktop distribution ends up with 90% marketshare among those using Linux desktops.
  5. One Linux desktop distribution ends up with 90% marketshare among all desktops.
  6. We reach 33% / 33% / 33% parity with Microsoft® Windows® / Apple® Mac OS® / Linux, plus or minus.
  7. We stop pretending that it will be a drop-in replacement for the dominant desktop operating system, and make it something better.
  8. The enterprise sweet spot for Linux desktops is virtualized Linux desktops.
  9. We focus on usability, stability, security, reliability, performance, with some cool thrown in.
  10. It’s the browser, stupid.

Also see: Life with Linux: The series

iPhone, photos, and ColorSplash

I recently got an iPhone and have been having a good time playing with it. One of the cool applications I installed is called ColorSplash. Essentially it allows you to take or reuse an existing photo, converts it to black and white, and then allows you to selectively add color back in. Evidently this process is called selective desaturation.

It’s a little tricky to use at first, but if you zoom and move the image around, you can get pretty good results. Here are a couple of shots from my iPhone in which I used ColorSplash to bring out the colors of flowers.

First, wallpaper/background versions are available. Click an image to get the fullsize image suitable for download:

Wallpaper image Wallpaper image

Here are the images as originally taken and modified:

Photo of flower

Photo of flower

My interview with Amanda McPherson of the Linux Foundation

Photo of Amanda McPherson

Amanda McPherson has posted the text of a Q&A she and I did ahead of LinuxCon next week. From the intro:

In the run up to LinuxCon, we’ve sat down with a number of the conference’s keynote speakers. This week it’s IBM’s Vice President of Open Source and Linux Bob Sutor. Bob is kicking off LinuxCon with his keynote, “Regarding Clouds, Mainframes, Desktops and Linux,” and also participating in a panel discussion with Oracle’s Monica Kumar and Adobe’s Dave McAllister on Open Standards and Linux.

Another book read on my Hugo and Nebula award winners list

I just finished reading Forever Peace (Remembering Tomorrow) by Joe Haldeman and checked it off on my list of Hugo and Nebula award winners for novels.

I decided a while ago that since I read a lot of science fiction and fantasy, I might as well read those works considered the best. I created the above list as a way to track my progress. It’s been useful as I look for new books to read, but also as a way to get into the work of authors I’ve not encountered before. I’ve not been keeping strictly to the list, as when I read several works in the “Chalion” universe by Lois McMaster Bujold after reading Paladin of Souls.

We have a used bookstore in my town that I never paid much attention to until I discovered that it had a lot of science fiction paperbacks, each selling for $2 to $3. In the last week I’ve been able to pick up several books on my “winners list,” or at least works by winning authors. When I have time, I need to augment the list to not just track the books I’ve read, but also the books I own, lest I inadvertently buy the same book twice.

A few observations:

  • I’ve read far more Hugo winners than Nebula winners, except for books that have won both.
  • I’ve read more than half of the Hugo winners for the last three decades.
  • At some point I need to go back and reread some of the books I first encountered when I was a teenager and in my twenties, such as those by Heinlein, Asimov, and Le Guin.
  • Though I’ve tried several times, I’ve never been able to get into Dune by Frank Herbert. At least I now own it, which I suppose is progress.

“Use” vs. “Utilize”

This entry is one in a series that tackles issues of proper word use and grammar in English.

The incorrect yet increasingly common use of “utilize” instead of the simpler “use” is well documented in several places around the web. See, for example,

Indeed, utilize can often be no more than a pretentious substitute for use, and this should be avoided. However, utilize does have its own meaning: ‘to turn to profitable use; to make a practical use for’. This is not the same sense as ‘to bring into service’, which is what use fundamentally means.

at Random House.

When words such as these are used incorrectly, the people to whom you are speaking may think:

  • you are ignorant of the definition of the word, so what else is wrong in what you are saying?
  • you are using a pretentious “big word” to sound more sophisticated than you are
  • you are slipping into jargon and can’t explain something in simple terms

None of these reflect well on you as a speaker, a writer, or as a communicator in general.

Here’s some guidance:

  • If you are about to say “utilize” but “use” would work just as well, then say “use.”
  • If you previously thought something was useless, but you got clever and now it isn’t, you are utilizing it.

Note that outside the United States, “utilize” will likely be spelled “utilise.”

Also see: Series list: Proper word use and grammar in English

New IBM Redbook: “Practical Migration to Linux on System z”

IBM Redbook logo

There is a new draft IBM Redbook available called Practical Migration to Linux on System z.

Here’s the RedBook abstract:

There are many reasons why you would want to to optimize your servers through virtualization using Linux® on System z®:

  • Too many distributed physical servers with low utilization
  • A lengthy provisioning process that delays the implementation of new applications
  • Limitations in data center power and floor space
  • High Total Cost of Ownership (TCO)
  • Difficulty allocating processing power for a dynamic environment.

This IBM® Redbooks® publication provides a technical planning reference for IT organizations that are considering a migration to Linux on System z. The overall focus of the content in this book is to walk the reader through some of the important considerations and planning issues that you could encounter during a migration project. Within the context of a pre-existing Unix based or x86 environment, we attempt to present an end-to-end view of the technical challenges and methods necessary to complete a successful migration to Linux on System z.

Creating a book catalog with Drupal and the CCK, Views, and Amazon modules

Effective January 1, 2010, this site does not use Drupal and instead uses only WordPress. Some of the links below may not work.

I set up a little project for myself this weekend: how could I use Drupal to put together a catalog of my science fiction and fantasy books for my website, and do this as efficiently as possible? I also wanted to have the book information link to Amazon so people could learn more about the books and possibly purchase them. Note that this is in addition to my listing of Hugo and Nebula award winners for best science fiction and fantasy novels.

My experience with Drupal was basic but not completely elementary. All the non-blog content on my website is in Drupal and I know enough about looking for and using modules (addons) that can give me more functionality. However, not all the modules are well documented and using them together can be an interesting learning experience. I chose this project to provide that and to play with some ideas that might be the foundation of later projects. If you are looking at doing a similar project, I hope this gives you an idea where to start. I’m still early in this, so this final catalog may very well change in structure by the time I’m done. The way I make it will get better too.

Let me begin by thanking the people who pointed me in the right direction on Twitter: Amy Stephen, David Wheeler, David Lanier, Bob Morse and Dave Reid.

At the moment, by catalog listing is pretty basic:

Screen shot of book catalog

To cut to the punchline: there is no ready-made solution, but it is not hard to build one using the CCK (Content Construction Kit), Views, and Amazon modules for Drupal. These are all very powerful, but of the the three, the Amazon module is the least well documented. I should also add that I’m using Drupal 6 here in September, 2009. Drupal 7 is on the horizon and I know that some things from CCK, at least, will be shifting into the core.

The basic idea is that you need to create a new content type to hold your book data. Drupal comes with several more or less built-in content types like blog entries, pages, and stories. (Drupal is infinitely flexible and wonderful, but some features and capabilities are not enabled by default.)

You create a new content type in Administer > Content management. After playing around with this for a while and experimenting with the Amazon modules, I decided that I just needed four fields:

  • ASIN: this is an Amazon unique identifier, and in the case of a book is the same as the ISBN-10 number
  • Title: though I can get this from the extracted Amazon information, it is useful to be able to know which book I am editing since the ASIN is rather cryptic
  • Category: this is the Amazon category of the book such as Entertainment, History, Politics, or, in my case, Science Fiction & Fantasy. The list is often displayed in the left column when browsing books in Amazon. This information is not available in the information retrieved via the ASIN, so I’m adding it manually.
  • Status: this is “Read”, “Reading”, or “Unread”. I own all the books, so this simple scheme suffices.

If you look at the screenshot, all information other than the category and status are gotten via Amazon look-up based on the ASIN, including the book cover images.

Here are some of the things you need to do:

  • Install Drupal and get a basic understanding for how it works.
  • Install and enable the CCK (Content Construction Kit), Views, and Amazon modules for Drupal.
  • Via Administer > Content management create a new content type called Book Information. The fields are listed above. The title is the default node title text; the ASIN is an Amazon item; the category is a text field using the checkbox/radio buttons with 1 value allowed; and the status is the same with the three values shown above. The title is always required and make the others required as well. I made the default value for category “Science Fiction & Fantasy” and the default status “Read.”
  • Now go to Create Content and make a few nodes. That is, add a few books of Book Information content type. Look up the ASINs on Amazon and enter the title. As I said above, the ASIN for a book is the same as the ISBN-10 value. For titles, move beginning words like “The” and “A” to the end, as in “Curse of Chalion, The”. This will help the initial sorting.
  • So now we can create the content and we have a dedicated type. We need a view and a page to show it. I’m still tinkering with this, but go to Administer > Site building > Views to get started.
  • Click on Add on top and enter a view name and a description. Create the view as a Node (ignore the Amazon item option) and hit the Continue button.
  • Most of what you’ll be doing in Defaults but create a page to Display in the upper lefthand corner. On the lower left where it says Path: None, click the None and add a name so that you can access your page. In the Basic Settings area you click on the values to change them, just as you did with None. While still on the page, change the Title to something interesting. I used “My Science Fiction and Fantasy Library”.
  • Go back to the upper lefthand corner and click Defaults.
  • The most important thing to do, and the thing that took me the longest to figure out, is to click the “+” next to Relationships in the top middle. Click the box next to Content: ASIN and Update and Save. This now makes a lot of extra fields available to you, all created via the ASIN from information retrieved from Amazon.
  • You will now add seven fields in the middle Fields section:
    (field_asin_asin) Amazon: Product image
    (field_asin_asin) Amazon: Title Title
    (field_asin_asin) Amazon: Participant name Author
    (field_asin_asin) Amazon: Publisher Publisher
    (field_asin_asin) Amazon: Pages Pages
    Content: Category Default
    Content: Status Default
  • The first 5 are all generated from the ASIN, and the category and status are our regular content fields. Note that I changed the display name of “Participant name” to “Author”. Again, you can see these in the screenshot above. I did not put a label on the small image since visually I associate that with the title. Note that I am not using the title field that we manually defined, I’m using the title as gotten from Amazon via the ASIN.
  • Make sure you keep hitting Update and Save as appropriate. If you don’t, your changes will not be preserved.
  • Generally you use the “+” button in each of the sections and the up-down-arrows button to change the order in which information is displayed or processed.
  • My Basic Information section looks like:
    Name: Defaults
    Title: My Science Fiction and Fantasy Library
    Style: Table
    Use AJAX: Yes
    Use pager: Yes
    Items per page: 25
    More link: No
    Distinct: No
    Access: Unrestricted
    Caching: None
    Exposed form in block: No
    Header: Full HTML
    Footer: None
    Empty text: None
    Theme: Information
  • Click the little gear button after you have changed the style to Table. This allows you to do fancy things with the columns (such as combine them) and make them sortable. All my columns except the image one are sortable.
  • The pager option lets you put only a subset of the book entries on a page, and then adds “previous” and “next” clickable text at the bottom of the page. I have it set to show 25 items per page.
  • My Sort Criteria section looks like: Node: Title asc and this is the only use in the view of our basic title content field. Since we moved the “The” and “A” words, the initial sort will be correct. If you start clicking the columns to sort, the definite and indefinite articles will be used in ordering the titles, unfortunately.
  • Finally, I have three filters:
    (field_asin_asin) Amazon: ASIN not empty
    Content: Category = Science Fiction & Fantasy
    (field_asin_asin) Amazon: Participant role contains author

    This means that we only want entries that have Amazon items (ASIN not empty), in the “Science Fiction & Fantasy” category, and the participant we list is the author. Note that multiple authors or others such as illustrators will each be displayed in separate entries, by default. There is a more general participant field, but for some reason it is not sortable. I’m still working on this. My sense is that I should first be checking for the correct content type, but the ASIN being non-empty works for now. Note to self: fix.

I think that’s about it. Go the URL of the path you entered and look at your work. In fact, do this as you go along.

As I said, I’m just getting into this and will undoubtedly change things as I learn more. Suggestions for corrections and improvements in the comments are very welcome. I’ll eventually give an update when any new and improved version stabilizes.

Let me reiterate that the relationship connection to the ASIN was key to making this work.

Mars, up close and personal


The High Resolution Imaging Science Experiment (HiRISE) at the University of Arizona has put up 1512 amazing close up shots of Mars taken by the the Mars Reconnaissance Orbiter.

Per the HiRISE website:

All of the images produced by HiRISE and accessible on this site are within the public domain: there are no restrictions on their usage by anyone in the public, including news or science organizations. We do ask for a credit line where possible: Image: NASA/JPL/University of Arizona

So noted and credited.

The image shown is a “Layered Alunite-Kaolinite Deposit” and comes with the following helpful information should you be focusing your telescope or thinking of a trip off planet:

Acquisition date: 07 April 2009 Local Mars time: 3:30 PM
Latitude (centered): -30.2 ° Longitude (East): 202.9 °
Range to target site: 255.9 km (159.9 miles) Original image scale range: 25.6 cm/pixel (with 1 x 1 binning) so objects ~77 cm across are resolved
Map projected scale: 25 cm/pixel and north is up Map projection: EQUIRECTANGULAR
Emission angle: 0.9° Phase angle: 48.4°
Solar incidence angle: 48°, with the Sun about 42° above the horizon Solar longitude: 242.2°, Northern Autumn

A hike in Letchworth State Park, NY

This afternoon my son and I went for a hike in Letchworth State Park, about 35 miles south of Rochester, NY. We don’t live too far from the park, so we only planned to spend an hour or two there. As it was, it started to rain, so we stayed somewhat less time than I had thought we would.

Nevertheless, it was beautiful. We visited a section of the park I had never seen before, Lower Falls and the stone bridge over the Genesee River. I’ve included some photos below of the former, but not the latter. A couple decided that they wanted to hang out on the bridge for a very long time, so I didn’t manage to get a shot of it.

These photos are also now on my Wallpapers and Backgrounds page. If you click a photo below you’ll see a larger photo in a format suitable for wide screens.

Wallpaper image Wallpaper image Wallpaper image

This is a close up of the rock wall on the side of the river gorge. I think it explains the rapid erosion of the land and cutting of the river.

Wallpaper image

If you go: Trails near waterfalls are often wet even if it hasn’t rained recently, so it might not be a good idea to wear sandals or your best new sneakers. Watch children closely so that they don’t get too close to the edge. My guess is that when a stone wall says that you shouldn’t sit on it, you probably shouldn’t stand on it either. You’ll probably see people do all of the above.

Party on, Linux Dudes and Dudettes

I just read Nicholas Kolakowski’s piece “Microsoft Wants You to Party Like It’s XP” over in eWeek. He says, in part:

No, really. The company wants you to throw a house party in order to promote Windows 7, sometime between Oct. 22 and 29. Your reward for hosting the social event of the season will be a Signature Edition of Windows 7 Ultimate and “your very own Windows 7 Party Pack,” as well as the chance to win a PC worth $750

People, this cannot go unanswered. We need Linux house parties in late October as well. I’ll leave it up to all you grass roots, hard coding, great partying people to organize yourselves, but what better time to introduce your friends and relatives to Linux on the desktop? Make and give away CDs of the distros, do some installations for people that want them, and demonstrate FireFox and common applications. Have them walk away with memories of a great party and cool people, plus a shiny and free new operating system.


Dylan to play three nights in Chicago at the end of October

Christmas in the Heart album cover

The Fall, 2009, tour schedule for Bob Dylan is up on his website and it includes three nights at the Aragon Ballroom (1106 W Lawrence, Chicago, IL 60640) in Chicago October 29, 30, and 31.

What better way to spend Halloween than with Dylan?

By the way, Dylan’s album Christmas in the Heart will be released on October 13. Yes, it’s real.

LinuxCon discounted registration and my keynote

I’m giving one of the keynotes at LinuxCon coming up in a few weeks and the folks over at the Linux Foundation told me about a special registration discount. If you use code 35TWT at http://events.linuxfoundation.org/events/linuxcon you can get $175 off the usual fee.

Here’s the information for my talk:

Keynote – Regarding Clouds, Mainframes, and Desktops … and Linux
Monday September 21, 9:15 AM – 10:00 AM

Linux is key to driving innovative new technology as well as business models. It’s shaking up the established view of which operating systems should be used for what workloads, while slipping quietly under some very cool new applications. In this talk, Bob will focus on three areas of great opportunity as well as challenge for Linux: the accelerating market for cloud computing, Linux as a significant operating system for mainframes, and the hope for Linux on the desktop.


My Red Hat Summit keynote: “Linux Everywhere? Matching the Workload to the Computer”

My Red Hat Summit is now available SlideShare and viewable below. You can also download the PDF directly. (The URL is now fixed.)

Abstract: It’s a testament to the wild success of Linux that it is showing up on devices from wristwatches, to mobile phones, to netbooks, to desktops, to RISC-based computers, and to mainframes, not to mention being the foundation of much of cloud computing today. That said, are users really matching the work they need to do on Linux to the appropriate software, processors and machines? Backed by customer examples, this talk will discuss the high level criteria that you can use to help ensure that your Linux implementation optimally runs your business and helps delight your customers.

More thoughts on using WordPress for antisocial bookmarks

Several weeks ago I mentioned that I had stopped using Diigo for saving and then posting digests of links into this blog. Long before that, I had stopped using delicious for that functionality and switched to Diigo.

The reasons I gave were:

  • I don’t really need my saved bookmarks available to the whole world. I just want them so I can aggregate them and post them to my blog on either WordPress or Drupal.
  • The tags used by delicious are not the categories or tags of WordPress or anything in a taxonomy in Drupal. My aggregate links should use the tags in my blogging system and not be something else belonging to the social bookmarking system.
  • I would feel more comfortable if I could save these links, or social bookmarks, myself. I suppose I’m really talking about antisocial bookmarks.

I’ll stay with this “antisocial bookmarks” idea and now flesh out what they would look like.

I’ve been manually creating the daily or twice daily link digests for a couple of weeks now and have zeroed in on what the content should be and what I should do with it. Let’s begin by looking at the link collection I put up yesterday:


Why Snow Leopard Is Truly Disruptive
Forbes.com / Brian Caulfield

“Here’s the breakthrough: Apple’s ( AAPL – news – people ) OS X, Snow Leopard, which goes on sale Friday, uses less code than its predecessor to do the same job. It’s a remarkable act of discipline that has broken a decades-long trend toward ever more bloated operating system software.”

Snow Leopard’s New Math
Macworld.com / Jason Snell

“There are, believe it or not, now two sets of entirely different terms for these two ways of thinking. For example, a gigabyte, or GB, is now defined as 1,000 bytes cubed, or 1,000,000,000 bytes. A gibibyte, or GiB, is equal to 1024 bytes cubed, or 1,073,741,824 bytes. (The same rules apply for megabyte and mebibyte, which are defined as 1000 bytes squared and 1,024 bytes squared, respectively.)

Wake up, you in back! Because here’s where Snow Leopard comes in. In previous versions of Mac OS X, Apple used the 1024^3 definition of GB. Rather than keep that math and start calling it GiB, Apple has started using the 1000^3 definition.”


Bob Dylan to voice GPS? Who do you want directing your drive?

Bob Dylan

Sign me up. Today. I have my Garmin nuvi set now to use an English woman’s voice, just so I can be driving around American “roundabouts.”

“Bob Dylan is in talks with two car manufactures to be the voice of their in-car navigation systems. The jokes are too easy with Dylan’s song titles and lyrics providing an adequate amount of “direction-”, and “road-related” themes, but would anyone seriously want to have Dylan grumble directions over an in-car GPS?”

Each bookmark has the following content elements, some optional:

  • Primary WordPress category for bookmark [required]
  • WordPress tags for the bookmark [optional]
  • Source type: article, blog entry, website, slideshow, … [required]
  • Title [required]
  • Excerpt from the bookmarked content of arbitrary length [optional, though strongly recommended if available]
  • User comment [optional, but especially highly recommended if the excerpt is omitted]
  • Site name of bookmark source [optional, examples are “CNet”, “NY Times”, etc.]
  • Author’s name of bookmark source [optional, but strongly recommended if available]
  • Image [optional]

I can imagine this information either being collected in an AJAXy window the way Diigo or delicious do it, or a more manual process within the WordPress administrative panels. Remember that a very important aspect of this is that the categories and tags from your blog that are being used, not those of an external bookmark collection service.

Each element above would be tagged with CSS classes to allow customization of the display in a particular blog.

Configuration of the service within the WordPress configuration panels would allow specification of

  • Frequency of when digests are published and the labels for the digests. I’ve been using “Daily Links,” “Daily Links, Morning Edition,” and so on.
  • Ability to publish out-of-cycle special digests with custom titles
  • The ordering of the bookmark elements in the display, as well as indicating whether optional elements should be shown.
  • Width and position of the image though this could be handled by CSS.

If I were to build this I would probably start by modifying Alex King’s most excellent Twitter Tools plugin for WordPress. He already has the logic in there for handling a MySQL table within the WordPress database and creation of digests.

My next step in my iterative approximation of what I want to see is to create some CSS for the digests rather than use explicit font changes and image placements.

This all could be done in Drupal using modules and taxonomies. I’ll leave the translation to Drupalese to the reader.

Some widescreen wallpapers

sample wallpaper thumbnail

I’ve put up a page of some widescreen wallpapers (or screen backgrounds) from some of my photos, many of which have appeared in the blog. If you click a thumbnail on the page you’ll get the full 1680×1050 image, suitable for download, if you wish.

I’ve been playing around with how to create these automatically as well as how to categorize them, so the listing and organization will probably change over time.

Ten observations on five years of blogging

The end of August is filled with anniversaries of various kinds for me. Some are happy, such as birthdays, and some not so happy, such as deaths in the family. Yesterday was a good anniversary and I celebrated five years of blogging, starting with the very first entry “How do people start using Web services and SOA? Step 1”.

I won’t make any profound statements about the significance of half a decade of blogging, but just note a few observations:

  1. I didn’t start using WordPress, but I’ve ended up here and it’s the best blogging platform I’ve seen. That said, WordPress plus all the other content management aspects of Drupal would be a killer app. The open source nature and third party plugins/modules for both platforms are extraordinary.
  2. While I’ve blogged on sites owned and controlled by others, I much prefer having my own site. This means that I’m the maintenance guy every once in a while, but that adds to the fun.
  3. Every attempt I’ve made to have other blogs beyond this core one has failed. I just don’t have the band width or interest to keep a lot of them going. That means that this is eclectic and streaky in its coverage of topics, but so be it.
  4. I definitely have times when I have nothing much to say, so I try not to say it. Having the Daily Links entries being published on a regular basis helps keep my momentum going.
  5. I don’t set aside time to blog, I do it in the gaps between the other things I do when inspiration, if you want to call it that, hits me.
  6. I should never state that I’m starting a series of entries because I almost always get blocked or lose interest when I commit to such things. It’s better to write a few entries on a topic and then call it a series after three or four postings.
  7. Some times I certainly feel as though as I can either do something or blog about it, but not both, because I just don’t have the time.
  8. Often the things I link to in Daily Links are just bookmarks for myself, and don’t have any particular message for others. Other times I use the links to assemble pieces of an argument that points in a certain direction.
  9. It’s hard sometimes, but generally staying away from world politics as a discussion topic seems to have been a wise choice.
  10. Ultimately the blog content is for myself, and serves as a personal journal of what I’ve done and thought about.

Google still beating Bing, by a lot, plus other number games

Yesterday I was reading the article “Surprise: Open-Source Users Prefer Google to Microsoft Bing” by Clint Boulton. In it, Clint talks about Chitka ad network’s analysis of their traffic from search engines:

The ad network compared the operating system and search engine data for more than 163 million searches and discovered 94.61 percent of all Linux search traffic was from Google, compared with 78.54 percent of Windows user searches.

Only 8 percent of Windows users searched Bing, with a mere .77 percent of Linux searches came through Bing.

My reading of the data is that Google is doing much better than Bing for everyone, not just open source types. Bing is still relatively new, so I think it will be more interesting to see how well it is doing in a year from now.

With that caveat, here are a few statistics from my own web site for the last month, courtesy of Google Analytics (what would Bing Analytics say?):

  • Search engines: 49.39% of all my traffic comes from Google searches, 1.11% come from Bing and .92% come from Yahoo searches.
  • Browsers: 54.05% from Firefox, 26.48% from Internet Explorer, 7.23% Safari, and 4.14% Chrome.
  • Operating systems: 62.98% Windows, 23.41% Linux, 12.68% Mac.

Interestingly, Firefox on Windows is now beating Internet Explorer on Windows, 30.14% to 26.46%.

If you compare these with the site stats I published in mid-July, you’ll see that for my site both Linux and Firefox have jumped quite a bit at the expense of Windows and Internet Explorer.

Further caveats: I talk about open source a lot on my blog, so I would expect more hits from open source users than, say, a site that was about “Windows Tips and Problem Solvers.” The “Life with Linux” blog series I did probably also skewed things.

All quiet on the western porch

Almost every summer I seem to spend quite a lot of time working on one of our porches, from building a new porch from scratch off our kitchen door in 2006, to building new screens for the upstairs northern porch in 2007, to doing major reconstruction on the eastern porch in 2008. Earlier this summer I made some new screens for the sleeping porch above the eastern porch.

There are three other porches that need work:

  • New trim molding and screens on the northern porch. This will wait until at least next year.
  • New posts for the front, or southern porch. I’ve made the wooden blanks for these and will complete them later this summer.
  • New steps for the western porch.

I’ve been on vacation this week and I tackled the last job. It’s not done, but this is a progress report.

I’m replacing the steps because, simply, the old ones rotted. At first I thought I could get away with replacing one stringer, a piece of wood cut in a zig-zaggy way to support the steps, and one riser, a vertical piece at the back of a tread, the part you step on. (See a diagram of all stair parts.)

The basic rule of wood rot is that it is always more extensive than you first think. As I opened up the step structure a few weeks ago, I saw that another stringer was just beginning to have rot damage and several of the risers were similarly damaged. Rather than do a patchwork job, I decided to replace the whole thing. In some ways that made the job simpler, but it also made it more expensive in dollars, material, and time. However, I knew that the job would not take multiple months of my spare time like the previous porches did. So far that seems to be that case.

Western porch, circa 1865

Before I get into what I did on these steps, let’s look at the history of the porch. The photo on the right is undated, but I would guess it was taken around 1865, with the house having been built in 1820. The porch in question is on the left. The buildings on the far left are no longer here, but a new back of the house exists and is not in the photo. Also not in the photo, of course, is the fence at the bottom of the steps that I built in 2004.

It’s hard to tell in the photo, but it looks like the steps had railings in 1865, as you would expect. The steps I’m replacing did not have railings and this would certainly be a problem if we used the door, the porch, and the steps. We don’t, and the area right inside the door is a kind of cool area we can stash things in, closed off by two doors. We’re rethinking our use of that area and the door, but it’s not urgent. From a building code perspective, the porch is high enough off the ground that the steps must have a railing.

The steps I’m replacing were clearly not the original ones. Also, we had the porch base rebuilt and the columns replaced about five years ago. It was the ten foot columns that gave me pause and ultimately had me hire a carpenter to do the work.

Wooden columns rot. There are several tricks to delay this, but ultimately they rot. The ones on the porch now are fiberglass, but you can’t tell that now that they’re painted. I felt guilty about this for a while, but new wooden columns would have been very expensive and custom work. I’m now very comfortable knowing that the columns will never rot.

The steps I’m replacing were removed and then replaced when the other porch work was done. They were in fine shape then, but the lack of a railing bothered me. This factored into my decision to rebuild the steps because I could add new posts, railings, and spindles. Attentive readers may remember that I spent a lot of time thinking about and then making spindles for the kitchen porch.

Western porch, 2009

The steps involved with building the new steps were/are the following:

  1. Remove the old steps. I saved a couple of the stringers to use as templates for the new ones. I also saved the one inch thick treads because they are large pieces of wood that I may be able to trim and use on other projects.
  2. Cut new stringers from pressure-treated (PT) wood. I hate figuring out the dimensions of stringers, but that part was easy because I had the templates. Nevertheless I approached the cutting of the stringers with a certain amount of dread. It went fine. Always wear a dust mask when cutting PT wood and try to do it outside. Afterwards, wash your hands thoroughly up to your elbows.
  3. With a helper, assemble the stringers with a supporting PT 2×6 at the top part that will go against the porch and another that will go on the ground. My son and I found it easiest to use saw horses to help hold the stringer assembly while we nailed it all together. Predrill the holes for the galvanized common nails so the wood doesn’t split. To also help prevent splitting, slightly dull the tips of the nails by placing the heads on something solid and tap the tips with a hammer. Really, do this.
  4. Move the stringer assembly in place, level it, and attach it to the porch with galvanized carriage bolts. I used four 3/8″ bolts for this. I also put a couple of nails into each corner for a little extra support. Make sure the assembly is set so that water will flow off the steps.
  5. Add some concrete under the stringer assembly to fill any gaps. I also put a couple of bolts into the concrete and the bottom PT piece to hold the stringer assembly in place. Later I’ll neaten this up with some mortar.
  6. Build new posts. I started with some very nice looking non-PT 2x4s and glued them up to make two blanks that were four feet long and  3 x 3 1/2″ around. I then used my table saw to rip the blanks so they were three inches square. I left them unfinished until I …
  7. Temporarily install the posts, making sure they are vertically leveled. The posts were bolted to the right-most stringer.
  8. Determine the position of the top railing. I wanted the railing to be 36″ high in the center of the treads, so I took a scrap piece of wood as a railing surrogate and clamped it to the railings at the same angle as the steps. By transferring marks and careful measurement, I could mark the posts at the exact right cut positions and angles. This is trickier than it sounds, but ultimately simpler than I thought it would be. Take your time on this. You really do not want to screw up the height and angle of the railing.
  9. Miter the posts to the angles you just determined. Again, be careful and take your time. If you have any lingering doubts, re-measure. Make sure you write down the angle from your miter saw. You’ll need it again to cut the angles at the ends of the railing and on the spindles.
  10. Chamfer the corners of the posts. Use a router to nicely shape the corners of the posts, ending before the top and bottom. The rear chamfers (further up the steps) should be higher than the front ones.
  11. Tread cut around post

  12. Prime the posts and reinstall permanently. I pre-prime all non-PT wood before I install it. This stretches out the job, but will make the final paint job easier. In theory, it will also make the wood last longer. Wood rots, did I mention that? Note that each step tread is made from two pieces of wood in my case, so if you are cutting into any step tread to fit around a post, you may have to put the step in place before you install the post. See the photo.
  13. Route and rip the piece for the railing. I started with a very nice 2×4 and then rounded over the corners on the bottom side and then used my table saw to cut 45 degree cuts on the top corners. This gives a nice contour to hold.
  14. Determine the length of the railing and cut it so the ends are vertical when installed. Use the angle from #9. The railing will want to slide down the posts, so use a spring clamp on the railing above a post to keep it in place.
  15. Install the railing with finish nails, predrilling the holes. Use two or three long galvanized finish nails through the top of the railing into the post, and two nails from the back of the post into the railing.
  16. Cut, route, glue, fill, and caulk the steps. This is where I am now. Four of the five steps are installed. I would be done except that we had a thunderstorm today and I’ll have to wait until the steps dry out tomorrow before I install the last pieces.
  17. Sink any nail heads into the wood, fill the holes and any dings with a non-water-based filler, let it dry, sand the filler, finish priming all wood.
  18. Put on one coat of the paint you plan to use on the treads. The trim may only need one coat of white semigloss paint, but the treads will definitely need two.
  19. Compute how many spindles you will need.
  20. Cut, route, fill, sand, prime, and install the spindles. It may be helpful if you clamp a couple of pieces of wood to the top railing and the stair tread to hold the spindles in place and prevent them from moving while you attach them. Previously I would put an exterior screw straight down through the railing on top and used two galvanized finish nails on the bottom, but for this job I’m going to use all nails. The reason is that nails produce much smaller holes that need to be filled. Over time, the larger plugs work loose and you need to refill and repaint them.
  21. Finish the paint job.
  22. Stand back and admire your work. Make sure your relatives do as well.

I have a few other things to do around the steps such as cleaning and repainting the fence, and putting in a brick pad at the base of the steps. This will take care of the problem you see in the middle photo where the rain caused some mud to splash on the lower steps.

Oh, and since I’m going to have new railings and spindles, I might as well take the declining old ones off the upper porch section and put on new ones to match. More fun for weekends in September.

Some note taking and writing software for the Mac

I’ve been on vacation this week, so blog posts have been rare, but here’s an article from earlier this year and some links to note taking and writing software for the Mac that I think are interesting. Also, check out Literature & Latte (love the name) for more links.

Bringing Order to the Chaos of Notes
New York Times

“Computers have revolutionized how we manage information, but for many years they’ve offered meager help for that most pedestrian of paper-based tasks — saving all the ephemeral data that streams into your life.

During the last few weeks, though, I’ve been testing several programs devoted specifically to helping people take better notes. I’ve also tried novel note-taking strategies involving old software. And I have good news — you can free yourself from ink and paper, because it’s now easy and convenient to use a computer to manage your notes.”

NoteBook 3.0
Circus Ponies

“Is your desktop cluttered with files? Are you drowning in sticky notes? Boxes of note cards? 3-ring binders? Do you remember where to find that important web clipping? The briliiant idea or crucial instruction you scribbled on a piece of paper? Circus Ponies NoteBook is the award-winning application that helps Mac users manage all those bits of information that lack a good home. Whether it’s the notes, clippings, and to dos of your life, or the e-mails, diagrams and spreadsheets of that important project, NoteBook helps you keep it all organized and accessible.”

Literature & Latte

“Scrivener is a word processor and project management tool created specifically for writers of long texts such as novels and research papers. It won’t try to tell you how to write – it just makes all the tools you have scattered around your desk available in one application.”


“SuperNotecard is an intuitive tool that uses notecards to capture and organize your ideas. These virtual notecards can be moved into decks, arranged on the screen, or grouped and categorized with ease.

Novelists use it to experiment with storylines and to circle back, bear down and perfect their prose and characters—all with notecards that don’t run out of room or fade with age.

Researchers use SuperNotecard to gather facts, manage sources and finally stitch it all together in a way that is significantly more visual and capable than a traditional outlining tool.”

The Omni Group

“Welcome to OmniOutliner 3, an amazingly flexible program for creating, collecting, and organizing information. Give your creativity a kick start by using an application that’s actually designed to help you think. It’s like having an extra brain – one that doesn’t keep losing the car keys.

You can use OmniOutliner’s document structure to create hierarchies of main headings and subpoints that can be expanded and collapsed, which are immensely useful when it comes to brainstorming new ideas, drilling out specifics, and lining up steps needed to get everything done. But you aren’t limited to outlines – you’ve got multiple columns, smart checkboxes, customizable popup lists, and an über-innovative styles system at your disposal.”

Bartas Technologies

“CopyWrite is a project manager for writers of all kinds. Rather than focus on formatting and layout, CopyWrite stands apart in its project-oriented approach. Word processors and page layout tools are good at what they do – formatting and layout – but they offer no help at all to a writer during the creative process. In fact, the ‘gee-whiz’ features crammed into these tools do more to hinder writers, getting in the way of their work flow. Put simply, these tools constipate writers; CopyWrite is like a tasty bran muffin … with extra bran.”

Ulysses 2.0
The Soulman

“Whether you’re a blogger, a poet or a published novelist: Ulysses 2.0 is the *definite* package for all your creative writing needs. Brainstorm, draft, revise, submit; distraction-free and fully focused. No strings nor styles attached.”

Aftermath of site reconstruction: a few more nits

Ten days ago I documented how my hosting provider deleted the wrong account and wiped sutor.com and some other sites I own. I had backups for all the files and got most everything running within a few hours, but it was a pain.

Under Construction

What did not happen automatically upon restoring the files was any customization I had done via the hosting control panel. I discovered this today when WordPress was complaining about memory problems when I tried to mail myself a backup database and update to version 2.8.4 (do it).

WordPress is written in the PHP programming language and the normal setting for the amount of memory to be used is pretty small, around 2M if I remember correctly. What I do remember is that I upped that to something much larger in my php.ini file, so I couldn’t understand why I was having a problem.

So, I bounced over to FileZilla to see what was in that initialization file and … it wasn’t there. I did have it on my local machine, but higher up in the directory tree. I had neglected to restore it. Once I did that, the WordPress upgrade was successful.

However, I realized when poking around the control panel for my host provider was that I had also neglected to turn on FastCGI for PHP. This meant that for the last 10 days there was a lot of extra load on the server while many instances of PHP were started and stopped. Luckily I had caching working, so that helped.

With these changes, I hope that the site is now fully back to normal and operating efficiently. Fingers crossed.

Note: WordPress now has a very cool automatic upgrade (Drupal take note), but do heed their advice of backing up your files and database. If anything goes wrong mid-update you might need to reinstall your blog software and content.

Wooden screens: complete and installed

In a series of blog entries, I’ve been documenting a small project to build two new wooden screens for a sleeping porch on our house. Though I only needed to construct a couple of screens, they were large, hence awkward, and needed to be installed about 15 feet up in the air.

At the end of the previous entry, I had done the woodwork and spot primed the knots in the woods. I then fully primed the wood and painted the screens with a good quality exterior semi-gloss paint. Here is one of the screens in my workshop waiting to have the aluminium screening attached:

Wooden screen project - final stages

I’ve used plastic screening on other projects and prefer to work with it. It’s not as heavy and doesn’t seem to have a life of its own when it comes to manoeuvring it on larger screen frames. I chose aluminium here to match what was on the other screens on the porch. Most modern screen doors use plastic screening.

To attach the screening, start at one end and align it squarely with the edges of the wooden frame. You will need to trim it later, but place the screening so you have enough to work with and to minimize waste. Using a carpentry staple gun (e.g., Arrow) and 1/4 inch or 3/8 inch staples, put in staples along one edge, placing them every three to four inches. Now move to the opposite side of the screen frame, stretch out the screen evenly (a helper is useful here), and staple along that edge.

You will be covering these staples with molding, so place the staples half the width of the molding away from the edge of inside edge of the frame. Stretch and attach the screening long the other sides of the frame and along any internal wooden pieces. Here’s one of my screens showing the screening fully stapled but untrimmed:

Wooden screen project - final stages

My original plan to was to make the trim molding myself by slicing pieces off “1 by” lumber. I would have first used my hand router to round over the edges slightly and then ripped a 1/4 inch strip on my table saw. That would have worked but would have been very time consuming. By chance, I found a inexpensive source of the molding I wanted at a local but new-to-me lumber store, so I just bought enough for the two frames.

Tip: buy an extra piece in case you screw up when cutting the molding. I didn’t on this project, but I would be lying if I told you that I had never done it.

Using a good, long straight edge and a box cutter knife, trim the screening to a width just a bit narrower than your molding. Some people do this after they attach the molding, but I find that if you wait you sometimes have to spend a lot of time cleaning up the stray pieces of aluminium screening that did not cut cleanly. You might also see the edge of the screening under the molding if you trim it at the end. Your choice; see what works for you.

miter saw

I used my chop saw (a DeWalt 12″ double bevel miter model) to cut the trim molding at 45 degree angles. Pay extra attention to make sure that you are cutting the angles in the right direction. Also, you may be tempted to measure the screens and then use a tape measure to transfer the measurement to the molding before you cut it. Don’t do that.

Instead, cut one 45 degree angle and then place the molding on the screen where it will go. Make a mark on the molding where the cut should be made on the other side, draw a little line indicating the direction of the angle, and then use that to guide how you make your cut.

The philosophy here is that the frames are already made and are as square and straight as they are going to be. Measure the molding to the pieces, not some now-abstract design.

Use a fine trim blade on your saw if you have one. This molding is so small that it could have been cut using a hand miter saw and box. Just take your time and cut accurately.

Here is the frame with one piece of molding attached with 3/4 inch brads:

Wooden screen project - final stages

Fast forwarding, all the molding is in place and I’ve used some wood filler to top off the holes left after sinking the brad heads slightly below the surface with a nail set:

Wooden screen project - final stages

Once the wood filler dried, I sanded it and touched up the paint on the screens, covering the nail heads, corners where the pieces of molding met, and any dings in the wood I may have made while handling the large screens.

Finally, here is one of the screens installed on the porch. This screen fit in easily while the other needed a bit of gentle persuasion. I secured the screens to the window frames from the inside using 3 inch exterior screws. All done.

Wooden screen project - final stages

Open source and 3D

I’m one of the least artistic people you will ever meet though I like to build things. Through the years I’ve experimented with various applications that promised to allow me to visualise what a room or a building would look like without the time and expense involved with actual construction.

Sweet Home 3D

Thus I read with interest the related blog posts “Sweet Home 3D” and “Sweet Home 3D: Open Source, Cross Platform Design Application” which, not surprisely, talk about the Java-based open source program called Sweet Home 3D. This seems similar to the programs I used on Windows years ago, though it is, as I said Java-based and open source. I’ll definitely give it a try.

In the meanwhile, don’t I really want something like this in Second Life or OpenSim? That is, I want to be able to model something, have my avatar walk through it, and have your avatar stop over for a visit to take a look. While I’m at it, I want some CAD quality modelling tools built in so I can place the electrical outlets to code as well as get a shopping list for raw materials.

Going further, I want to pull down the paint colors from Benjamin Moore and then get an estimate of how much paint I’ll need to make that bathroom just that special shade of lavender. When done, how about helping me generate an order over the web that I can then use to buy the paint. I’m happy to pick it up at the store down the street, by the way.

Ditto for wallpaper and flooring.

For furniture, shouldn’t the major brands provide me drop-in 3D models that I can use at the right scale to show what my furnished room will look like? Again, it could be tied to the ordering process.

This would allow even more possibilities for professional interior designers. I might even get a discount on all that paint, wallpaper, and furniture.

I think you get the idea. Connecting a virtual world with the practical ideas of how we design and build in the real world would be a welcome next step. It can’t be a one-off special environment, however, it has to be something we all want to and can use.

Using WordPress or Drupal as a social bookmarking service (?)

I don’t know how to do this.

I don’t want to add little icons or buttons at the ends of posts so that you can link to them via delicious or diigo or something else. I have those.

What I want to do is use my own privately hosted installation of WordPress or Drupal as a social bookmarking service. That is, I want to:

  • Find an interesting item on the web, say some news or a cool blog entry.
  • Then I want to click a menu item and have a box pop up to let me save the title, URL, a comment, and some tags for the item.
  • When I click “Save” or “OK,” my information should be saved (more on this in a bit).
  • I should be able to have these items automatically posted to WordPress or Drupal.

For a long time I used delicious to do this but then I switched to Diigo when delicious’s blog posting became unreliable for some time. Occasionally this happens with Diigo, but less often.

My issues are:

  • I don’t really need my saved bookmarks available to the whole world. I just want them so I can aggregate them and post them to my blog on either WordPress or Drupal.
  • The tags used by delicious are not the categories or tags of WordPress or anything in a taxonomy in Drupal. My aggregate links should use the tags in my blogging system and not be something else belonging to the social bookmarking system.
  • I would feel more comfortable if I could save these links, or social bookmarks, myself. I suppose I’m really talking about antisocial bookmarks.

So, to summarize, I want to use my native tags, store the bookmarks myself, and be able to set a schedule for when they are bunched together and published.

Pointers? (I know about Scuttle …)

Also see: More thoughts on using WordPress for antisocial bookmarks

How to dismantle a website

Through the years I’ve done several websites, both for me as well as my wife. Mine are mostly all grouped under one account and my wife’s under another. Several days ago we decided that we would not renew one of my wife’s websites and I turned off auto-renewal. Yesterday on my way home from a business trip, I got an email saying that her website had auto-renewed. I followed up with an email to the hoster saying that was not what I wanted, we went back and forth a few times, and I was told that they would cancel the site and give me a prorated refund.

Imagine my surprise when I later got an email that talked about the prorated refund I would be getting for my websites. Sure enough, I hopped on the web and discovered that sutor.com (this website) was gone. They had deleted the wrong account and all my websites.

I got them to restore the account (“would you like to renew that for two years, sir?”) but there was a problem with the files. After much time on the phone with support, I learned that they had no backup of my site (“too big”) and so I was essentially starting off with DNS entries pointing to nothing.

I wasn’t really worried about the files because I had complete backups, but it would take a fair amount of work to get everything up and running again. For example, for the WordPress part of my site I needed to:

  1. Upload all the files, including my latest database backup (24 hours old).
  2. Create a new MySQL database with the same name, user, and password as the previous one.
  3. Reinstall WordPress as a new administrator.
  4. Activate my database management plug-in.
  5. Restore the latest database.
  6. Find and reload the three latest blog entries that were not in the backup.
  7. Snapshot and save the latest database.

I then repeated something like this for the Drupal side. I’ll be uploading my photo collection for another eight hours.

One thing that was especially annoying was that I had to manually redefine all the mail forwarders for family members using sutor.com. I need to back that info up for the next time this happens.

Without the backups of the data and the configuration I would have been in big trouble. As it was, it took hours on a Saturday night to get this working, after I had flown all day. I was really unhappy.

Later last night I got a starter account with slicehost. If I’m going to have to do so much of this myself, I might as well do almost all of it. I’ll use the slicehost account for experimenting with server-side Linux. I’ll chronicle that journey here from time to time.