<?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>Standard Deviations &#187; Javascript</title>
	<atom:link href="http://parand.com/say/index.php/category/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://parand.com/say</link>
	<description>Parand Tony Darugar: A Cruel and Petty Dictator</description>
	<lastBuildDate>Wed, 11 Jan 2012 20:33:20 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Very Tiny Javascript/jQuery Templating</title>
		<link>http://parand.com/say/index.php/2009/09/07/very-tiny-javascriptjquery-templating/</link>
		<comments>http://parand.com/say/index.php/2009/09/07/very-tiny-javascriptjquery-templating/#comments</comments>
		<pubDate>Mon, 07 Sep 2009 21:22:34 +0000</pubDate>
		<dc:creator>Parand</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://parand.com/say/?p=820</guid>
		<description><![CDATA[I was in need of very simple templating capabilities in Javascript, and with the smallest library I found weighing in at 500 lines found myself compelled to write a solution. Here it is:

function render(text, data) {
	pieces = text.split(/\{(\w+)\}/)
	for (var i=0; i < pieces.length; i++ ) {
		if (i%2 == 1) {
			pieces[i] = data[pieces[i]];
		}
	}
	return pieces.join('');
}

It simply looks [...]]]></description>
			<content:encoded><![CDATA[<p>I was in need of very simple templating capabilities in Javascript, and with the smallest library I found weighing in at 500 lines found myself compelled to write a solution. Here it is:</p>
<pre><code lang="javascript">
function render(text, data) {
	pieces = text.split(/\{(\w+)\}/)
	for (var i=0; i < pieces.length; i++ ) {
		if (i%2 == 1) {
			pieces[i] = data[pieces[i]];
		}
	}
	return pieces.join('');
}
</code></pre>
<p>It simply looks for variables in curly brackets and replaces them with values from a dictionary (or associative array).</p>
<p>I was going to add looping capabilities, but found I was ok doing the looping in javascript - that is, instead of having the loop in the html template, I'd create small html snippets that I would render in via a javascript loop and insert into the document. </p>
<p>Sample usage:</p>
<p>html:</p>
<pre><code lang="html">
&lt;p id="something"&gt;Hello {name}, I wish you would {verb}.&lt;/p&gt;
</code></pre>
<p>javscript:</p>
<pre><code lang="javascript">
render($('#something').html(), {name: 'Joe', verb: 'disappear' } );

</code></pre>
<p>So to replace the text with the rendered version:</p>
<pre><code lang="javascript">
$('#something').html( render($('#something').html(), {name: 'Joe', verb: 'disappear' } ) );

</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://parand.com/say/index.php/2009/09/07/very-tiny-javascriptjquery-templating/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Javascript Pony Wish: YUI Adopts jQuery As Base Engine</title>
		<link>http://parand.com/say/index.php/2009/02/19/javascript-pony-wish-yui-adopts-jquery-as-base-engine/</link>
		<comments>http://parand.com/say/index.php/2009/02/19/javascript-pony-wish-yui-adopts-jquery-as-base-engine/#comments</comments>
		<pubDate>Thu, 19 Feb 2009 09:02:51 +0000</pubDate>
		<dc:creator>Parand</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[yui]]></category>

		<guid isPermaLink="false">http://parand.com/say/?p=758</guid>
		<description><![CDATA[I use jQuery because it&#8217;s sickeningly efficient, beautiful, and succinct. I use YUI because it has well tested, well designed, well documented Web UI components. 
I use them both together, but I feel a horrible sense of waste as there is so much overlap.
YUI 3 provides jQuery like selection and chaining capabilities, but I&#8217;m so sold [...]]]></description>
			<content:encoded><![CDATA[<p>I use jQuery because it&#8217;s sickeningly efficient, beautiful, and succinct. I use YUI because it has well tested, well designed, well documented Web UI components. </p>
<p>I use them both together, but I feel a horrible sense of waste as there is so much overlap.</p>
<p>YUI 3 provides jQuery like selection and chaining capabilities, but I&#8217;m so sold on jQuery I&#8217;ll have a hard time dumping it. </p>
<p>I feel jQuery taught me intelligent javascript, and to leave it would be to stray from a growing path of knowledge.</p>
<p>So here&#8217;s my javascript pony wish: YUI should adopt jQuery as its core engine and write YUI 3.0 on top of it. </p>
<p>Wouldn&#8217;t that be fantastic? Best of both worlds. I don&#8217;t think it&#8217;s that far from possibility actually &#8211; the YUI 3.0 base looks a lot like jQuery. </p>
<p>I brought it up with the YUI folks at the Yahoo internal conference last year. They of looked at me funny, as in why would we do that?</p>
<p>Hmm. I&#8217;m still wishing for that pony.</p>
<p> </p>
]]></content:encoded>
			<wfw:commentRss>http://parand.com/say/index.php/2009/02/19/javascript-pony-wish-yui-adopts-jquery-as-base-engine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ReaderScroll: Google Reader Style Image Navigation With J-K Keys Bookmarklet</title>
		<link>http://parand.com/say/index.php/2008/09/15/readerscroll-google-reader-style-image-navigation-with-j-k-keys-bookmarklet/</link>
		<comments>http://parand.com/say/index.php/2008/09/15/readerscroll-google-reader-style-image-navigation-with-j-k-keys-bookmarklet/#comments</comments>
		<pubDate>Mon, 15 Sep 2008 15:16:25 +0000</pubDate>
		<dc:creator>Parand</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[ReaderScroll]]></category>

		<guid isPermaLink="false">http://parand.com/say/?p=673</guid>
		<description><![CDATA[Shortly after posting ScrollMonkey I realized the same functionality could be implemented as a bookmarklet, obviating the need for GreaseMonkey, making it available to a lot more people. So here it is implemented as a bookmarklet.
To refresh your memory, the script does a very simple thing &#8211; it brings the next image to the top [...]]]></description>
			<content:encoded><![CDATA[<p>Shortly after posting <a href="http://parand.com/say/index.php/2008/09/14/scrollmonkey-google-reader-style-j-k-hotkeys-for-image-paging-and-centering/" target="_blank">ScrollMonkey</a> I realized the same functionality could be implemented as a bookmarklet, obviating the need for GreaseMonkey, making it available to a lot more people. So here it is implemented as a bookmarklet.</p>
<p>To refresh your memory, the script does a very simple thing &#8211; it brings the next image to the top of the browser window so you can see it. You hit “j” to see the following image and “k” to go back to the previous.</p>
<p><strong>To install, click and drag the <a href="javascript:void((function(){var%20e=document.createElement('script');e.setAttribute('type','text/javascript');e.setAttribute('src','http://parand.com/projects/scrollmonkey/readerscroll.bookmarklet.js');document.body.appendChild(e)})())">ReaderScroll</a> bookmarklet to your FireFox toolbar or right click on it if you&#8217;re using IE.</strong></p>
<p>Once installed in your toolbar, you can enable it for any website you&#8217;re visiting by clicking on it in your toolbar. For example, go to <a href="http://www.boston.com/bigpicture/2008/08/beijing_2008_its_a_wrap.html" target="_blank">any</a> of <a href="http://www.boston.com/bigpicture/2008/09/2008_summer_paralympic_games.html" target="_blank">these pages</a> with <a href="http://headinjurytheater.com/abcexcuse.htm" target="_blank">lots of images</a> and then click the bookmarklet. Then click anywhere on the page you&#8217;re viewing and hit the &#8220;j&#8221; key several times until the first large image is at the top of the browser window. Now you can navigate to the next image by hitting &#8220;j&#8221; again and go back to previous images with &#8220;k&#8221;.</p>
<p>The bookmarklet doesn&#8217;t have the disadvantages associated with the ScrollMonkey GreaseMonkey version; it&#8217;s only triggered when you click it, so no unnecessary overhead. It would still make sense to make it more generic so you could navigate to the next paragraph, heading, etc. With jQuery under the hood this would be easy to do and I&#8217;ll do it if there&#8217;s demand for it.</p>
<p>And thanks to <a href="http://friendfeed.com/share/bookmarklet" target="_blank">FriendFeed</a> from whom I stole most of the idea for the bookmarklet.</p>
]]></content:encoded>
			<wfw:commentRss>http://parand.com/say/index.php/2008/09/15/readerscroll-google-reader-style-image-navigation-with-j-k-keys-bookmarklet/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>ScrollMonkey: Google Reader Style J-K Hotkeys For Image Paging And Centering</title>
		<link>http://parand.com/say/index.php/2008/09/14/scrollmonkey-google-reader-style-j-k-hotkeys-for-image-paging-and-centering/</link>
		<comments>http://parand.com/say/index.php/2008/09/14/scrollmonkey-google-reader-style-j-k-hotkeys-for-image-paging-and-centering/#comments</comments>
		<pubDate>Mon, 15 Sep 2008 01:00:37 +0000</pubDate>
		<dc:creator>Parand</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[greasemonkey]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://parand.com/say/?p=672</guid>
		<description><![CDATA[I&#8217;ve long wished for Google Reader style hotkeys (hitting &#8220;j&#8221; to move to the next item, &#8220;k&#8221; to go to the previous) to be available in more places. In particular, pages with many images are screaming for it &#8211; it&#8217;s just silly to keep messing with the scroll bar to get each image to line [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve <a href="http://parand.com/say/index.php/2006/12/08/google-reader-interface-everywhere/" target="_blank">long wished for</a> Google Reader style hotkeys (hitting &#8220;j&#8221; to move to the next item, &#8220;k&#8221; to go to the previous) to be available in more places. In particular, <a href="http://parand.com/say/index.php/2008/08/25/google-reader-style-hotkeys-for-image-viewing/" target="_blank">pages with many images are screaming for it</a> &#8211; it&#8217;s just silly to keep messing with the scroll bar to get each image to line up properly in the viewable portion of the browser. If you don&#8217;t know what I mean go to <a href="http://www.boston.com/bigpicture/2008/08/beijing_2008_its_a_wrap.html" target="_blank">any</a> of <a href="http://www.boston.com/bigpicture/2008/09/2008_summer_paralympic_games.html" target="_blank">these pages</a> with <a href="http://headinjurytheater.com/abcexcuse.htm" target="_blank">lots of images</a> and try to view each image. If you&#8217;re not frustrated with the scroll bar by the 3rd image you&#8217;re far more patient than I.</p>
<p>I finally found a few minutes to hack at it, and sure enough, it was quite easy to do with <a href="https://addons.mozilla.org/en-US/firefox/addon/748" target="_blank">GreaseMonkey</a> and <a href="http://jquery.com/" target="_blank">jQuery</a>.</p>
<p>The script does a very simple thing &#8211; it brings the next image to the top of the browser window so you can see it. You hit &#8220;j&#8221; to see the next image and &#8220;k&#8221; to go back to the previous.</p>
<p>Install <a href="https://addons.mozilla.org/en-US/firefox/addon/748" target="_blank">GreaseMonkey</a> and then install <a href="/projects/scrollmonkey/scrollmonkey.user.js">ScrollMonkey</a> by clicking on it.</p>
<p>Once installed, go to any of the above pages with images, click on the page (to ensure the page is in focus), and hit the &#8220;j&#8221; key a couple of times until the first picture is at the top of the browser window. Now hit &#8220;j&#8221; again to go to the next image and &#8220;k&#8221; to go back.</p>
<p>The script is very simple and brain dead &#8211; I&#8217;ve made no attempt to make it intelligent. In particular, it&#8217;s active on every page and it downloads jQuery, which is probably more overhead than you want to have. In my case I typically have GreaseMonkey turned off and only turn it on when I need it, so it&#8217;s not much of a problem. It also looks at all images instead of attempting to find the large images of interest.</p>
<p>It would also be smart to generalize it to deal with anything &#8211; paragraphs, headings, etc &#8211; instead of just images.</p>
<p>And it&#8217;d be probably be nice to have it turn on via a hotkey instead of always being on, and it probably will interfere with any forms you&#8217;ll try to fill out.</p>
<p>But practically speaking none of these are problems I run into, so I&#8217;ll leave them for now and fix them if there&#8217;s any demand for it.</p>
<p>Give it a try and let me know what you think.</p>
<p>Here&#8217;s the code in its entirety, for those interested:</p>
<pre><code lang="python">
// Add jQuery
var GM_JQ = document.createElement('script');
GM_JQ.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js';
GM_JQ.type = 'text/javascript';
document.getElementsByTagName('head')[0].appendChild(GM_JQ);  

 // Check if jQuery's loaded
function GM_wait() {
	if(typeof unsafeWindow.jQuery == 'undefined') { window.setTimeout(GM_wait,100); }
	else { $ = unsafeWindow.jQuery; run(); }
}
GM_wait();  

function run() {
	var images = $('img'),
		idx = -1,
		nimages = images.length;
	$(document).keypress(function (e) {
		// j == 106 ; k == 107
		if (e.which != 106 &amp;&amp; e.which != 107) { return; }
		if (e.which == 106 &amp;&amp; idx &lt; nimages-1) { idx++; }
		if (e.which == 107 &amp;&amp; idx &gt; 0) { idx--; }
		var top = $(images[idx]).offset().top;
		unsafeWindow.scrollTo(0, top);
	} );
}
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://parand.com/say/index.php/2008/09/14/scrollmonkey-google-reader-style-j-k-hotkeys-for-image-paging-and-centering/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>Javascript Inheritance</title>
		<link>http://parand.com/say/index.php/2008/09/01/javascript-inheritance/</link>
		<comments>http://parand.com/say/index.php/2008/09/01/javascript-inheritance/#comments</comments>
		<pubDate>Mon, 01 Sep 2008 19:23:24 +0000</pubDate>
		<dc:creator>Parand</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://parand.com/say/?p=663</guid>
		<description><![CDATA[Javascript inheritance is another one of those topics that always escapes my mind, so I&#8217;m recording it here for future reference.
I tried to get into Crockford&#8217;s Prototypal Inheritance method but I like the plain-old prototype inheritance without the object.create better. It&#8217;s entirely possible that I&#8217;m not quite getting Crockford&#8217;s method and its advantages; feel free [...]]]></description>
			<content:encoded><![CDATA[<p>Javascript inheritance is another one of those topics that always escapes my mind, so I&#8217;m recording it here for future reference.</p>
<p>I tried to get into <a href="http://javascript.crockford.com/prototypal.html" target="_blank">Crockford&#8217;s Prototypal Inheritance</a> method but I like the plain-old prototype inheritance without the object.create better. It&#8217;s entirely possible that I&#8217;m not quite getting Crockford&#8217;s method and its advantages; feel free to enlighten me by leaving a comment.</p>
<p>Anyway, here&#8217;s what I&#8217;m going with: We&#8217;ll have a base class (actually an object) English that says &#8220;hello&#8221; and &#8220;goodbye&#8221;. We&#8217;ll have a Spanglish class (actually an object) that inherits from English and says &#8220;ola&#8221; instead of &#8220;hello&#8221; (over-rides the hello method), but keeps saying &#8220;bye&#8221; (inherits the bye method from English).</p>
<p>The <code>Spanglish.prototype = new English();</code> line does the actual inheritance by setting Spanglish&#8217;s prototype to be an instance of English.</p>
<pre><code lang="javascript">
function English() {
	this.hello = function(){ return "hello"; }
	this.bye   = function(){ return "bye"; }
}

function Spanglish() {
	this.hello = function() { return "ola"; }
}
Spanglish.prototype = new English();

e = new English();
s = new Spanglish();

e.hello();   // prints "hello"
e.bye();     // prints "bye"
s.hello();   // prints "ola"
s.bye();     // prints "bye", inherited from English
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://parand.com/say/index.php/2008/09/01/javascript-inheritance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Reader Style Hotkeys For Image Viewing</title>
		<link>http://parand.com/say/index.php/2008/08/25/google-reader-style-hotkeys-for-image-viewing/</link>
		<comments>http://parand.com/say/index.php/2008/08/25/google-reader-style-hotkeys-for-image-viewing/#comments</comments>
		<pubDate>Mon, 25 Aug 2008 20:19:45 +0000</pubDate>
		<dc:creator>Parand</dc:creator>
				<category><![CDATA[Etc]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[greasemonkey]]></category>

		<guid isPermaLink="false">http://parand.com/say/?p=661</guid>
		<description><![CDATA[I frequently run into pages with loads of images (here&#8217;s one via Kedrosky, here&#8217;s another, and here&#8217;s yet another). Viewing these images involves a dance of scrolling or hitting space, then scrolling again to get the image lined up in the viewable part of the browser, and repeating over and over again.
The better user experience [...]]]></description>
			<content:encoded><![CDATA[<p>I frequently run into pages with loads of images (<a href="http://www.boston.com/bigpicture/2008/08/beijing_2008_its_a_wrap.html" target="_blank">here&#8217;s one</a> via <a href="http://paul.kedrosky.com/archives/2008/08/25/linkfest_olympi.html">Kedrosky</a>, <a href="http://stuff.thdesign.be/forum/varia/OS.html" target="_blank">here&#8217;s</a> another, and here&#8217;s <a href="http://headinjurytheater.com/abcexcuse.htm" target="_blank">yet another</a>). Viewing these images involves a dance of scrolling or hitting space, then scrolling again to get the image lined up in the viewable part of the browser, and repeating over and over again.</p>
<p>The better user experience would be to have Google Reader style hotkeys that bring each picture into view, lining it up properly for easy viewing. You&#8217;d be able to hit &#8220;j&#8221; after viewing each picture to see the next. No more messing with the scrollbars.</p>
<p>I&#8217;m guessing a greasemonkey script to enable this with any page would be pretty straight forward to do. Anybody know if it already exists? If not, someone should do it.</p>
]]></content:encoded>
			<wfw:commentRss>http://parand.com/say/index.php/2008/08/25/google-reader-style-hotkeys-for-image-viewing/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>TraceMonkey: It&#8217;s A Big Deal</title>
		<link>http://parand.com/say/index.php/2008/08/22/tracemonkey-its-a-big-deal/</link>
		<comments>http://parand.com/say/index.php/2008/08/22/tracemonkey-its-a-big-deal/#comments</comments>
		<pubDate>Sat, 23 Aug 2008 06:32:02 +0000</pubDate>
		<dc:creator>Parand</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://parand.com/say/?p=658</guid>
		<description><![CDATA[Mozilla announces TraceMonkey, a just-in-time compiler for Javascript. If you&#8217;ve watched Steve Yegge&#8217;s talk on Dynamic Languages (transcript) you&#8217;ve already had a taste  of what the future could look like for dynamic languages &#8211; namely, performance on par with today&#8217;s low level languages.
Javascript started as an ugly language but has been steadily shedding its [...]]]></description>
			<content:encoded><![CDATA[<p>Mozilla announces <a href="http://weblogs.mozillazine.org/roadmap/archives/2008/08/tracemonkey_javascript_lightsp.html" target="_blank">TraceMonkey</a>, a <a href="http://ejohn.org/blog/tracemonkey/" target="_blank">just-in-time compiler for Javascript</a>. If you&#8217;ve watched <a href="http://stanford-online.stanford.edu/courses/ee380/080507-ee380-300.asx" target="_blank">Steve Yegge&#8217;s talk on Dynamic Languages</a> (<a href="http://steve-yegge.blogspot.com/2008/05/dynamic-languages-strike-back.html" target="_blank">transcript</a>) you&#8217;ve already had a taste  of what the future could look like for dynamic languages &#8211; namely, performance on par with today&#8217;s low level languages.</p>
<p>Javascript started as an ugly language but has been steadily <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FJavaScript-Good-Parts-Douglas-Crockford%2Fdp%2F0596517742%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1219472734%26sr%3D8-1&amp;tag=parandcom-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325">shedding its bad parts</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.com/e/ir?t=parandcom-20&amp;l=ur2&amp;o=1" border="0" alt="" width="1" height="1" /> and adopting a <a href="http://jquery.com/" target="_blank">beautiful functional style</a>. With the performance piece figured out and a tremendously large number of installations and runtimes (just about every browser in existence has a Javascript engine), it could become the most important programming language of the near future.</p>
]]></content:encoded>
			<wfw:commentRss>http://parand.com/say/index.php/2008/08/22/tracemonkey-its-a-big-deal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://stanford-online.stanford.edu/courses/ee380/080507-ee380-300.asx" length="70" type="video/x-ms-asf" />
		</item>
		<item>
		<title>YUI 3.0 with jQuery Style Chaining and Selectors</title>
		<link>http://parand.com/say/index.php/2008/08/13/yui-30-with-jquery-style-chaining-and-selectors/</link>
		<comments>http://parand.com/say/index.php/2008/08/13/yui-30-with-jquery-style-chaining-and-selectors/#comments</comments>
		<pubDate>Thu, 14 Aug 2008 07:49:44 +0000</pubDate>
		<dc:creator>Parand</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[yui]]></category>

		<guid isPermaLink="false">http://parand.com/say/?p=647</guid>
		<description><![CDATA[I started my foray into the world of Javascript with YUI, later found jQuery, and over time have been moving more and more to jQuery. Selectors and chaining are fruity and delicious and encourage a nice functional programming style.
YUI, however, does offer a bunch of nice, well tested UI components which are generally lacking in [...]]]></description>
			<content:encoded><![CDATA[<p>I started my foray into the world of Javascript with YUI, later found jQuery, and over time have been moving more and more to jQuery. Selectors and chaining are fruity and delicious and encourage a nice functional programming style.</p>
<p>YUI, however, does offer a bunch of nice, well tested UI components which are generally lacking in jQuery, leading me to typically use both YUI and jQuery together in an unattractive Frankenstein way.</p>
<p>Therefore I&#8217;m excited to see YUI&#8217;s move towards jQuery style selectors and chaining with their <a href="http://developer.yahoo.com/yui/3/" target="_blank">3.0 preview release</a>. It&#8217;s also very nice that they&#8217;ve abstracted away javascript file loading with the module concept &#8211; with YUI 2.x you have to do a which-files-do-I-need dance and load each of the multitude of files separately. With 3.x you &#8220;.use&#8221; the module you need (say &#8220;dd-drag&#8221;) and YUI intelligently loads the required files in a single HTTP request.</p>
<p>This is good stuff. I&#8217;m really enjoying jQuery so it&#8217;ll be tough to completely jump ship, but with the new additions I could see doing a lot more with YUI.</p>
]]></content:encoded>
			<wfw:commentRss>http://parand.com/say/index.php/2008/08/13/yui-30-with-jquery-style-chaining-and-selectors/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Best Packing Method for jQuery for iPhone?</title>
		<link>http://parand.com/say/index.php/2008/07/31/best-packing-method-for-jquery-for-iphone/</link>
		<comments>http://parand.com/say/index.php/2008/07/31/best-packing-method-for-jquery-for-iphone/#comments</comments>
		<pubDate>Fri, 01 Aug 2008 07:36:31 +0000</pubDate>
		<dc:creator>Parand</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://parand.com/say/?p=640</guid>
		<description><![CDATA[I thought I was all caught up with my packing-fu for my javascript, but a quick look at YSlow on a friend&#8217;s computer revealed I had some oddly packed version of jQuery that was 56K instead of the 30K packed version from the jQuery site. Once spotted (thanks YSlow!) this was quickly remedied.
Now I&#8217;m wondering [...]]]></description>
			<content:encoded><![CDATA[<p>I thought I was all caught up with my packing-fu for my javascript, but a quick look at YSlow on a friend&#8217;s computer revealed I had some oddly packed version of jQuery that was 56K instead of the 30K packed version from the jQuery site. Once spotted (thanks YSlow!) this was quickly remedied.</p>
<p>Now I&#8217;m wondering what the best packing method for jQuery on iPhone is, since size and performance are even more important there. gzip or no gzip? Which packer?</p>
]]></content:encoded>
			<wfw:commentRss>http://parand.com/say/index.php/2008/07/31/best-packing-method-for-jquery-for-iphone/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>JavaScript-Only iPhone Apps?</title>
		<link>http://parand.com/say/index.php/2008/07/21/javascript-only-iphone-apps/</link>
		<comments>http://parand.com/say/index.php/2008/07/21/javascript-only-iphone-apps/#comments</comments>
		<pubDate>Mon, 21 Jul 2008 21:11:58 +0000</pubDate>
		<dc:creator>Parand</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://parand.com/say/?p=631</guid>
		<description><![CDATA[Is there a way to write iPhone apps that can be distributed via the AppStore without writing Objective-C / Cocoa code? I&#8217;m perfectly happy writing happy HTML, CSS, and JavaScript, but don&#8217;t want to get too deep into Apple proprietary languages and technologies.
Basically I just want the HTML/CSS/JavaScript app I have packaged so it can [...]]]></description>
			<content:encoded><![CDATA[<p>Is there a way to write iPhone apps that can be distributed via the AppStore without writing Objective-C / Cocoa code? I&#8217;m perfectly happy writing happy HTML, CSS, and JavaScript, but don&#8217;t want to get too deep into Apple proprietary languages and technologies.</p>
<p>Basically I just want the HTML/CSS/JavaScript app I have packaged so it can live offline on the iPhone, have network access, and use the local SQLite instance. I&#8217;ve looked at the SDK videos, the docs, and everything else I could find, but they all seem focused on writing Objective-C.</p>
<p>If that&#8217;s not possible, is there a bare-bones skeleton app that simply embeds safari and renders files stored on the iPhone?</p>
]]></content:encoded>
			<wfw:commentRss>http://parand.com/say/index.php/2008/07/21/javascript-only-iphone-apps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

