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.

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.

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.

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

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.

When implementing a content management system or other product, customers often ask for workflows that require the least number of steps required to any given complete task. At first, this seems to make perfect sense; however consider this example of a car:

Before you can get inside your car and start driving you have to perform the following steps:

  1. unlock the car door
  2. pull the door handle
  3. open the door
  4. get inside the car
  5. close the door

Steps 1, 2, 3, and 5 seem to add unnecessary actions to the workflow. The goal here is to be able to start driving to get to the destination. Over the course multiple car trips over a day, these steps seem to “waste” a lot time. An easier and “better” workflow may be for cars not to have a door at all. Then you’d save the steps of having to open and close the door.

However, with the current level of commonly available technologies, it makes sense for a car to have a door and require these steps before you can start driving.

Extra steps are often required to provide security, maintainability, reuse, reliability, scalability and performance.

Shortcuts aren’t always the best solution. You may save steps and thus cost now with shortcuts, but as a result you may pay much more later in other costs.

As technology advances, some necessary steps can be automated or eliminated. For example, some cars now have keyless entry that eliminates some of these steps. In the future, an advanced version of keyless entry may even open and close the door for you. However, expecting those in a car of today would be impractical.

Similarly in content management and other software extra steps aren’t always a bad thing. A good content management system isn’t one that allows web site producers to complete their tasks in the least number of steps. It is one that enables completion of the task in an optimal number of steps balanced with other factors like reuse, maintainability, flexibility and security.

The topic of integrating legacy technology systems with web technology systems often comes up in the newspaper industry.

There is a key difference between Content Legacy Companies (e.g. newspapers) and Other Legacy Companies (e.g. pharmaceuticals). With the world wide web and information technology becoming part of everyday life, every company becomes a content company in certain ways.

In the case of other legacy companies like pharmaceuticals, aeronautics, construction, etc. their legacy products are not going away nor changing as drastically as a result of the world wide web and IT as is happening in the case of content legacy companies like newspapers.

For other legacy companies, it makes sense to integrate the web systems like content management with their core products because their other core products are not fading away as a result of the web and IT.

However, in print media companies like newspapers whose legacy has been content, their product in its legacy form is going away as a direct result of web and IT. So for them it may make sense to not spend too much effort on integrating legacy systems with web systems. Instead, it may be a better strategy to spend more resources on enhancing and upgrading the web systems and digital media products. So for newspapers today, the 1990s holy grail of having one seamless print+web content management system may be less relevant in 2007. It may actually make better business sense to to keep the print cms and web cms separate, focus more on web and digital media and allow newspaper printed on paper to retire over the next decade.

I’m building a pull-down-menu navigation for the rajiv.com site using the Google Web Toolkit (GWT) and I’m impressed by this Google product.

It allows you to create user interface (UI) widgets and dynamic functionality for your web app using the Java programming language. You develop and debug your app in the Eclipse Integrated Development Environment, just like you do any other Java app. When you are done, GWT translates the Java app into AJAX technologies: JavaScript, HTML, CSS and XML. This gives you the advantages of both worlds: You program and test using the robust Java platform and the final output is in AJAX (no Java applets at all) which works consistently across most modern web browsers.

Developing a web page UI using GWT, Eclipse and Java saves a lot of time over the alternative of coding all the AJAX (JavaScript, HTML, CSS, XML). GWT also takes care of issues like cross-browser compatibility and the AJAX UI not conflicting with the browser’s back button, which would otherwise have to be extra coding and testing work if developed in AJAX.

What’s also great is that the generated HTML pages are clean and nicely documented using comments, all automatically done by GWT.

Java programmers should welcome GWT since it gives them the ability to create rich dynamic HTML functionality in the robust environment they are familiar with. You can view the Java source code here.

www.rajiv.com now has a new hosting provider: Kattare Internet Services. The web site is now powered by Java and related technologies. My previous Internet hosting provider Brinkster gave me good service for many years, but when I converted my site from Microsoft .NET and ASP technologies to Java, I had to move to a service provider that supports Java and related technologies. Kattare was my choice because they have already been providing great service to www.cofax.org for years. Kattare’s customer service is excellent and they provide a rich collection of technologies and products.

As amongst the earliest adopters of both ASP and ASP.NET technologies (quote from Bill Gates), my personal web site’s move to Java in no way reflects a preference of Java over MS .NET. I like both platforms.

The templates for the pages on www.rajiv.com are powered by Tiles, a component of Struts. (Thanks to my colleague Magesh for suggesting it.) With the change from .NET and ASP to Struts and Tiles, the pages now have .htm extensions instead of .aspx and .asp. The old .aspx and .asp pages are redirected to the .htm ones using Apache’s mod_rewrite. The web pages on this site appear to be static html with the search-engine-friendly paths and page names ending in .htm, but internally they are dynamically assembled from components using Struts and Tiles.

Kattare Internet Hosting Powered by Struts

Nowadays, it is becoming fashionable to belittle technology. I hear people say things like “technologies should not drive business decisions“, “define your requirements without worrying about technology and ask technology [people] to deliver them“. May sound logical at first, but is it? Consider this imaginary conversation between Bill, a technologist and Plato, a Platonist businessperson.

Bill: How do you commute to work?
Plato: I drive.
Bill: Why don’t you fly or teleport?
Plato: What do you mean?
Bill: Why do you use a car that drives on the road, why not a personal flying machine or a teleporter?
Plato: Because they aren’t invented yet.

Defining business needs without consideration of technology is impractical. It is being quixotic and ignoring the current reality. Leave the dreaming for the innovators since they and businesspeople are usually different people.

Think about ten important inventions that changed the world. How many of them were created with a business plan? How do you think the wheel was invented? How was fire discovered? Did someone create this world wide web with a business plan? Many important things were created with a business plan. The point here is not that business is unimportant, but that technology is important on its own merit.

Sound business practices have an important place in this world. Technology and innovation have a place in this world. One is not master to the other.

At present, Canon is dominating the digital SLR-type (DSLR) camera market. We need strong competitors to keep innovation high and prices economical. Since I use a Nikon D70 DSLR , I suggest a few features Nikon should consider in their upcoming DSLR cameras:

  • Enable the photographer to compose the image using a flip out LCD monitor in addition to the SLR-type view finder similar to most non SLR-type electronic view finder (EVF) digital cameras.
    • This feature would be useful to photo journalists and pro-photographers in certain situations where such photos using an SLR view finder would be impossible. For e.g.:
    • When raising the camera high above a crowd to get an important photo. In such a situation, using the LCD is the only way to compose the photo.
    • When it is physically impractical for the photographer to lean and put his/her eye behind the view finder. For example, when the camera is extended over a water body or over the edge of a cliff or building.
  • Vibration reduction image sensor — where the sensor moves to cancel out camera shake, similar to the one in the Konika Minolta Maxxum 7D camera. Benefits:
    • This will increase the value of all past, present and future Nikon Nikkor F-mount (and compatible) lenses since on the VR image sensor Nikon, using them the result will be VR-enabled.
    • Since VR should be a feature common to almost all lenses, it makes sense for it to be in the camera and not in each lens.
    • This will result in improved image quality since the additional optical element required in current VR/IS lenses won’t be required anymore.
    • This won’t hurt Nikon by decreasing demand for Nikon VR lenses since current Nikon film and DSLR bodies that don’t have this feature will still need those VR lenses. On the long run, it will help Nikon.
    • Nikon can either invent a technology that achieves the same outcome the Konika-Minolta one does, or they can license Konika-Minolta’s technology.
  • Tilt-shift mechanism built into the image-sensor system. This would allow high-quality architectural and other photography without requiring special tilt-shift lenses. This would be good for Nikon’s business for reasons similar to those mentioned above for the VR image sensor.
  • Have one or more high-end DSLRs with a 35mm full frame size sensor. As a lens-compatibility improvement over Canon, this camera should even work with Nikon DX format lenses meant for the 1.5x crop APS-C size Nikon image sensors. When used with such a lens, this camera would provide a lower resolution crop (but higher frames/sec rate like the Nikon D2X), and the lens would still be usable like it is on other Nikon 1.5x crop DSLRs.
    • A 35mm sensor is necessary to compete with Canon’s 35mm full frame digital cameras. A bigger frame will always be able to have more pixels and provide better image quality. Canon is competing with medium-format film cameras with their 35mm DSLRs. Nikon must keep up.
    • Having a high-end 16-plus megapixel DSLR will increase Nikon customer confidence that Nikon is a competitor in the top end, resulting in improved Nikon brand loyalty and better sales of other Nikon equipment.
    • The compatibility with even Nikkor DX lenses (even in a cropped lower resolution mode) will strengthen the statement that Nikon cares greatly about lens compatibility, resulting in greater brand loyalty.
    • To my knowledge, Nikon mainly makes 35mm and some large-format lenses. Having a Nikon DSLR that produces medium-format film quality images (like the Canon EOS 1ds Mark II does), may make the medium format go away, establishing Nikon as one of the leaders in 35mm as well as large-format.
  • Build in a horizontal level feature that helps align the camera properly while viewing through the optical view finder as well as composing via the LCD.
    • This will allow horizontally correctly-aligned photographs when shooting landscapes without a tripod.
    • Having an alignment view within the optical view finder would be more convenient and faster than using a bubble-level or similar attached to the camera and the camera being on a tripod.
    • Once the shutter is pressed half way, the alignment should lock and work with the anti-shake CCD to compensate for camera shake tilt as well.
    • This feature should work when the camera is held in landscape as well as portrait mode.
  • Include a movie-mode like in EVF digital cameras. Just because these cameras are for pro-photographers doesn’t mean having such a mode would not be a benefit.
  • Nikon as a company should encourage third-party components and compatibility for the Nikon system, e.g. third-party lenses and accessories for Nikon cameras and third-party cameras for the Nikkor F-mount lenses and Nikon accessories. This will help Nikon as photographers will be able to collect Nikon-compatible components as their budgets permit. Ultimately, they will get the Nikon lenses and other Nikon-made components since Nikon’s quality is among, if not the very best.
    • This will create innovation, features and accessories for the Nikon system from companies partnering with Nikon.
    • It will increase industry support for the Nikon system.

I like Canon digital cameras — they are often market leaders using innovation for useful, practical features. Nikon makes good DSLRs too, but they need to do better to compete with Canon.

Related link: photos.rajiv.com