<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>MicahLogic &#187; browsers</title>
	<atom:link href="http://dubinko.info/blog/tags/browsers/feed/" rel="self" type="application/rss+xml" />
	<link>http://dubinko.info/blog</link>
	<description>From an XML geek, a reader, a writer, a connector, a man of the people (says keep hope alive)</description>
	<lastBuildDate>Fri, 27 Apr 2012 05:25:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Balisageurs: XML and JSON</title>
		<link>http://dubinko.info/blog/2010/08/05/balisageurs-xml-and-json/</link>
		<comments>http://dubinko.info/blog/2010/08/05/balisageurs-xml-and-json/#comments</comments>
		<pubDate>Thu, 05 Aug 2010 12:36:25 +0000</pubDate>
		<dc:creator>mdubinko</dc:creator>
				<category><![CDATA[announcement]]></category>
		<category><![CDATA[browsers]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[balisage]]></category>
		<category><![CDATA[json]]></category>

		<guid isPermaLink="false">http://dubinko.info/blog/?p=882</guid>
		<description><![CDATA[At David Lee&#8217;s nocturne about XML and JSON round-trippimg, several folks were talking about a site that listed several &#8220;off-the-shelf&#8221; conversion methods, but nobody could remember the site. Late that night, with 15 minutes of battery remaining, I found it. The operative search term is XSLTJSON. -m]]></description>
			<content:encoded><![CDATA[<p>At David Lee&#8217;s nocturne about XML and JSON round-trippimg, several folks were talking about a site that listed several &#8220;off-the-shelf&#8221; conversion methods, but nobody could remember the site.</p>
<p>Late that night, with 15 minutes of battery remaining, I found it. The operative search term is <a href="http://www.bramstein.com/projects/xsltjson/">XSLTJSON</a>. -m</p>
]]></content:encoded>
			<wfw:commentRss>http://dubinko.info/blog/2010/08/05/balisageurs-xml-and-json/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Grokking Selenium</title>
		<link>http://dubinko.info/blog/2010/07/07/grokking-selenium/</link>
		<comments>http://dubinko.info/blog/2010/07/07/grokking-selenium/#comments</comments>
		<pubDate>Wed, 07 Jul 2010 18:00:36 +0000</pubDate>
		<dc:creator>mdubinko</dc:creator>
				<category><![CDATA[browsers]]></category>
		<category><![CDATA[commercialism]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[web20]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[qa]]></category>
		<category><![CDATA[selenium]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[webapp]]></category>

		<guid isPermaLink="false">http://dubinko.info/blog/?p=859</guid>
		<description><![CDATA[As the world of web apps gets more framework-y, I need to get up to speed on contemporary automation testing tools. One of the most popular ones right now is the open source Selenium project. From the look of it, that project is going through an awkward adolescent phase. For example: Selenium IDE lets you [...]]]></description>
			<content:encoded><![CDATA[<p>As the world of web apps gets more framework-y, I need to get up to speed on contemporary automation testing tools. One of the most popular ones right now is the open source <a href="http://seleniumhq.org/">Selenium</a> project. From the look of it, that project is going through an awkward adolescent phase. For example:</p>
<ul>
<li>Selenium IDE lets you record tests in a number of languages, but only HTML ones can be played back. For someone using only Selenium IDE, it&#8217;s a confusing array of choices for no apparent reason.</li>
<li>Selenium RC has bindings for lots of different languages but not for the HTML tests that are most useful in Selenium IDE. (Why not include the ability to simply play through an entire recorded  script in one call, instead of fine grained commands like selenium.key_press(input_id, 110), etc.?)</li>
<li>The list of <a href="http://seleniumhq.org/projects/">projects</a> prominently mentions Selenium Core (a JavaScript implementation), but when you click through to the documentation, it&#8217;s not mentioned. Elsewhere on the site it&#8217;s spoken of in deprecating terms.</li>
<li>If you look at the developer <a href="http://code.google.com/p/selenium/w/list">wiki</a>, all the recent attention is on Web Drivers, a new architecture for remote-controlling browsers, but those aren&#8217;t mentioned in the docs (yet) either.</li>
</ul>
<p>So yeah, right now it&#8217;s awkward and confusing. The underlying architecture of the project is undergoing a tectonic shift, something that would never see public light of day in a proprietary project. In the end it will come out leaner and meaner. What the project needs in the short term is more help from fresh outsiders who can visualize the desirable end state and help the ramped and productive developers on the project get there.</p>
<p>By the way, if this kind of problem seems interesting to you, let me know. We&#8217;re hiring. If you have any tips for getting up to speed in Selenium, comment below.</p>
<p>-m</p>
]]></content:encoded>
			<wfw:commentRss>http://dubinko.info/blog/2010/07/07/grokking-selenium/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Larry Masinter on overspecification</title>
		<link>http://dubinko.info/blog/2010/02/02/larry-masinter-on-overspecification/</link>
		<comments>http://dubinko.info/blog/2010/02/02/larry-masinter-on-overspecification/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 06:45:20 +0000</pubDate>
		<dc:creator>mdubinko</dc:creator>
				<category><![CDATA[browsers]]></category>
		<category><![CDATA[stuff]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[overspecification]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[w3c]]></category>

		<guid isPermaLink="false">http://dubinko.info/blog/?p=786</guid>
		<description><![CDATA[Some thoughts worth considering on state of HTML development today. -m]]></description>
			<content:encoded><![CDATA[<p>Some <a href="http://masinter.blogspot.com/2010/01/over-specification-is-anti-competitive.html">thoughts</a> worth considering on state of HTML development today. -m</p>
]]></content:encoded>
			<wfw:commentRss>http://dubinko.info/blog/2010/02/02/larry-masinter-on-overspecification/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The best thing you can do&#8230;</title>
		<link>http://dubinko.info/blog/2009/11/30/the-best-thing/</link>
		<comments>http://dubinko.info/blog/2009/11/30/the-best-thing/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 04:02:32 +0000</pubDate>
		<dc:creator>mdubinko</dc:creator>
				<category><![CDATA[browsers]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[legacy]]></category>
		<category><![CDATA[upgrade]]></category>

		<guid isPermaLink="false">http://dubinko.info/blog/?p=737</guid>
		<description><![CDATA[The best thing a user can do to advance the Web is to help move people off IE 6 &#8211; Ryan Servatius, senior product manager for Internet Explorer. Source. -m]]></description>
			<content:encoded><![CDATA[<p style="padding-left: 30px;">The best thing a user can do to advance the Web is to help move people off IE 6</p>
<p>&#8211; Ryan Servatius, senior product manager for Internet Explorer.</p>
<p><a href="http://news.cnet.com/8301-30685_3-10406468-264.html">Source</a>. -m</p>
]]></content:encoded>
			<wfw:commentRss>http://dubinko.info/blog/2009/11/30/the-best-thing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Model Endpoint Template (MET) organizational pattern for XRX apps</title>
		<link>http://dubinko.info/blog/2009/11/29/model-endpoint-template/</link>
		<comments>http://dubinko.info/blog/2009/11/29/model-endpoint-template/#comments</comments>
		<pubDate>Sun, 29 Nov 2009 21:09:08 +0000</pubDate>
		<dc:creator>mdubinko</dc:creator>
				<category><![CDATA[browsers]]></category>
		<category><![CDATA[Mark Logic]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[XForms]]></category>
		<category><![CDATA[XQuery]]></category>
		<category><![CDATA[application builder]]></category>
		<category><![CDATA[endpoint]]></category>
		<category><![CDATA[marklogic]]></category>
		<category><![CDATA[met]]></category>
		<category><![CDATA[model]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[rest]]></category>
		<category><![CDATA[template]]></category>
		<category><![CDATA[xquery]]></category>
		<category><![CDATA[xrx]]></category>

		<guid isPermaLink="false">http://dubinko.info/blog/?p=730</guid>
		<description><![CDATA[One of the lead bullets describing why XForms is cool always mentions that it is based on a Model View Controller framework. When building a full XRX app, though, MVC might not be the best choice to organize things overall. Why not? Consider a typical XRX app, like MarkLogic Application Builder. (You can download a [...]]]></description>
			<content:encoded><![CDATA[<p>One of the lead bullets describing why <a title="XForms Institute" href="http://xformsinstitute.com">XForms</a> is cool always mentions that it is based on a Model View Controller framework. When building a full <a href="http://en.wikibooks.org/wiki/XRX">XRX</a> app, though, <a href="http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller">MVC</a> might not be the best choice to organize things overall. Why not?</p>
<p>Consider a typical XRX app, like MarkLogic Application Builder. (You can download a your copy of MarkLogic, including Application Builder, under the community license at the <a href="http://developer.marklogic.com/download/">developer site</a>.) For each page, the cycle goes like this:</p>
<ol>
<li>The browser requests a particular page, say the one that lets you configure sorting options in the app you&#8217;re building</li>
<li>The page loads, including client-side <a href="http://sourceforge.net/projects/xsltforms/">XForms via JavaScript</a></li>
<li>XForms requests the project state as XML from a designated endpoint; this becomes the XForms Instance Data</li>
<li>Stuff happens on the page that changes the client-side state</li>
<li>Just before leaving the page, XML representing the updated state is HTTP PUT back to the endpoint</li>
</ol>
<p>The benefit of this approach is that you are dealing with XML all the way through, no impedance mismatches like you might find on an app that awkwardly transitions from (say) relational data to Java objects to urlencoded name/value pairs embedded in HTML syntax.</p>
<p>So why not do this in straight MVC? Honestly, MVC isn&#8217;t a bad choice, but it can get unwieldy. If an endpoint consists of a separate model+view+controller files, and each individual page consists of separate model+view+controller files, it adds up to a lot of stuff to keep track of. In truly huge apps, this much attention to organization might be worth it, but most apps aren&#8217;t that big. Thus the MET pattern.</p>
<p>Model: It still makes sense to keep the code that deals with particular models (closely aligned with Schemas) as a separate thing. All of Application Builder, for example, has only one model.</p>
<p>Endpoint: The job of an endpoint is to GET and PUT (and possibly POST and DELETE) XML, or other equivalent resource bundles depending on how many media types you want to deal with. It combines an aspect of controllers by being activated by a particular URL and views by providing the data in a consistent format.</p>
<p>Template: Since XForms documents already contain MVC mechanics, it not a high-payoff situation to further use MVC to construct the XForms and XHTML wrapper themselves. The important stuff happens within XForms, and then you need various templating mechanisms for example to provide consistent headers, footers, and other pieces across multiple pages. For this, an ordinary templating mechanism suffices. I can imagine dynamic assembly scenarios where this wouldn&#8217;t be the case, but again, many apps don&#8217;t need this kind of flexibility, and the complexity that comes along with it.</p>
<p>What about separation of concerns? Oh yeah, what about it? :-) Technically both Endpoints and Templates violate classical <acronym title="separation of concerns">SOC</acronym>. In an XRX app, this typically doesn&#8217;t lead to the kinds of spaghetti situations that it might otherwise. Endpoints are self contained, and can focus on doing just one thing well; with limited scope comes limited ability to get into trouble. For those times when you need to dig into the XQuery code of an endpoint, it&#8217;s actually helpful to see both the controller and view pieces laid out in one file.</p>
<p>As for Templates, simplicity wins. With the specifics of models and endpoints peeled away, the remaining challenge in developing individual pages is getting the XForms right, and again, it&#8217;s helpful to minimize the numbers of files one XForms page are split across. <a title="You ain't gonna need it" href="http://en.wikipedia.org/wiki/You_ain%27t_gonna_need_it">YAGNI</a> applies to what&#8217;s left, at least in the stuff I&#8217;ve built.</p>
<p>So, I&#8217;ve been careful in the title to call this an &#8220;organizational pattern&#8221;, not a &#8220;design pattern&#8221; or an (ugh) &#8220;architectural pattern&#8221;. Nothing too profound here. I&#8217;d be happy to start seeing XRX apps laid out with directory names like &#8220;models&#8221;, &#8220;endpoints&#8221;, and &#8220;templates&#8221;.</p>
<p>What do you think? Comments welcome.</p>
<p>-m</p>
]]></content:encoded>
			<wfw:commentRss>http://dubinko.info/blog/2009/11/29/model-endpoint-template/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How Xanadu Works: technical overview</title>
		<link>http://dubinko.info/blog/2009/11/22/how-xanadu-works/</link>
		<comments>http://dubinko.info/blog/2009/11/22/how-xanadu-works/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 06:49:32 +0000</pubDate>
		<dc:creator>mdubinko</dc:creator>
				<category><![CDATA[browsers]]></category>
		<category><![CDATA[intentional web]]></category>
		<category><![CDATA[IPR]]></category>
		<category><![CDATA[stuff]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[hyperlinking]]></category>
		<category><![CDATA[hypertext]]></category>
		<category><![CDATA[nelson]]></category>
		<category><![CDATA[theodor]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[xanadu]]></category>

		<guid isPermaLink="false">http://dubinko.info/blog/?p=696</guid>
		<description><![CDATA[One particular conversation I&#8217;ve overheard several times, often in the context of web and standards development, has always intrigued me. It goes something like this: You know, Ted Nelson&#8217;s hypertext system from the 60&#8242;s had unbreakable, two-way links. It was elegant. But then came along Tim Berners-Lee and HTML, with its crappy, one-way, breakable links, [...]]]></description>
			<content:encoded><![CDATA[<p>One particular conversation I&#8217;ve overheard several times, often in the context of web and standards development, has always intrigued me. It goes something like this:</p>
<p style="padding-left: 30px;">You know, Ted Nelson&#8217;s hypertext system from the 60&#8242;s had unbreakable, two-way links. It was <em>elegant</em>. But then came along Tim Berners-Lee and HTML, with its crappy, one-way, breakable links, and it took over the world.</p>
<p>The general moral of the story is usually about avoiding over-thinking problems and striving for simplicity. This has been rolling around in the back of my mind ever since the first time I heard the story. Is it an accurate assessment of reality? And how exactly did Nelson&#8217;s system, called Xanadu (R), manage the trick of unbreakable super-links? Even if the web ended up going in a different direction, there still might be lessons to learn for the current generation of people building things that run (and run on) the web.</p>
<p>Nelson&#8217;s book <em>Literary Machines</em> describes the system in some detail, but it&#8217;s hard to come by in the usual channels like Amazon, or even local bookstores. One place does have it, and for a reasonable price too: <a title="DO NOT CONFUSE IT WITH ANY OTHER COMPUTER BOOK the cover admonishes" href="http://www.eastgate.com/catalog/LiteraryMachines.html">Eastgate Systems</a>. [Disclosure: I bought mine from there for full price. I'm not getting anything for writing this post on my blog.] The book has a versioning notation, with 93.1 being the most recent, describing the &#8220;1993 design&#8221; of the software.</p>
<p>Pause for a moment and think about the history here. 1993 is 16 years ago as I write this, about the same span of time between Vannevar Bush&#8217;s groundbreaking 1945 article <a href="http://www.theatlantic.com/doc/194507/bush">As We May Think</a> (reprinted in full in <em>Literary Machines</em>) and Nelson&#8217;s initial work in 1960 on what would become the Xanadu project. As far as software projects go, this one has some serious history.</p>
<p>So how does it work? The basic concepts, in no particular order, are:</p>
<ul>
<li>A heavier-weight publishing process: Other than inaccessible &#8220;privashed&#8221; (as opposed to &#8220;pub&#8221;lished) documents, once published, documents are forever, and can&#8217;t be deleted except in extraordinary circumstances and with some kind of waiting period.</li>
<li>All documents have a specific owner, are royalty-bearing, and work through a micropayment system. Anyone can quote, transclude, or modify any amount of anything, with the payments sorting themselves out accordingly.</li>
<li>Software called a &#8220;front end&#8221; (today we&#8217;d call it a &#8220;browser&#8221;) works on behalf of the user to navigate the network and render documents.</li>
<li>Published documents can be updated at will, in which case unchanged pieces can remain unchanged, with inserted and deleted sections in between. Thus, across the history of a document, there are implicit links forward and backward in time through all the various editions and alternatives.</li>
<li>In general, links can jump to a new location in the docuverse or transclude part of a remote document into another, and many more configurations, including multi-ended links, and are granular to the character level, as well as attached to particular characters.</li>
<li>Document and network addressing are accomplished through a clever numbering system (somewhat reminiscent of <a href="http://dubinko.info/blog/2004_02_01_archive.html#107622326951410859">organic versioning</a>, but in a way infinitely extensible on multiple axes). These address, called tumblers, represent a Node+User+Document+Subdocument, and a minor variant to the syntax can express ranges between two points therein.</li>
<li>The system uses its own protocol called FEBE (Front End Back End) which contains at several verbs including on page 4/61: RETRIEVEV (like HTTP GET), DELETEVSPAN, MAKELINK, FINDNUMOFLINKSTOTHREE, FINDLINKSFROMTOTHREE, and FINDDOCSCONTAINING [Note that "three" in this context is an unusual notation for a link type] Maybe 10 more verbs are defined in total.</li>
</ul>
<p>A few common themes emerge. One is the grandiose scope: This really is intended as a system to encompass all of literature past, present, and future, and to thereby create a culture of intellect and reshape civilization. &#8220;We think that anyone who <em>actually understands the problems</em> will recognize ours approach as the unique solution.&#8221; (italics from original, 1993 preface)</p>
<p>Another theme is simple solutions to incredibly difficult problems. So the basic solution to unbreakable links is to never change documents.  Sometimes these solutions work brilliantly, sometimes they fall short, and many times they ends up somewhere in between. In terms of sheer vision, nobody else has come close to inspiring as many people working on the web. Descriptions of what today we&#8217;d call a browser would sound familiar, if a bit abstract, even to casual users of Firefox or IE.</p>
<p>Nothing like REST seems to have occurred to Nelson or his associates. It&#8217;s unclear how widely deployed Xanadu prototypes ever were, or how many nodes were ever online at any point. The set of verbs in the FEBE protocol reads like that a competent engineer would come up with. The benefits of REST, in particular of minimizing verbs and maximizing nouns, are non-obvious without a significant amount of web-scale experience.</p>
<p>Likewise Creative Commons seems like something the designers never contemplated.  &#8220;Ancient documents, no longer having a current owner, are considered to be owned by the system&#8211;or preferably by some high-minded literary body that oversees their royalties.&#8221; (page 2/29) While this sounds eerily like the Google Books settlement, this misses the implications of truly free-as-in-beer content, but equally misses the power of free-as-in-freedom documents. In terms of social impact there&#8217;s a huge difference between something that costs $0 and $0.000001.</p>
<p>In this system anyone can include any amount of any published document into their own without special permission. In a world where people writing <a href="http://en.wikipedia.org/wiki/Legal_disputes_over_the_Harry_Potter_series">Harry Potter Lexicons</a> are getting sued by the copyright industry, it&#8217;s hard to imagine this coming to pass without kicking and screaming, but it is a nice world to think about. Anyway, in Xanadu per-byte royalties work themselves out according to the proportion of original vs. transcluded bytes.</p>
<p>Where is Google in this picture? &#8220;Two system directories, maintained by the system itself, are anticipated: author and title, no more&#8221; (page 2/49) For additional directories or search engines, it&#8217;s not clear how that would work: is a search results page a published or privashed document? Does every possible older version of every result page stick around in the system? (If not, links to/from might break) It&#8217;s part of a bigger question about how to represent and handle dynamic documents in the system.</p>
<p>On privacy: &#8220;The network will not, may not monitor what is written in private documents.&#8221; (page 2/59) A whole section in chapter 3 deals with these kinds of issues, as does <a href="http://www.amazon.com/exec/obidos/ASIN/0914845497/dubinkoinfo-20">Computer Lib</a>, another of Nelson&#8217;s works.</p>
<p>He was early to recognize the framing problem: how in a tangle of interlinked documents, to make sense of what&#8217;s there, to discern between useful and extraneous chunks. Nelson admits to no general solution, but points at some promising directions, one of which is link typing&#8211;the more information there is on individual links, the more handles there are to make sense of the tangle. Some tentative link types include title, author, supersession, correction, comment, counterpart, translation, heading, paragraph, quote, footnote, jump-link, modal jump-link, suggested threading, expansion, citation, alternative version, comment, certification, and mail.</p>
<p>At several points, Nelson mentions algorithmic work that makes the system possible. Page 1/36 states &#8220;Our enfilade data structures and methods effectively refute Donald Knuth&#8217;s list of desirable features that he says you can&#8217;t have all at once (in his book <a href="http://www.amazon.com/Art-Computer-Programming-Sorting-Searching/dp/0201896850">Fundamental Algorithms: Sorting and Searching</a>)&#8221;. I&#8217;m curious if anyone knows more about this, or if Knuth ever got to know enough details to verify that claim, or revise his.</p>
<p>So was the opening anecdote a valid description of reality? I have to say no, it&#8217;s not that simple. Nelson rightly calls the web a shallow imitation of his grand ideas, but those ideas are&#8211;in some ways literally&#8211;from a different world. It&#8217;s not a question of &#8220;if only things had unfolded a bit differently&#8230;&#8221;. To put it even more strongly, a system with that kind of scope cannot be designed all at once, in order to be embraced by the real world it has to be developed with a feedback loop to the real world. This in no way diminishes the value and influence of big ideas or the place that Roarkian stick-to-your-gunnedness has in our world, industry, and society. We may have gotten ourselves into a mess with the architecture of the present web, but even so, Nelson&#8217;s vision will keep us aspiring toward something better.</p>
<p>I intend to return to this posting and update it for accuracy as my understanding improves. Some additional topics to maybe address are: a more detailed linking example (page 2/45), comparing XLink to Xanadu, comparing URIs and tumblers, and mention the bizarre (and yet oddly familiar if you&#8217;ve ever been inside a FedEx Kinkos) notion of &#8220;SilverStands&#8221;.</p>
<p>For more on Nelson, there is the <a title="The Curse of Xanadu" href="http://wired-vig.wired.com/wired/archive/3.06/xanadu.html">epic</a> writeup in Wired. YouTube has some good stuff too.</p>
<p>Comments are welcome. -m</p>
<p>Xanadu is a registered trademark, here used for specific identifying purpose.</p>
]]></content:encoded>
			<wfw:commentRss>http://dubinko.info/blog/2009/11/22/how-xanadu-works/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Misunderstanding Markup</title>
		<link>http://dubinko.info/blog/2009/08/05/misunderstanding-markup/</link>
		<comments>http://dubinko.info/blog/2009/08/05/misunderstanding-markup/#comments</comments>
		<pubDate>Thu, 06 Aug 2009 05:20:55 +0000</pubDate>
		<dc:creator>mdubinko</dc:creator>
				<category><![CDATA[annoyance]]></category>
		<category><![CDATA[browsers]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[conformance]]></category>
		<category><![CDATA[documents]]></category>
		<category><![CDATA[groupthink]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[markup]]></category>
		<category><![CDATA[modularization]]></category>
		<category><![CDATA[xhtml]]></category>
		<category><![CDATA[xhtml5]]></category>

		<guid isPermaLink="false">http://dubinko.info/blog/?p=610</guid>
		<description><![CDATA[On this comic&#8216;s panel 9 describes XHTML 1.1 conformance as: the added unrealistic demand that documents must be served with an XML mime-type I can understand this viewpoint. XHTML 1.1 is a massively misunderstood spec, particularly around the modularization angle. But because of IE, it&#8217;s pretty rare to see the XHTML media-type in use on [...]]]></description>
			<content:encoded><![CDATA[<p>On this <a href="http://www.smashingmagazine.com/2009/07/29/misunderstanding-markup-xhtml-2-comic-strip/">comic</a>&#8216;s panel 9 describes XHTML 1.1 conformance as:</p>
<p style="padding-left: 30px;">the added unrealistic demand that documents must be served with an XML mime-type</p>
<p>I can understand this viewpoint. XHTML 1.1 is a massively misunderstood spec, particularly around the modularization angle. But because of IE, it&#8217;s pretty rare to see the XHTML media-type in use on the open web. Later, panel 23 or thereabouts:</p>
<p style="padding-left: 30px;">If you want, you can even serve your documents as application/xhtml+xml, instantly transforming them from HTML 5 to XHTML 5.</p>
<p>Why the shift in tone? What makes serving the XML media type more realistic in the HTML 5 case? IE? Nope, still doesn&#8217;t work. I&#8217;ve observed this same shift in perspective from multiple people involved in the HTML5 work, and it baffles me. In XHTML 1.1 it&#8217;s a ridiculous demand showing how out of touch the authors were with reality. In HTML5 the exact same requirement is a brilliant solution, wink, wink, nudge, nudge.</p>
<p>As it stands now, the (X)HTML5 situation demotes XHTML to the backwaters of the web. Which is pretty far from &#8220;Long Live XHTML&#8230;&#8221;, as the comic concludes. Remember when X stood for Extensible?</p>
<p>-m</p>
]]></content:encoded>
			<wfw:commentRss>http://dubinko.info/blog/2009/08/05/misunderstanding-markup/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Pragmatic Namespaces</title>
		<link>http://dubinko.info/blog/2009/07/31/pragmatic-namespaces/</link>
		<comments>http://dubinko.info/blog/2009/07/31/pragmatic-namespaces/#comments</comments>
		<pubDate>Sat, 01 Aug 2009 03:46:36 +0000</pubDate>
		<dc:creator>mdubinko</dc:creator>
				<category><![CDATA[browsers]]></category>
		<category><![CDATA[everythingismiscellaneous]]></category>
		<category><![CDATA[balisage]]></category>
		<category><![CDATA[distributed]]></category>
		<category><![CDATA[extensibility]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[namespaces]]></category>
		<category><![CDATA[xhtml5]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[xml-dev]]></category>

		<guid isPermaLink="false">http://dubinko.info/blog/?p=607</guid>
		<description><![CDATA[In case any of the 7 regular readers here aren&#8217;t following xml-dev, check out and add to the discussion about Pragmatic Namespaces, proposed as a solution for the &#8220;distributed extensiblity&#8221; problem in HTML5. For years people have been pointing to Java as the model for how XML namespaces should work, so this proposal goes that [...]]]></description>
			<content:encoded><![CDATA[<p>In case any of the 7 regular readers here aren&#8217;t following xml-dev, check out and add to the <a title="Pragmatic Namespaces on markmail.org" href="http://markmail.org/search/?q=%22Pragmatic%20Namespaces%22">discussion</a> about Pragmatic Namespaces, proposed as a solution for the &#8220;distributed extensiblity&#8221; problem in HTML5.</p>
<p>For <a href="http://www.xml.com/pub/a/2005/04/13/namespace-uris.html">years</a> people have been pointing to Java as the model for how XML namespaces should work, so this proposal goes that direction. Either it will work, or else it will get people to finally shut up about the whole idea. :)</p>
<p>It&#8217;s heavily based on Tom Bradford&#8217;s Clean Namespaces proposal, which doesn&#8217;t have a living URL anymore but is <a href="http://web.archive.org/web/20040609023416/www.tbradford.org/clean-namespaces.html">available</a> on archive.org.</p>
<p>-m</p>
]]></content:encoded>
			<wfw:commentRss>http://dubinko.info/blog/2009/07/31/pragmatic-namespaces/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Object-Oriented CSS</title>
		<link>http://dubinko.info/blog/2009/07/29/object-oriented-css/</link>
		<comments>http://dubinko.info/blog/2009/07/29/object-oriented-css/#comments</comments>
		<pubDate>Thu, 30 Jul 2009 02:25:27 +0000</pubDate>
		<dc:creator>mdubinko</dc:creator>
				<category><![CDATA[browsers]]></category>
		<category><![CDATA[web20]]></category>
		<category><![CDATA[bayjax]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[oocss]]></category>
		<category><![CDATA[stubbornella]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://dubinko.info/blog/?p=601</guid>
		<description><![CDATA[I enjoyed Nicole Sullivan&#8216;s talk at the BayJax Meetup on Object-Oriented CSS, something I hadn&#8217;t run in to before. Adding predictability to CSS development seems like a huge win. I need to wrap my head around it better. Anyone with experience using this technique care to comment? -m]]></description>
			<content:encoded><![CDATA[<p>I enjoyed <a title="stubbornella" href="http://www.stubbornella.org/content/">Nicole Sullivan</a>&#8216;s talk at the <a title="Meeting summary" href="http://wiki.dandascalescu.com/summaries/bayjax_2009-july">BayJax Meetup</a> on <a href="http://wiki.github.com/stubbornella/oocss">Object-Oriented CSS</a>, something I hadn&#8217;t run in to before. Adding predictability to CSS development seems like a huge win. I need to wrap my head around it better. Anyone with experience using this technique care to comment? -m</p>
]]></content:encoded>
			<wfw:commentRss>http://dubinko.info/blog/2009/07/29/object-oriented-css/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>And then there were one&#8230;</title>
		<link>http://dubinko.info/blog/2009/07/02/and-then-there-were-one/</link>
		<comments>http://dubinko.info/blog/2009/07/02/and-then-there-were-one/#comments</comments>
		<pubDate>Fri, 03 Jul 2009 01:57:29 +0000</pubDate>
		<dc:creator>mdubinko</dc:creator>
				<category><![CDATA[browsers]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[trends]]></category>
		<category><![CDATA[web20]]></category>
		<category><![CDATA[future]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[w3c]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[xhtml]]></category>
		<category><![CDATA[xhtml2]]></category>

		<guid isPermaLink="false">http://dubinko.info/blog/?p=587</guid>
		<description><![CDATA[On May 8 I wrote: it’s time for the W3C to show some tough love and force the two (X)HTML Working Groups together. On July 2, the W3C wrote: Today the Director announces that when the XHTML 2 Working Group charter expires as scheduled at the end of 2009, the charter will not be renewed. [...]]]></description>
			<content:encoded><![CDATA[<p>On May 8 I <a href="http://dubinko.info/blog/2009/05/08/html-the-markup-language-marks-a-new-beginning/">wrote</a>:</p>
<p style="padding-left: 30px;">it’s time for the W3C to show some tough love and force the two (X)HTML Working Groups together.</p>
<p>On July 2, the W3C <a href="http://www.w3.org/News/2009#item119">wrote</a>:</p>
<p style="padding-left: 30px;">Today the Director announces that when the <a href="http://www.w3.org/2007/03/XHTML2-WG-charter">XHTML 2 Working Group charter</a> expires as scheduled at the end of 2009, the charter will not be renewed. By doing so, and by increasing resources in the <a href="http://www.w3.org/html/wg/">Working Group</a>, W3C hopes to accelerate the progress of <a href="http://www.w3.org/TR/html5">HTML 5</a> and clarify W3C&#8217;s position regarding the future of HTML.</p>
<p>The real test is whether the single HTML Working Group can be held to the standard of other Working Groups, and be able to recruit some much-needed editorial help from some of the displaced XHTML 2 gang.  -m</p>
]]></content:encoded>
			<wfw:commentRss>http://dubinko.info/blog/2009/07/02/and-then-there-were-one/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RDFa List Apart</title>
		<link>http://dubinko.info/blog/2009/06/23/rdfa-list-apart/</link>
		<comments>http://dubinko.info/blog/2009/06/23/rdfa-list-apart/#comments</comments>
		<pubDate>Wed, 24 Jun 2009 01:33:59 +0000</pubDate>
		<dc:creator>mdubinko</dc:creator>
				<category><![CDATA[browsers]]></category>
		<category><![CDATA[intentional web]]></category>
		<category><![CDATA[metadata]]></category>
		<category><![CDATA[alistapart]]></category>
		<category><![CDATA[birbeck]]></category>
		<category><![CDATA[mark]]></category>
		<category><![CDATA[rdf]]></category>
		<category><![CDATA[rdfa]]></category>

		<guid isPermaLink="false">http://dubinko.info/blog/?p=569</guid>
		<description><![CDATA[A great introduction article. Maybe it&#8217;s just the crowd I hang with, but RDFa looks like it&#8217;s moving from trendy to serious tooling. -m]]></description>
			<content:encoded><![CDATA[<p>A great <a href="http://www.alistapart.com/articles/introduction-to-rdfa/">introduction</a> article. Maybe it&#8217;s just the crowd I hang with, but RDFa looks like it&#8217;s moving from trendy to serious tooling. -m</p>
]]></content:encoded>
			<wfw:commentRss>http://dubinko.info/blog/2009/06/23/rdfa-list-apart/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XSLTForms beta</title>
		<link>http://dubinko.info/blog/2009/02/04/xsltforms-beta/</link>
		<comments>http://dubinko.info/blog/2009/02/04/xsltforms-beta/#comments</comments>
		<pubDate>Wed, 04 Feb 2009 07:54:35 +0000</pubDate>
		<dc:creator>mdubinko</dc:creator>
				<category><![CDATA[announcement]]></category>
		<category><![CDATA[browsers]]></category>
		<category><![CDATA[XForms]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[schema]]></category>
		<category><![CDATA[xrx]]></category>
		<category><![CDATA[XSLT]]></category>
		<category><![CDATA[xsltforms]]></category>

		<guid isPermaLink="false">http://dubinko.info/blog/?p=424</guid>
		<description><![CDATA[XSLTForms, the cross-browser XForms engine (written about previously) that makes ingenious use of built-in XSLT processing, reached an important milestone today, with a beta release. Tons of bug fixes and additional support for CSS and Schema. If you&#8217;re thinking about getting involved with XForms and are looking for something small and approachable, give it a [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://sourceforge.net/projects/xsltforms/">XSLTForms</a>, the cross-browser XForms engine (written about <a href="http://dubinko.info/blog/2008/12/19/xsltforms-looks-promising/">previously</a>) that makes ingenious use of built-in XSLT processing, reached an important milestone today, with a beta release. Tons of bug fixes and additional support for CSS and Schema.</p>
<p>If you&#8217;re thinking about getting involved with XForms and are looking for something small and approachable, give it a look. -m</p>
]]></content:encoded>
			<wfw:commentRss>http://dubinko.info/blog/2009/02/04/xsltforms-beta/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Opera 9.6.3 includes a fantastic JavaScript debugger</title>
		<link>http://dubinko.info/blog/2008/12/29/opera-963-includes-a-fantastic-javascript-debugger/</link>
		<comments>http://dubinko.info/blog/2008/12/29/opera-963-includes-a-fantastic-javascript-debugger/#comments</comments>
		<pubDate>Tue, 30 Dec 2008 05:21:40 +0000</pubDate>
		<dc:creator>mdubinko</dc:creator>
				<category><![CDATA[browsers]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[firebug]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[opera]]></category>

		<guid isPermaLink="false">http://dubinko.info/blog/?p=410</guid>
		<description><![CDATA[Have you checked out Opera lately? You should. Their briliant strategy it to include a JavaScript debugger so excellent that you&#8217;d be willing to test on that browser just to use the tool. If you&#8217;ve been having the same kinds of troubles that I have with Firebug lately (not to demean the thousands who use [...]]]></description>
			<content:encoded><![CDATA[<p>Have you checked out <a href="http://www.opera.com/">Opera</a> lately? You should. Their briliant strategy it to include a JavaScript debugger so excellent that you&#8217;d be willing to test on that browser just to use the tool.</p>
<p>If you&#8217;ve been having the same <a href="http://forums.sharethis.com/topic/windowconsole-is-undefined">kinds</a> of <a href="http://groups.google.com/group/firebug/browse_thread/thread/683741bc8b3820ea#">troubles</a> that I have with Firebug lately (not to demean the thousands who use that tool daily, but I draw the line when the debugger is the source of bugs) check it out. -m</p>
]]></content:encoded>
			<wfw:commentRss>http://dubinko.info/blog/2008/12/29/opera-963-includes-a-fantastic-javascript-debugger/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XSLTForms looks promising</title>
		<link>http://dubinko.info/blog/2008/12/19/xsltforms-looks-promising/</link>
		<comments>http://dubinko.info/blog/2008/12/19/xsltforms-looks-promising/#comments</comments>
		<pubDate>Fri, 19 Dec 2008 07:42:36 +0000</pubDate>
		<dc:creator>mdubinko</dc:creator>
				<category><![CDATA[browsers]]></category>
		<category><![CDATA[intentional web]]></category>
		<category><![CDATA[XForms]]></category>
		<category><![CDATA[ajaxforms]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[ubiquity]]></category>
		<category><![CDATA[xsltforms]]></category>

		<guid isPermaLink="false">http://dubinko.info/blog/?p=405</guid>
		<description><![CDATA[Implementing client-side forms libraries is, and has been, all the rage. I&#8217;ve seen Mozquito Factory do amazing things in Netscape 4, Technical Pursuits TIBET on the perpetual verge of release, UGO, and others. In a more recent time scale, Ubiquity XForms impresses me and many others, and it has the right combination of funding and [...]]]></description>
			<content:encoded><![CDATA[<p>Implementing client-side forms libraries is, and has been, all the rage. I&#8217;ve seen Mozquito Factory do amazing things in Netscape 4, Technical Pursuits TIBET on the perpetual verge of release, UGO, and others. In a more recent time scale, Ubiquity XForms <a href="http://code.google.com/p/ubiquity-xforms/">impresses</a> me and many others, and it has the right combination of funding and willing developers.</p>
<p>From a comment on my recent posting about Ubiquity XForms, I was pleased to learn about <a href="http://www.agencexml.com/xsltforms/">XSLTforms</a>, a rebirth of AjaxForms, which I thought well of two years ago until its developer mysteriously left the project. But Software Libre lives on, and a new developer has taken over, this time using client-side XSLT instead of server-side Java to do the first pass of processing. Given the strong foundation, the project has come a long way in a short time, and already runs against a wide array of non-trivial examples. Check it out.</p>
<p>I&#8217;d like to hear what others think about this project. -m</p>
]]></content:encoded>
			<wfw:commentRss>http://dubinko.info/blog/2008/12/19/xsltforms-looks-promising/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XML 2008 liveblog: Ubiquity XForms</title>
		<link>http://dubinko.info/blog/2008/12/08/xml-2008-liveblog-ubiquity-xforms/</link>
		<comments>http://dubinko.info/blog/2008/12/08/xml-2008-liveblog-ubiquity-xforms/#comments</comments>
		<pubDate>Mon, 08 Dec 2008 17:01:30 +0000</pubDate>
		<dc:creator>mdubinko</dc:creator>
				<category><![CDATA[browsers]]></category>
		<category><![CDATA[intentional web]]></category>
		<category><![CDATA[XForms]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[birbeck]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[xml2008]]></category>
		<category><![CDATA[yui]]></category>

		<guid isPermaLink="false">http://dubinko.info/blog/?p=393</guid>
		<description><![CDATA[I will talk about one or more sessions from XML 2008 here. Mark Birbeck of Web Backplane talking about Ubiquity XForms. Browsers are slow to adopt new standards. Ajax libraries have attempted to work around this. Lots of experimentation which is both good and bad, but at least has legitimzed extensions to browsers. JavaScript is [...]]]></description>
			<content:encoded><![CDATA[<p>I will talk about one or more sessions from <a href="http://www.idealliance.org/xml2008/schedule.asp">XML 2008</a> here.</p>
<p>Mark Birbeck of Web Backplane talking <a href="http://code.google.com/p/ubiquity-xforms/">about</a> Ubiquity XForms.</p>
<p>Browsers are slow to adopt new standards. Ajax libraries have attempted to work around this. Lots of experimentation which is both good and bad, but at least has legitimzed extensions to browsers. JavaScript is the assembly language of the web.</p>
<p>Ubiquity XForms is part of a library, which wil also include RDFa and SMIL. Initially based on YUI, but in theory sould be adaptable to other libraries like jQuery.</p>
<p>Declarative: tools for creation and validation. Easier to read. Ajax libraries are approaching the level of being their own language anyway, so might as well take advantage of a standard.</p>
<p>Example: setting the &#8220;inner value&#8221; of a span: <code>&lt;span value="now()"&gt;&lt;/span&gt;</code>.</p>
<p>Script can do this easily: <code>onclick="this.innerHTML = Date().toLocaleString();"</code> But crosses the line from semantics to specific behavior. The previous one is exactly how xforms:output works.</p>
<p>Another exapmple: tooltips. Breaks down to onmouseover, onmouseout event handlers, show and hide. A jQuery-like approach can search the document for all <code>tooltip</code> elements and add the needed handlers, avoiding explicit behavioral code. This is the essence of Ubiquity XForms (and in fact XForms itself).</p>
<p>Patterns like these compose under XForms. A button (xf:trigger) or any form control can easily have a tooltip (xf:hint). These are all regular elements, stylable with CSS, accesible via DOM, and so forth. Specific events (like xforms-hint) fire for specific events, and a spreadsheet-like engine can update interdependencies.</p>
<p>Question: Is this client-side? A: Yes, all running within Firefox. The entire presentation is one XForms document.</p>
<p>Demo: a range control with class=&#8221;geolocation&#8221; that displays as a map w/ Google Maps integration. The Ubiquity XForms library contains many such extensibility points.</p>
<p>Summary: Why? Simple, declarative. Not a programming language. Speeds up development. Validatable. <a href="http://ubiquity.googlecode.com">Link</a>: ubiquity.googlecode.com.</p>
<p>Q&amp;A: Rich text? Not yet, but not hard (especially with YUI). Formally XForms compliant? Very nearly 1.1 conforming.</p>
<p>-m</p>
]]></content:encoded>
			<wfw:commentRss>http://dubinko.info/blog/2008/12/08/xml-2008-liveblog-ubiquity-xforms/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

