<?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>Infrequently Noted &#187; vim</title>
	<atom:link href="http://infrequently.org/tag/vim/feed/" rel="self" type="application/rss+xml" />
	<link>http://infrequently.org</link>
	<description></description>
	<lastBuildDate>Tue, 01 May 2012 11:30:40 +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>Wombat</title>
		<link>http://infrequently.org/2009/02/wombat/</link>
		<comments>http://infrequently.org/2009/02/wombat/#comments</comments>
		<pubDate>Wed, 11 Feb 2009 17:57:44 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[cygterm]]></category>
		<category><![CDATA[cygwin]]></category>
		<category><![CDATA[productivity]]></category>
		<category><![CDATA[vim]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://alex.dojotoolkit.org/2009/02/wombat/</guid>
		<description><![CDATA[After trying nearly a zillion different shells on Windows, I&#8217;m back to Cygterm, in part because it makes cygwin happy and because I&#8217;ve just come to accept that some stuff will always require cmd.exe. Windows just sucks like that. On the upside, the Wombat VIM theme rocks my world.]]></description>
			<content:encoded><![CDATA[<p>After trying nearly a zillion different shells on Windows, I&#8217;m back to <a href="http://code.google.com/p/puttycyg/">Cygterm</a>, in part because it makes cygwin happy and because I&#8217;ve just come to accept that some stuff will always require <code>cmd.exe</code>. Windows just sucks like that. On the upside, the <a href="http://dengmao.wordpress.com/2007/01/22/vim-color-scheme-wombat/">Wombat VIM theme</a> rocks my world.</p>
]]></content:encoded>
			<wfw:commentRss>http://infrequently.org/2009/02/wombat/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Notes To A Future Self: Getting Productive On WinXP</title>
		<link>http://infrequently.org/2008/12/notes-to-a-future-self-on-de-sucking-xp/</link>
		<comments>http://infrequently.org/2008/12/notes-to-a-future-self-on-de-sucking-xp/#comments</comments>
		<pubDate>Mon, 08 Dec 2008 21:15:20 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[work]]></category>
		<category><![CDATA[configuration]]></category>
		<category><![CDATA[vim]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://alex.dojotoolkit.org/?p=844</guid>
		<description><![CDATA[Windows XP is truly a horrid desktop OS, particularly if you&#8217;re a programmer. The default install contains roughly nothing useful, and even getting a development environment going requires grabbing the likes of cygwin, Visual Studio, and a zillion patches from Microsoft. The truly dispiriting thing, though, is how badly cmd.exe still sucks. I fully admit [...]]]></description>
			<content:encoded><![CDATA[<p>Windows XP is truly a horrid desktop OS, particularly if you&#8217;re a programmer. The default install contains roughly nothing useful, and even getting a development environment going requires grabbing the likes of cygwin, Visual Studio, and a zillion patches from Microsoft.</p>
<p>The truly dispiriting thing, though, is how badly cmd.exe still sucks. I fully admit that my personal programming proclivities are not normal, but to be reasonably productive I need a Unix-like shell, a terminal that works (can be resized, has reasonable VT100 emulation, etc.), and the ability to fix the &#8220;Caps Lock&#8221; key to do the right thing &ndash; namely, have it fire the &#8220;Ctrl&#8221; key instead. This is all relatively straightforward to do on Linux and OS X. Here&#8217;s how I got it done with Windows:</p>
<h4>Do the MSFT Patch Dance</h4>
<p>Make coffee?</p>
<h4>Install Cygwin</h4>
<p>We&#8217;ve all <a href="http://www.cygwin.com/">done it a thousand times</a>. This&#8217;ll make 1001. It&#8217;s kind of comforting that the Cygwin home page hasn&#8217;t changed perceptibly in nearly a decade.</p>
<h4>Get SharpKeys</h4>
<p>Instead of fugly registry hacks, <a href="http://www.randyrants.com/2006/07/sharpkeys_211.html">SharpKeys</a> allows you to map the dreaded and useless &#8220;Caps Lock&#8221; key to something actually useful. If your key-mapping preferences swing some other way, SharpKeys can likely handle that too. Not sure why it&#8217;s not built into Windows, frankly.</p>
<h4>Set Up Puttycyg</h4>
<p>Having cygwin is nice, but having a terrible shell with Cygwin? Not so nice. Enter <a href="http://code.google.com/p/puttycyg/">Puttycyg</a>, a small hack on the venerable <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/">Putty</a> SSH client for windows that provides an option to launch a local Cygwin session in lieu of connecting to another system. </p>
<p>Once I extracted it and ensured the Puttycyg directory was in my windows PATH, I created a desktop shortcut to the <code>putty.exe</code> included in the distribution and configured the shortcut (right-click) to read:</p>
<pre>
"C:\Documents and Settings\slightlyoff\Desktop\puttycyg\putty.exe" -cygterm -
</pre>
<p>And then set the &#8220;Shortcut key:&#8221; to be:</p>
<pre>
Ctrl + Alt + T
</pre>
<p>Now, whenever I want a fully functional shell from my desktop, I just hit that key combination and it All Works (TM).</p>
]]></content:encoded>
			<wfw:commentRss>http://infrequently.org/2008/12/notes-to-a-future-self-on-de-sucking-xp/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Big Questions On IE8&#8242;s Big Progress</title>
		<link>http://infrequently.org/2008/02/big-questions-on-ie8s-big-progress/</link>
		<comments>http://infrequently.org/2008/02/big-questions-on-ie8s-big-progress/#comments</comments>
		<pubDate>Sun, 03 Feb 2008 04:20:53 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[dhtml]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[openweb]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://alex.dojotoolkit.org/?p=647</guid>
		<description><![CDATA[So IE is the first browser out of the gate to do something sane about rendering engine locking to content&#8230;and good on them for it. Now we need to know a couple more details to see if it&#8217;s going to have real legs: What is the precedence for resolution of conflicting rules? If the compatible [...]]]></description>
			<content:encoded><![CDATA[<p>So IE is the first browser out of the gate to do <a href="http://blogs.msdn.com/ie/archive/2008/01/21/compatibility-and-ie8.aspx">something sane about rendering engine locking to content</a>&#8230;and good on them for it.</p>
<p>Now we need to know a couple more details to see if it&#8217;s going to have real legs:</p>
<ul>
<li>What is the precedence for resolution of conflicting rules? If the compatible rule is provided as an HTTP header and as a meta tag, which wins? If multiple tags occur, is it first or last wins?</li>
<li>If a rule is provided that ignores IE (assuming other renderers follow suit), and a subsequent meta tag shows up which specifies a rule for IE, will IE handle it correctly?
<p>For instance, if the following occurs in a document:</p>
<p><code><br />
&lt;meta http-equiv="X-UA-Compatible" content="FF=3" /&gt;<br />
...<br />
&lt;meta http-equiv="X-UA-Compatible" content="IE=8" /&gt;<br />
</code></p>
<p>What policy will IE use?
</p>
</li>
<li>Will there be any way to specify the box-model behavior on a sub-page basis?</li>
<li>Will the IE 8 rendering engine now be distributed to users of the IE 7 chrome, invoking itself only when the right meta flags are thrown? And what is Microsoft&#8217;s policy toward distributing renderers now that they have logically cut the chrome/renderer chord?</li>
<li>Where will you be standardizing this convention? When?</li>
</ul>
<p>These questions need to be answered, and soon. If the IE team has just replaced <a href="http://alex.dojotoolkit.org/?p=644">one scarce resource for another</a>, we&#8217;re not much better off over the long haul. It&#8217;s great news that the IE team is really implementing the &#8220;renderer selection switch&#8221; which many of us have dreamed of for so long&#8230;but having it continue to be global to the page or in other ways encourage contention on yet another single element in the document wouldn&#8217;t be stepping forward enough.</p>
]]></content:encoded>
			<wfw:commentRss>http://infrequently.org/2008/02/big-questions-on-ie8s-big-progress/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Roxer Goes Live!</title>
		<link>http://infrequently.org/2008/01/roxer-goes-live/</link>
		<comments>http://infrequently.org/2008/01/roxer-goes-live/#comments</comments>
		<pubDate>Tue, 22 Jan 2008 07:49:30 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[community]]></category>
		<category><![CDATA[dojo]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://alex.dojotoolkit.org/?p=646</guid>
		<description><![CDATA[So once upon a time, back when I had a &#8220;real&#8221; job, I used to do security (specifically webappsec) for a living. One of the shining lights in that world for a long time has been Jeremiah Grossman, and as I moved out to the Bay Area, I was lucky enough to meet him in [...]]]></description>
			<content:encoded><![CDATA[<p>So once upon a time, back when I had a &#8220;real&#8221; job, I used to do security (specifically <a href="http://www.owasp.org/index.php/Main_Page">webappsec</a>) for a living. One of the shining lights in that world for a long time has been <a href="http://jeremiahgrossman.blogspot.com/">Jeremiah Grossman</a>, and as I moved out to the Bay Area, I was lucky enough to meet him in person. We&#8217;ve kept up here and there, and while <a href="http://www.whitehatsec.com/home/index.html">his company</a> has grown at a furious rate, he&#8217;s somehow found time to continue to publish important original research, travel more than any human really should, and generally kick ass&#8230;.oh&#8230;and build an <a href="http://jeremiahgrossman.blogspot.com/2008/01/roxer-easiest-way-to-make-web-page.html">awesome Dojo-based product</a> on the side.</p>
<p>Jeremiah and Lex must really not sleep, &#8217;cause their new <a href="http://roxer.com">Roxer</a> app makes me all giddy to play with. Yes, yes, you should separate style from content&#8230;oh fuck it all. When it&#8217;s <em>this easy</em> and fun to build a web page, who cares? I loathe wikis, mostly because traditional wikis try to be &#8220;half-pregnant&#8221; about how what you write gets displayed. Roxer solves that essential failure in one easy step, and makes it enjoyable to boot.</p>
<p>Think of it as the anti-blogging tool. It&#8217;s not set up with expectations that you&#8217;ll be doing this or that with it, it&#8217;s there for you to do <em>stuff</em>. I literally cannot wait until it&#8217;s hooked up with some <a href="http://download.dojotoolkit.org/release-1.0.2/dojo-release-1.0.2/dojox/data/demos/">dojox.data</a> love to access web services and the like. It&#8217;s not a programming platform, and maybe that&#8217;s what&#8217;s great about it. Can&#8217;t wait to see how it evolves and how they&#8217;ll open up the (apparently pluggable?) content type system.</p>
<p>Great work guys!</p>
]]></content:encoded>
			<wfw:commentRss>http://infrequently.org/2008/01/roxer-goes-live/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Dojo Needs Your Projector (and room, and network, and&#8230;)! (updated)</title>
		<link>http://infrequently.org/2008/01/dojo-needs-your-projector-and-room-and-network-and/</link>
		<comments>http://infrequently.org/2008/01/dojo-needs-your-projector-and-room-and-network-and/#comments</comments>
		<pubDate>Fri, 11 Jan 2008 21:41:00 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[community]]></category>
		<category><![CDATA[dojo]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://alex.dojotoolkit.org/?p=645</guid>
		<description><![CDATA[The votes have just come in, and the next set of Dojo Developer Days will be in the San Francisco Bay Area Feb 7-8 or 8-9, but as of now we don&#8217;t have a venue. In years past, IBM and AOL have graciously hosted these events, provided network connections and projectors, and generally made us [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://dojotoolkit.org/pipermail/dojo-contributors/2008-January/thread.html">votes</a> have just come in, and the next set of Dojo Developer Days will be in the San Francisco Bay Area Feb 7-8 or 8-9, but as of now we don&#8217;t have a venue.</p>
<p>In years past, <a href="http://www.ibm.com/us/">IBM</a> and <a href="http://aol.com">AOL</a> have graciously hosted these events, provided network connections and projectors, and generally made us feel at home.</p>
<p>This is where you come in! If you&#8217;re working at a Bay Area company who is using or otherwise benefits from the work we&#8217;re doing in Dojo and can spare a room for 20-30 people (with working network) for a couple of days, this is a great chance for you to meet the community of folks building the toolkit, put faces to names, and do your bit to help ensure that Dojo continues to succeed.</p>
<p>If you can spare some space on either of those sets of dates (Feb 7-8 or 8-9), please <a href="mailto:alex@dojotoolkit.org">send me mail</a>.</p>
<p><b>Update:</b> Our friends at Google and Mozilla have both generously offered their spaces, and so it looks the Feb DDD will be in Mt View. I&#8217;ll update this post once more once dates and locations are final. Thanks Google/Mozilla!</p>
<p><b>Update 2:</b> Thanks to Google, Dojo Dev Day will be Feb 7-8th at Google&#8217;s Mt. View campus. The agenda is being constructed <a href="http://www.dojotoolkit.org/book/developers-notebook/ddd-agenda-feb-7-8-2008">here, and we can use all the help and feedback we can get on what to discuss, particularly if you plan on attending</a>. It&#8217;s always hard trying to address every concern at these meetings, so now&#8217;s the time to make your voice heard! We&#8217;ll be posting logistics details and the RSVP address to that page in the next couple of days.</p>
<p>This DDD is going to rock! Can&#8217;t wait to see everyone there.</p>
]]></content:encoded>
			<wfw:commentRss>http://infrequently.org/2008/01/dojo-needs-your-projector-and-room-and-network-and/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How IE Mangles The Design Of JavaScript Libraries</title>
		<link>http://infrequently.org/2008/01/how-ie-mangles-the-design-of-javascript-libraries/</link>
		<comments>http://infrequently.org/2008/01/how-ie-mangles-the-design-of-javascript-libraries/#comments</comments>
		<pubDate>Thu, 10 Jan 2008 12:21:18 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[dojo]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[openweb]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://alex.dojotoolkit.org/?p=644</guid>
		<description><![CDATA[A lot of hyperbole gets thrown around about how painful IE 6 and 7 make the world of JS development, and so I thought I&#8217;d do a bit of cataloging to help those using Dojo understand why it&#8217;s built the way it is and indeed, why all JS widget libraries suffer similar design warts. I [...]]]></description>
			<content:encoded><![CDATA[<p>A lot of hyperbole gets thrown around about how <a href="http://alex.dojotoolkit.org/?p=620">painful IE 6 and 7 make the world of JS development</a>, and so I thought I&#8217;d do a bit of cataloging to help those using Dojo understand why it&#8217;s built the way it is and indeed, why all JS widget libraries suffer similar design warts. I know the good folks up in Redmond are <a href="http://blogs.msdn.com/ie/archive/2007/12/19/internet-explorer-8-and-acid2-a-milestone.aspx">working hard at delivering something better</a>, but the fact of the matter remains that until they outline when we&#8217;re going to get it (and the version after) and how it&#8217;s going to be distributed, IE 8 only serves to make the current situation look as shabby as it really is. Here are but 5 examples of how IE makes your toolkit of choice less elegant than it probably should be.</p>
<ol>
<li>
<h4>Array&#8217;s Can&#8217;t Be Usefully Subclassed (<a href="http://alex.dojotoolkit.org/08/jscript/array_weirdness.html">test case</a>)</h4>
<p>At first blush, this seems wrong. You can use the Array base-class as the prototypal delegate for any user-defined class you wish. Methods are correctly delegated to and hash-style indexes work fine. Almost everything works right&#8230;except when you try to use the built-in array manipulation methods like <code>push</code>, <code>pop</code>, and <code>shift</code>. They dutifully change the internal contents of the subclass instance&#8217;s indexed attributes, but they don&#8217;t manipulate the length property. This means that while you can use <code>for(var x in list){ ...</code> style iteration, you can&#8217;t do anything *aside from key iteration* to know how many items are in the array. Obviously, one could try to wrap the intrinsic functions and detect how they manipulate the length property, but then you&#8217;ve ruined their <code>[DontEnum]</code> status and now they end up in the iterable surface area of instances. Ugg.</p>
<p>Arrays without a working <code>length</code> property are nearly useless, and JScript mangles the design of toolkits as a result.</p>
<p>So how do we get <code>dojo.NodeList</code> to be a &#8220;real&#8221; array with extra methods then?</p>
<p>As you might expect, it&#8217;s a giant hack. When you use the &#8220;new&#8221; keyword with the <code>dojo.NodeList</code> function, you expect that the system will create a new instance and do it&#8217;s normal &#8220;stamp with a constructor&#8221; business. Instead, we resort to creating (and populating) a regular Array instance and <a href="http://trac.dojotoolkit.org/browser/dojo/trunk/_base/NodeList.js">&#8220;NodeList-ifying&#8221; it by copying named attributes from the class prototype into the instance as member properties</a>. The &#8220;constructor&#8221; function then explicitly return a new object, bypassing the &#8220;new&#8221; keyword&#8217;s create/stamp machinery, at which point the return of the <code>new</code> operator becomes our explicit return and not the object which it would have otherwise implicitly returned.</p>
<p>In Dojo 0.9 we had used an even more <a href="http://trac.dojotoolkit.org/browser/tags/release-0.9.0/dojo/_base/NodeList.js">aggressively hackish workaround for IE</a> which involved creating a sub-document and mapping <em>its</em> interpreter&#8217;s intrinsic Array class into the parent document at a different name. Both are slow for different reasons but we eventually switched to the create-and-mix-in style because some popup blockers were interfering with the old method.</p>
<p>Lest you think that Dojo is a dirty, dirty toolkit for doing this kind of thing, consider the janktastic &#8220;it&#8217;s not really an array&#8221; thing that JQuery resorts to instead. By giving up all &#8220;[]&#8221; index operations, JQuery manually maintains it&#8217;s internal length property by re-implementing all of <code>push</code>, <code>pop</code>, etc. functions. This has the benefit of allowing prototypal delegation to work of pre-existing instances when new features are added to the base prototype, but at the expense of no longer being able to think about a dense list of things as an array. Dojo&#8217;s approach is painful, but so are all the alternatives today.</p>
<p>I think it&#8217;s safe to say that both toolkits would subclass Array directly to save code, were it a reasonable thing to do.</p>
</li>
<li>
<h4>Where Art Thou Getters/Setters?</h4>
<p>As JavaScript toolkits get pushed out of their current workhorse tasks of plastering over JavaScript and DOM implementation gaffes by positive browser progress and Moore&#8217;s Law, they increasingly take on application construction tasks (e.g., <a href="http://download.dojotoolkit.org/release-1.0.2/dojo-release-1.0.2/dojox/data/demos/demo_MultiStores.html"><code>dojo.data</code></a>). As the toolkits have approached these tasks, we&#8217;ve collectively started to hit some very serious usability limitations due, in large part, to JScript&#8217;s lack of progress.</p>
<p>Toolkits like Dojo have widget systems because HTML just hasn&#8217;t kept up. That means that these toolkits have a responsibility to keep as many of the positive aspects of the &#8220;native&#8221; web as they can. From <a href="http://dojotoolkit.org/book/dojo-book-0-9/part-2-dijit/themes-and-design">CSS customization</a> to <a href="http://dojotoolkit.org/book/dojo-book-0-9/part-2-dijit/a11y">accessibility</a> all the way through <a href="http://www.dojotoolkit.org/book/dojo-book-0-9/part-3-programmatic-dijit-and-dojo/understanding-parser">implementing declarative creation</a> and DOM-ish JavaScript APIs, the better a job a toolkit can do in making the abstraction feel more solid, the better the toolkit is. Widgets are essentially a way to &#8220;subclass HTML elements&#8221;.</p>
<p>In many places, DOM allows you to affect the behavior of the visible document using &#8220;setter&#8221;-style syntax. For example:</p>
<pre><code>
document.getElementById("foo").style.border = "5px dotted black";
</code></pre>
</p>
<p>Custom widget classes <a href="http://developer.mozilla.org/en/docs/defineGetter">can have the same behavior</a> <em>on every browser except IE</em>.
</p>
<p>This means, of course, that JavaScript toolkits can&#8217;t really implement the behavior, backing JavaScript programmers up against a wall when they design their tools. Instead of providing the natural property-oriented behavior, it forces class authors to write <code>getSomeProperty/setSomeProperty</code> method pairs on their classes should they want to do anything when values are gotten or set. The resulting code feels a lot more like Java than JavaScript, which is usually a sign that something is horribly wrong in a browser.</p>
<p>As bad as this problem is for visual widgets, it&#8217;s worse for data binding systems. API&#8217;s like <a href="http://dojotoolkit.org/book/dojo-book-0-9/part-3-programmatic-dijit-and-dojo/data-retrieval-dojo-data-0"><code>dojo.data</code></a> would be designed in fundamentally different ways if getters and setters were available everywhere. Instead of the rigamarole of making users fetch an item reference and then fetch attribute values using the opaque item handle and the property name, we&#8217;d just set up getters and setters on the properties themselves and defer the implementation of fetching those values down to the data store. Further, assigning a linkage between a <code>dojo.data</code> query or store and a widget which represents it could be as simple as assigning a property to the widget object.</p>
<p>So are workarounds to this possible? I think they are, and I&#8217;m testing some of them out for use in Dojo 1.1 right now. I&#8217;ll post more about them should they pan out. Every avenue which looks potentially workable right now involves <a href="http://alex.dojotoolkit.org/08/jscript/lettable.html">gigantic hacks</a> which also deeply constrain API designs. Fundamentally, this problem can&#8217;t be solved without good language-level support.</p>
<p>It&#8217;s perhaps folly to assume that this will be addressed in IE 8, but given the enormous back-pressure of nearly every JavaScript toolkit author demanding this feature and the embarrassment of every other browser beating them to the punch, I have some hope that we could see getters and setters for JScript in the near future. It won&#8217;t matter much, though, unless the JScript team ships their new engine to <em>all</em> IE versions when they release IE 8. Not bloody likely.</p>
</li>
<li>
<h4>Performance</h4>
<p>Kudos are in order to the JScript team for <a href="http://erik.eae.net/archives/2007/12/14/20.07.27/">fixing</a> their <a href="http://blogs.msdn.com/ericlippert/archive/2003/09/17/53038.aspx">long-b0rken</a> GC heuristic and pushing it out to everyone&#8230;but it&#8217;s the tip of the iceberg.</p>
<p>Performance is one of those areas where differences in implementations can tightly circumscribe what&#8217;s possible despite exacting spec conformance. On this front, JScript&#8217;s <a href="http://www.codinghorror.com/blog/archives/001023.html">raw VM-level execution time</a> leaves a lot to be desired, but the true travesties really show up when you hit the DOM for computed style information or try to do anything reasonably complicated that involves string operations.</p>
<p>Most non-trivial blocks of JS code today rely on <code>innerHTML</code> to bootstrap some new chunk of DOM in response to user action due in large part to the cross-browser speed and size advantages of <code>innerHTML</code> vs. raw DOM methods for equivalent DOM structures. This reality pushes IE&#8217;s string performance woes to the fore as more and more client-side systems push far enough to hit the new &#8220;wall&#8221;.</p>
<p>Similarly, getting computed box model calculations out of IE is not for the faint of optimization foo. When we profiled Dojo&#8217;s widgets to plan our attack for 0.9 and 1.0, we noted very quickly that getting box-model data out of the browser for any element is hugely costly on every browser, but on IE the cost was not just big&#8230; it was <em>enormous</em>. Our best guess right now is that the properties on the currentStyle property are re-calculated when they&#8217;re requested from script and not cached in the bound object when layout happens. The resulting performance penalty requires that developers nearly never manage layout in code, severely constraining the layouts which are attempted by toolkits like Dojo.
</p>
<p>Across the board, from DOM performance to raw JScript execution speed, IE is a dog, and the odds are good that whatever toolkit you&#8217;re using spends a lot of time working around that reality.
</p>
</li>
<li>
<h4>Doctype Switching</h4>
<p>Doctype switching to toggle box-model behavior is perhaps the single most limiting implementation error in IE. <a href="http://www.mozilla.com/en-US/firefox/">Saner</a> browsers allow you to use a CSS property to affect the layout model in use in a particular section of a document. This makes tons of sense in a templated world where most of the markup your system generates starts and ends in the &#8220;news hole&#8221;. Today, that covers nearly everyone. A quick line count in any HTML document shows that doctypes are a <em>scarce resource</em> whose scarcity is made problematic when it&#8217;s semantics are overloading. I&#8217;ve been on product teams where the idea of changing the doctype would require months to recover from. That kind of cost related to what should be simply a markup dialect change (not a formatting policy change) implies strongly that the doctype is a terribly brittle way to control several independent concerns.
</p>
<p>Instead of giving devs fine-grained layout system control, IE makes it all-or-nothing. The global flag approach backs toolkit developers into doing script-based layout calculations or &#8220;just throw it in another div&#8221; solutions where we&#8217;d really rather not. Both are slow and both may be required since it&#8217;s completely impractical to dictate to users which doctype they&#8217;ll be using. While any app may be able to be disciplined enough to not care, toolkit developers must work everywhere. Hilarity ensues.
</p>
<p>I fear this is going to get even worse with IE8 as the IE team looks to implement some of HTML 5 and hopefully many of CSS 2.1&#8242;s clarifications. The sooner they abandon the global switch, the better&#8230;but I&#8217;ll wager it&#8217;s pain they just don&#8217;t feel. Building a browser is a very different pursuit from building portable apps to run inside it.</p>
</li>
<li>
<h4>HTC&#8217;s Can&#8217;t Be Inlined (Even With Hacks)</h4>
<p>Modern browsers have built-in widget systems. On IE, it&#8217;s <a href="http://msdn2.microsoft.com/en-us/library/ms531428(VS.85).aspx">HTCs + Viewlink</a> and on Firefox it&#8217;s <a href="http://developer.mozilla.org/en/docs/XBL:XBL_1.0_Reference">XBL</a>. Even a cursory reading through the docks for both is enough to illuminate the gigantic overlap. Alas, no one is yelling at them to standardize and the result is a terrible mess in which both sub-optimal formats limp along with nearly zero Open Web usage.
</p>
<p>So why do I single out IE for whipping here when XBL is just as lame and similarly b0rken with regards to single-file embedding? Well, on Mozilla, you have a lot more &#8220;outs&#8221;. I strongly suspect that you can use &#8220;<a href="http://en.wikipedia.org/wiki/Data:_URI">data:</a>&#8221; urls to generate and evaluate component definitions for FF, which would enable compiling down from a single (more sane) format in the running page environment. IE prevents any such useful code-loading approaches, meaning you have to generate files on disk in their b0rken-ass format in order to be able to use them. Given <a href="http://dojotoolkit.org">how far we&#8217;ve gotten</a> with non-builtin widget systems, it&#8217;s pretty clear that toolkit authors aren&#8217;t going to contort themselves into requiring a build step that splats files all over disk just so that we can give IE and Mozilla different views of the same component description. Instead, we all limp along on our own class hierarchies without any of the benefits of element subclassing, getter/setter handling, and inline (scoped) method description that these browser-provided systems would allow. It&#8217;s kind of pitiful, really.
</p>
<p>IE8 may include strong &#8220;data:&#8221; URL support given that it&#8217;s needed to <a href="http://blogs.msdn.com/ie/archive/2007/12/19/internet-explorer-8-and-acid2-a-milestone.aspx">pass Acid2</a>, but I&#8217;m not holding my breath. I strongly suspect that HTC&#8217;s are a dark, unloved corner of the Trident codebase that none of the current engineering team are really fired up about fixing (which they could have done by just allowing Data Islands to contain HTC definitions&#8230;but I digress). The takeaway here is that we probably <em>shouldn&#8217;t even need JS toolkits to build widget systems</em>, but it&#8217;s too late now. We&#8217;re an abstraction short and a decade late and now the Flex frankenstein is beating HTML at it&#8217;s own game.
</p>
</li>
</ol>
<p>In a vacuum of feature data or builds to work with, it&#8217;s prudent to assume that IE 8&#8242;s DOM and JavaScript implementations will continue to warp attempts at building useful, idiomatic JavaScript libraries to ease the problems that HTML + CSS aren&#8217;t effectively solving. So next time you wonder why your toolkit of choice is built the way it is or why it&#8217;s even necessary, just remember that in many cases they are protecting you from a decade or more of bad decision making.</p>
<p>From that perspective, they&#8217;re worth <a href="http://trac.dojotoolkit.org/browser/dojo/trunk/LICENSE">every penny</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://infrequently.org/2008/01/how-ie-mangles-the-design-of-javascript-libraries/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Kris Zyp Joins SitePen</title>
		<link>http://infrequently.org/2008/01/kris-zyp-joins-sitepen/</link>
		<comments>http://infrequently.org/2008/01/kris-zyp-joins-sitepen/#comments</comments>
		<pubDate>Thu, 03 Jan 2008 01:23:11 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[sitepen]]></category>
		<category><![CDATA[work]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://alex.dojotoolkit.org/?p=643</guid>
		<description><![CDATA[Some time back I posted about an opening in SitePen&#8217;s R&#038;D &#8220;group&#8221;. The responses I got back were astounding, and I couldn&#8217;t be happier that Kris Zyp is joining me to help work on things that we feel are important to the future of the open web. This is yet another high point in our [...]]]></description>
			<content:encoded><![CDATA[<p>Some time back I posted about an <a href="http://alex.dojotoolkit.org/?p=616#comments">opening in SitePen&#8217;s R&#038;D &#8220;group&#8221;</a>. The responses I got back were astounding, and I couldn&#8217;t be happier that <a href="http://www.JSON.Com/2008/01/02/joining-sitepen/">Kris Zyp is joining me</a> to help work on things that we feel are important to the future of the open web. This is yet another high point in our recent string of <a href="http://blog.sitepen.com/">great hires</a>. SitePen has never been a better place to work, and that&#8217;s saying something.</p>
]]></content:encoded>
			<wfw:commentRss>http://infrequently.org/2008/01/kris-zyp-joins-sitepen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The W3C Cannot Save Us</title>
		<link>http://infrequently.org/2007/12/the-w3c-cannot-save-us/</link>
		<comments>http://infrequently.org/2007/12/the-w3c-cannot-save-us/#comments</comments>
		<pubDate>Sun, 16 Dec 2007 22:09:12 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[openweb]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://alex.dojotoolkit.org/?p=642</guid>
		<description><![CDATA[Things are finally moving over in CSS-land. On the positive side CSS column layouts are looking pretty nice, having dropped their dependency on the the janktastic &#8220;advanced&#8221; layout module and there&#8217;s some initial movement on improving the CSS-OM. But all is not well, nor has it been for a long, long time. No work on [...]]]></description>
			<content:encoded><![CDATA[<p>Things are finally moving over in CSS-land. On the positive side CSS column layouts are <a href="http://www.w3.org/TR/css3-multicol/">looking pretty nice</a>, having dropped their dependency on the the janktastic <a href="http://www.w3.org/TR/css3-layout/">&#8220;advanced&#8221; layout module</a> and there&#8217;s some initial movement on improving <a href="http://dev.w3.org/csswg/cssom/">the CSS-OM</a>.</p>
<p>But all is not well, nor has it been for a long, long time. No work on hbox or vbox or <a href="http://alex.dojotoolkit.org/?p=625">mixins/inheritance</a>. There&#8217;s also no indication that the WG has taken stabs exposing the expressive power that Microsoft exposed with <a href="http://msdn2.microsoft.com/en-us/library/ms537634.aspx">CSS expressions</a>.</p>
<p>More importantly, <a href="http://www.stuffandnonsense.co.uk/malarkey/more/css_unworking_group/">Andy Clarke</a> is pretty disgusted by what he sees of the process and participants and so, apparently, is <a href="http://lists.w3.org/Archives/Public/www-style/2007Dec/0076.html">David Baron</a>. Anyone who has met <a href="http://dbaron.org/">David</a> in person will probably understand how much of a big deal this really is. It signals the effective end of the CSS WG as we (don&#8217;t) know it. Rebuilding credibility in the WG is going to be much, much harder now that <a href="http://www.w3.org/Style/CSS/members.php3">Mozilla&#8217;s representative</a> has effectively given up on the closed-door process. The working group&#8217;s secret cabal style of operation is imploding. It was inevitable, but the timing is still a surprise.</p>
<p>But why was it inevitable? And should we take Andy&#8217;s suggestion seriously and expect a re-chartered WG to do better? After thinking about it for a while, I think the answer is that we can&#8217;t expect any standards body to do what is being asked of the CSS WG; namely to invent the future by committee. It&#8217;s particularly unreasonable to expect progress when deployed browsers provide so much momentum that the safest thing to do is to solve the little problems and ignore the large ones. This is also a well-worn stalling tactic used by vendors playing for time as to marginalize the standards process or solidify their lead such that it becomes a de-facto standard. This is a good reason to reject closed working groups, but the web standards to which advocates now cling were developed in those same closed systems. Closed clearly can&#8217;t be all bad nor can it be a primary cause for the lack of progress. We seem to be hugely confused and conflicted about the relationship between standards, vendors, and how we get to a better future.</p>
<p>Before I lay out all the forces involved, let me first say what everyone knows but few truly accept:</p>
<p>
<h3>In order for the future to be better by a large amount, it must be different by a large amount.</h3>
</p>
<p>I think that statement alone is enough to indict Opera&#8217;s anti-trust actions as stupid and ill-considered. But we should also recognize that it forms the basis of Opera&#8217;s grievances. We should all be pissed off that the discussion today hinges on how we will get MSIE to improve by slight degrees (<a href="http://alex.dojotoolkit.org/?p=638">or should we expect more?</a>). Opera could have done better, though, by <a href="http://gears.google.com/">shipping Gears</a> and working with Google to make it a host for pluggable renderers&#8230;like Opera. Too bad Opera has prioritized proving a point over actually improving the situation. But I digress.</p>
<p>So what was so different about the late 90&#8242;s that it allowed a closed process to make huge gains in a short order while we can&#8217;t even get basic architectural issues addressed in a timely fashion today?</p>
<p>The first major reason is that web developers in the 90&#8242;s were looking forward, not backward. I remember being excited about getting the chance to use new features and not caring who gave them to us. As a community, web developers hadn&#8217;t collectively &#8220;picked sides&#8221;. I think the market as a whole still has that essential optimism built in, it&#8217;s just that the more that self-identified web developers focus on how standards compliant things are (or aren&#8217;t), the more we lose the sense that it <em>can</em> get better. So platforms not tied to standards race ahead. Why is anyone surprised that Adobe has essentially kicked HTML&#8217;s ass with Flex or that Microsoft feels it can do the same with Silverlight in a couple of revs? If you buy either Adobe or MS&#8217;s lines about how these platforms aren&#8217;t there to replace HTML, I&#8217;d like to sell you some <a href="http://www.tuvaluislands.com/warming.htm">prime property in the Pacific</a>.</p>
<p>But, I hear you yelling, it sucked to build things back then! It was hard! We didn&#8217;t know what bits of the technology we could use portably, and the W3C saved us from that mess!</p>
<p>Oh really?</p>
<p>Try teaching a good programmer without a web background to build anything reasonably sophisticated with web technologies today. Doing so will teach you painfully, embarrassingly that there are huge tracts of the HTML, CSS, and DOM specs that you simply can&#8217;t use. IE&#8217;s bugs combined with its market share conspire to ensure that&#8217;s true, and we wouldn&#8217;t get off the hook should IE 8 magically transform into a perfect reference implementation. Mozilla, Opera, and Safari all have their own warts as we get to the edges of what&#8217;s theoretically possible with current specs. And that&#8217;s not even taking into account how utterly wrong, broken, and silent the specs are in several key areas. Even if the specs were great, we&#8217;d still be gated by the adoption of new renderers.</p>
<p>It&#8217;s clear then that vendors in the market are the ones who deploy new technologies which improve the situation. The W3C has the <em>authority</em> to standardize things, but vendors have all the <em>power</em> when it comes to actually making those things available. Ten years ago, we counted on vendors introducing new and awesome things into the wild and then we yelled at them to go standardize. It mostly worked. Today, we yell at the standards bodies to introduce new and awesome things and yell at the browser vendors to implement them, regardless of how unrealistic they may be. It doesn&#8217;t work. See the problem?</p>
<p>Andy is probably <a href="http://www.stuffandnonsense.co.uk/malarkey/more/csswg_proposals/">wrong to suggest</a> that a new working group (no matter the structure) can succeed in fixing the impasses of the existing CSS WG if only because no working group at the W3C has the <em>power</em> to effectively and definitively introduce new things into the market. Only browser vendors can do that and no amount of buy-in at the W3C can force vendors to implement. The last decade is proof enough of that. We need to wise up to this key point: standards bodies are downstream of implementations, and that&#8217;s the only time when they work well.</p>
<p>Until we get some great new (non-standard) CSS features out Mozilla, Opera, and IE nothing will get better to the extent that we will again be optimistic about the future (Safari <a href="http://webkit.org/blog/138/css-animation/">earns a pass</a>). The size of the improvements they deliver in the future are directly tied to our expectations of how different the future will be. Only when there are large and divergent ideas of how to proceed expressed through competing, successful implementations will standardization really work to whatever extent that it can reasonably be expected to.</p>
<p>Let that sink in a bit. To get a better future, not only do we need a return to &#8220;the browser wars&#8221;, we need to applaud and use the hell out of &#8220;non-standard&#8221; features until such time as there&#8217;s a standard to cover equivalent functionality. Non-standard features are the future, and suggesting that they are somehow &#8220;bad&#8221; is to work against your own self-interest.</p>
<p>Web developers everywhere need to start burning their standards advocacy literature and start telling their browser vendors to give them the new shiny. Do we want things to work the same everywhere? Of course, but we&#8217;ve got plenty of proof to suggest that only healthy browser competition is going to get us there. Restructuring the CSS WG or expecting IE8 to be &#8220;fully standards compliant&#8221; is a fools game.</p>
<p>Put simply, <em><a href="http://www.zeldman.com/">Zeldman</a> is hurting you</em> and only you can make it stop. Neither the CSS WG nor the HTML 5 WG nor, indeed, any W3C working group can define the future. They can only round off the sharp edges once the future becomes the past and that&#8217;s all we should ever expect of them. As much as they tell us (and themselves) that they can, and as much as they really would like to, the W3C cannot save us.</p>
<p><b>Update:</b> the implosion continues apace. <a href="http://lists.w3.org/Archives/Public/www-style/2007Dec/0084.html">Hixie outs Microsoft&#8217;s rep as stalling on embeddable fonts</a> and <a href="http://lists.w3.org/Archives/Public/www-style/2007Dec/0083.html">runs up the flag on why he thinks it&#8217;s just not working in general</a>. Interestingly, one of the <a href="http://lists.w3.org/Archives/Public/www-style/2007Dec/0082.html">MS reps has seemingly seconded dbarons &#8220;lets do this in public&#8221; sentiment</a> as <a href="http://lists.w3.org/Archives/Public/www-style/2007Dec/0094.html">Hixie smacks down Bert Bos&#8217;s leadership of the CSS WG</a>. It&#8217;s easy to get caught up in the horse race on this, but I want to again suggest that none of this will get better until the browsers start taking risks. Hopefully openness and transparency will allow the world to judge the actions of the WG until then without removing the ability for the WG to function when the cavalry does arrive.</p>
]]></content:encoded>
			<wfw:commentRss>http://infrequently.org/2007/12/the-w3c-cannot-save-us/feed/</wfw:commentRss>
		<slash:comments>64</slash:comments>
		</item>
		<item>
		<title>The Non-Relational DB Strikes Back!</title>
		<link>http://infrequently.org/2007/12/the-non-relational-db-strikes-back/</link>
		<comments>http://infrequently.org/2007/12/the-non-relational-db-strikes-back/#comments</comments>
		<pubDate>Sat, 15 Dec 2007 08:25:47 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://alex.dojotoolkit.org/?p=641</guid>
		<description><![CDATA[When I started at Jot, one of the things I fell most in love with about the platform was the way that application developers on the system never, ever had to think about &#8220;the database&#8221;. You just had nodes (JS objects which could serialize themselves to XML) and nodes had properties. Setting a property on [...]]]></description>
			<content:encoded><![CDATA[<p>When I <a href="http://alex.dojotoolkit.org/?p=458">started at Jot</a>, one of the things I fell most in love with about the platform was the way that application developers on the system never, ever had to think about &#8220;the database&#8221;. You just had nodes (JS objects which could serialize themselves to XML) and nodes had properties. Setting a property on the node persisted it and created a new version of the node.</p>
<p>Instead of thinking about how you were going to represent your problem in objects and then figuring out some way to map them to an RDBMS, you just started figuring out your problem in code, letting the normal development cycle iterations of what a &#8220;thing&#8221; is continue without stopping after every change to babysit the database or perform some sort of lame (or brittle) &#8220;migration&#8221;. Recently I&#8217;ve been excited to see this kind of work <a href="http://code.djangoproject.com/wiki/SchemaEvolution">start to evolve in the Django world</a> while aspects of the non-relational data store have been finding more mindshare through projects like <a href="http://couchdb.org/">CouchDB</a> and ERlang&#8217;s built-in <a href="http://www.erlang.org/doc/apps/mnesia/index.html">Mnesia</a> persistence layer, although they all still feel relatively primitive in comparison to the &#8220;experimentation is free&#8221; environment that Jot offered. Sometimes folks ask my why I don&#8217;t get into RoR, and every time I look into it again I&#8217;m alway struck how&#8230;.backward it is. Hopefully the rumored <a href="http://www.gemstone.com/">gemstone port to ruby</a> will plug up some of the remaining conceptual leaks that the RDBMS addiction has tortured the RoR and DJango app development process with.</p>
<p>Adding to the non-RDBMS data storage action is the <a href="http://radar.oreilly.com/archives/2007/12/amazon_launches.html">announcement by Amazon</a> of their <a href="http://www.amazon.com/gp/browse.html?node=342335011">SimpleDB</a> service. It shares some of the best features of the Jot model (easy key/value setting, no schema, query anything) but doesn&#8217;t yet seem to have the ability to version individual records. Even if SimpleDB doesn&#8217;t do it, I expect it to pop up in another form somewhere else soon.</p>
<p>I&#8217;m tremendously excited about these sorts of services and data stores. It&#8217;s been clear for some time that most data storage tasks for even departmental applications are main-memory tasks. It&#8217;ll be interesting to see how the language environments respond to these changes. Microsoft&#8217;s LINQ integration into .NET languages is the first major stab in this direction, and I expect the next up-and-coming language will probably develop something similar in order to one-up Java and Ruby by making &#8220;schema evolution&#8221; look more like adding properties to an object or a class prototype (in JS parlance).</p>
<p>Hopefully soon all of this work will soon yield a web framework for general consumption that will show the rest of the world what Jot got dead right: that when your data and your program can evolve in harmony and without friction or risk, you are truly liberated. When storage is free (and it nearly is), &#8220;screwing up&#8221; should mean starting a fire in your data center. Everything else is just a version rollback.</p>
]]></content:encoded>
			<wfw:commentRss>http://infrequently.org/2007/12/the-non-relational-db-strikes-back/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>If You&#8217;re Not Already Subscribed To Mike Shaver&#8217;s Blog&#8230;</title>
		<link>http://infrequently.org/2007/12/if-youre-not-already-subscribed-to-mike-shavers-blog/</link>
		<comments>http://infrequently.org/2007/12/if-youre-not-already-subscribed-to-mike-shavers-blog/#comments</comments>
		<pubDate>Thu, 13 Dec 2007 22:17:58 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[openweb]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://alex.dojotoolkit.org/?p=640</guid>
		<description><![CDATA[&#8230;this would be a good time to go add it to your feed reader of choice. His latest post on Adobe&#8217;s attempts to increase the social acceptability of their closed platform does a great job at distilling some of the history and strategies being employed.]]></description>
			<content:encoded><![CDATA[<p>&#8230;this would be a good time to go add it to your feed reader of choice. His <a href="http://shaver.off.net/diary/2007/12/12/being-open-about-being-closed/">latest post on Adobe&#8217;s attempts to increase the social acceptability of their closed platform</a> does a great job at distilling some of the history and strategies being employed.</p>
]]></content:encoded>
			<wfw:commentRss>http://infrequently.org/2007/12/if-youre-not-already-subscribed-to-mike-shavers-blog/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>DWR Joins The Dojo Foundation, Joe Walker Joins SitePen</title>
		<link>http://infrequently.org/2007/12/drw-joins-the-dojo-foundation-joe-walker-joins-sitepen/</link>
		<comments>http://infrequently.org/2007/12/drw-joins-the-dojo-foundation-joe-walker-joins-sitepen/#comments</comments>
		<pubDate>Tue, 11 Dec 2007 20:25:45 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[comet]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[Dojo Foundaton]]></category>
		<category><![CDATA[openweb]]></category>
		<category><![CDATA[sitepen]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://alex.dojotoolkit.org/?p=639</guid>
		<description><![CDATA[Dylan has the short-and-sweet writeup of what&#8217;s happening with DWR and the Dojo Foundation and Joe Walker has a bit more Q&#038;A. I can&#8217;t really add much to the &#8220;news&#8221; bit of the news other than to say that I&#8217;m tremendously excited about it. The DWR community has been amazingly level-headed in its deliberations, and [...]]]></description>
			<content:encoded><![CDATA[<p>Dylan has the <a href="http://www.sitepen.com/blog/2007/12/11/london-calling/">short-and-sweet writeup</a> of what&#8217;s happening with DWR and the Dojo Foundation and <a href="http://getahead.org/blog/joe/2007/12/11/changes_for_dwr.html">Joe Walker</a> has a bit more Q&#038;A. I can&#8217;t really add much to the &#8220;news&#8221; bit of the news other than to say that I&#8217;m tremendously excited about it. The DWR community has been amazingly <a href="http://www.nabble.com/DWR-and-the-Dojo-Foundation-to13766527.html#a13767547">level-headed</a> in its deliberations, and I can&#8217;t wait to work with them in the future.</p>
<p>I&#8217;ve been concerned a bit that it may appear as though Joe joining SitePen may carry with it the perception that the Dojo Foundation is an arm of SitePen in some way or that DWR will now need to become Dojo-centric. Luckily neither is the case, although reading assurances to that effect on this blog should be taken with a grain of salt. The Foundation has an open door for deserving projects which need a good legal umbrella and don&#8217;t want a lot of process or formality, and we&#8217;ve extended personal invitations to many non-Dojo-centric projects over the years to join  (including direct competitors).</p>
<p>For anyone still worried about the DWR/DF arrangement, working it backwards from both perspectives should yield some comfort. It does very little good for Dojo to be shoved down someone&#8217;s throat by the choice of some orthogonal tool in the same way that it would be tremendously foolhardy for the Foundation to lose its independence in any way. Neither would be very meritocratic and in particular the independence of the Foundation and its track record of providing a level playing field is most of what it has going for it. To that end, putting DWR at the Foundation and not under the <a href="http://getahead.org/">getahead legal entity</a> should help to make the distinction between commercial interest and community development even clearer than it previously was.</p>
<p>An umbrella organization to help support projects in meeting their goals is the under-appreciated bit of what separates successful stand-alone projects from projects which can&#8217;t escape the yolk of either a closed development process or a sponsoring company that just can&#8217;t let go of assumed control or brand affinity. Having your work backed by a legal entity is essential <a href="http://alex.dojotoolkit.org/?p=609">if you&#8217;re not going to pick a GPL-ish license</a>, but having that entity be a brand-neutral known quantity helps get projects adopted by organizations which have both lawyers and some experience with OSS. For component software like <a href="http://getahead.org/dwr">DWR</a>, <a href="http://cometd.com">Cometd</a>, and <a href="http://dojotoolkit.org">Dojo</a> that&#8217;s nearly all of the users which an OSS license alone won&#8217;t convince. The independent nature of the Foundation also isolates users from the employment decisions of key contributors. Through the Foundation, Dojo&#8217;s licensing has survived wholly in-tact through changes in employment status of nearly all of its <a href="http://www.ohloh.net/projects/3548/analyses/latest/contributors">most prolific contributors</a>.</p>
<p>Having &#8220;external&#8221; committers, a <a href="http://webkit.org/coding/commit-review-policy.html">reasonable process for minting new ones</a>, and a peaceful atmosphere where developers can build trust along with software isn&#8217;t rocket science but it does require some amount of prioritization of those concerns over personal and corporate directives. We&#8217;re not perfect at this at the Dojo Foundation, and we haven&#8217;t yet encountered the wrenching attempts at &#8220;brand drafting&#8221; which Apache deals with on a regular basis, but we&#8217;re committed to keeping the process as hands-off as we can and working to ensure that the umbrella doesn&#8217;t imply more than it really provides.</p>
<p>Our door is open. All that we require of new projects is that all committers on the project <a href="http://dojotoolkit.org/cla/">sign a CLA</a>, that the lineage of the code be &#8220;clean&#8221; (within reason), that the project community is relatively healthy, and that you can convince the existing committers <a href="http://dojotoolkit.org/pipermail/foundation/2007-December/thread.html">that yours is worthy of Foundation support</a>. It has always been the intent of the Foundation to host projects that have nothing to do whatsoever with Dojo and it&#8217;s my sincere hope that the DWR announcement drives this home, but we&#8217;re not going to leave it to chance. More on this in a forthcoming post.</p>
<p>Until then, my congrats again to Joe and the entire DWR community. Thanks for giving the Foundation the opportunity to make good on the trust you&#8217;ve invested in us.</p>
]]></content:encoded>
			<wfw:commentRss>http://infrequently.org/2007/12/drw-joins-the-dojo-foundation-joe-walker-joins-sitepen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Go Molly! Go!</title>
		<link>http://infrequently.org/2007/12/go-molly-go-2/</link>
		<comments>http://infrequently.org/2007/12/go-molly-go-2/#comments</comments>
		<pubDate>Sat, 08 Dec 2007 02:30:53 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[openweb]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://alex.dojotoolkit.org/?p=638</guid>
		<description><![CDATA[Finally, some progress from IE thanks to Molly&#8217;s tenaciousness. It&#8217;s sad that it took Molly rhetorically tackling BillG on the topic to get more than witty asides out of the IE team, but beggars can&#8217;t be choosers. To that end, we (the web development world at large) need to continue to follow up, not by [...]]]></description>
			<content:encoded><![CDATA[<p>Finally, some <a href="http://www.molly.com/2007/12/05/conversation-with-bill-gates-about-ie8-and-microsoft-transparency/">progress</a> from IE thanks to Molly&#8217;s tenaciousness.</p>
<p>It&#8217;s sad that it took Molly rhetorically tackling BillG on the topic to get more than <a href="http://blogs.msdn.com/ie/archive/2007/12/05/internet-explorer-8.aspx">witty asides</a> out of the IE team, but beggars can&#8217;t be choosers. To that end, we (the web development world at large) need to continue to follow up, not by asking for particular features, but by demanding continued openness and progress. We developers have suffered many broken promises and decrepit stewardship when it mattered most and the IE team has been harshly rebuked as a result. It&#8217;s no wonder, then, that they&#8217;re circumspect about promising anything concrete. To that end, I&#8217;m going to be focusing my questions to the IE team on some that I&#8217;ve previously blogged here. Namely:</p>
<ol>
<li>When will your next beta or alpha be available?</li>
<li>What about the version after that?</li>
<li>Is your organization standardizing the new stuff you added in the last stable release? Where?</li>
</ol>
<p>These questions are explicitly designed to avoid trapping IE (or any other browser vendor) in a set of promises which they can&#8217;t keep or forcing them to run laps in a standards body before they are ever allowed to try out anything new. Instead these questions focus on what we most fundamentally need: to know that the web will improve in a fashion relatively in line with past beneficial improvements. </p>
<p>Invent. Deploy. Standardize. In that order.</p>
<p>With that as the central goal, these questions also explicitly de-prioritize standards compliance in favor of larger improvements to the fabric of the web. A fully standards compliant IE8 won&#8217;t buy the web any serious ammunition in the war to be the continued platform of choice for building new classes of applications. Only invention and real competition can spur those kinds of advances, and prioritizing standards compliance of any renderer above more radical and powerful forms of simplification (new tags, other HTML 5 features, Gears, etc.) seriously harms the web&#8217;s chances against obvious closed-platform plays like Flex and Silverlight. We&#8217;ll need standardization to solidify gains introduce in new renderers from any vendor, but without deployed solutions, the standards process is adrift in a sea of vaguely good ideas without market forces providing a prioritizing force.</p>
<p>This isn&#8217;t to say that standards aren&#8217;t important (or even critical), only to say that for the web development community to insist on that above all else is to miss the forest for the trees. Once we get answers on progress, we must obviously begin to ask about specifics, but the web development world must come to understand that without a commitment to real future progress, even amazing point releases or full standards compliance won&#8217;t get us to where we want to go. We owe the IE team the breathing space to deliver something great, and they owe us a commitment to real, hands-on stewardship of their rendering engine. </p>
<p>Lets not miss an opportunity to move forward because we&#8217;re stuck on the past, lest we all wake up one day to realize that in bickering about the late 90&#8242;s we lost the important battles of the &#8217;00&#8242;s by default.</p>
]]></content:encoded>
			<wfw:commentRss>http://infrequently.org/2007/12/go-molly-go-2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>@Media Ajax Wrap-Up</title>
		<link>http://infrequently.org/2007/11/media-ajax-wrap-up/</link>
		<comments>http://infrequently.org/2007/11/media-ajax-wrap-up/#comments</comments>
		<pubDate>Thu, 22 Nov 2007 01:49:55 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[blog chatter]]></category>
		<category><![CDATA[openweb]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://alex.dojotoolkit.org/?p=634</guid>
		<description><![CDATA[I&#8217;ve uploaded the slides for my talk from Day 2 of @Media Ajax, which was a refreshingly focused and high-quality conference. The single-track format combined with some really excellent speakers made me really regret missing any part of it. Huge congrats to Patrick and the Vivabit for putting on such a great couple of days. [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve uploaded the slides for my talk from Day 2 of <a href="http://www.vivabit.com/atmediaAjax/">@Media Ajax</a>, which was a refreshingly focused and high-quality conference. The single-track format combined with some really excellent speakers made me really regret missing any part of it. Huge congrats to Patrick and the Vivabit for putting on such a great couple of days.</p>
<p><a href="http://alex.dojotoolkit.org/07/atMediaAjax/dojo_1.0.pdf"><img src="http://alex.dojotoolkit.org/07/atMediaAjax/dojo_1.0.001.png" width="300" /></a></p>
<p><a href="http://www.slideshare.net/slightlyoff/dojo-10-great-experiences-for-everyone" title="View 'Dojo 1.0: Great Experiences For Everyone' on SlideShare">On Slideshare</a></p>
]]></content:encoded>
			<wfw:commentRss>http://infrequently.org/2007/11/media-ajax-wrap-up/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Wot Ho!</title>
		<link>http://infrequently.org/2007/11/wot-ho/</link>
		<comments>http://infrequently.org/2007/11/wot-ho/#comments</comments>
		<pubDate>Mon, 12 Nov 2007 19:35:20 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://alex.dojotoolkit.org/?p=633</guid>
		<description><![CDATA[Today I&#8217;m flying out for a trip to Edinburgh and then on to London for the @media Ajax conference. This will be my first trip to the UK, and I&#8217;ve been fitfully canvassing friends about what I should do and see while there, but I&#8217;ve barely had time to digest it. My usual M.O. of [...]]]></description>
			<content:encoded><![CDATA[<p>Today I&#8217;m flying out for a trip to Edinburgh and then on to London for the <a href="http://www.vivabit.com/atmediaAjax/">@media Ajax</a> conference.</p>
<p>This will be my first trip to the UK, and I&#8217;ve been fitfully canvassing friends about what I should do and see while there, but I&#8217;ve barely had time to digest it. My usual M.O. of getting out a map and digesting the geography of the place I&#8217;m visiting is failing due to a complete lack of time so I&#8217;m going to lazy-web it (verbed!): what should I do in London?</p>
]]></content:encoded>
			<wfw:commentRss>http://infrequently.org/2007/11/wot-ho/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Immunity</title>
		<link>http://infrequently.org/2007/11/immunity/</link>
		<comments>http://infrequently.org/2007/11/immunity/#comments</comments>
		<pubDate>Sat, 10 Nov 2007 22:55:15 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[personal]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://alex.dojotoolkit.org/?p=632</guid>
		<description><![CDATA[I don&#8217;t write much about politics here, but the amnesty-for-telcos language which is being fought by the EFF really has my goat. The whole robo-fax-as-advocacy thing isn&#8217;t really my style so what follows is the letter I sent to Senator Feinstein today after finding that her San Francisco office&#8217;s voicemail box is full and that [...]]]></description>
			<content:encoded><![CDATA[<p>I don&#8217;t write much about politics here, but the amnesty-for-telcos language which is being <a href="https://secure.eff.org/site/Advocacy?alertId=325&#038;pg=makeACall">fought by the EFF</a> really has my goat. The whole robo-fax-as-advocacy thing isn&#8217;t really my style so what follows is the letter I sent to <a href="http://feinstein.senate.gov/public/">Senator Feinstein</a> today after finding that her San Francisco office&#8217;s voicemail box is full and that her Washington office isn&#8217;t staffed on Saturdays either.</p>
<p><span id="more-632"></span></p>
<blockquote><p>
Senator Feinstein:</p>
<p>My name is Alex Russell, I&#8217;m a software engineer and a constituent of yours in the San Francisco district. I vote in every single election, federal, state, and local. I&#8217;m not &#8220;politically active&#8221; per sae, I don&#8217;t consider myself a partisan for any party nor do I ever vote a straight party ticket. I just want to see deliberative government which considers the needs of voters seriously. I try to stay on top of issues, study seriously for elections, and come to reasoned positions about the matters before me as a citizen. It&#8217;s strange then that this may be only the second time I&#8217;ve ever written my senator (previously I believe I wrote my senator in Indiana before I was of voting age&#8230;with predictable results).</p>
<p>The reason I&#8217;m writing is my incredulousness at your apparent support of the proposed language granting telco&#8217;s immunity from prosecution for illegal acts taken on behalf of the executive branch (<a href="http://intelligence.senate.gov/071025/s2248.pdf">S. 2248, FISA Amendments Act of 2007</a>). You take many policy stands which I disagree with, but this is beyond the pale. The current administration has run roughshod over the mutual respect necessary for our co-equal branches of government to function effectively on behalf of the people. I hardly need to cite examples of executive over-reach. They are before you and the committees on which you serve in the form of testimony nearly every week.</p>
<p>It is troubling then that your position on warrant-less wiretapping should be so blasé, so deferential in the face of a seemingly explicit policy from the executive which asserts that it is immune from oversight. The existing FISA statutes (before this years revisions) provide broad leeway to the executive and little scrutiny. This default policy of the FISA court in favor of lessened oversight then, in my opinion, casts it as the limit&#8230;the furthest down the path of creating a surveillance society that a democracy which is beholden to the rule of law can tolerate. What is being proposed in S. 2248 is something entirely different in character.</p>
<p>It is anathema to the concept of equality of the judiciary with the legislative and executive branches to suggest that when the legislative branch entices firms to act illegally on its behalf, shrouded by secrecy, that the people have no right to redress their wrongs through the judiciary when the legislative branch is too cowed or blind to hold the executive to account. This is exactly what is being proposed. It is one thing for Democrats in congress to fail to act with regards to what is plainly illegal behavior by the executive. I understand and appreciate the concerns and constraints which lead you and your colleagues to ignore the will of the people in the short term. But I cannot fathom a strong case for stripping the judiciary of *its* oversight role as well. Please, I implore you, do not cave to this.</p>
<p>I fully agree with those who suggest that it may be sub-optimal for the proxies of the administration to take a fall for the administration&#8217;s illegal acts, but I do not see where the case of civil society and the rule of law can turn when redress through the courts is removed as the backstop on the slippery slope of executive power. The fourth estate has already failed us here and congress has been unwilling to strongly challenge this illegal behavior. If the congress is to have a hope of addressing this behavior on a legislative basis in the future, *someone* needs to be able to shine sunlight into the illegal activities of the administration. If congress is unwilling to take it up, then at least allow the courts their right.</p>
<p>Please, Senator Feinstein, denounce, work against, and vote against the proposed language which grants amnesty to secrecy, thereby giving anyone who can wield the language of security and the privilege of secrecy the force of law to do as they will.</p>
<p>Regards
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://infrequently.org/2007/11/immunity/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

