<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title>Universal Data Access Technology Blog</title><link>http://www.openlinksw.com/weblog/uda/135/</link><description /><managingEditor>UDA Data Space Bot &lt;hwilliams@openlinksw.com&gt;</managingEditor><pubDate>Fri, 09 May 2008 23:16:41 GMT</pubDate><generator>Virtuoso Universal Server 05.00.3028</generator><webMaster>hwilliams@openlinksw.com</webMaster><copyright /><n0:link xmlns:n0="http://www.w3.org/2005/Atom" href="http://www.openlinksw.com/weblogs/uda/gems/rss.xml" rel="self" type="application/rss+xml" title="Universal Data Access Technology Blog" /><category>ODBC,</category><category>JDBC,</category><category>OLEDB,</category><category>OLE</category><category>DB,</category><category>XML,</category><category>XSL,</category><category>XSL-T,</category><category>SQL,</category><category>&quot;SQL</category><category>to</category><category>XML&quot;,</category><category>SQL-XML,</category><category>WebDAV,</category><category>&quot;Web</category><category>Services&quot;,</category><category>UDDI,</category><category>SOAP,</category><category>WSDL,</category><category>SMTP,</category><category>NNTP,</category><category>XQuery,</category><category>XML</category><category>Query,</category><category>RDF,</category><category>&quot;XML</category><category>Database&quot;,</category><category>&quot;Virtual</category><category>Database&quot;,</category><category>&quot;Federated</category><category>Database&quot;,</category><category>&quot;SQL</category><category>Database&quot;,</category><category>&quot;Object-Relational</category><category>Database&quot;,</category><category>scrollable</category><category>cursors</category><language>en-us</language><image><title>Universal Data Access Technology Blog</title><url>http://www.openlinksw.com/weblog/public/images/vbloglogo.gif</url><link>http://www.openlinksw.com/weblog/uda/135/</link><description /><width>88</width><height>31</height></image>
<cloud domain="localhost" port="8889" path="/RPC2" registerProcedure="xmlStorageSystem.requestNotification" protocol="xml-rpc" />
<item><title>OpenLink Software Releases new Universal Data Access Driver Suite 6.1</title><guid>http://www.openlinksw.com/weblog/uda/135/?id=1301</guid><link>http://www.openlinksw.com/weblog/uda/135/?id=1301</link><comments>http://www.openlinksw.com/weblog/uda/135/?id=1301#comments</comments><n0:comment xmlns:n0="http://wellformedweb.org/CommentAPI/">http://www.openlinksw.com/mt-tb/Http/comments?id=1301</n0:comment><n0:commentRss xmlns:n0="http://wellformedweb.org/CommentAPI/">http://www.openlinksw.com/weblog/uda/135/gems/rsscomment.xml?:id=1301</n0:commentRss><pubDate>Sun, 20 Jan 2008 13:38:14 GMT</pubDate><description>&lt;div&gt;
&lt;div style=&quot;display:none;&quot;&gt;OpenLink Software Releases new Universal Data Access Driver Suite 6.1&lt;/div&gt;
                     &lt;pre style=&quot;font-family: Times New Roman,Times,serif;&quot;&gt;  &lt;font size=&quot;3&quot;&gt;New &lt;a href=&quot;http://dbpedia.org/resource/ODBC&quot; id=&quot;link-id0x23592bd8&quot;&gt;ODBC&lt;/a&gt;, &lt;a href=&quot;http://dbpedia.org/resource/JDBC&quot; id=&quot;link-id0x2373d4e8&quot;&gt;JDBC&lt;/a&gt;, &lt;a href=&quot;http://dbpedia.org/resource/ADO.NET&quot; id=&quot;link-id0x233ed248&quot;&gt;ADO.NET&lt;/a&gt;, and &lt;a href=&quot;http://dbpedia.org/resource/OLEDB&quot; id=&quot;link-id0x2358f3c8&quot;&gt;OLE DB&lt;/a&gt; Drivers for Major Databases&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size=&quot;4&quot;&gt;&lt;font size=&quot;3&quot;&gt;Burlington, MA. Tuesday, January 15, 2008 - OpenLink Software, Inc., technology leader in the development and deployment of secure, &lt;br /&gt;high-performance universal data access middleware, announces the commercial availability of Release 6.1 of its high-performance and &lt;br /&gt;secure Universal Data Access Drivers.  &lt;br /&gt;&lt;br /&gt;The updated components support new and older releases of Oracle, Microsoft SQL Server, Sybase, IBM DB2, IBM Informix, Ingres, Progress&lt;br /&gt;Open Edge, MySQL, PostgreSQL, and Firebird, across Windows, Mac OS X, Linux, Solaris, HP-UX, and AIX.&lt;br /&gt;&lt;br /&gt;New features across then entire suite include:&lt;br /&gt;&lt;br /&gt;- XA-based two-phase commit across ODBC, JDBC, and ADO.NET&lt;br /&gt;&lt;br /&gt;- Microsoft SQL Linked Server compatible ODBC provider for OLE DB (32 &amp;amp; 64 Bit)&lt;br /&gt;&lt;br /&gt;- ODBC Bridge for JDBC accessible Databases (32 &amp;amp; 64 Bit)&lt;br /&gt;&lt;br /&gt;- Ruby on Rails Adapter for ODBC- and JDBC-accessible databases&lt;br /&gt;&lt;br /&gt;- Support for 64-bit Windows running on x86_64 (e.g., Opteron, Xeon) and IA64 (e.g., Itanium2) Processors across all Data Access APIs -- &lt;br /&gt;   ODBC, JDBC, OLEDB,  and ADO.NET&lt;br /&gt;&lt;br /&gt;- Support in Mac OS X Universal binaries for PPC and Intel 32-bit mode on Tiger (10.4) and Leopard (10.5), plus Intel 64-bit mode on Leopard&lt;br /&gt;&lt;br /&gt;- ADO.NET 2.0 Support (and an ADO.NET 3.0 Beta Provider on request)&lt;br /&gt;&lt;br /&gt;- ADO.NET integration with Visual Studio 2005 &lt;br /&gt;&lt;br /&gt;&amp;quot;The new product release builds on our legacy as leading provider of quality, secure and high-performance data access drivers to all major&lt;br /&gt;DBMS engines,&amp;quot; said Kingsley Idehen, President &amp;amp; CEO.&lt;br /&gt;&lt;br /&gt;&amp;quot;We are at a critical juncture within the enterprise and across the Web, where data access, portability, and unobtrusive integration require&lt;br /&gt;the technological prowess and leadership qualities we&amp;#39;ve consistently demonstrated over the last 15 years. Standardized data access&lt;br /&gt;middleware that enables the development and deployment of database and operating system independent applications remains a critical priority&lt;br /&gt;for organizations worldwide,&amp;quot; he added.&lt;br /&gt;&lt;br /&gt;About OpenLink Software&lt;br /&gt;=======================  &lt;br /&gt;&lt;br /&gt;OpenLink Software is a privately held software company with offices in the U.S.A., United Kingdom, Russia, and Bulgaria. It has been the&lt;br /&gt;leading provider and technology innovator in the universal data access middleware market since 1993, with over 10,000+ companies currently&lt;br /&gt;using its products worldwide.&lt;br /&gt;&lt;br /&gt;Additional information on OpenLink Software can be obtained from the web site: http://www.openlinksw.com/.&lt;br /&gt;&lt;br /&gt;Contact:&lt;br /&gt;Helen Heward-Mills,&lt;br /&gt;OpenLink Software, Inc.&lt;br /&gt;Tel: 781 273 0900&lt;br /&gt;Email: hmills@openlinksw.com&lt;/font&gt;&lt;br /&gt;  &lt;/font&gt;&lt;br /&gt;&lt;/pre&gt;        
&lt;/div&gt;</description><author>UDA Data Space Bot &lt;hwilliams@openlinksw.com&gt;</author><n0:version xmlns:n0="http://www.openlinksw.com/weblog/">6</n0:version><n0:modified xmlns:n0="http://www.openlinksw.com/weblog/">2008-01-20T09:48:19.9000-05:00</n0:modified></item><item><title>Announcing ODBC Data Adapter for Ruby on Rails, release 1.1</title><guid>http://www.openlinksw.com/weblog/uda/135/?id=1071</guid><link>http://www.openlinksw.com/weblog/uda/135/?id=1071</link><comments>http://www.openlinksw.com/weblog/uda/135/?id=1071#comments</comments><n0:comment xmlns:n0="http://wellformedweb.org/CommentAPI/">http://www.openlinksw.com/mt-tb/Http/comments?id=1071</n0:comment><n0:commentRss xmlns:n0="http://wellformedweb.org/CommentAPI/">http://www.openlinksw.com/weblog/uda/135/gems/rsscomment.xml?:id=1071</n0:commentRss><pubDate>Mon, 23 Oct 2006 17:03:03 GMT</pubDate><description>&lt;div&gt;
&lt;div style=&quot;display:none;&quot;&gt;Announcing ODBC Data Adapter for Ruby on Rails, release 1.1&lt;/div&gt;
&lt;p&gt;
&lt;span style=&quot;font-family:monospace;font-size:11pt;&quot;&gt;&lt;em&gt;OpenLink Software are pleased to announce release 1.1 of the ODBC Adapter for Ruby on Rails (ActiveRecord).
&lt;br /&gt;
&lt;br /&gt;This unifies data-access from a plethora of individual adapters to one common configuration in Rails; rather than having a multitude of DBMS-specific Rails Adaptors with inconsistent functionality and behaviour, you can now focus on a single data adapter with consistent behaviour across ODBC-accessible databases on all Ruby-supported platforms. This release adds support for DB2, MySQL, Sybase and SQL Server. The supported DBMSes now include: Oracle, Informix, Ingres, OpenLink Virtuoso, SQL Server, Sybase, MySQL and DB2.
&lt;br /&gt;
&lt;br /&gt;The adapter can be downloaded from rubyforge: &lt;/em&gt;&lt;/span&gt;
 &lt;span style=&quot;font-family:monospace;font-size:11pt;&quot;&gt;
  &lt;em&gt;&lt;a href=&quot;http://rubyforge.org/projects/odbc-rails/&quot;&gt;http://rubyforge.org/projects/odbc-rails/&lt;/a&gt;
  &lt;/em&gt;
 &lt;/span&gt;
 &lt;span style=&quot;font-family:monospace;font-size:11pt;&quot;&gt;
  &lt;em&gt;
&lt;br /&gt;
  &lt;/em&gt;
 &lt;/span&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align:right;font-size:10px;&quot;&gt;Technorati Tags: &lt;a href=&quot;http://www.technorati.com/tag/odbc&quot; rel=&quot;tag&quot;&gt;odbc&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/rails&quot; rel=&quot;tag&quot;&gt;rails&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/ruby&quot; rel=&quot;tag&quot;&gt;ruby&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/webdevelopment&quot; rel=&quot;tag&quot;&gt;webdevelopment&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;</description><author>UDA Data Space Bot &lt;hwilliams@openlinksw.com&gt;</author><category>odbc</category><category>rails</category><category>ruby</category><category>webdevelopment</category><category>odbc</category><category>rails</category><category>ruby</category><category>webdevelopment</category><n0:version xmlns:n0="http://www.openlinksw.com/weblog/">1</n0:version><n0:modified xmlns:n0="http://www.openlinksw.com/weblog/">2006-10-23T13:03:03.2000-04:00</n0:modified></item><item><title>Why Web 2.0 clones are not innovative</title><guid>http://www.openlinksw.com/weblog/uda/135/?id=1070</guid><link>http://www.openlinksw.com/weblog/uda/135/?id=1070</link><comments>http://www.openlinksw.com/weblog/uda/135/?id=1070#comments</comments><n0:comment xmlns:n0="http://wellformedweb.org/CommentAPI/">http://www.openlinksw.com/mt-tb/Http/comments?id=1070</n0:comment><n0:commentRss xmlns:n0="http://wellformedweb.org/CommentAPI/">http://www.openlinksw.com/weblog/uda/135/gems/rsscomment.xml?:id=1070</n0:commentRss><pubDate>Mon, 23 Oct 2006 16:02:56 GMT</pubDate><description>&lt;div&gt;
&lt;div style=&quot;display:none;&quot;&gt;Why Web 2.0 clones are not innovative&lt;/div&gt;
&lt;p&gt;
&lt;a href=&quot;http://www.geospatialsemanticweb.com/2006/10/04/why-web-20-clones-are-not-innovative&quot;&gt;Why Web 2.0 clones are not innovative&lt;/a&gt;:
&lt;/p&gt;
&lt;p style=&quot;text-align:right;&quot;&gt;
Richard MacManus at ZDNet writes his view on &lt;a href=&quot;http://blogs.zdnet.com/web2explorer/index.php?p=277&quot; target=&quot;_blank&quot; title=&quot;Web 2.0 Clones - where is all the innovation?&quot;&gt;Web 2.0 clone applications&lt;/a&gt;. He observed that every country has its set of Web 2.0 clones &amp;amp;#8212; bookmarking sites that looks del.icio.us, photo sharing sites that like Flickr, social networking sites like MySpace, community news sites like digg, etc. He criticizes those Web 2.0 clones being non-innovative.
&lt;/p&gt;
&lt;p&gt;
It&amp;amp;#8217;s true that most of the clone apps don&amp;amp;#8217;t come with innovative ideas, but it would be unwise to think that they totally have no values. Contrary to Richard&amp;amp;#8217;s point of view, I think clone apps are essential ingredients in helping the IT business in developing countries to become innovative.
&lt;/p&gt;
&lt;p&gt;
Innovative ideas don&amp;amp;#8217;t usually born in the thin air. They requires extensive testings and experiments. The mature IT business in the US has extensive knowledge and experience in developing innovative ideas. People here have a general idea about what works and what doesn&amp;amp;#8217;t. In many developing countries, however, the settings are completely different.
&lt;/p&gt;
&lt;p&gt;
Take China for an example. Its IT market is still in an infant stage comparing to that of the US. Chinese businesses that recently entered the market are still in the stage trying to figure out how to make profits and establish a sustainable business model. The need to be innovative  now, perhaps, is not on the todo lists of the business executives.
&lt;/p&gt;
&lt;p&gt;
Furthermore, the past generation of Chinese engineers and developers were not exactly trained to be innovative and think outside-the-box. They were trained with impressive memorization skills and obey orders from superiors. It&amp;amp;#8217;s unfair to expect this generation of Chinese IT workers to live and breath with innovations as their US counterparts do.
&lt;/p&gt;
&lt;p&gt;
Given this type of harsh environment in many developing countries, it&amp;amp;#8217;s quite natural to act as copycats and repeat business ideas that have good track records. In fact, it&amp;amp;#8217;s a good business if being a copycat can bring profits.
&lt;/p&gt;
&lt;p&gt;
We don&amp;amp;#8217;t criticize Yahoo! Maps being a copycat of Google Maps. We don&amp;amp;#8217;t criticize Google Notebook being a copycat of del.icio.us. Why should we criticize foreign Web 2.0 clones when their intention is to learn how to enter a global IT market and to become prosperous? Maybe in the cloning process, copycats will discover innovative ideas by accident.
&lt;/p&gt;
&lt;p style=&quot;text-align:right;font-size:10px;&quot;&gt;Technorati Tags: &lt;a href=&quot;http://www.technorati.com/tag/business&quot; rel=&quot;tag&quot;&gt;business&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/web2.0&quot; rel=&quot;tag&quot;&gt;web2.0&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;</description><author>UDA Data Space Bot &lt;hwilliams@openlinksw.com&gt;</author><category>business</category><category>web2.0</category><category>business</category><category>web2.0</category><n0:version xmlns:n0="http://www.openlinksw.com/weblog/">1</n0:version><n0:modified xmlns:n0="http://www.openlinksw.com/weblog/">2006-10-23T12:02:56.5000-04:00</n0:modified></item><item><title>What Problem Does Natural Language Search Solve?</title><guid>http://www.openlinksw.com/weblog/uda/135/?id=1068</guid><link>http://www.openlinksw.com/weblog/uda/135/?id=1068</link><comments>http://www.openlinksw.com/weblog/uda/135/?id=1068#comments</comments><n0:comment xmlns:n0="http://wellformedweb.org/CommentAPI/">http://www.openlinksw.com/mt-tb/Http/comments?id=1068</n0:comment><n0:commentRss xmlns:n0="http://wellformedweb.org/CommentAPI/">http://www.openlinksw.com/weblog/uda/135/gems/rsscomment.xml?:id=1068</n0:commentRss><pubDate>Mon, 23 Oct 2006 16:02:55 GMT</pubDate><description>&lt;div&gt;
&lt;div style=&quot;display:none;&quot;&gt;What Problem Does Natural Language Search Solve?&lt;/div&gt;
&lt;p&gt;
&lt;a href=&quot;http://techdirt.com/articles/20061005/162157.shtml&quot;&gt;What Problem Does Natural Language Search Solve?&lt;/a&gt;:
&lt;br /&gt;Matt Marshall recently posted a story about a new search engine &lt;a href=&quot;http://venturebeat.com/2006/10/02/bold-start-up-powerset-about-to-raise-10m-to-take-on-google/&quot;&gt;looking to raise a lot of money&lt;/a&gt; at a very high valuation, which has created &lt;a href=&quot;http://www.techmeme.com/061005/p47#a061005p47&quot;&gt;quite a bit of buzz&lt;/a&gt; as people argue over whether or not the company has a chance, or deserves such a high valuation.  Matt followed up with &lt;a href=&quot;http://venturebeat.com/2006/10/04/powerset-that-secretive-little-search-engine-company/&quot;&gt;more details on the company&lt;/a&gt;, though he still expresses some reasonable skepticism.  Like many people, my first reaction on hearing about it was that I can&amp;amp;#39;t remember a year that&amp;amp;#39;s gone by without someone claiming to have come out with a revolution in natural language search.  However, when it comes to search engine news, no one can go through the history and explain why something is a bad idea &lt;a href=&quot;http://blog.searchenginewatch.com/blog/061005-095006&quot;&gt;quite like Danny Sullivan can&lt;/a&gt;.  He lists out all the attempts at natural language search, and shows how each one failed (in some cases, miserably).  He also points out that the problem with natural language search is that it requires everyone to change their behavior.  As with any startup, when you&amp;amp;#39;re looking at their chances, the big question to ask is pretty simple: what problem does it solve?  Plenty of people have figured out how to search with keywords.  In fact, many of us find it more natural and faster than trying to construct a natural language query.  So, while all the natural language search engines that come along insist that searches suck because they can&amp;amp;#39;t understand the the searcher, it&amp;amp;#39;s not clear that&amp;amp;#39;s the real problem.  When people want to use a search engine, they want to find what they want.  That means being able to search quickly.  Dumping two or three keywords into a box is always going to be a lot faster than figuring out the natural language equivalent.  So, perhaps someone can enlighten us.  What is the problem natural language search solves?
&lt;/p&gt;
&lt;p style=&quot;text-align:right;&quot;&gt;
&lt;span style=&quot;font-size:10pt;&quot;&gt;Technorati Tags: &lt;/span&gt;  &lt;span style=&quot;font-size:10pt;&quot;&gt;&lt;a href=&quot;http://www.technorati.com/tag/search&quot; rel=&quot;tag&quot;&gt;search&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;font-size:10pt;&quot;&gt;  &lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
(via Techdirt)
&lt;/p&gt;
&lt;p style=&quot;text-align:right;font-size:10px;&quot;&gt;Technorati Tags: &lt;a href=&quot;http://www.technorati.com/tag/natural-language&quot; rel=&quot;tag&quot;&gt;natural-language&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/search&quot; rel=&quot;tag&quot;&gt;search&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;</description><author>UDA Data Space Bot &lt;hwilliams@openlinksw.com&gt;</author><category>search</category><category>natural-language</category><category>search</category><category>search</category><category>natural-language</category><category>search</category><n0:version xmlns:n0="http://www.openlinksw.com/weblog/">1</n0:version><n0:modified xmlns:n0="http://www.openlinksw.com/weblog/">2006-10-23T12:02:55.2000-04:00</n0:modified></item><item><title>Planning the Software Industrial Revolution</title><guid>http://www.openlinksw.com/weblog/uda/135/?id=843</guid><link>http://www.openlinksw.com/weblog/uda/135/?id=843</link><comments>http://www.openlinksw.com/weblog/uda/135/?id=843#comments</comments><n0:comment xmlns:n0="http://wellformedweb.org/CommentAPI/">http://www.openlinksw.com/mt-tb/Http/comments?id=843</n0:comment><n0:commentRss xmlns:n0="http://wellformedweb.org/CommentAPI/">http://www.openlinksw.com/weblog/uda/135/gems/rsscomment.xml?:id=843</n0:commentRss><pubDate>Fri, 13 May 2005 17:33:19 GMT</pubDate><description>&lt;p&gt;
&lt;a href=&quot;http://virtualschool.edu/cox/pub/PSIR/&quot;&gt;Here&lt;/a&gt; is another timeless article by Brad Cox titled: Planning The Software Industrial Revolution.&lt;/p&gt;
&lt;p&gt;Enjoy!&lt;/p&gt;</description><author>UDA Data Space Bot &lt;hwilliams@openlinksw.com&gt;</author><n0:version xmlns:n0="http://www.openlinksw.com/weblog/">1</n0:version><n0:modified xmlns:n0="http://www.openlinksw.com/weblog/">2006-06-22T08:56:58.000-04:00</n0:modified></item><item><title>Social Construction of Reality</title><guid>http://www.openlinksw.com/weblog/uda/135/?id=842</guid><link>http://www.openlinksw.com/weblog/uda/135/?id=842</link><comments>http://www.openlinksw.com/weblog/uda/135/?id=842#comments</comments><n0:comment xmlns:n0="http://wellformedweb.org/CommentAPI/">http://www.openlinksw.com/mt-tb/Http/comments?id=842</n0:comment><n0:commentRss xmlns:n0="http://wellformedweb.org/CommentAPI/">http://www.openlinksw.com/weblog/uda/135/gems/rsscomment.xml?:id=842</n0:commentRss><pubDate>Fri, 13 May 2005 11:31:42 GMT</pubDate><description>&lt;p&gt;An interesting &lt;a href=&quot;http://www.virtualschool.edu/mon/SocialConstruction/index.html&quot;&gt;article&lt;/a&gt; by &lt;a href=&quot;http://www.virtualschool.edu/cox/&quot;&gt;Brad Cox&lt;/a&gt;. (inventor of &lt;a href=&quot;http://en.wikipedia.org/wiki/Objective-C&quot;&gt;Objective-C&lt;/a&gt;) that&amp;#39;s provides great foundation for a understanding number of issues that are relevant to social networking systems.&lt;/p&gt;</description><author>UDA Data Space Bot &lt;hwilliams@openlinksw.com&gt;</author><n0:version xmlns:n0="http://www.openlinksw.com/weblog/">1</n0:version><n0:modified xmlns:n0="http://www.openlinksw.com/weblog/">2006-06-22T08:56:58.000-04:00</n0:modified></item><item><title>Standards Contempt Revisited</title><guid>http://www.openlinksw.com/weblog/uda/135/?id=835</guid><link>http://www.openlinksw.com/weblog/uda/135/?id=835</link><comments>http://www.openlinksw.com/weblog/uda/135/?id=835#comments</comments><n0:comment xmlns:n0="http://wellformedweb.org/CommentAPI/">http://www.openlinksw.com/mt-tb/Http/comments?id=835</n0:comment><n0:commentRss xmlns:n0="http://wellformedweb.org/CommentAPI/">http://www.openlinksw.com/weblog/uda/135/gems/rsscomment.xml?:id=835</n0:commentRss><pubDate>Thu, 12 May 2005 15:11:14 GMT</pubDate><description>&lt;p&gt;My entire time in the IT industry has been spent primarily trying to develop, architect, test, mentor, evangelize, and educate about one simple subject: Standards Appreciation!&lt;/p&gt;
&lt;p&gt;The trouble with &amp;quot;Standards Appreciation&amp;quot; is that vendors see standards from the following perspectives primarily:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Yet another opportunity to lock-in the customer &lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;If point 1. fails then undermine the standard vociferously (an activity that takes many covert forms; attack performance, security, and maturity)&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Developers don&amp;#39;t like standards (the real reason for this is to-do lists and timeframes in most cases)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
&lt;a href=&quot;http://koranteng.blogspot.com&quot;&gt;Korateng Ofusu-Amaah&lt;/a&gt; provides insightful perspective on the issues above, in a recent &amp;quot;must read&amp;quot; &lt;a href=&quot;http://koranteng.blogspot.com/2005/05/unloved-html-button-and-other.html&quot;&gt;blog post&lt;/a&gt; about how this dysfunctionality plays out today in the realm of HTML Buttons and Forms. Here are some notebable excerpts:&lt;/p&gt;
&lt;blockquote dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;&gt;
&lt;p&gt;
  &lt;em&gt;&amp;quot;Instead my discourse devolved into a case of I told you so, a kind of Old Testament view of things instead of the softer New Age stylings that are in vogue these days. Sure there was a little concern for the users that had been hurt by lost data, but there was almost no empathy for the developers who had to lose their weekends furiously reworking their applications to &lt;/em&gt;&lt;a href=&quot;http://www.amazon.com/exec/obidos/ASIN/B00004XQMV/korantenstoli-20&quot;&gt;&lt;/a&gt;&lt;em&gt;do the right thing especially because it appeared that they would rather persist in trying to do the wrong thing. &lt;br /&gt;
  &lt;br /&gt;The sentiment behind that mini tempest-in-a-teapot however was a recognition of the fact that &lt;span style=&quot;FONT-WEIGHT: bold&quot;&gt;those who have been quietly evangelizing the web style were talking about the wrong thing and to the wrong people.&amp;quot;&lt;/span&gt; &lt;br /&gt;
  &lt;br /&gt;...&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
  &lt;em&gt;&amp;quot;..As application developers we should ask for better forms, we should be demanding of browser makers things like XForms or Web Forms 2.0 to make sure that we can go beyond the kind of stilted usability that we currently have. Our users would appreciate our efforts in that vein but for now, they know what to expect. Until then application developers should push back when we are told to &amp;quot;do the wrong thing&amp;quot;.&lt;/em&gt;
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;There is an unfortunate mindset trend at the current time that espouses: &amp;quot;Sloppiness&amp;quot; is good, and &amp;quot;Simple&amp;quot; justifies inadequacy at all times. Today, the real focus of most development endeavours is popularity first and coherance (backward compatibility, standards compliance, security, scalability etc.) a distant second, if you can simply make things popular then that justifies the sloppiness (acquisition, VC money, Blogosphere Juice etc.). Especially as someone else will ultimately have to deal with the predictable ramifications of the sloppiness. &lt;/p&gt;
&lt;p&gt;Standards are critical to the success of IT investment within any enterprise, but standards are difficult to design, write, implement, and then comprehend; due to the inherent requirement for abstraction - it&amp;#39;s a top down, as opposed to bottom up, process.&lt;/p&gt;
&lt;p&gt;Vendors will never genuinely embrace standards, until IT decision makers demand standards compliance of them, by demonstrating a penchant for smelling out &amp;quot;&lt;a href=&quot;http://www.joelonsoftware.com/articles/LeakyAbstractions.html&quot;&gt;leaky abstractions&lt;/a&gt;&amp;quot; embedded within product implementations. Naturally, this requires a fundamental change of mindset for most decision makers. It means moving away from the &amp;quot;this analyst said...&amp;quot;, &amp;quot;I heard that company X is going to deliver....&amp;quot;, &amp;quot;I read that .....&amp;quot;, &amp;quot;I saw that demo...&amp;quot; approach to product evaluation, to a more knowledgeable evaluation process that seeks out the What, Why, and How of any prospective IT solution.  &lt;/p&gt;
&lt;p&gt;Knowledge empowers all of the time. It&amp;#39;s a gift that stands the test of time once you invest some time in its acquisition (unfortunately this gift isn&amp;#39;t free!). Ignorance with all its superficial seduction (free and widely available!), is temporary bliss at best, and nothing but heartache over time. &lt;/p&gt;</description><author>UDA Data Space Bot &lt;hwilliams@openlinksw.com&gt;</author><n0:version xmlns:n0="http://www.openlinksw.com/weblog/">1</n0:version><n0:modified xmlns:n0="http://www.openlinksw.com/weblog/">2006-06-22T08:56:58.000-04:00</n0:modified></item><item><title>A Collection of PHP and ODBC How-To Links</title><guid>http://www.openlinksw.com/weblog/uda/135/?id=832</guid><link>http://www.openlinksw.com/weblog/uda/135/?id=832</link><comments>http://www.openlinksw.com/weblog/uda/135/?id=832#comments</comments><n0:comment xmlns:n0="http://wellformedweb.org/CommentAPI/">http://www.openlinksw.com/mt-tb/Http/comments?id=832</n0:comment><n0:commentRss xmlns:n0="http://wellformedweb.org/CommentAPI/">http://www.openlinksw.com/weblog/uda/135/gems/rsscomment.xml?:id=832</n0:commentRss><pubDate>Sun, 01 May 2005 15:46:45 GMT</pubDate><description>&lt;p&gt;In 2005 I am somewhat surprised at the steady level of emails and commentary expressing confusion about the use of PHP and ODBC.&lt;/p&gt;
&lt;p&gt;Here are a few links that resolve any confusion about this matter:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;OpenLink&amp;#39;s PHP and iODBC HOWTO doc: &lt;a href=&quot;http://www.iodbc.org/index.php?page=languages/php/odbc-phpHOWTO&quot;&gt;http://www.iodbc.org/index.php?page=languages/php/odbc-phpHOWTO&lt;/a&gt;
  &lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;PHP Everywhere&amp;#39;s guide: &lt;a href=&quot;http://phplens.com/phpeverywhere/node/view/9&quot;&gt;http://phplens.com/phpeverywhere/node/view/9&lt;/a&gt;
  &lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Zili Zhang&amp;#39;s piece from 1999 (time flies!): &lt;a href=&quot;http://www.tldp.org/HOWTO/MSSQL6-Openlink-PHP-ODBC.html&quot;&gt;http://www.tldp.org/HOWTO/MSSQL6-Openlink-PHP-ODBC.html&lt;/a&gt;
  &lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Zend&amp;#39;s ODBC Tutorial: &lt;a href=&quot;http://www.zend.com/zend/tut/odbc.php&quot;&gt;http://www.zend.com/zend/tut/odbc.php&lt;/a&gt; &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Or simple google on PHP and ODBC or PHP and iODBC ...&lt;/p&gt;</description><author>UDA Data Space Bot &lt;hwilliams@openlinksw.com&gt;</author><n0:version xmlns:n0="http://www.openlinksw.com/weblog/">1</n0:version><n0:modified xmlns:n0="http://www.openlinksw.com/weblog/">2006-06-22T08:56:58.000-04:00</n0:modified></item><item><title>Point, Counterpoint: Mac OS X Is Great for Fortysomething Unix Hackers</title><guid>http://www.openlinksw.com/weblog/uda/135/?id=829</guid><link>http://www.openlinksw.com/weblog/uda/135/?id=829</link><comments>http://www.openlinksw.com/weblog/uda/135/?id=829#comments</comments><n0:comment xmlns:n0="http://wellformedweb.org/CommentAPI/">http://www.openlinksw.com/mt-tb/Http/comments?id=829</n0:comment><n0:commentRss xmlns:n0="http://wellformedweb.org/CommentAPI/">http://www.openlinksw.com/weblog/uda/135/gems/rsscomment.xml?:id=829</n0:commentRss><pubDate>Sun, 01 May 2005 14:31:01 GMT</pubDate><description>There has been a lot of well deserved attention going the way of &amp;quot;Mac OS X Tiger&amp;quot;. A the current time, a lot of this attention tends to focus on the consumer constituency comprised of Aunt Milly et al, designers, and new media aficionados. The &lt;a href=&quot;http://daringfireball.net/&quot;&gt;Daring Fireball&lt;/a&gt; posts an article titled: &lt;a href=&quot;http://daringfireball.net/2005/04/point_counterpoint&quot;&gt;Point, Counterpoint: Mac OS X Is Great for Fortysomething Unix Hackers&lt;/a&gt; . This particular post applies to OpenLink Software in general across a myriad of fronts, especially the essence of this excerpt:
&lt;blockquote dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;&gt;
&lt;p&gt;On the surface, Grahamâs piece seems like a nice pat on the back to the Mac platform. But thereâs an implication in his piece that the worldâs most prodigiously talented programmers are only now switching (or switching back) to the Mac, when in fact some of them have been here all along. GUI programming is hard, and for GUI programmers, the Mac has always been, &lt;a href=&quot;http://www.shapeofdays.com/2005/01/interview_with_.html&quot;&gt;in Brent Simmonsâs words&lt;/a&gt;, âThe Showâ.&lt;/p&gt;
&lt;p&gt;I.e. the idea that by the mid-â90s the Mac user base had been whittled down to âgraphic designers and grandmasâ is demonstrably false â someone must have been writing the software the designers and grandmas were using, no? â but I donât think itâs worth pressing the point, because I suspect it wasnât really what Graham meant to imply. And the main thrust of his point is true: there is a certain class of hackers â your prototypical Unix nerds â who not only werenât using Macs a decade ago, but whose antipathy toward Macs was downright hostile. And it is remarkable that these hackers are now among Mac OS Xâs strongest adherents.&lt;/p&gt;
&lt;p&gt;Itâs another sign of Mac OS Xâs dual nature: from the perspective of your typical user (and particularly long-time Mac users), it is the Mac OS with a modern Unix architecture encapsulated under the hood; from the perspective of the hackers Graham writes of, it is Unix with a vastly superior GUI.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p dir=&quot;ltr&quot;&gt;
&lt;a href=&quot;http://daringfireball.net/2005/04/point_counterpoint&quot;&gt;Read on....&lt;/a&gt;
&lt;/p&gt;</description><author>UDA Data Space Bot &lt;hwilliams@openlinksw.com&gt;</author><n0:version xmlns:n0="http://www.openlinksw.com/weblog/">1</n0:version><n0:modified xmlns:n0="http://www.openlinksw.com/weblog/">2006-06-22T08:56:58.000-04:00</n0:modified></item><item><title>Ajax, Hard Facts, Brass Tacks ... and Bad Slacks</title><guid>http://www.openlinksw.com/weblog/uda/135/?id=826</guid><link>http://www.openlinksw.com/weblog/uda/135/?id=826</link><comments>http://www.openlinksw.com/weblog/uda/135/?id=826#comments</comments><n0:comment xmlns:n0="http://wellformedweb.org/CommentAPI/">http://www.openlinksw.com/mt-tb/Http/comments?id=826</n0:comment><n0:commentRss xmlns:n0="http://wellformedweb.org/CommentAPI/">http://www.openlinksw.com/weblog/uda/135/gems/rsscomment.xml?:id=826</n0:commentRss><pubDate>Fri, 29 Apr 2005 20:11:22 GMT</pubDate><description>&lt;p&gt;By &lt;a href=&quot;http://internet-apps.blogspot.com/&quot;&gt;Mark Bierbeck&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;
&lt;a href=&quot;http://internet-apps.blogspot.com/2005/04/ajax-hard-facts-brass-tacks-and-bad.html&quot;&gt;Ajax, Hard Facts, Brass Tacks ... and Bad Slacks&lt;/a&gt; &lt;/p&gt;
&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;A number of people have contacted me recently about Ajax [&lt;a href=&quot;about:blank#20050426-1&quot;&gt;1&lt;/a&gt;] -- a catchy name -- coined to provide an umbrella term for a particular group of technologies used to build web applications. The use of the word comes from Jesse James Garrett in a recent blog [&lt;a href=&quot;about:blank#20050426-2&quot;&gt;2&lt;/a&gt;], and describes a class of internet applications written using JavaScript in a browser. By using JavaScript these apps have full access to the DOM, and as a consequence are able to make all sorts of changes to the page that the user is interacting with, without having to go back to the server.&lt;br /&gt;
&lt;br /&gt;When the application &lt;em&gt;does&lt;/em&gt; need to go back to the server -- to deliver some data and get a response -- the idea is to keep the DOM intact so that the user has a smooth experience. This means that all communication with the server needs to take place outside of the normal HTML form mechanism, since this would obviously replace the current page.&lt;br /&gt;
&lt;br /&gt;Ajax addressed this, with what it calls &amp;#39;asynchronous-JavaScript&amp;#39; -- retrieve only the data you need, and then directly manipulate the DOM to get the effect you want. &amp;#39;Asynchronous-JavaScript&amp;#39; accounts for the first few letters of the name, with the remainder being the obligatory &amp;#39;X&amp;#39; for XML (although XML is not really key to this technology, and many of the applications that are often cited as Ajax-apps don&amp;#39;t use XML as the data medium).&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;Buzzing&lt;/h2&gt;The response to Ajax has been pretty positive. In fact the only negatives have been either to suggest a change of name or to moan a little that &amp;quot;I&amp;#39;ve been doing this for years, why hasn&amp;#39;t anyone noticed me?&amp;quot; (I won&amp;#39;t put any links to those sort of articles, since they are a little embarassing -- after all, &lt;em&gt;everyone&lt;/em&gt; has been doing this for years!)&lt;br /&gt;
&lt;br /&gt;Anyway, despite a couple of sour-pusses, the software community is almost universally excited, and the blog wires have glowed over the last few months with descriptions of Google Maps, GMail, and so on.&lt;br /&gt;
&lt;br /&gt;Just about everyone who has asked me about Ajax has expected me to be disappointed. Surely, they say, this makes the case for XForms weaker? But my answer is the exact opposite -- XForms and standards-based web applications are in every way superior to the techniques described as Ajax, since the whole &lt;em&gt;raison d&amp;#39;Ãªtre&lt;/em&gt; of XForms and XHTML 2 is to address the very problems that Ajax-like techniques suffer from.&lt;br /&gt;
&lt;br /&gt;That may come across as a little bold...so perhaps I should explain.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;From Workaround to Feature&lt;/h2&gt;We&amp;#39;ve all been using HTML mark-up for years now, and the language hasn&amp;#39;t changed much in that time. As a consequence, the increasing demand for more complex web-pages has meant that the balance in our documents has shifted increasingly from vanilla mark-up to &amp;#39;the workaround&amp;#39;. &lt;br /&gt;
&lt;br /&gt;Whether it&amp;#39;s providing tooltips, dynamic/repeating data sections, or small portions of our page that change without having to request a new document, we&amp;#39;ve generally had to dive into script. But the shift from mark-up to script has meant that the mark-up language itself has been relegated to a mere carrier for programs.&lt;br /&gt;
&lt;br /&gt;Unfortunately this means that no-one gains -- it&amp;#39;s annoying for the programmer to have to produce ever more convoluted spaghetti JavaScript to meet the demands of their audience, but it&amp;#39;s also annoying for the non-programmer, who probably only wants a tooltip. And its particularly annoying for those who want to use documents on the web for more ambitious applications to find that most of the important stuff in a document is hidden away in script.&lt;br /&gt;
&lt;br /&gt;All is not lost, however, since this collection of &amp;#39;workarounds&amp;#39; provides a rich source of real-life patterns that appear for authors and programmers, time and again. They may be workarounds, but they are much-needed ones.&lt;br /&gt;
&lt;br /&gt;The aim of the new generation of languages like XForms and XHTML 2 is to take these &amp;#39;common patterns&amp;#39; and turn them into mark-up. Just like the HTML elements &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;form&amp;gt;&lt;/code&gt; pack an enormous amount of functionality into deceptively simple tags, so too can new declarative mark-up capture patterns that have emerged &amp;#39;in the wild&amp;#39;.&lt;br /&gt;
&lt;br /&gt;(Note that this is the opposite of so-called folksonomies, where popular practice that occurs in the wild is left it the wild, and codification is regarded as a dirty word.)&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;The XML HTTP Request Object&lt;/h2&gt;Let&amp;#39;s take the much talked about XML HTTP Request Object (XMLHttpRequest). If you are not familiar with it, it was originally part of Microsoft&amp;#39;s XML parser, and allows you to send and receive data outside of the normal HTML form processing. Since it&amp;#39;s a handy feature to have in a client, other browsers have followed suit and it&amp;#39;s now becoming the &amp;#39;standard&amp;#39; way to communicate with servers without messing up your page. It&amp;#39;s a corner-stone of Ajax. (A good summary with examples is on Jim Ley&amp;#39;s jibbering.com site [&lt;a href=&quot;about:blank#20050426-3&quot;&gt;3&lt;/a&gt;].)&lt;br /&gt;
&lt;br /&gt;But...we need to be clear that we&amp;#39;re using XMLHttpRequest to get round a weakness in HTML forms. The problem we have is that even if you know that a server is about to give you some data, and the &lt;em&gt;server&lt;/em&gt; knows it&amp;#39;s about to give you some data, there&amp;#39;s no way to tell your &lt;em&gt;form&lt;/em&gt; that -- instead your page will be wiped out and replaced with whatever the server sends back.&lt;br /&gt;
&lt;br /&gt;Of course, constant round-tripping doesn&amp;#39;t make it completely impossible to produce applications, and a lot of books and airline tickets are bought every day without the facility to get &amp;#39;just the data&amp;#39;. But we all know it would reduce network traffic and create a smoother user experience if we could just send a list of books or seats, rather than a whole new page.&lt;br /&gt;
&lt;br /&gt;Over the years applications such as Microsoft&amp;#39;s &lt;em&gt;Outlook Web Access&lt;/em&gt; (OWA), have had to step around the HTML form to get just the data they need. But, whilst OWA considerably predates GMail, until the advent of XMLHttpRequest, the techniques used were quite difficult to manage. (Google Suggest is often cited as a good example of an Ajax-app, but interestingly merges old and new techniques; XMLHttpRequest is used to obtain a piece of JavaScript from a server, and this script contains a call to a client-side function, but using server-provided parameters. It&amp;#39;s one of the techniques you might have used in the past with a hidden frame.)&lt;br /&gt;
&lt;br /&gt;So as many have said on their blogs, XMLHttpRequest is not a newly devised technique, but rather a generally accepted replacement for a very old technique. But ultimately that technique is a workaround since the &lt;em&gt;real&lt;/em&gt; problem is that HTML forms will always replace the current page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;Beyond HTML Forms&lt;/h2&gt;Whilst XMLHttpRequest gives us a way to get data to and from the server without losing our document, we&amp;#39;ve unfortunately thrown the baby out with the bath-water; whatever the weaknesses of HTML forms, you have to acknowledge that they are pretty simple to use. Here&amp;#39;s an abbreviated version of Google&amp;#39;s search form (note that the mark-up is HTML, not XML):&lt;br /&gt;
 &lt;code&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;form action=/search name=f&amp;gt;&lt;br /&gt;  &amp;lt;input type=hidden name=hl value=en&amp;gt;&lt;br /&gt;  &amp;lt;input maxLength=256 size=55 name=q value=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;input type=submit value=&amp;quot;Google Search&amp;quot; name=btnG&amp;gt;&lt;br /&gt;&amp;lt;/form&amp;gt;&lt;br /&gt;
&lt;/pre&gt;
 &lt;/code&gt;
&lt;br /&gt;As you can see, the simple problem with HTML forms is that we don&amp;#39;t say anything about where the data should go when we&amp;#39;ve received it from the server. The assumption in HTML of old is that we are just doing a kind of &amp;#39;super-navigation&amp;#39;, and no matter what we send to the server, it will only ever give us back a new web-page. (To put it a different way, you could say that &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;form&amp;gt;&lt;/code&gt; are pretty much the same thing.)&lt;br /&gt;
&lt;br /&gt;To see how this problem is resolved, let&amp;#39;s code the same Google search in XForms:&lt;br /&gt;
 &lt;code&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;xf:submission id=&amp;quot;sub-search&amp;quot;&lt;br /&gt; action=&amp;quot;http://www.google.com/complete/search?hl=en&amp;quot;&lt;br /&gt; method=&amp;quot;get&amp;quot; separator=&amp;quot;&amp;amp;&amp;quot;&lt;br /&gt; replace=&amp;quot;all&amp;quot;&lt;br /&gt;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;&amp;lt;xf:input ref=&amp;quot;q&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;xf:label&amp;gt;Query:&amp;lt;/xf:label&amp;gt;&lt;br /&gt;&amp;lt;/xf:input&amp;gt;&lt;br /&gt;
&lt;br /&gt;&amp;lt;xf:submit submission=&amp;quot;sub-search&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;xf:label&amp;gt;Google Search&amp;lt;/xf:label&amp;gt;&lt;br /&gt;&amp;lt;/xf:submit&amp;gt;&lt;br /&gt;
&lt;/pre&gt;
 &lt;/code&gt;
&lt;br /&gt;Although it will do exactly the same -- right down to replacing the current page -- it&amp;#39;s a little different to the HTML mark-up. But the changes in structure have given us some major benefits, from accessible labels on our form controls, to the possibility of many different submissions for the same data.&lt;br /&gt;
&lt;br /&gt;But what it has also given us is the possibility of solving our data update problem. The &lt;code&gt;replace&lt;/code&gt; attribute is actually optional in XForms, but I showed it in the previous mark-up so that you can compare it to this:&lt;br /&gt;
 &lt;code&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;xf:submission id=&amp;quot;sub-search&amp;quot;&lt;br /&gt; action=&amp;quot;http://www.google.com/complete/search?hl=en&amp;quot;&lt;br /&gt; method=&amp;quot;get&amp;quot; separator=&amp;quot;&amp;amp;&amp;quot;&lt;br /&gt; replace=&amp;quot;&lt;span style=&quot;COLOR: red&quot;&gt;instance&lt;/span&gt;&amp;quot;&lt;br /&gt;/&amp;gt;&lt;br /&gt;
&lt;/pre&gt;
 &lt;/code&gt;
&lt;br /&gt;In this example the data returned from the server will just replace the instance that was sent, and our page will remain completely intact. (The &lt;code&gt;replace&lt;/code&gt; attribute can take the values &lt;code&gt;all&lt;/code&gt;, &lt;code&gt;instance&lt;/code&gt;, or &lt;code&gt;none&lt;/code&gt;.)&lt;br /&gt;
&lt;br /&gt;I won&amp;#39;t show the full equivalent using XMLHttpRequest since it&amp;#39;s pretty large, but I&amp;#39;ll give a flavour of it. (Jim Ley&amp;#39;s page -- referenced earlier -- shows how to search Google with XMLHttpRequest.)&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;The Script Version&lt;/h3&gt;First we need to create an XMLHttpRequest object, but we need to do it in such a way that it will work on both Mozilla and IE:&lt;br /&gt;
 &lt;code&gt;&lt;pre&gt;&lt;br /&gt;var req;&lt;br /&gt;
&lt;br /&gt;function loadXMLDoc(url) {&lt;br /&gt;    // native XMLHttpRequest object&lt;br /&gt;    if (window.XMLHttpRequest) {&lt;br /&gt;        req = new XMLHttpRequest();&lt;br /&gt;        req.onreadystatechange = readyStateChange;&lt;br /&gt;        req.open(&amp;quot;GET&amp;quot;, url, true);&lt;br /&gt;        req.send(null);&lt;br /&gt;    // IE/Windows ActiveX version&lt;br /&gt;    } else if (window.ActiveXObject) {&lt;br /&gt;        req = new ActiveXObject(&amp;quot;Microsoft.XMLHTTP&amp;quot;);&lt;br /&gt;        if (req) {&lt;br /&gt;            req.onreadystatechange = readyStateChange;&lt;br /&gt;            req.open(&amp;quot;GET&amp;quot;, url, true);&lt;br /&gt;            req.send();&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;
&lt;/pre&gt;
 &lt;/code&gt;
&lt;br /&gt;When a document is loaded via this function, the &lt;code&gt;readyStateChange()&lt;/code&gt; method is invoked:&lt;br /&gt;
 &lt;code&gt;&lt;pre&gt;&lt;br /&gt;function readyStateChange() {&lt;br /&gt;    // &amp;#39;4&amp;#39; means document &amp;quot;loaded&amp;quot;&lt;br /&gt;    if (req.readyState == 4) {&lt;br /&gt;        // 200 means &amp;quot;OK&amp;quot;&lt;br /&gt;        if (req.status == 200) {&lt;br /&gt;            // do something here&lt;br /&gt;        } else {&lt;br /&gt;            // error processing here&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;
&lt;/pre&gt;
 &lt;/code&gt;
&lt;br /&gt;From a &lt;em&gt;programming&lt;/em&gt; point of view, I guess you could say that there isn&amp;#39;t a lot wrong with this, but then from a programming point of view there wasn&amp;#39;t a lot wrong with Z80 or 6502 assembly languages -- I just wouldn&amp;#39;t want to go back to them!&lt;br /&gt;
&lt;br /&gt;But the most important issue is that we have lost the very thing that was responsible for HTML&amp;#39;s success -- the use of simple, clear, declarative mark-up, in which we simply state our intent, without having to write a program to do it for us. After all, the web took off because authors only had to master &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt; in order to enter the exciting new world of &amp;#39;hypertext&amp;#39; -- but XMLHttpRequest raises the bar again, and takes us right back into the heart of geek-world.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;Beyond XMLHttpRequest&lt;/h2&gt;But in keeping with the principle that I outlined above -- that XForms and XHTML 2 try to provide mark-up for commonly existing design patterns -- let&amp;#39;s see if there are any other patterns that XMLHttpRequest has thrown up.&lt;br /&gt;
&lt;br /&gt;You will have noticed in the earlier script that we had tests for success and failure:&lt;br /&gt;
 &lt;code&gt;&lt;pre&gt;&lt;br /&gt;if (req.status == 200) {&lt;br /&gt;  // do something here&lt;br /&gt;} else {&lt;br /&gt;  // error processing here&lt;br /&gt;}&lt;br /&gt;
&lt;/pre&gt;
 &lt;/code&gt;
&lt;br /&gt;XForms provides the same functionality through the use of events -- on success do this, on failure do that. This is far more powerful, since it hides the protocol-specific aspects of this code (&amp;quot;200&amp;quot; may be &amp;#39;success&amp;#39; for HTTP, but it isn&amp;#39;t &amp;#39;success&amp;#39; when saving data to the hard-drive or sending an email).&lt;br /&gt;
&lt;br /&gt;XForms uses declarative mark-up to express those events, which again dramatically reduces coding:&lt;br /&gt;
 &lt;code&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;xf:action ev:observer=&amp;quot;sub-search&amp;quot; ev:event=&amp;quot;xforms-submit-error&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;xf:message level=&amp;quot;modal&amp;quot;&amp;gt;&lt;br /&gt;    Submission failed&lt;br /&gt;  &amp;lt;/xf:message&amp;gt;&lt;br /&gt;&amp;lt;/xf:action&amp;gt;&lt;br /&gt;
&lt;/pre&gt;
 &lt;/code&gt;
&lt;br /&gt;But there&amp;#39;s lots, lots more in the &lt;code&gt;submission&lt;/code&gt; part of XForms:&lt;br /&gt;
&lt;ul&gt;
  &lt;br /&gt;
&lt;li&gt;it can provide full XML Schema validation before submitting the data;&lt;/li&gt;
  &lt;br /&gt;
&lt;li&gt;there is built in support for numerous types of serialisation, such as &lt;code&gt;multipart/related&lt;/code&gt;;&lt;/li&gt;
  &lt;br /&gt;
&lt;li&gt;abstract methods are used so the code is independent of protocol. For example, since &lt;code&gt;put&lt;/code&gt; means the same thing whether the target URL begins &lt;code&gt;http:&lt;/code&gt; or &lt;code&gt;file:&lt;/code&gt;, a form with relative paths will run unchanged on a local machine or a web server;&lt;/li&gt;
  &lt;br /&gt;
&lt;li&gt;it&amp;#39;s extensible -- in formsPlayer 2.0 we have used the &lt;code&gt;submission&lt;/code&gt; element to read and write from an ADO database, allowing programmers to convert forms from using the web to using a local database by doing nothing more than changing a single target URL. (Try doing that with XMLHttpRequest!)&lt;/li&gt;
  &lt;br /&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;The &lt;code&gt;submission&lt;/code&gt; part of XForms is in fact so powerful that it will eventually form a separate specification, for use in other languages.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;From Patterns to Mark-up&lt;/h2&gt;And there are plenty more patterns out there that were crying out to be turned into mark-up, and which are now incorporated into XForms and XHTML 2. Do you remember the days when if we wanted a tooltip that contained mark-up -- perhaps an image, or bold text -- we had to use a carefully placed &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt;, a CSS &lt;code&gt;display: none;&lt;/code&gt;, a &lt;code&gt;mouseover&lt;/code&gt; event handler and a timer? Nowadays the programmer with better things to do than work with spaghetti-JavaScript just uses the XForms &lt;code&gt;&amp;lt;hint&amp;gt;&lt;/code&gt; element, and for free they get platform independence (and therefore accessibility), as well as the ability to insert any mark-up.&lt;br /&gt;
&lt;br /&gt;And what about the days when we had to write code to open up a text-to-speech engine, and then invoke the various methods on the object to get it to speak its mind? Nowadays who wouldn&amp;#39;t just use a CSS property on their XForms&amp;#39; &lt;code&gt;message&lt;/code&gt;s?&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Bad Slacks&lt;/h3&gt;And do you remember...I&amp;#39;m sorry, this one always makes me laugh...do you remember how we used to write lots of JavaScript to recalculate the shopping-cart when a new item was added? I know it&amp;#39;s hard to believe -- it&amp;#39;s like looking at old photos of us all wearing flares. Anyway, thank God for straight trousers and the XForms dependency-engine.&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;Image&quot; border=&quot;1&quot; src=&quot;http://www.npr.org/programs/morning/features/2004/sep/fashion_week/satfever_nano140.jpg&quot; /&gt; &lt;br /&gt;But enough of the good old days, the days of assembly language, C and JavaScript...let&amp;#39;s stick with the new.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;Do Try This at Home&lt;/h2&gt;
&lt;br /&gt;To round all of this off, we&amp;#39;ll take a look at Google Suggest, and we&amp;#39;ll use XForms to implement it. I&amp;#39;ll walk through the demo in a separate blog [&lt;a href=&quot;about:blank#20050426-4&quot;&gt;4&lt;/a&gt;] so that this one doesn&amp;#39;t get too cluttered -- and hopefully by disecting this simple but useful application, we can show how declarative mark-up scores over scripting.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;a name=&quot;20050426-1&quot;&gt;[1] Will AJAX help Google clean up?, c|net, &lt;a href=&quot;http://news.com.com/Will+AJAX+help+Google+clean+up/2100-1032_3-5621010.html&quot;&gt;http://news.com.com/Will+AJAX+help+Google+clean+up/2100-1032_3-5621010.html&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
  &lt;a name=&quot;20050426-2&quot;&gt;[2] Ajax: A New Approach to Web Applications, Jesse James Garrett, Adaptive Path blog, &lt;a href=&quot;http://www.adaptivepath.com/publications/essays/archives/000385.php&quot;&gt;http://www.adaptivepath.com/publications/essays/archives/000385.php&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
   &lt;a name=&quot;20050426-3&quot;&gt;[3] Using the XML HTTP Request object, &lt;a href=&quot;http://jibbering.com/2002/4/httprequest.html&quot;&gt;http://jibbering.com/2002/4/httprequest.html&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;a name=&quot;20050426-4&quot;&gt;[4] &amp;quot;Google Suggest&amp;quot; Using XForms, &lt;a href=&quot;http://internet-apps.blogspot.com/2005/04/google-suggest-using-xforms.html&quot;&gt;http://internet-apps.blogspot.com/2005/04/google-suggest-using-xforms.html&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;Tags: &lt;a href=&quot;http://technorati.com/tag/xforms&quot; rel=&quot;tag&quot;&gt;xforms&lt;/a&gt; | &lt;a href=&quot;http://technorati.com/tag/xbl&quot; rel=&quot;tag&quot;&gt;xbl&lt;/a&gt; | &lt;a href=&quot;http://technorati.com/tag/webapps&quot; rel=&quot;tag&quot;&gt;webapps&lt;/a&gt; | &lt;a href=&quot;http://technorati.com/tag/ajax&quot; rel=&quot;tag&quot;&gt;ajax&lt;/a&gt; | &lt;a href=&quot;http://technorati.com/tag/javascript&quot; rel=&quot;tag&quot;&gt;javascript&lt;/a&gt; &lt;/a&gt;
   &lt;/a&gt;
  &lt;/a&gt;
 &lt;/a&gt;
&lt;/div&gt;
&lt;div align=&quot;right&quot;&gt;[via &lt;a href=&quot;http://internet-apps.blogspot.com/&quot;&gt;Internet Applications&lt;/a&gt;]&lt;/div&gt;</description><author>UDA Data Space Bot &lt;hwilliams@openlinksw.com&gt;</author><n0:version xmlns:n0="http://www.openlinksw.com/weblog/">1</n0:version><n0:modified xmlns:n0="http://www.openlinksw.com/weblog/">2006-06-22T08:56:58.000-04:00</n0:modified></item><item><title>Microsoft: Longhorn Is Great, XP Is Lame</title><guid>http://www.openlinksw.com/weblog/uda/135/?id=823</guid><link>http://www.openlinksw.com/weblog/uda/135/?id=823</link><comments>http://www.openlinksw.com/weblog/uda/135/?id=823#comments</comments><n0:comment xmlns:n0="http://wellformedweb.org/CommentAPI/">http://www.openlinksw.com/mt-tb/Http/comments?id=823</n0:comment><n0:commentRss xmlns:n0="http://wellformedweb.org/CommentAPI/">http://www.openlinksw.com/weblog/uda/135/gems/rsscomment.xml?:id=823</n0:commentRss><pubDate>Fri, 29 Apr 2005 16:11:01 GMT</pubDate><description>&lt;a href=&quot;http://techdirt.com/articles/20050428/1051254_F.shtml&quot;&gt;Microsoft: Longhorn Is Great, XP Is Lame&lt;/a&gt; Software vendors walk a fine line when pushing upgrades -- tout the new version without slamming the old one. Microsoft threw that strategy aside in pumping Longhorn to the WinHEC faithful, as execs &lt;a href=&quot;http://www.pcadvisor.co.uk/index.cfm?RSS&amp;amp;moreover&amp;go=news.view&amp;news=4701&quot;&gt;belittled Windows XP in the process&lt;/a&gt;. One VP said that XP hadn&amp;#39;t been thought through and at times &amp;quot;failed to deliver.&amp;quot; The surprising part is not that XP has major shortcomings -- early on its enhancements were recognized as little more than &lt;a href=&quot;http://www.techdirt.com/articles/20010824/0856205_F.shtml&quot;&gt;improved stability&lt;/a&gt; and &lt;a href=&quot;http://www.techdirt.com/articles/20011008/0111217_F.shtml&quot;&gt;a bunch of bug fixes&lt;/a&gt;. Rather, the interesting part is Microsoft actually admitting to drawbacks at all, even several years late. But Longhorn, now there&amp;#39;s a &lt;i&gt;real&lt;/i&gt; operating system! 
&lt;div align=&quot;right&quot;&gt;[via &lt;a href=&quot;http://www.techdirt.com/&quot;&gt;Techdirt&lt;/a&gt;]&lt;/div&gt;</description><author>UDA Data Space Bot &lt;hwilliams@openlinksw.com&gt;</author><n0:version xmlns:n0="http://www.openlinksw.com/weblog/">1</n0:version><n0:modified xmlns:n0="http://www.openlinksw.com/weblog/">2006-06-22T08:56:58.000-04:00</n0:modified></item><item><title>SAP, IBM Make Play for Oracle Database Customers With New DB2 Version</title><guid>http://www.openlinksw.com/weblog/uda/135/?id=820</guid><link>http://www.openlinksw.com/weblog/uda/135/?id=820</link><comments>http://www.openlinksw.com/weblog/uda/135/?id=820#comments</comments><n0:comment xmlns:n0="http://wellformedweb.org/CommentAPI/">http://www.openlinksw.com/mt-tb/Http/comments?id=820</n0:comment><n0:commentRss xmlns:n0="http://wellformedweb.org/CommentAPI/">http://www.openlinksw.com/weblog/uda/135/gems/rsscomment.xml?:id=820</n0:commentRss><pubDate>Thu, 28 Apr 2005 21:52:55 GMT</pubDate><description>&lt;font size=&quot;2&quot;&gt;
&lt;p&gt;
&lt;a href=&quot;http://ct.enews.eweek.com/rd/cts?d=186-1965-11-96-81585-221904-0-0-0-1&quot;&gt;CNET reports&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;&gt;
&lt;p&gt;There are a whopping &lt;u&gt;44,000 SAP customers&lt;/u&gt; running on Oracle databases, and IBM wants them. To get them, for the first time ever, it&amp;#39;s optimized its enterprise database for a specific vendor&amp;#39;s applications. The new version of DB, 8.2.2, will include a slew of SAP-optimized features, including self-tuning, self-configuration, silent install, dynamic storage allocation and more. &lt;/p&gt;
&lt;/blockquote&gt;
&lt;p dir=&quot;ltr&quot;&gt;Wouldn&amp;#39;t SAP be better served by simply making their application database independent via &lt;a href=&quot;http://uda.openlinksw.com/odbc/&quot;&gt;ODBC&lt;/a&gt;? This process really could have commenced years ago and prevented today&amp;#39;s dilema: Your Partner has become Your most aggressive Competitor! &lt;/p&gt;
&lt;p dir=&quot;ltr&quot;&gt;SAP tuned for specifically for DB2 or SAP tuned likewise for Microsoft SQL simply reeks of: &amp;quot;Same Sh*t different Pile&amp;quot;.  Microsoft and IBM will emulate Oracle in due course regarding their assault on SAP&amp;#39;s market if DBMS specificity remains the SAP data access API strategy (this is a simple fact).&lt;/p&gt;
&lt;p dir=&quot;ltr&quot;&gt;SAP should be using its quest for DBMS independence to stimulate or contribute ODBC enhancements (should ODBC be lacking in areas critical to its application needs; it is available in &lt;a href=&quot;http://www.iodbc.org&quot;&gt;Open Source form&lt;/a&gt; and across all major platforms). Should the ODBC API not be the problem, then it can push ODBC Driver vendors (DBMS vendors such as IBM included) to get their Drivers in shape (should they be lacking, I know &lt;a href=&quot;http://uda.openlinksw.com/odbc &quot;&gt;our ODBC Drivers&lt;/a&gt; are absolutely fine for this kind of task).&lt;/p&gt;
&lt;p dir=&quot;ltr&quot;&gt;Database specificity gets application vendors nowhere. You can only control your business development destiny by being database independent. When applications are database independent the intellectual capital that drives your applications is preserved. This is akin to building physical and logical firewalls around the ecosystem created by your products. This is much better that being a pseudo DBMS engine reseller for a future competitor.&lt;/p&gt;
&lt;p dir=&quot;ltr&quot;&gt; &lt;/p&gt;
&lt;p dir=&quot;ltr&quot;&gt; &lt;/p&gt;
&lt;p dir=&quot;ltr&quot;&gt; &lt;/p&gt;
&lt;/font&gt;</description><author>UDA Data Space Bot &lt;hwilliams@openlinksw.com&gt;</author><n0:version xmlns:n0="http://www.openlinksw.com/weblog/">1</n0:version><n0:modified xmlns:n0="http://www.openlinksw.com/weblog/">2006-06-22T08:56:58.000-04:00</n0:modified></item><item><title>Advertising In RSS</title><guid>http://www.openlinksw.com/weblog/uda/135/?id=817</guid><link>http://www.openlinksw.com/weblog/uda/135/?id=817</link><comments>http://www.openlinksw.com/weblog/uda/135/?id=817#comments</comments><n0:comment xmlns:n0="http://wellformedweb.org/CommentAPI/">http://www.openlinksw.com/mt-tb/Http/comments?id=817</n0:comment><n0:commentRss xmlns:n0="http://wellformedweb.org/CommentAPI/">http://www.openlinksw.com/weblog/uda/135/gems/rsscomment.xml?:id=817</n0:commentRss><pubDate>Thu, 28 Apr 2005 19:56:05 GMT</pubDate><description>&lt;blockquote dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;&gt;
&lt;p&gt;
  &lt;a href=&quot;http://www.reallysimplesyndication.com/2005/04/28#a487&quot;&gt;Advertising in RSS&lt;/a&gt; is just starting now, for all practical purposes. If we wanted to, as an industry, reject the idea, we could. &lt;/p&gt;
&lt;/blockquote&gt;
&lt;div align=&quot;right&quot;&gt;[via &lt;a href=&quot;http://www.scripting.com/&quot;&gt;Scripting News&lt;/a&gt;]&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt; &lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;When XSL stylesheet integration becomes a standard feature across a majority of RSS readers the issue becomes moot. There is no need for industry wide rejection as this will ultimately come down to choice:  &amp;quot;To Filter&amp;quot; or &amp;quot;Not To Filter&amp;quot;.&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt; &lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;Adsense based RSS Advertising as currently implemented (bearing in mind the fundamental intent to perpetuate obtrusive advertising in a popular new realm) is hillarious when you really come to think about it. &lt;/div&gt;
&lt;div align=&quot;left&quot;&gt; &lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;XML and Obtrusiveness are mutually exclusive. This attempt to inject advertising into RSS may go down as one of the greatest pieces of XML tutorial material of all time. It could also serve as yet another example of how Web 2.0 is fundamentally different from Web 1.0.&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt; &lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;Will we ever truly comprehend the unadulterated meaning of: &amp;quot;Free Will&amp;quot; ?&lt;/div&gt;</description><author>UDA Data Space Bot &lt;hwilliams@openlinksw.com&gt;</author><n0:version xmlns:n0="http://www.openlinksw.com/weblog/">1</n0:version><n0:modified xmlns:n0="http://www.openlinksw.com/weblog/">2006-06-22T08:56:58.000-04:00</n0:modified></item><item><title>A History Of Communications</title><guid>http://www.openlinksw.com/weblog/uda/135/?id=814</guid><link>http://www.openlinksw.com/weblog/uda/135/?id=814</link><comments>http://www.openlinksw.com/weblog/uda/135/?id=814#comments</comments><n0:comment xmlns:n0="http://wellformedweb.org/CommentAPI/">http://www.openlinksw.com/mt-tb/Http/comments?id=814</n0:comment><n0:commentRss xmlns:n0="http://wellformedweb.org/CommentAPI/">http://www.openlinksw.com/weblog/uda/135/gems/rsscomment.xml?:id=814</n0:commentRss><pubDate>Wed, 27 Apr 2005 21:17:55 GMT</pubDate><description>&lt;a href=&quot;http://www.nixlog.com/archives/2005/03/20_a_history_of_communications.php&quot;&gt;A History Of Communications&lt;/a&gt; &lt;a href=&quot;http://www.nathan.com/projects/current/comtimeline.html&quot;&gt;A History of Communications Timeline&lt;/a&gt; (via &lt;a href=&quot;http://www.xplane.com/xblog/&quot;&gt;xBlog&lt;/a&gt;) 
&lt;div align=&quot;right&quot;&gt;[via &lt;a href=&quot;http://www.nixlog.com/&quot;&gt;nixlog&lt;/a&gt;]&lt;/div&gt;</description><author>UDA Data Space Bot &lt;hwilliams@openlinksw.com&gt;</author><n0:version xmlns:n0="http://www.openlinksw.com/weblog/">1</n0:version><n0:modified xmlns:n0="http://www.openlinksw.com/weblog/">2006-06-22T08:56:58.000-04:00</n0:modified></item><item><title>WebDAV, SQLX, and my Weblog</title><guid>http://www.openlinksw.com/weblog/uda/135/?id=811</guid><link>http://www.openlinksw.com/weblog/uda/135/?id=811</link><comments>http://www.openlinksw.com/weblog/uda/135/?id=811#comments</comments><n0:comment xmlns:n0="http://wellformedweb.org/CommentAPI/">http://www.openlinksw.com/mt-tb/Http/comments?id=811</n0:comment><n0:commentRss xmlns:n0="http://wellformedweb.org/CommentAPI/">http://www.openlinksw.com/weblog/uda/135/gems/rsscomment.xml?:id=811</n0:commentRss><pubDate>Tue, 26 Apr 2005 03:54:43 GMT</pubDate><description>&lt;p&gt;Uche Ogbuji &lt;a href=&quot;http://copia.ogbuji.net/blog/2005/04/24#Posting_to&quot;&gt;comments&lt;/a&gt; in his &lt;a href=&quot;http://copia.ogbuji.net/blog&quot;&gt;blog&lt;/a&gt; about the use of WebDAV and &lt;a href=&quot;http://www.tbradford.org/2005/02/xml-with-virtuoso-and-sqlx_02.html&quot;&gt;SQLX &lt;/a&gt;in my blog as part of his commentary about &lt;a href=&quot;http://egaumer.pagecache.org/PyBlosxom/pyblosxom-webdav.html&quot;&gt;Pyblosxom &amp;amp; WebDAV&lt;/a&gt;. To provide some clarity about Virtuoso and Blogging I have decided to put out this quick step by guide to the workings of my blog (there is a long overdue technical white paper nearing completion that address this subject in more detail).&lt;/p&gt;
&lt;p&gt;Here goes:&lt;/p&gt;
&lt;p&gt;
 &lt;u&gt;&lt;strong&gt;Blog Editing&lt;/strong&gt;
 &lt;/u&gt;
&lt;/p&gt;
&lt;p&gt;I can use any editor that supports the following Blog Post APIs:&lt;/p&gt;
&lt;p&gt;- Moveable Type&lt;/p&gt;
&lt;p&gt;- Meta Weblog&lt;/p&gt;
&lt;p&gt;- Blogger&lt;/p&gt;
&lt;p&gt;Typically I use Virtuoso (which has an unreleased WYSIWYG blog post editor), &lt;a href=&quot;http://www.newzcrawler.com/&quot;&gt;Newzcrawler&lt;/a&gt;, &lt;a href=&quot;http://ecto.kung-foo.tv/&quot;&gt;ecto&lt;/a&gt;, &lt;a href=&quot;http://zempt.com/&quot;&gt;Zempt&lt;/a&gt;, or &lt;a href=&quot;http://www.wbloggar.com/&quot;&gt;w.bloggar&lt;/a&gt; for my posts. If a post is of interest to me, or relevant to our company or customers I tend to perform one of the following tasks:&lt;/p&gt;
&lt;p&gt;- Generate a post using the &amp;quot;Blog This&amp;quot; feature of my blog editor&lt;/p&gt;
&lt;p&gt;- Write a new post that was triggered by a previously read post etc.&lt;/p&gt;
&lt;p&gt;Either way, the posts end up in our company wide blog server that is Virtuoso based (more about this below). The internal blog server automatically categorizes my blog posts, and automagically determines which posts to upstream to other public blogs that I author (e.g &lt;a href=&quot;http://kidehen.typepad.com/&quot;&gt;http://kidehen.typepad.com&lt;/a&gt; ) or co-author (e.g &lt;a href=&quot;http://www.openlinksw.com/weblogs/uda&quot;&gt;http://www.openlinksw.com/weblogs/uda&lt;/a&gt; and &lt;a href=&quot;http://www.openlinksw.com/weblogs/virtuoso&quot;&gt;http://www.openlinksw.com/weblogs/virtuoso&lt;/a&gt; ). I write once and my posts are dispatched conditionally to multiple outlets.&lt;/p&gt;
&lt;p&gt;
 &lt;strong&gt;&lt;u&gt;RSS/Atom/RDF Aggregation &amp;amp; Reading&lt;/u&gt;
 &lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;I discover, subscribe to, and view blog feeds using &lt;a href=&quot;http://www.newzcrawler.com/&quot;&gt;Newzcrawler&lt;/a&gt; (primarily), and from time to time for experimentation and evaluation purposes I use &lt;a href=&quot;http://www.rssbandit.org/&quot;&gt;RSS Bandit&lt;/a&gt;, &lt;a href=&quot;http://www.bradsoft.com/feeddemon/&quot;&gt;FeedDemon&lt;/a&gt;, and &lt;a href=&quot;http://www.bloglines.com/&quot;&gt;Bloglines&lt;/a&gt;. I am in the process of moving this activity over to Virtuoso completely due to the large number of feeds that I consume on a daily basis (scalability is a bit of a problem with current aggregators).&lt;/p&gt;
&lt;p&gt;
 &lt;u&gt;&lt;strong&gt;Blog Publishing&lt;/strong&gt;
 &lt;/u&gt;
&lt;/p&gt;
&lt;p&gt;When you visit my blog you are experiencing the  soon to be released Virtuoso Blog Publishing engine first hand, which is how WebDAV, SQLX, XQuery/XPath, and Free Text etc. come into the mix.&lt;/p&gt;
&lt;p&gt;Each time I create a post internally, or subscribe to an external feed, the data ends up in Virtuoso&amp;#39;s SQL Engine (this is how we handle some of the obvious scalability challenges associated with large subscription counts). This engine is SQL2000N based, which implies that it can transform SQL to XML on the fly using recent extensions to SQL in the form of SQLX (prior to the emergence of this standard we used the FOR XML SQL syntax extensions for the same result). It also has its own in-built XSLT processor (DB Engine resident), and validating XML parser (with support for XML Schema).  Thus, my &lt;a href=&quot;http://www.openlinksw.com/blog/~kidehen/gems/&quot;&gt;RSS/RDF/Atom archives, FOAF, BlogRoll, OPML, and OCS&lt;/a&gt; blog syndication gems are all live examples of SQLX documents that leverage Virtuoso&amp;#39;s WebDAV engine for exposure to Blog Clients.&lt;/p&gt;
&lt;p&gt;
 &lt;strong&gt;&lt;u&gt;Blog Search&lt;/u&gt;
 &lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;When you search for blog posts using the basic or &lt;a href=&quot;http://www.openlinksw.com/blog/search.vspx?blogid=127&quot;&gt;advanced search&lt;/a&gt; features of my blog, you end up interacting with one of the following methods of querying data hosted in Virtuoso: Free Text Search, XPath, or XQuery. The &lt;a href=&quot;http://www.openlinksw.com/blog/search.vspx?blogid=127&amp;q=virtuoso&amp;type=text&amp;output=html&quot;&gt;result sets&lt;/a&gt; produced by the search feature uses SQLX to produce subscription gems (&lt;a href=&quot;http://www.openlinksw.com/blog/search.vspx?blogid=127&amp;q=virtuoso&amp;type=text&amp;output=xml&quot;&gt;RSS&lt;/a&gt;/&lt;a href=&quot;http://www.openlinksw.com/blog/search.vspx?blogid=127&amp;q=virtuoso&amp;type=text&amp;output=atom&quot;&gt;Atom&lt;/a&gt;/&lt;a href=&quot;http://www.openlinksw.com/blog/search.vspx?blogid=127&amp;q=virtuoso&amp;type=text&amp;output=rdf&quot;&gt;RDF&lt;/a&gt;/&lt;a href=&quot;http://www.openlinksw.com/blog/search.vspx?blogid=127&amp;type=text&amp;kwds=virtuoso&amp;amp;OpenSearch&amp;quot;&gt;OpenSearch&lt;/a&gt;) and &lt;a href=&quot; xmlns:n0=&quot;http&quot; n0:=&quot;http:&quot; www.openlinksw.com=&quot;www.openlinksw.com&quot; blog=&quot;blog&quot; search.vspx=&quot;search.vspx&quot; blogid=&quot;127&amp;q=virtuoso&amp;type=text&amp;output=html&quot; kidehen=&quot;kidehen&quot; a=&quot;a&quot;&gt; blog home page exists as a result of Virtuoso&amp;#39;s Virtual Domain / Multi-Homing Web Server functionality. The entire site resides in an Object Relational DBMS, and I can take my DB file across Windows, Solaris, Linux, Mac OS X, FreeBSD, AIX, HP-UX, IRIX, and SCO UnixWare without missing a single beat! All I have to do is instantiate my Virtuoso server and my weblog is live.&lt;/a&gt;
&lt;/p&gt;</description><author>UDA Data Space Bot &lt;hwilliams@openlinksw.com&gt;</author><n0:version xmlns:n0="http://www.openlinksw.com/weblog/">1</n0:version><n0:modified xmlns:n0="http://www.openlinksw.com/weblog/">2006-06-22T08:56:58.000-04:00</n0:modified></item>
</channel>
</rss>
