Opinion on the Amazon S3 Outage; Checklist for Dealing with Outages

My journalist colleagues at Wired.com published some of my comments related to Amazon S3.1 Wired also posted another article titled Customers Shrug Off S3 Service Failure. I agree with the views of many of the customers expressed in the article. Don MacAskill, CEO of the popular photo hosting site Smugmug, wrote an understanding post about it.

My entire career working for media companies, I’ve held firm the belief that the uptime, reliability, performance, scalability, performance and security of commercial Web sites is of paramount importance. When sites that I’ve been responsible for have had issues, my colleagues and I have given our personal time and energy to resolution. With my teams, I spend considerable time on proactive measures. I’ve had the honor of working closely with and learning from some who do an excellent job running technology operations.

Experience has taught that things can and sometimes do go wrong. Sometimes calculated risks don’t pan out. Sometimes mistakes cause problems. We are human. We should strive for perfection; we can get close to it, but not fully attain it. We should be prepared for such scenarios. When they happen, we should work diligently and expeditiously on resolution and have frequent and honest communications with stakeholders and customers. Such communications during the incident should include:

Update 2010-Jan-24: This checklist is now maintained on the Checklists Wiki Web site at:

www.checklistnow.org/wiki/IT_Incident_Reporting

During-Incident Communication Checklist

  • Current status
  • What is the full impact?
  • Estimated time to resolution
  • Any recommended workarounds until resolution, if practical
  • Assurance that it is being worked on
    • It often helps to mention who all are working on it and what they are doing

The post-incident communications to stakeholders and customers should include:

Post-Incident Communication Checklist

  • Summary
  • What happened, how and why it happened?
    • Including full description of all impact
    • Do not blame2 third-parties or say things like “beyond our control”. A technology leader takes responsibility equally for both insourced and outsourced products and services.3
  • How it was resolved
    • If the resolution is temporary or long-term
  • Next steps
  • Plan for eliminating or minimizing this and similar incidents from happening again
  • Thank all those who helped resolve and the customers for their understanding
  • Mention the monetary credits you plan to give as per the Service Level Agreement (SLA)
    • Specify any additional ‘make goods’ or returns you plan to make to the customers above and beyond the credits as per SLA, if appropriate.

Stakeholders and customers here refer to internal customers of the technology operations team (e.g. the concerned folks in editorial, marketing, sales, finance, legal and other departments). External communications to the public Internet should be handled in consultation with legal and public relations.

S3′s outage (or any outage) isn’t to be taken lightly, but I have faith Amazon and their customers will learn from it.

Disclaimers:

  • As explained in the terms of use of this site, any opinions expressed on my personal Web site do not reflect those of any employer, past or present. My Web site and I in my personal life neither represent nor speak for any corporation.
  • I have no affiliation, financial or otherwise with Amazon.com. I happen to be a user of their products and services, some of which I like and some that I don’t.
  • Personal Web sites like this are exempt from the performance requirements of corporate Web sites :-) My personal Web site is for expressing, learning and R&D. It also happens to be hosted on Amazon EC2 and S3.
  1. Silicon Alley Insider and ValleyWag have amusing spins on it. :-) []
  2. There may be extreme instances, especially when criminal activity or malicious wrongdoing was the cause where it would be appropriate to blame someone. []
  3. It is ok to mention service providers, or describing external events for explaining what happened, but don’t do it in a “it was their fault, not ours” tone. The technology leader should factually describe what happened and take responsibility. []

Social Graphs API: WordPress Plugin: Blogroll Links

If you already know what the Social Graph API and XFN are, you can skip the background information and go directly to the Blogroll Links plugin for WordPress that is designed to work with these.

Update: 2010-Feb-20: Version 2 of the Blogroll Links plugin for WordPress uses the Shortcode API and so introduces a new code-tag format. The new plugin still supports the old (now deprecated) code-tag format for backwards compatibility. See below for examples.

Social Graph API

Google recently announced the Social Graph API.1 From Google’s Code site:

With so many websites to join, users must decide where to invest significant time in adding their same connections over and over. For developers, this means it is difficult to build successful web applications that hinge upon a critical mass of users for content and interaction. With the Social Graph API, developers can now utilize public connections their users have already created in other web services. It makes information about public connections between people easily available and useful.

We (Google) currently index the public Web for XHTML Friends Network (XFN), Friend of a Friend (FOAF) markup and other publicly declared connections. By supporting open Web standards for describing connections between people, web sites can add to the social infrastructure of the web.

The Google Code site also has a video introduction to the open social graph:

YouTube Preview Image

The Google Code site has some interesting example applications. To see the power of the open social graph, follow these links:

All I did was enter my home page http://www.rajiv.com/ into these applications and got the results linked to above.

XHTML Friends Network, a component of open social networks

XFN (XHTML Friends Network) is a simple way to represent human relationships using hyperlinks. In recent years, blogs and blogrolls have become the fastest growing area of the Web. XFN enables web authors to indicate their relationship(s) to the people in their blogrolls simply by adding a ‘rel‘ attribute to their <a href> tags, e.g.:

<a href="http://www.rajiv.com/" rel="friend met">Home Page: Rajiv Pant</a>

The above link means that the page at http://www.rajiv.com/ belongs to a friend of the person who who owns the page this link is placed on. The met tag specifies that the two friends have met in real life. The link above would not be placed on a page owned by Rajiv Pant. It would be placed by a friend on their page, for example, on http://www.paradox1x.org/

Here is another example:

<a href="http://photos.rajiv.com/" rel="me">Photo Albums: Rajiv Pant</a>

This link states that the page at the URL http://photos.rajiv.com/ belongs to the same person who owns the page this link is placed on. For example, the above link would be placed on http://www.rajiv.com/ telling the Web that the URLs http://photos.rajiv.com/ and http://www.rajiv.com/belong to the same person.

To find out how to write and use XFN, or to write a program to generate or spider it, visit the XFN Web site.

Blogroll Links Plugin for WordPress

For people who maintain their Web site or blog using the WordPress blog content management system, I created an open source plugin called blogroll-links that uses WordPress’ built-in Blogroll feature2 and presents links to friends’ home pages and own pages on social networking sites using XFN in the links.

Features of this plugin

  • It can show the links by category in blog posts and WordPress Pages.
  • It uses WordPress’ standard built-in Blogroll links database. There is no hassle of another list of links to maintain.
  • It can be used to show only the links assigned to a particular category, by stating the category slug as defined in that category’s setting in WordPress.
  • It honors the Show/Hidden setting as defined for each link in WordPress.
  • It displays the link in the same window or new window, as specified for each link in WordPress.

See this plugin in action

  • http://www.rajiv.com/friends/
    • The two lists, first one of links to my own pages on various social networking sites and the second one of links to some of my friends’ pages are generated by this plugin. Yes, those social networks’ logo pictures are also taken by the plugin from the WordPress standard Blogroll links. Code:
    • <h3>My Pages on Social Networking Sites</h3>
      [blogroll-links categoryslug="rajiv-web" sortby="link_name" sortorder="desc"]
      <h3>Web Sites of Some People I Know</h3>
      [blogroll-links categoryslug="people" sortby="link_name" sortorder="desc"]
  • http://www.rajiv.com/charity/
    • This list of charitable organizations with brief descriptions is generated by the plugin. Code:
    • [blogroll-links categoryslug="charity"]
  • http://www.rajiv.com/blog/2004/08/02/search-engines/
    • This list of search engines is maintained as Blogroll links in WordPress. Code:
    • [blogroll-links categoryslug="search-engines"]
  • http://www.rajiv.com/
    • The featured links shown under the “What’s featured here?” section shows the links I’ve categorized as featured in WordPress’ Blogroll links. Code:
    • <a title="featured" name="featured"></a>
      <h2>What's featured here?</h2>
      [blogroll-links categoryslug="featured" sortby="link_name" sortorder="desc"]

Download & install plugin

  1. WikiPedia article explaining what an API, or application programming interface is. []
  2. It does not make you maintain yet another list of links []

This Web Site is Now Hosted on Amazon EC2 & S3

This web site, www.rajiv.com is now hosted on Amazon.com’s Elastic Compute Cloud (EC2) and Simple Storage Service (S3) services. They are part of Amazon Web Services offerings. If you are a technologist, I recommend EC2 and S3. To learn more about them, you can follow the links in this article.

Benefits of hosting a Web site on EC2 & S3

  • The hosting management is self-service. Anytime you want, you can provision additional servers yourself and immediately. Unlike with most traditional hosting companies, there is not need to contact their staff and have to wait for them to set up your server. On EC2, once you have signed up for an account and set up one server, you can provision (or decommission) additional servers within minutes. Even the initial setup is self-service.
  • EC2 enables you to increase or decrease capacity within minutes. You can commission one or hundreds of server instances simultaneously. Because this is all controlled with web service APIs, your application can automatically scale itself up and down depending on its needs. Billing is metered by an hour as the unit. This flexibility of EC2 can benefits many use cases:
    • If your web sites get seasonal traffic (e.g. a fashion site during shows) or can temporarily get much higher traffic for a period of time (e.g. a news site), EC2′s business model of pay for what you use by the hour, is cost-effective and convenient.
    • If yours is the R&D or Skunkworks group at a large or medium size organization or a startup company with limited financial resources, renting servers from EC2 can have many benefits. You don’t have to make a capital investment to get a server farm up and running, nor make long-term financial commitments to rent infrastructure. You can even turn off servers when not in use, greatly saving costs.
  • It allows me to use the modern Ubuntu1 GNU/Linux operating system, Server Edition. Among Ubuntu’s many benefits are its user friendliness and ease of use. Software installations and upgrades are a breeze. That means less time is required to maintain the system while retaining the flexibility and power being a systems administrator gives.
  • EC2 has lower total cost ownership for me than most hosting providers’ virtual hosting or dedicated server plans. Shared (non virtual server) hosting is still cheaper, but no longer meets my sites’ requirements.2

Potential drawbacks/caution with EC2 & S3

  • While S3 is persistent storage, EC2 virtual server instances’ storage does not persist across server shutdowns. So if your web site is running a database and storing files on an EC2 instance, you should implement scheduled, automated scripts that regularly back up your database and your files to S3 or other storage.
    • Consistent with what I read in some comments online, my EC2 virtual server instance did not lose its file-system state or settings when I rebooted it. So rebooting seems to be safe.3
    • This potential drawback is arguably a good thing in some ways. It compels you to implement a good backup and recovery system.
    • This also means that after installing all the software on your running Amazon Machine Image (AMI), you should save it by creating a new AMI image of it as explained in the Creating an Image section of the EC2 Getting Started Guide.
      • This is an issue since you may want to do this every time after you update your software, especially with security patches. Until Amazon implements persistent storage for EC2 instances, you could do this monthly. You can script this to be partly or fully automated. Since Amazon’s EC2 instances are quite reliable, this is not a major concern.
  • An EC2 instance’s IP address and public DNS name persists only while that instance is running. This can be worked around as described under the tech specs section below.

Some articles about Amazon’s hosting infrastructure services:

Tech specs of my site:

  1. www.ubuntu.com []
  2. I plan to split rajiv.com into separate sites, The India Comedy site will move to comedy.rajiv.com and the SPV Alumni site will move to spv.rajiv.com. The latter two are community sites and will benefit from a community CMS like Drupal. []
  3. However, please be aware of a known issue that on some occasions caused instance termination on reboots. []
  4. I created my AMI virtual machine by building on top of a public Ubuntu AMI by Eric Hammond. []

Why I’m not a fan of fingerprint scanners for computer security

These days many notebook computers and portable devices like USB drives are featuring fingerprint scanners which they advertise as biometric security.

I’ve never been a fan of biometric security of this type. I will explain why using different scenarios:

Likely scenario: Stolen or lost laptop

If your laptop is lost or stolen, it is bound to have nice samples of all your fingerprints all over its nice smooth body. Picking up samples of your fingerprints from your laptop surface is much easier than cracking your password. A few internet searches or a visit to a detective/spy shop will provide the person in possession of your notebook computer or other lost gadget all they need to make copies of your fingerprints and create a mold that they can use to authenticate as you.

If your laptop had been secured with a password and encryption, they’d likely reformat your hard drive and your losses would be limited to your hardware. If a fingerprint scan was all that was required to gain access to your account, then your data, your privacy, not to mention your peace of mind for years to come will likely be stolen too.

Another scenario: Forced access to your computer

Let us consider another likely scenario without going into the cinema-like gruesome situation of a villain cutting off your thumb to forcibly access your computer. Say you are sleeping in a shared college dorm. Your roommate or a friend can bring your laptop near you and easily swipe your finger on it to gain access to all your files. You don’t even have to be unconscious. A person or gang stronger than you can easily overpower you without hurting you physically and swipe your finger on your computer to gain access.

Security Related Cartoon from XKCD

You see? This type of fingerprint scanning biometric security alone replacing passwords (instead of being used in combination with them) is a lot less secure than one would think. Such advertising of biometric security might seem impressive, but it leads to a false sense of security. In this day or digital privacy and identity theft, relying on such an insecure authentication alone is not a good idea.

As an aside, here is an interesting article on how fingerprint scanners work at HowStuffWorks.com.

iGo Universal Charging Adapters for Multiple Devices (Product Review)

iGo everywhere85 Notebook Power AdapterI use an iGo adapter to power and charge my electronic devices when I’m traveling. The concept behind these is that you can use one adapter/charger for multiple devices like notebook computers, mobile phones, bluetooth headsets, music players, cameras and hand-held video game players. Having one charger for multiple devices cuts down on the clutter and makes it convenient to carry. iGo has been has been selling these for many years. Kensington and Targus also make similar universal adapters. Also, in the last couple of years, many phones and small devices have begun to support USB based charging.

Such universal charging systems have many benefits. For example:

  • I have different makes and models of notebook computers at work and home. Sometimes I need to bring my work laptop home or take my home laptop to the office. With a universal charging adapter that can be used with either of my notebooks, I don’t have to carry a charger between home and the office.
  • When I travel, I sometimes carry my work laptop. On other trips I carry my personal notebook computer. I can just keep the one (same) charger in my travel kit regardless of which laptop I’m traveling with.
  • When I change my mobile phone handset, I only need to buy one tip (~ $10) for my new phone. I don’t need to buy a new set of chargers for my home, office, car and travel. The same applies to a new laptop computer.
  • iGo powerXtender battery operated chargerI love the iGo powerXtender battery operated charger which allows me to charge my mobile phone or iPod Nano using two standard AA batteries when doing outdoor activities like hiking or exploring a city walking.
  • At places like Airports where there are not enough power outlets for everyone who needs to use one, I can charge up to three devices — my laptop, my mobile phone and another small mobile device (e.g. iPod, Amazon Kindle) while taking up only one power outlet on the wall. That’s a nice, friendly thing for my fellow passengers.
  • If I happen to be carrying a compatible tip and a colleague/friend/relative of mine needs to charge their computer or phone, but doesn’t have their charger handy, I am able to help out.

iGo manufactures a number of different chargers. While they are great, they have one shortcoming: At present, notebook tips between different iGo chargers are not interchangeable. (Their sales agent informed me of this in our pre-sales conversations.) For people who only need to have one iGo charger (e.g. for travel only), this is not a problem unless they change their adapter. For e.g., to upgrade from the iGo everywhere85 charger to the higher wattage iGo everywhere130 charger to support their new Macbook Pro (which needs more power than most notebooks). In fact, the iGo Frequently Asked Questions page explicitly states:

No, parts including notebook tips and adapter specific cables can’t be interchanged between adapters. Each adapter falls within a certain electrical range. The parts are designed to regulate the amount of volts and amps that flow in and out of the product. Altering or switching parts can cause serious damage to your equipment.

It would benefit the consumers even more if the notebook tips (and cables) were interchangeable between different iGo adapters. For example, I’d buy 3 or 4 or more iGo adapters:

  • One for travel that I’d take with me on trips and always keep in my travel bag. This would be a wall+car+airplane unit.
  • One for home. This would be a wall-only adapter.
  • One for the office. This would be a wall-only adapter
  • I’d keep a car/auto-only adapter in my car all the time.

This way, when I am at home or in my office, I don’t need to carry or take out my travel adapter. I would only keep & carry the tip with each device (which is much lighter and easier than always carrying the device + tip + adapter).

Also, in the future, I may need to buy new adapters. Say, for example, if iGo came up with a very lightweight one for travel.

Given this situation, which I think is hardly unique to me, it would be useful if iGo notebook tips were interchangeable among different iGo adapters, present and future. It wouldn’t make sense if I had to buy new tips for each device when I get a new adapter.

Having said that, iGo adapters are still excellent.

Rating: ★★★☆☆

Donate to a good cause and get a useful laptop computer

One Laptop Per Child LogoThe mission of One Laptop Per Child (OLPC) is to empower the children of developing countries to learn by providing one connected laptop to every school-age child. You can help accomplish the goal and help make education for the world’s children a priority, not a privilege. OLPC is offering1 a Give One Get One program in the United States and Canada. During this time, you can donate the revolutionary XO laptop to a child in a developing nation, and also receive one for a child in your life (or for yourself ;-) in recognition of your contribution.

When you make this donation, you also get one year of complimentary T-Mobile HotSpot access. This complimentary service from T-mobile for one year, valued at more than $350 is a sweet bonus you get for your for your good deed.

I just ordered one. This is an excellent, practical and useful laptop computer for kids or even for adults for basic computer needs. Check out the specs. It is a very rugged, portable, practical and cool computer to carry around at the fraction of the cost of rugged laptops like the Panasonic Toughbooks for business, which are also excellent, but meant to serve business users’ needs.

The XO can be used for basic Web use, writing documents and communications. The XO can even be recharged by human power. That makes it a great system to carry on personal travel, adventure trips and camping because of its rugged design, low cost and that it can provide basic computer needs during personal travel (writing, communicating, and accessing the Web).

Links:

  1. 2007-12-09 update: now extended through December 31 2007. Earlier was only between November 12 and November 26 []

The Evolution of Web Sites

Over the past 15 years, as the Web has evolved, the web sites have gone through these generations. What’s likely to be next in the future of what the Web will be? This article describes the Web so far and what form it will likely assume.

  • 1993-1997: Generation 1.0
    • These web sites can essentially be considered digital versions of printed newspapers, magazines and books.
    • Like with the printed products, the consumer is primarily a reader and interactivity is generally limited to filling out and submitting forms.
    • Content and design are the most important part.
    • Product = Content + Design
    • Examples: Most news and other content sites in the 1990s.
  • 1997-2004: Generation 1.5
    • These web sites are similar to what interactive CD-ROM based software used to be in the 1990s.
    • The consumer is a user (as in user of software). There can be significant interactivity between the web site and the user. Interactivity between users is generally limited to discussion boards and marketplace activities.
    • Product = Technology + Content + Design
    • Examples: Online multimedia sites, online gaming sites.
  • 2004-present: Generation 2.0
    • The concept of user-submitted-content grows stronger. Users in the virtual community of the site publish, share and view photos, videos and text.
    • The consumer is a community participant.
    • Product = People (User Community) + Technology + Content + Design
    • Examples: YouTube, del.icio.us, Wikipedia
  • 2006-future: Generation 3.0 (prediction)
    • Concept of user-submitted-interactivity / user-submitted-programming arises. The users create, own, sell, share, alter and use interactive objects in the virtual environment.
    • Consumers are co-developers.
    • Product = Community Developed Interactivity + People (User Community) + Technology + Content + Design
    • Examples: Virtual environments and ecosystems like Second Life and Kaneva.

Owning vs. Renting Software

At interviews, technology executives are often asked about build vs. buy. The question would be better articulated as own vs. rent. See, building and buying in the true sense are often part of the same ideology: owning. For example, Google bought Blogger and YouTube. As a result, Blogger and YouTube programmers (builders) became Google employees. When people ask about companies buying software, they are almost always referring to leasing or renting software.

I consider using open source to be in the own camp, because you can withing reason do as you please with your copy of the open source software and no one can take it away from you. Open source makes owning even better. It enables owning and sharing at the same time, which benefits the community.

Often technology executives answer this question ambiguously. They claim they have no preference towards either owning or renting software. To me, when a person provides such a noncommittal answer, it means they might lack leadership, vision, a clear philosophy, or the courage to give an honest answer to a prospective employer.

I generally prefer owning over renting. This applies not just to software, but to other things in my life like owning a home and owning a car. There are other people who prefer to rent apartments and lease cars. Neither philosophy may be better in general than the other, but one of them is always better depending on the circumstances. Circumstances by themselves don’t make the own vs. rent decision. That’s where people come in. A leader does not manage their company or department at the whim of circumstances. A leader has a style, has preferences and applies them to the situation. Leaders who prefer either one of owning or renting can be equally successful in the same organization and circumstances.

Here I present my viewpoint on why sometimes a philosophy of renting software as much as possible runs companies into trouble. There are numerous examples of vendor solutions in search of problems. A vendor will often wow a team of executives with a product presentation and demo. The company will agree to rent the software at a high cost. Later, the company will find it wasn’t worth the investment, even though they may not admit it or even like to talk about it.

When a company owns a software product core to its business, it can use it towards a competetive advantage. When you own the software product, you also have control over your data. When a vendor hosts and manages your data, in most cases you have practically relinquished control of your data even though your contract may say on paper it is yours.

When you own the products you use, it is generally easier to integrate with other systems. Your timelines are less at the mercy of vendors.

However the future of software may be changing. With web applications becoming popular, even home users may be renting software on a pay-per-use basis. I’ll have more to write on that subject. Stay tuned.

I now use WordPress publishing software for this site (Product Review)

Managing blogs and news content with WordPress is a Zen-like experience. The inner-beauty of a product is felt when it becomes almost unnoticed, allowing the site authors and editors to focus on publishing content and providing useful interactive functionality to their readers and customers.

I say this as someone who has been immersed in web content management for major news media companies since 1995. I have spent over a decade leading teams evaluating, implementing, maintaining and developing content management and publishing systems, including some industry award winning ones. My teams (including me personally) have been working closely with writers, editors, designers, photo/multimedia staff, sales and marketing folks at companies whose livelihoods depend on publishing content. I’ve also maintained my personal web sites since 1994.

It is impressive how well WordPress has worked as a CMS for the blogs and pages on this site. It is simple to use and painless to configure, manage and upgrade. It minimizes overhead and maintenance work.

WordPress plays well with others. It doesn’t require you to convert all your static content and pages powered by other CMS systems and custom scripts into WordPress. This allows you to conveniently migrate content to WordPress over time, preserving the URLs and keeping your site functional.

No wonder so many non-technical people and technologists alike use it for their sites: I switched to WordPress inspired by reading the personal blog of a colleague and CTO at another major media company who had also switched to WordPress. It is one of the best solutions for personal web sites and small to medium size organizations.

WordPress also powers the blogs of several major media companies with millions of daily page views. It has an well-designed architecture that makes it an excellent choice for large-scale use. It is used by a large and growing number of sites, including CNN, Fox News, Wall Street Journal, Yahoo, General Motors, Southwest Airlines, People Magazine, Apple Computer, Sony PlayStation US, C|Net, NY Times, Ziff Davis, Xerox, Delta Airlines and many others.

WordPress is a great choice because

  • Simple to use for writers and editors
  • Quick and simple to install, maintain and upgrade for systems administrators
    • E.g. automated daily backups to remote systems using a plugin
  • Good architecture for programmers to extend functionality if needed
  • Search engine-friendly and people-friendly URL structure
  • Dynamic publishing model of content managed in and served from a relational database. Content management and delivery are seamlessly integrated.
    • Presentation, as in design, is well separated.
    • This is a superior approach compared to other blog / CMS systems that recommend publishing static files.
      • In the file publishing model, those files are then served directly by the web server or processed by a web application server / CMS. That architecture, used by other blog platforms does not scale well and has been found to be error-prone, especially under heavy publishing/editing/commenting use.
    • If needed, external caching1 can be used that provide all the benefits of static file publishing without the drawbacks.
  • Excellent content management in a relational database
  • Rich feature set for advanced web publishing needs
  • Large and growing user base, well-supported and actively developed by the community
  • A large and growing number of plugins that add functionality to WordPress
    • WordPress is used by so many people that it is often likely that someone has developed a good solution for what you require. The WordPress directory is teeming with plugins, themes and other extensions developed and given by the community.
    • For example, support for OpenID as a client and server, site usage tracking with web analytics.
  • Plethora of third-party commercial support options available if needed
  • Free of license costs. Simple to operate and operate. Low total cost of ownership. An economical solution.
  • Reliable. Good performance. Scalable. Secure.
  • Open source

What WordPress currently lacks

  • A simple, standard way to place a widget in the main content area of a blog post or WordPress page. Currently plugins that need to place a widget there require putting in some special markup whose syntax varies with each plugin. Many use an HTML <!–comment–> syntax in the Code editing mode. Some use a syntax of [commands in braces] in the Visual editing mode.
    • A good solution would be for wordpress to allow widget placement and manipulation completely within the Visual content editing mode. Behind the scenes, in the code view, all plugins would use consistent markup syntax and it would be editable using a menu option in the Visual editing mode.
  • A way for certain widgets to only appear in the sidebar(s) of particular WordPress Pages or particular blog posts.
    • A good solution would be to have the ability to place a widget only on certain URLs that match a regular expression. Also, the edit form should have an option to include a widget only on a particular post or Page.

Alternatives

Another excellent choice for a blogging CMS is MovableType. I’ve had extensive experience with it and like it a lot too. MovableType and WordPress are the two leading products in their category.

If you are looking for a full-fledged content management system, consider Drupal or Plone. After a successful run for many years, my own Java-based Cofax is heading towards retirement.

If you need to build your own custom CMS, build using frameworks like Python with Django, Ruby on Rails or Groovy with Grails.

Rating: ★★★★★

  1. E.g. content delivery network like Akamai, an accelerator/cache like Squid or Varnish []

List of Open Source or Free Software for Home and Business Use

Here is a list of some open source or free desktop software that you can use for personal use at home or at your business. Using open source software can save you thousands of dollars that you’d spend buying proprietary software. I’ve chosen software here that is comparable in ease of use, maintainability and upgrades to similar pay-for software. Keep in mind that the total cost of ownership includes more than just license fees. There will always be costs in time and/or money to install, maintain, reconfigure and upgrade the software over time.

Useful for most computer users:

  • OpenOffice.org – Productivity suite competing with Microsoft Office, includes word processor, spreadsheet, presentations, database and drawing software
  • Grisoft AVG Anti Virus (free for personal use only, not open source)
  • Mozilla Firefox – Web browser
  • Mozilla Thunderbird – Email client
  • GIMP – GNU Image Manipulation Program, an alternative to Adobe Photoshop. Also consider GimpShop and CinePaint.
  • 7-Zip – Decompresses and compresses files and folders. An alternative to WinZip.
  • JEdit – A powerful text editor

For relatively technical users:

The Free Software Foundation’s GNU Project has a large collection of open source software in a variety of categories. You will find things ranging from business productivity software to games there.

A web site called Open Source Alternatives helps you find open source software alternatives to well-known commercial software.

This list was inspired by my friend Karl Martino’s list of some software he uses.