A Complete History of Software ;-)

A Complete History of Software 😉

Noticed a post by David Temkin on “The lost art of user interface programming”. Got me thinking about my own direct experience with the evolution of software, and what I’ve observed about the user experience along the way. Being fond of 2×2 matrices, here’s my four quadrant history of software, based on producer-consumer relationships:

I. When software was for organizations serving organizations

My first job out of college was with Andersen Consulting, now known as Accenture. Andersen originated in the world of mainframe information systems, that typically served the needs of institutions rather than individuals. I still have a coffee mug commemorating my work on the Tax Accounting System for the Employment Development Department of the State of California. The design center of such systems was the flow and processing of data records through an organization, rather than the task goals of an individual user. The user interface was relatively crude — here it was the user’s job to interact with the system, and periodically give user-friendly reports to superiors, who would rarely seek to interact with such systems themselves.

II. When software was for individuals serving organizations

When the personal computer came along, suddenly software served the needs of individuals on a mass scale, and the shrink-wrap software industry was born. New categories of staple products emerged, including spread-sheets, desktop publishing tools, word processors, image editors and even complete accounting systems. Those accounting systems were availabe for the equivalent of less than an hour of consulting time by an Andersen partner — what a deal!

These products needed to be accessible to an individual rather than to numerous operatives within multiple departments of an organization. It was all part of the productivity revolution of desktop computing. Extensive system manuals needed to be eliminated along the way — and to the greatest extent possible replaced by self-documenting user interfaces. Today, few of us fully appreciate how many people were once required to accomplish what one person with Quicken, Photoshop, Excel or PageMaker can get done. We forget that there were generations of people who actually had someone else type their correspondence, and relied on entire departments to produce presentations.

III. When software was for organizations serving individuals

While productivity tools for individuals garnered most of the attention, the needs of organizations did not disappear. Data processing systems also advanced by combining server-based business processing with the superior GUI capabilities of personal computers. In most of these cases, the user experience could be simpler than what was required for personal productivity software, but still leveraged the GUI paradigm to make the IT system more accessible to non-specialists. The only problem was there was a lot of desktop client software that had to be distributed and updated every time a system was launched or modified. Deploying and maintaining distributed client-server apps was a hassle.

The Web came along and changed everything, mostly for the better. Deployment became instantaneous on a global scale. A new generation of data processing service providers emerged to expose information systems to the public at large rather than only serve internal constituents. These new “Dot-com’s” also needed to deliver self-documenting user experiences, and had an interest in making their offerings as broadly accessible as possible. What they lost in capability with the Web browser, they compensated for with the value of instant global reach.

IV. When software is for individuals serving individuals

But the Web browser is not the end-all. Under some circumstances, software creators need to deploy desktop client software. The quality of the user experience seems to rise to the extent that software considers the needs of individuals over organizations. A new category of software enables individuals to serve each other directly without any organizational or instititutional intermediaries. One of the more stunning examples is Internet file-sharing software. Here the concerns of individuals outweigh the needs of not just organizations, but entire industries — and governments must step in to arbitrate.

This last quadrant of activity is quite new, and in some cases is referred to as “social software”. Individuals now routinely serve each other in a growing variety of online activities. While there are risks associated with these ‘unmoderated’ interactions, there are also potentially great efficiencies. Surprisingly, the creators of these systems sometimes opt to distribute client software rather than rely on Web interfaces.


From these observations I surmise that institutional incentives impact the quality of the user experience — the broader the scope of a software solution, the greater the impact of these institutional dynamics, and the more challenging the task of creating an effective user experience. Usability matters. Technology matters. Economics matters. The path of progress can be indirect, though we tend to find it eventually.

PhotoBlox Unleashed

PhotoBlox Unleashed

Last week, we unveiled the sequel to SoundBlox — the PhotoBlox, a viral, highly customizable Internet image slideshow application. Here’s an example that launches in a pop-up window:

Like every ‘blox’ in the series, PhotoBlox can be embedded in a personal blog or web page, customized extensively via an external XML data configuration file, and viewed via any modern Web browser while delivering the type of user experience normally associated with desktop client software.

Time will tell how PhotoBlox is received. To date, the SoundBlox has been put to use by EFF co-founder John Perry Barlow, by the Internet Archive and numerous others. It also garnered a favorable reaction from Dan Gilmor of the San Jose Mercury News. PhotoBlox is a much more feature-rich application, and should appeal to an even broader audience — let’s see if my hunch is correct.

Laszlo SoundBlox

Laszlo SoundBlox

An MP3 playing embeddable blog widget

Launched the Laszlo SoundBlox recently in collaboration with Grig Bilham, Peter Andrea, Max Carlson, Marc Canter and Bret Simister. It’s embedded in my blog gutter on the right. Details on setting one up for yourself are available at this informal ‘product page’:


The app can be extensively customized via an external XML file… a precursor of the Web to come. Hopefully, the blog-o-sphere will agree!



My latest small contribution to the Laszlo widget universe

A miniSlideshow Laszlo widget is now incorporated in my blog gutter on the right. This widget displays a sequence of small photo thumbnails defined in an external XML file. Just click on the widget to start the show.

The widget is built with Laszlo’s XML language. The source code, default XML configuration file and default slideshow images are hosted for free at mylaszlo.com.

Given the location of an XML configuration list and associated 120×90 pixel JPG images, this widget can play any externally defined slideshow. This is accomplished by passing a ‘slideshow_url’ parameter to the widget in the form:

http://www.mylaszlo.com/lps/lyndonwong/miniSlideshow/miniSlideshow.lzx?slideshow_url=[URL of xml list]

See for example this slideshow that invokes the miniSlideshow app on mylaszlo.com with an XML file and images hosted at GeoCities:

Slideshow Assets | Widget invoked with slideshow_url

Laszlo Blogbox

Laszlo Blogbox

Nudging the World Wide Web forward ever so slightly

Last night, Sarah Allen and a merry band of collaborators including Mark Davis, Yossie Silverman, Marc Canter and myself launched a first incarnation of a simple ‘widget’ that the world at large could customize and add to their personal blogs and web pages. It was an honor, really, to be invited to assist such a stimulating crew (I was the best HTML designer available for the project…don’t laugh, my services were free :-).

The technical implementation of the Blogbox is of note. The entire app, currently sitting in my blog gutter, contains a mere 113 lines of code comprised entirely of XML tags and JavaScript. This app is deployed and thus centrally updated from a server, and works within any Web browser enabled with the Flash Player (version 5 and above).

What do users get as a result? They get an app that can be discretely added to any web page, accessed from over 95% of the world’s deployed Web browsers, and can be customized to suit by editing a simple xml file hosted anywhere on the Web (mine is on Yahoo GeoCities). For the hacking inclined, by generating that xml file dynamically with a CGI, the Blogbox’s list of links can change at will. Perhaps some creative souls out there may spot in all this new opportunities to make the Web an ever more integral part of all of us.

Artificial Stupidity :-)

Artificial Stupidity 🙂

A gripping read on Salon.com about some of the colorful characters behind the ‘AI Bubble’

After working professionally with John Sundman for several months, I recently discovered a slice of his literary life. John’s Salon.com essay, “ Artificial Stupidity” introduces some of the colorful, esteemed and wacky characters behind one of the other great technology “bubbles” of the 20th Century, the “AI Bubble”. Beneath the amusing exterior of the essay lies a near-epic drama on human ambition, folly and the unpredictable path of progress.

Waterways of the Information Age

Waterways of the Information Age

The obvious restated at risk

A blog post by P.T. Withington sparked a water-cooler conversation with Bret Simister and Sarah Allen about the notion that access to the Internet is analogous to proximity to a waterway in prior ages.

Once upon a time, locating on a river or coast was crucial for access to a steady flow of information, goods and services. Owners of such sites enjoyed enduring prosperity. The Internet serves this role today. And the faster the connection to this digital waterway, the greater the flow of information, goods and services. These notions seem rather obvious, given the general recognition of the importance of broadband and the common use of geographic metaphors when discussing the Internet.

Yet some deployers of 802.11 WiFi access points essentially want to improve their own land, and convince strangers to pay for it. Most of us would only co-invest in property improvements in exchange for a share of the return. Otherwise, property owners should be content if their efforts increase foot traffic, a common measure of retail property lease value.

The merchants of Newbury Street in Boston, wittingly or unwittingly, endorse a new variation on the first rule of real estate (‘location, location, location’). They can not relocate alongside a river or coast, but they can offer a substitute with similar virtues. By bringing complimentary WiFi coverage to their street, they provide in reality what rivers today only imply — ready access for all to information, goods and services. This simple act accomplishes for them what it has done for all trade centers — it makes their vicinity a better place to do business and to live life. Will they be surprised if greater prosperity follows?


Favorite Reads: Jorge Luis Borges, “Ficciones”

Fourth in a series of favorite reads on human nature, society and information technology.

The celebrated collection of short stories in “Ficciones” so impressed me that the author, Jorge Borges immediately became my favorite fiction writer ever. I vividly remember “The Babylon Lottery”, about a society addicted to a lottery run by a mysterious company where winning meant the fulfillment of dreams while losing meant death. Of course, my one sentence summary does a huge injustice to the piece, which like all the stories in the book, seems to conjure up our deepest debates about human nature and how we should best structure our society.

My gushing admiration for Borges was shared by Herbert Simon, who devoted a chapter in his autobiography to a personal encounter with the great writer. Quoting Simon (“Models of My Life”, Chap. 11 Mazes Without Minotaurs):

“In December 1970, Dorothea and I visited Argentina, where I was to give some lectures on management. In my correspondence about arrangements, I did something I have never done before nor since — I asked for an audience with a celebrity. For a decade, I had admired the stories of Jorge Borges… I wrote to him…”.

I wish I could have been there to witness the subsequent meeting between the great American social scientist and the Argentine literary giant.


Favorite Reads: Christopher Alexander, “The Timeless Way of Building”

Favorite Reads: Christopher Alexander, “The Timeless Way of Building”

The third in a series on favorite reads related to human nature, society and information technology

I marvel at the ‘great’ architecture of the world, both modern and ancient. I even cherish a baseball autographed for me in 1988 by the renowned architect Frank O. Gehry. Yet I find other places shaped by anonymous collaborators perhaps more inspiring. I refer from experience to the Cinque Terre in Italy, Santorini in Greece, and Lijiang in China. These built environments posess grace and charm beyond description. Each is magically gratifying to stroll through, and draws admirers from throughout the world.

When the architect and design theorist Christopher Alexander speaks of architecture fit for living in, I believe he has such examples in mind. He champions an ‘unheroic’ architecture, where the people of a community assume primary responsibility for shaping their living environment, applying proven design patterns to suit their aims, perhaps under the guidance of a new type of architect who helps them with the planning, design and building process. Alexander’s arguments are profoundly democratic, and represent a dissenting voice within an historically aristocratic profession.

Alexander champions iterative approaches to design and construction as the best means of creating truly livable communities and towns. Though his ideas have been criticised within his own profession as impractical, they have been embraced by software developers, many of whom favor deploying rough implementations of applications quickly, and seek user feedback to shape subsequent revisions. The prevailing modern programming languages support this process explicity. Admirers speculate Alexander will ultimately have a greater impact on computer science than on architecture.


Favorite Reads: John R. Searle, “Mind, Language and Society”

Favorite Reads: John R. Searle, “Mind, Language and Society”

Another of my occassional entries on some favorite reads on human nature, society and information technology.

Since I started my ‘favorite reads’ list with a founding father of artificial intelligence research, perhaps it is fitting to next mention a famous critic. John R. Searle achieved notoriety for a critique of AI known as the Chinese Room Argument. The ensuing controversy kept a few generations of graduate students and journalists well-occupied.

In “Mind, Language and Society”, Searle provides a lay summary of his life’s work. The book outlines Searle’s efforts to demystify the human mind by removing the cultural baggage which hinders objective analysis of it. For Searle, the mind is an impressive biological organ which in the human species is able to generate language. Language provides the mechanical foundation for our most distinctive talent — the ability to construct social realities on top of the physical realities around us. While attempting to outline the mechanisms by which humans are able to create stuff like culture, Searle hopes to bring the dispassionate methods of empirical science to a realm often shrouded in mystical terminology.

Searle’s ideas about language and the construction of social realities seem especially interesting given the rise of the Internet. People now have widespread access to social software. These new tools simplify the creation of human institutions that may have no physical presence other than the digital bits on a server’s hard drive.

It is noteworthy that Searle’s social and physical realities seem to parallel Herbert Simon’s artificial and natural worlds (see below).