Dr. Dobb's Journal August 2001

Curl Programming Contest Winners Announced

Friedger Mueffke and Nikhil Damle have been awarded top prizes in the Curl programming contest, sponsored by Curl Corp. (http://www.curl.com/). Mueffke created an interactive web form element and Damle implemented a shopping cart.

Though the programs are simple, both developers report that their experiences reflect the language's utility and gentle learning curve. Mueffke, who won $1000 for his program, only began working with Curl two weeks before the contest deadline. He told DDJ that the same program would likely have required four times as much work to write in JavaScript.

The philosophy behind Curl is that computation should be performed on the client wherever possible, reducing the number of round-trips to the server. Curl also aims to replicate all the capabilities of HTML, JavaScript, and Flash within a single language. Applications written in Curl are run through a browser plug-in. Only Windows is currently supported, although Linux and Macintosh versions are forthcoming.

Prior Art Database Will Protect Open Software

In response to its concern that its mission to prepare society for nanotechnology is being threatened by the proliferation of bogus patents, the nonprofit Foresight Institute has allied with the intellectual property firm IP.com to offer resources to open-source developers who find their research also infringed by patents.

The two companies have created a site at http://priorart.org/, where you can "defensively publish" a description of your code. The disclosures will be time-stamped, digitally notarized, and made available to patent offices worldwide. Ideally, patent examiners can check the database during their reviews, and deny any patent applications that duplicate prior art.

While an official disclosure usually costs about $100, PriorArt.org will make its services free to open-source inventors.

AI Researcher Dies

Dr. Kenneth Mark Colby, creator of the classic AI program "Parry," died on April 20 at the age of 81. Colby held a medical degree from Yale, was a researcher at the National Institute of Mental Health, and was a professor of computer science at Stanford. He created Parry in 1971, basing it on Joseph Weizenbaum's conversational program Eliza. Unlike Eliza, Parry could initiate topics of discussion and modeled complex personality traits in its speech.

Parry used pattern matching to parse input, "remembered" the conversational path as it unfolded, and used the variables Fear, Anger, and Mistrust to track a shifting emotional state. In fact, Parry impersonated a paranoid schizophrenic, and did so well enough to pass a version of the Turing test. Colby asked five practicing psychiatrists to conduct teletype interviews, one with Parry and one with a human schizophrenic patient. When asked to identify the computer program, the psychiatrists guessed incorrectly a full 50 percent of the time.

The original implementation of Parry is available at http://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/areas/classics/ parry/0.html.

Personal Router for Surfing Wireless Services

The Advanced Network Architecture group at MIT's Laboratory for Computer Science is developing a personal routera pager-sized device that lets cell phones and handhelds pick and choose among wireless services. Wireless devices are currently tied to a single provider, but MIT engineers envision "a new market model for wireless service, based on small business investment and local competition, rather than service provision (only) by large, national level corporations."

The prototype router uses Bluetooth to coordinate access with the user's various wireless devices. The MIT team chose Bluetooth for its commercial availability, although some limitations of the protocolsuch as the maximum of eight devices on a Bluetooth picocellmake it less than ideal for the personal router. The router also has two PC Card slots, initially dedicated to CDPD and 802.11 LAN support. The operating system is a version of Linux, and the router incorporates a Java Virtual Machine.

Along with the router, the group has proposed a framework for dynamic negotiation of wireless services. The router acts as an agent, attempting to find the best match between a user's preferences (stated in high-level terms) and the services it finds available. For more information, see http://ana.lcs.mit.edu/anaweb/PDF/PR_whitepaper_v2.pdf.

XML Schema Formalized

The World Wide Web Consortium (W3C) has formally issued the XML Schema as a W3C Recommendation, meaning it is stable, contributes to web interoperability, and has been reviewed by the W3C membership.

The XML Schema specification consists of three parts. The first defines a set of simple datatypes that can be associated with XML element types and attributes; this is intended to allow XML software to do a better job of managing dates, numbers, and other special forms of information. The second part of the specification proposes methods for describing the structure and constraining the contents of XML documents, and defines the rules governing schema validation of documents. The third part is a primer, which explains what schemas are and how they are built.

XSV, the XML Schema Validator, has been revised to validate against the W3C recommendation. The W3C is also soliciting sample schemas from developers for a test suite library to be managed by the W3C XML Schema Working Group.

The XML Schema specification can be found at http://www.w3.org/XML/Schema.

Thought-Controlled Computers

The European Commission's Joint Research Centre has developed an Adaptive Brain Interface that translates signals received by electrodes in a plastic cap into commands within a software program. The ABI requires a user to generate five distinct mental states, usually produced by concentrating on different things. The system learns to recognize an individual user's EEG patterns. In an experiment, one disabled man was able to use the ABI's cursor to spell out a brief message after three hours of practice with the device.

The project team hopes that the ABI will help severely disabled people to communicate. Eventually, the interface may be developed into an application useful for nondisabled people as well. For more information, see http://sta.jrc.it/sba/esprit/abi-esprit.htm.