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 120x90 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

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 :-)

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

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"

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"

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).


Favorite Reads: Herbert A. Simon, 'Sciences of the Artificial'

This represents the first in a series of occassional entries on some of my favorite reads on human nature, society and information technology.

In 1990, I had the good fortune to stumble upon the late Herbert A. Simon's Hitchcock Lectures at U.C. Berkeley. In a series of three talks loosely related to cognitive science, Simon addressed the schism between the arts and the sciences, and attempted to show how each could advance the other. During one memorable example in support of the above, he demonstrated how visual inspection could solve a physics problem far more effectively than mathematical analysis.

Simon displayed the most stunning intellect I had ever encountered face-to-face. Of course, I was hardly alone in this assessment. By that point, he was already a Nobel Laureate in economics, a recognized 'father of artificial intelligence', and a distinguished 'professor of everything' at Carnegie Mellon University.

A number of years after that encounter, I picked up a copy of Simon's 'The Sciences of the Artificial', an ecclectic treatise originally published in 1969 on the social sciences, human nature and the design of complex systems. The 'natural' world was the world provided by nature. The 'artificial' world explored by the book was the world shaped through the imagination of humans, encompassing cities, social institutions and computer programs. In a compact 216 pages, Simon thus managed to relate information technology to everything.

Full Disclosure: Amazon.com will compensate me with gift certificates for purchases generated from this blog.


Knowledge, search engines and blogs

Comments regarding the impact of blogs on the propagation of knowledge

Some Data Points

Over the last couple of months, I have twice found more reliable information from blogs than from 'official' sites on the Web:

Case 1: a problem with Python XML parsing on Mac OS X 10.2.

Case 2: a problem with a 'hijacked' Microsoft IE Web browser

Case 1 is rather arcane, involving an issue only a very small percentage of OS X users would be concerned with. But since the apple.com site does not permit users to post entries, there is in fact no way for Apple customers to share information via the Apple site. An email to Apple providing this information would probably languish in a low-priority queue, because the issue does not affect a significant number of people. Instead, this knowledge must reach the world via various blogs indexed by search engines.

Case 2 constitutes a growing problem, but is addressed in an overly complex manner on the Microsoft support site, with no mention of easier solutions available elsewhere. A Web search on 'IE Internet Options missing tabs' yields a confusing laundry list of sites with no clear solution. However, a Web search of 'blog IE Internet Options missing tabs' yields a complete personal account of someone's experience with this problem plus her recommendations of resources to help fix the issue, including invaluable referrals to www.spywareinfo.com and a program called HijackThis , which in combination fix the compromised Web browser efficiently.

What's Happening?

Numerous colleagues report anecdotally that blogs often provide more reliable information than official sources. On reflection, this makes sense. In both of the above cases, the pre-Internet method of propagating information involves passing first-hand knowledge through intermediate filters. One of the occassional side-effects is that the explantion from an expert is written or re-written by others with less domain knowledge. This pre-Internet 'work-flow' is obviously streamlined by Web logs. Information can now come straight from the source.

So far, I sense only the benefit -- knowledge is propagating faster, without the delays and occassional dilution introduced by formal publishing processes. I suppose the opposite is also possible -- the propagation of lies, without the protection of editorial review. The unfolding of the blog phenomenon may thus serve as another portrait of human nature. On the balance, I expect the portrait to be flattering.


Encounter with Web Browser 'Hijacking'

It's a relatively benign nuisance in comparison to other types of 'hijackings', so the label is perhaps a bit hyperbolic, but there is a spreading phenomenon known as a Web browser hijacking. By visiting an unscrupulous URL or clicking a hyperlink in a spam email, you can actually lose control of your web browser. Most of these attacks victimize users of Microsoft's Internet Explorer. The attacking code exploits security holes in the browser to reset your prefered home page, add links to your Favorites list and, most dramatically, remove tabs from your IE Internet Options panel. With that last step, the attacker prevents you from resetting your browser options -- a very effective technique to force a few extra page views to their site, until you reinstall your system software in desperation or discover a simpler solution.

So this actually happened to me yesterday -- the hijacking attack changed my default home page to an ad supported portal page, and removed the General Tab under my IE browser's Internet Options, thus preventing me from resetting my homepage back to the original URL ('blank', in my case).

After a few hours of fumbling around the Web, trying to figure out what happened to my computer and how to describe it for a search query, I converged on the following explanations:




Oddly, the best solution came not from Microsoft's support site, but from SpywareInfo, and their amazing online forum, combined with a shareware program provocatively named HijackThis. Volunteers on the SpywareInfo forum have assisted thousands of individuals across the Internet to combat a dizzying array of Web-related programmatic attacks which fall outside the realm of 'viruses' per se.

Following the recommendations of SpywareInfo, I repaired my IE web browser as follows:

[1] Downloaded and ran SpyBotSearch&Destroy

[2] Downloaded and ran HijackThis

Following the HijackThis instructions, I saved the resulting hijackthis.log report and posted it to SpywareInfo's online support forums for analysis by their forum monitors. These individuals inspect the log reports to identify improper Windows OS registry settings introduced by the hijacking attack. You can see the daily action at:


A forum monitor named Tony Klein responded within 30 minutes identifying the two fixes I needed to apply via the HijackThis application. After completing the fixes and rebooting, my IE browser was restored to health. I felt like I was just saved by a 'firefighter of the Internet'.

Life Lessons:

Though I hope never to encounter this nuisance again, the experience has been enlightening.

1. The best information and support on the browser hijacking problem came from non-professional sources, lacking financial compensation perhaps, but not lacking integrity and commitment.

2. In the same sense that 'bio-diversity' makes ecosystems more resilient, 'IO Diversity' may help protect our global information systems. The 'hijacking' attacks referred to above target vulnerabilities in the code base of Internet Explorer. Other Web browsers with different code bases are immune to these specific attacks. Perhaps variety in the code bases of browsers and all underlying software systems may be beneficial for reasons beyond maintaining economic competition.


Grappling with Python XML parsing on OS X 10.2

Run-time errors encountered trying Google Hack #57: Python and the GoogleAPI

After struggling with various Python programming examples related to XML parsing, I discovered that the "Python No Parsers Found" run-time error is common on multiple platforms, and reported in numerous places on the Web. A thread describing the issue and suggesting a solution can be found at:

Jean-Yves Stervinou, the solution provider, also reported the issue at:

But the most complete thread on the issue and the solution I finally used was found at:

Like myself, these individuals were using the default Python installation on Mac OSX 10.2 Jaguar, and all encountered run-time errors when attempting to parse XML in Python. The solution that worked for me was installing PyXML 0.8.1, as suggested on the last blog listed above. I was then able to successfully invoke Google Hack #57 from the UNIX command line on my server. Another hack that accessed an XML stock quote via a Python CGI also worked successfully.

I will update my own post at hacks.oreilly.com re: Google Hacks #57 (a Python-based example) to assist others encountering this problem:

Ahhh...the joys and challenges of hacking code. I must admit this whole experience confirmed the amazing value of the Web, Blogs and search engines in sharing and advancing knowledge None of the above material could be found at the Apple Computer Web site or online support knowledge base, at least around the date of this posting.


A Layman's Attempt to Digest "XML Web Services"

I rediscovered this note written during the spring of 2002, and decided to add it to my blog. The note was originally drafted to help me internalize readings on emerging Web Services. Maybe others will find this a helpful read.

What's a web service?

There's an incredible amount of hype on this topic at present (since 2001). Numerous books have been published in early 2002, including a series of O'Reilly titles, all dedicated to Web Services on the Sun J2EE platform (Java 2 Enterprise Edition) and the Microsoft .Net Framework. In the simplest terms, the emerging Web Services standards promise to simplify the sharing of data between software information systems over the Internet, using open rather than proprietary standards.

Integrated Software Experiences

From a lay perspective, we know that it's very useful for distributed information systems, and even desktop applications to be able to easily exchange data. It's great from a user's perspective to work with a well integrated software system. Imagine if you could automatically extract financial information from all of your financial service providers (credit cards, banks, brokers) into your favorite financial planning software. It's not reality because the scope of the human and software-based information systems involved is large. Strong integration has occured on the personal computer desktop, since that's a more tractable domain, where the disparate systems involved all run on a single computer, and most often are used and adminstered by one person. The Microsoft Office suite would be a good example, where you are able to easily share data between a word processor, a spreadsheet, a presentation tool and even a web browser.

Two Paths to Integration

The benefits of an integrated software system can only be realized when the back-end systems are able to communicate with each other. This back-end communication must be standardized in some way to enable large numbers of software developers to write applications that can interoperate.

In the past, systems were integrated using proprietary, vendor specific APIs. This meant vendor "lock-in" for customers. For example, if you wanted a spreadsheet that interoperated well with a word-processor, it helped to buy both products from the same vendor. Developing integrated software is much easier when all the engineers work in close contact under unified leadership.

In the world of networked information systems, as opposed to isolated desktop applications, it also eased interoperability to buy solutions from a single vendor. This mode of industry practice helped software integration in the short-run, but seemed to stifle software innovation in the long run.

The information systems industry has since evolved toward open standards. These industry-wide standards enable companies to compete in the creation of software products without requiring monopoly power to provide interoperability. A pervasive global information system has evolved rapidly since the rise of the commercial Internet. To enable integrated software experiences on this scale, vendors do not entertain the notion of one solution provider winning over all others. Instead, they hope to agree on methods to enable these systems to communicate with each other. Hence we have the current landscape surrounding the standards for communication between distributed systems over the Internet, the standards intended to enable a future filled with "web services".


Impact of a Consulting Assignment with Laszlo Systems

Notes on exposure to the 'state-of-the-art' of information technology during the last few months

Feeling more connected with the 'state-of-the-art' on the Internet. Partly the result of the last half-year of consulting with Laszlo Systems on the product launch of the Laszlo Presentation Server. Besides developing the original White Paper, various pieces of marketing collateral, and a product review guide, I also orchestrated the unveiling of the platform through a series of technology conferences and trade shows, including Demo 2003 , O'Reilly 2003 Emerging Technology Conference and JavaOne 2003 . The O'Reilly conference was particularly eye-opening, with a parade of IT industry luminaries speaking and in attendance. During this consulting stint, the LPS received a 2003 Webby Award nomination for technical achievement , alongside fellow nominees Google, Linux, Apache and phpBB. This nomination stunned the Laszlo engineering team, given the cult status of the other technologies recognized by the Webby committee. But the most rewarding part of the experience for me was the exposure to recent trends with programming languages, open standards and Web application development. I have been surprised by the variety of uses for XML from declarative application programming languages to server configuration files. In old age, I will look back feeling privileged to have participated in the early commercial development of the Internet.


Project Kontak: term project for my IT sabbatical

The end result of my Post-ATHM information technology sabbatical was my first complete, publicly deployed web application: Kontak, a personal contact application that permits a visitor on my Homepage to pop open a small browser window, and send email messages to my Web-email account or my cell phone, without knowing my actual account address information. In this manner, I shield those accounts from spammers, because I never give them out! Kontak also logs all messaging activity, so I can see who sent me what from where and when.

Kontak is based on the following set of technologies:

[1] The Web HTML forms, server-side 'business logic' and control of an SMTP mail server are all done in the PHP scripting language, running under the Apache Web Server on a Mac OS X 10.2 server.

[2] The message activity log is maintained in a MySQL database, running under Red Hat Linux 6.2 on a 2nd server (in my dining room data center ;-). PHP provides simple API's to access databases built in MySQL.

[3] The Kontak app, or really the Apache Web Server behind it, is exposed on the open Web by maping the dynamic IP address provided by my dial-up ISP to a static hostname using the service at dyndns.org.

[4] As a security measure, the OS X server is shielded from the Internet behind a NAT router (Network Address Translation), which in turn provides the Internet connection via an integrated dial-up modem. The two servers powering Kontak are assigned private IP addresses within my development Intranet. The Web server's IP and port number (80) are then mapped by the router to my public dynamic IP address, to recognize server requests from the open Web.

Kontak represents a grand tour of contemporary Web application technologies, and provides a hands-on understanding of how modern application developers make things happen on the Internet. All in all, a very rewarding journey for a software technology product-marketing person!