<?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>Command-Tab &#187; NerdLab</title>
	<atom:link href="http://www.command-tab.com/category/nerdlab/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.command-tab.com</link>
	<description>Technology and Mac geekery. One part exuberance, two parts obsession.</description>
	<lastBuildDate>Tue, 18 May 2010 19:56:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Widerbug for Firefox 3.5+</title>
		<link>http://www.command-tab.com/2009/07/17/widerbug-for-firefox-3-5/</link>
		<comments>http://www.command-tab.com/2009/07/17/widerbug-for-firefox-3-5/#comments</comments>
		<pubDate>Sat, 18 Jul 2009 02:23:56 +0000</pubDate>
		<dc:creator>Collin</dc:creator>
				<category><![CDATA[NerdLab]]></category>

		<guid isPermaLink="false">http://www.command-tab.com/?p=497</guid>
		<description><![CDATA[I&#8217;ve just updated Widerbug to 1.4.0, keeping in step with the most recent Firebug update. Most notably, this release is compatible with Firefox 3.5 and newer. Head over to the Widerbug download page to install it. Or, if you already have Widerbug 1.3.3, you should receive it via automatic update.]]></description>
			<content:encoded><![CDATA[<p><img src="http://cdn.command-tab.com/2008/widerbug_banner.jpg" alt="Widerbug" /><br />
I&#8217;ve just updated Widerbug to 1.4.0, keeping in step with the most recent Firebug update.  Most notably, this release is compatible with Firefox 3.5 and newer.  Head over to the <a href="/2008/01/19/widerbug-widescreen-firebug/">Widerbug download page</a> to install it.  Or, if you already have Widerbug 1.3.3, you should receive it via automatic update.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.command-tab.com/2009/07/17/widerbug-for-firefox-3-5/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>jQuery Fling</title>
		<link>http://www.command-tab.com/2008/12/04/jquery-fling/</link>
		<comments>http://www.command-tab.com/2008/12/04/jquery-fling/#comments</comments>
		<pubDate>Fri, 05 Dec 2008 04:30:21 +0000</pubDate>
		<dc:creator>Collin</dc:creator>
				<category><![CDATA[NerdLab]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.command-tab.com/?p=464</guid>
		<description><![CDATA[Fling is a simple but powerful jQuery plugin for dealing with multiple events using a publisher/subscriber model. jQuery handles the browser-native events, Fling manages them, and you write the code that&#8217;s left. Why Fling? To understand the purpose of Fling, imagine a standard three-pane email client (to borrow an example from Seth Dillingham, whose work [...]]]></description>
			<content:encoded><![CDATA[<p>Fling is a simple but powerful <a href="http://www.jquery.com">jQuery</a> plugin for dealing with multiple events using a publisher/subscriber model.  jQuery handles the browser-native events, Fling manages them, and you write the code that&#8217;s left.</p>
<p><b>Why Fling?</b><br />
<img src="http://cdn.command-tab.com/2008/jquery_fling_slingshot.jpg" border="0" align="right" class="right" />To understand the purpose of Fling, imagine a standard three-pane email client (to borrow an example from <a href="http://www.truerwords.net/articles/web-tech/custom_events.html">Seth Dillingham</a>, whose work inspired Fling): When you click on a message you just received, several things happen:</p>
<ul>
<li>The mailbox unread count gets decremented</li>
<li>The message&#8217;s unread indicator goes away</li>
<li>The message row text goes from bold to plain</li>
<li>The message content appears in the viewer pane</li>
</ul>
<p>These actions happen with little, if any interaction between each other.  All each needs to know is that you clicked on a given unread message.  Using jQuery, it&#8217;s quite easy to put all four actions inside the same click handler function and be done in minutes.  However, when your code base starts to grow, having all that code inside one event handler can make multiple triggers and cascading events cumbersome.  There&#8217;s a better way to make things happen &#8212; Fling your events around.</p>
<p><b>A Basic Example</b><br />
Start by including Fling on your page, along with jQuery:</p>
<pre>&lt;script type=&quot;text/javascript&quot; src=&quot;jquery.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;jquery.fling.js&quot;&gt;&lt;/script&gt;</pre>
<p>Then, use jQuery&#8217;s handy <a href="http://www.learningjquery.com/2006/09/introducing-document-ready">document ready</a> to set up new Fling subscribers, and finally, publish the event:</p>
<pre>// jQuery Document Ready
$(function() {
	// Subscribe to some_event_name
	$.fling('subscribe', 'some_event_name', function() {
		alert('Hello from Fling 1');
	});

	// Subscribe to some_event_name
	$.fling('subscribe', 'some_event_name', function() {
		alert('Hello from Fling 2');
	});

	// Publish some_event_name
	$.fling('publish', 'some_event_name');
});
</pre>
<p>When run, you should see two alerts pop up in sequence.  The only relationship the subscribers have is that they both care about &#8220;some_event_name&#8221; happening.  When publish was called, both did their jobs.</p>
<p><b>In Depth</b><br />
$.fling() has four main functions:</p>
<ul>
<li><b>Create</b> sets up an event without publishing it or subscribing any events.  This isn&#8217;t used too often, as Create happens automatically when Publish or Subscribe is called.
<pre>$.fling('create', 'myEvent');</pre>
</li>
<li><b>Destroy</b> frees the memory occupied by the event and it&#8217;s subscribers when you&#8217;re done with an event for good.
<pre>$.fling('destroy', 'myEvent');</pre>
</li>
<li><b>Publish</b> notifies all subscribers that a given event happened.  It can also pass data to subscribers through a second parameter.  Publish can be called at any time, with zero or more subscribers, meaning your event can happen even if no subscribers care about that event.
<pre>$.fling('publish', 'myEvent');</pre>
<pre>$.fling('publish', 'myEvent', {my: "data"});</pre>
</li>
<li><b>Subscribe</b> gets called when an event is Published.  You can Subscribe to events that have not been Created or Published yet, as the publisher can arrive later via another script, if needed.
<pre>$.fling('subscribe', 'myEvent', function() {
	/* ...your code... */
});</pre>
<pre>$.fling('subscribe', 'myEvent', someNamedFunction);</pre>
<pre>$.fling('subscribe', 'myEvent', function(event, passedData) {
	alert(passedData);
});</pre>
</li>
</ul>
<p><b>Give Fling a Try!</b><br />
So, that&#8217;s it to Fling.  There&#8217;s not a whole lot to it &#8212; you might even be surprised to see just how short the code is.  Give it a shot, and see how your jQuery code can be better organized, called from multiple places, and even cascade on down the line.</p>
<p><a title="Download the current version of Fling" href="http://cdn.command-tab.com/2008/jquery.fling.js" style="margin: 5px auto 0px; width: 228px; height: 39px; display: block;"><img border="0" alt="Download Fling Now" src="http://cdn.command-tab.com/2008/button_download_now.png"/></a></p>
<p><strong>Release History</strong></p>
<ul>
<li><strong><a href="http://cdn.command-tab.com/2008/jquery.fling.js">jQuery Fling 1.0</a></strong><br/>Released on Dec. 4, 2008<br/>Initial release.</li>
</ul>
<p>Released under the <a href="http://www.opensource.org/licenses/mit-license.php">MIT License</a>.  Fling is short, sweet, and yours to hack.  Improvements are welcomed!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.command-tab.com/2008/12/04/jquery-fling/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>jQueryize Bookmarklet</title>
		<link>http://www.command-tab.com/2008/03/13/jqueryize-bookmarklet/</link>
		<comments>http://www.command-tab.com/2008/03/13/jqueryize-bookmarklet/#comments</comments>
		<pubDate>Fri, 14 Mar 2008 03:45:20 +0000</pubDate>
		<dc:creator>Collin</dc:creator>
				<category><![CDATA[NerdLab]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.command-tab.com/2008/03/13/jqueryize-bookmarklet/</guid>
		<description><![CDATA[While developing web applications at my day job, I've come to rely quite heavily on the jQuery JavaScript library. In fact, it's the client-side backbone upon which our company software is built. It comes as no surprise, then, that I sometimes find myself poking around in others' web application code with Firebug (or Widerbug) and [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://cdn.command-tab.com/2008/jqueryize.gif" align="right" class="imgright" />While developing web applications at my day job, I've come to rely quite heavily on the <a href="http://jquery.com/">jQuery</a> JavaScript library.  In fact, it's the client-side backbone upon which our company software is built.  It comes as no surprise, then, that I sometimes find myself poking around in others' web application code with <a href="https://addons.mozilla.org/en-US/firefox/addon/1843">Firebug</a> (or <a href="http://www.command-tab.com/2008/01/19/widerbug-widescreen-firebug/">Widerbug</a>) and wishing I had jQuery at my immediate disposal to perform manipulations with its succinct syntax and practical API.</p>
<p>A day ago, I stumbled upon the answer I was looking for on the <a href="http://www.learningjquery.com/2006/12/jquerify-bookmarklet">Learning jQuery</a> blog: a browser-ready jQuery-loading bookmarklet.  For the uninitiated, a bookmarklet is a standard bookmark placed in your Bookmarks Bar, except it runs some JavaScript code instead of pointing your browser at a web destination.  In this case, the bookmarklet manually fetches and inserts jQuery into the current page.  I've modified the following version slightly to flash "jQuery Loaded" on the page when the load is complete, using the just-loaded jQuery, naturally.</p>
<p>To install the tool, just drag the following link to your Bookmarks Bar, and click it to temporarily install jQuery on whatever page you're visiting: <b><a href="javascript:void(function(){var s=document.createElement('script');s.src='http://code.jquery.com/jquery-latest.js';s.onload=function(){var h=$('<span>jQuery Loaded</span>');h.css({backgroundColor:'red',border:'5px solid white',color:'white', fontSize:'24px',fontWeight:'bold',fontFamily:'Verdana, sans-serif',position:'fixed',top:'100px',left:'100px;', padding:'10px'});$('body').append(h);h.fadeOut(1000,function(){h.remove();});}; document.getElementsByTagName('head')[0].appendChild(s);}())">jQueryize</a></b></p>
]]></content:encoded>
			<wfw:commentRss>http://www.command-tab.com/2008/03/13/jqueryize-bookmarklet/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Widerbug: Widescreen Firebug</title>
		<link>http://www.command-tab.com/2008/01/19/widerbug-widescreen-firebug/</link>
		<comments>http://www.command-tab.com/2008/01/19/widerbug-widescreen-firebug/#comments</comments>
		<pubDate>Sat, 19 Jan 2008 23:41:07 +0000</pubDate>
		<dc:creator>Collin</dc:creator>
				<category><![CDATA[NerdLab]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.command-tab.com/2008/01/19/widerbug-widescreen-firebug/</guid>
		<description><![CDATA[If you do any amount of web developing with CSS and JavaScript, it&#8217;s probably a safe bet that you use the Firefox and Firebug combo to test ideas, tweak appearance and behavior of pages, and debug problems when they crop up. You might also use a widescreen monitor to provide more screen real estate to [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://cdn.command-tab.com/2008/widerbug_banner.jpg" alt="Widerbug" /><br />
If you do any amount of web developing with CSS and JavaScript, it&#8217;s probably a safe bet that you use the Firefox and Firebug combo to test ideas, tweak appearance and behavior of pages, and debug problems when they crop up.  You might also use a widescreen monitor to provide more screen real estate to flip between your code and the rendered output.  In an arrangement like this, the open Firebug panel takes up precious vertical space, while spare pixels on the side go unused.</p>
<p>After a few trivial changes to Firebug, I&#8217;ve modified it to open on the right side of the browser as a sidebar.  With the stock plugin, you can achieve a similar layout by detaching Firebug from the current tab and moving its window in the same position, but this has a generally unwelcome side effect: the separate window doesn&#8217;t update when you switch tabs.  With Widerbug, you can open the Firebug sidebar, and it will keep up with you as you switch tabs and maintain its width.</p>
<p><a href="http://cdn.command-tab.com/2008/widerbug_preview.jpg"><img src="http://cdn.command-tab.com/2008/widerbug_preview_small.jpg" alt="Widerbug preview" border="0" /></a></p>
<p><strong>Release History</strong></p>
<ul>
<li><strong><a href="/files/widerbug/widerbug150.xpi">Widerbug 1.5.0</a></strong><br />Released on January 25, 2010<br />Merged Firebug 1.5.0 changes, for Firefox 3.6.*</li>
<li><strong><a href="/files/widerbug/widerbug140.xpi">Widerbug 1.4.0</a></strong><br />Released on July 17, 2009<br />Merged Firebug 1.4.0 changes, for Firefox 3.5.*</li>
<li><strong><a href="/files/widerbug/widerbug133.xpi">Widerbug 1.3.3</a></strong><br />Released on May 25, 2009<br />Merged Firebug 1.3.3 changes, for Firefox 3.0.*</li>
<li><strong><a href="/files/widerbug/widerbug130.xpi">Widerbug 1.3.0</a></strong><br />Released on Jan. 8, 2009<br />Merged Firebug 1.3.0 changes, for Firefox 3.0.*</li>
<li><strong><a href="/files/widerbug/widerbug121.xpi">Widerbug 1.2.1</a></strong><br />Released on Sept. 13, 2008<br />Merged Firebug 1.2.1 changes, for Firefox 3.0.*</li>
<li><strong><a href="/files/widerbug/widerbug105.xpi">Widerbug 1.0.5</a></strong><br />Released on Jan. 19, 2008<br />Initial release, for Firefox 2.*</li>
</ul>
<p>(You may have to temporarily allow command-tab.com to install Firefox extensions.  Also, if you&#8217;re currently using Firebug, please <b>uninstall Firebug first</b>, restart Firefox, and then install Widerbug, just to be safe.)<br />
<a style="margin: 5px auto 0px auto; width: 228px; height: 39px; display: block;" href="/files/widerbug/widerbug150.xpi" title="Install Widerbug 1.5.0 for Firefox 3.*"><img src="http://cdn.command-tab.com/2008/button_install_now.png" alt="Install Now" border="0" /></a></p>
<p>While you&#8217;re installing plugins, here are a few of my favorites that I recommend:</p>
<ul>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/1146">ScreenGrab!</a><br />Take instant captures of rendered pages</li>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/60">Web Developer Toolbar</a><br />The Swiss Army Knife of web developer tools, second only to Firebug</li>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/28">Duplicate Tab</a><br />Open a duplicate tab, history and all</li>
</ul>
<p>(And for completeness, here is the <a href="http://cdn.command-tab.com/2008/button_install_now.psd">Photoshop file</a> for the above Install Now button.)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.command-tab.com/2008/01/19/widerbug-widescreen-firebug/feed/</wfw:commentRss>
		<slash:comments>103</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using apc
Page Caching using apc (user agent is rejected)
Database Caching using apc

Served from: www.command-tab.com @ 2010-07-31 22:47:15 -->