<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Debouncing Javascript Methods</title>
	<atom:link href="http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/feed/" rel="self" type="application/rss+xml" />
	<link>http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/</link>
	<description>Nothing is impossible.  Even on the Web.</description>
	<lastBuildDate>Mon, 28 Jun 2010 22:12:59 -0400</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: rolfen</title>
		<link>http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/comment-page-1/#comment-1056</link>
		<dc:creator>rolfen</dc:creator>
		<pubDate>Tue, 20 Apr 2010 23:34:09 +0000</pubDate>
		<guid isPermaLink="false">http://unscriptable.com/?p=7#comment-1056</guid>
		<description>&lt;a href=&quot;#comment-448&quot; rel=&quot;nofollow&quot;&gt;@h3&lt;/a&gt; 
That&#039;s not really bounce, but more like threshold. I you press a key less then 15ms and it doesnt register the keypress then it&#039;s a threshold problem, or whatever they call it. Bounce refers to multiple contiguous events reduced to a same event. Your problem is one (or more) event(s) reduced to zero events :)
IMHO!</description>
		<content:encoded><![CDATA[<p><a href="#comment-448" rel="nofollow">@h3</a><br />
That&#8217;s not really bounce, but more like threshold. I you press a key less then 15ms and it doesnt register the keypress then it&#8217;s a threshold problem, or whatever they call it. Bounce refers to multiple contiguous events reduced to a same event. Your problem is one (or more) event(s) reduced to zero events <img src='http://unscriptable.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
IMHO!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: uberVU - social comments</title>
		<link>http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/comment-page-1/#comment-797</link>
		<dc:creator>uberVU - social comments</dc:creator>
		<pubDate>Wed, 02 Dec 2009 11:26:49 +0000</pubDate>
		<guid isPermaLink="false">http://unscriptable.com/?p=7#comment-797</guid>
		<description>&lt;strong&gt;Social comments and analytics for this post...&lt;/strong&gt;

This post was mentioned on Twitter by fstraps: http://3.ly/n61 Debouncing Javascript Methods &#124; great - $(window).resize(function(){console.log(&#039;resized&#039;);}.debounce()); #3lyfic...</description>
		<content:encoded><![CDATA[<p><strong>Social comments and analytics for this post&#8230;</strong></p>
<p>This post was mentioned on Twitter by fstraps: <a href="http://3.ly/n61" rel="nofollow">http://3.ly/n61</a> Debouncing Javascript Methods | great &#8211; $(window).resize(function(){console.log(&#8217;resized&#8217;);}.debounce()); #3lyfic&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Throttling Interaction with jQuery &#124; elc technologies - Blog : Ruby on Rails, iPhone, Flash, Agile, Interactive Design</title>
		<link>http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/comment-page-1/#comment-794</link>
		<dc:creator>Throttling Interaction with jQuery &#124; elc technologies - Blog : Ruby on Rails, iPhone, Flash, Agile, Interactive Design</dc:creator>
		<pubDate>Sun, 29 Nov 2009 14:20:47 +0000</pubDate>
		<guid isPermaLink="false">http://unscriptable.com/?p=7#comment-794</guid>
		<description>[...] In short, throttling will reduce the rate of a repeated event whereas debouncing will ensure that only one signal for a given event is fired within a fixed amount of time. (A much better and detailed explanation can be found here) [...]</description>
		<content:encoded><![CDATA[<p>[...] In short, throttling will reduce the rate of a repeated event whereas debouncing will ensure that only one signal for a given event is fired within a fixed amount of time. (A much better and detailed explanation can be found here) [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Pete</title>
		<link>http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/comment-page-1/#comment-731</link>
		<dc:creator>Pete</dc:creator>
		<pubDate>Fri, 09 Oct 2009 20:07:18 +0000</pubDate>
		<guid isPermaLink="false">http://unscriptable.com/?p=7#comment-731</guid>
		<description>Very helpful, thanks!</description>
		<content:encoded><![CDATA[<p>Very helpful, thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Twitter Trackbacks for Debouncing Javascript Methods &#124; Unscriptable.com [unscriptable.com] on Topsy.com</title>
		<link>http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/comment-page-1/#comment-709</link>
		<dc:creator>Twitter Trackbacks for Debouncing Javascript Methods &#124; Unscriptable.com [unscriptable.com] on Topsy.com</dc:creator>
		<pubDate>Mon, 31 Aug 2009 10:11:49 +0000</pubDate>
		<guid isPermaLink="false">http://unscriptable.com/?p=7#comment-709</guid>
		<description>[...] Debouncing Javascript Methods &#124; Unscriptable.com  unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods &#8211; view page &#8211; cached  Debouncing Javascript Methods, ... a user could simply lean on the Tab key to navigate from one end of the form to the other. If the user were lucky enough to be on a fast network connection and had a fast enough browser, this would go fairly smoothly. However, the server would get absolutely hammered by all of the XHR requests necessary to populate the side-bar! &#8212; From the page [...]</description>
		<content:encoded><![CDATA[<p>[...] Debouncing Javascript Methods | Unscriptable.com  unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods &ndash; view page &ndash; cached  Debouncing Javascript Methods, &#8230; a user could simply lean on the Tab key to navigate from one end of the form to the other. If the user were lucky enough to be on a fast network connection and had a fast enough browser, this would go fairly smoothly. However, the server would get absolutely hammered by all of the XHR requests necessary to populate the side-bar! &mdash; From the page [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: armdros</title>
		<link>http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/comment-page-1/#comment-706</link>
		<dc:creator>armdros</dc:creator>
		<pubDate>Fri, 28 Aug 2009 08:30:36 +0000</pubDate>
		<guid isPermaLink="false">http://unscriptable.com/?p=7#comment-706</guid>
		<description>Hey John, I appreciate you for your help!!
I Think You are very clever. Thankyou</description>
		<content:encoded><![CDATA[<p>Hey John, I appreciate you for your help!!<br />
I Think You are very clever. Thankyou</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John H</title>
		<link>http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/comment-page-1/#comment-702</link>
		<dc:creator>John H</dc:creator>
		<pubDate>Fri, 21 Aug 2009 17:35:39 +0000</pubDate>
		<guid isPermaLink="false">http://unscriptable.com/?p=7#comment-702</guid>
		<description>Hey armdros, I think you&#039;ve discovered something ... um ... interesting.  

It appears that IE clobbers* the event object once the original function call goes out of scope.  It should not do this since we are holding a reference to the event object!  This is obviously a bug in IE.  

There is a work-around: just debounce the portion of the handler that needs to be debounced and process the event in a non-debounced function.  

Example:

&lt;pre lang=&quot;javascript&quot;&gt;
// the debounced part - notice we don&#039;t pass the event object
var ttt = function (code) {
    alert(code);
}.debounce(200);

// the attached event handler extracts the keycode ad passes it to the debounced function
this.inputbox.attachEvent(&#039;onkeypress&#039;, function (e) { ttt((e &#124;&#124; window.event).keyCode) });

&lt;/pre&gt;

I hope that helps!

-- John

* It&#039;s not really clobbered, but I am not sure how else to explain it.  The object exists, but it no longer has any members and raises exceptions if accessed: &quot;Member not found.&quot;</description>
		<content:encoded><![CDATA[<p>Hey armdros, I think you&#8217;ve discovered something &#8230; um &#8230; interesting.  </p>
<p>It appears that IE clobbers* the event object once the original function call goes out of scope.  It should not do this since we are holding a reference to the event object!  This is obviously a bug in IE.  </p>
<p>There is a work-around: just debounce the portion of the handler that needs to be debounced and process the event in a non-debounced function.  </p>
<p>Example:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">// the debounced part - notice we don't pass the event object</span>
<span style="color: #003366; font-weight: bold;">var</span> ttt <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span>code<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>code<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>.<span style="color: #660066;">debounce</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">200</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">// the attached event handler extracts the keycode ad passes it to the debounced function</span>
<span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">inputbox</span>.<span style="color: #660066;">attachEvent</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'onkeypress'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> ttt<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>e <span style="color: #339933;">||</span> window.<span style="color: #660066;">event</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">keyCode</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>I hope that helps!</p>
<p>&#8211; John</p>
<p>* It&#8217;s not really clobbered, but I am not sure how else to explain it.  The object exists, but it no longer has any members and raises exceptions if accessed: &#8220;Member not found.&#8221;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: armdros</title>
		<link>http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/comment-page-1/#comment-701</link>
		<dc:creator>armdros</dc:creator>
		<pubDate>Fri, 21 Aug 2009 06:23:07 +0000</pubDate>
		<guid isPermaLink="false">http://unscriptable.com/?p=7#comment-701</guid>
		<description>Hi, I wanna use this script in IE, but I can`t get the event keyCode after debounce. how can i get it?

test code here: 

&lt;pre lang=&quot;javascript&quot;&gt;
var ttt = function(e){
	if(!e &amp;&amp; parent.window.event) { e = parent.window.event;}
        alert(e.keyCode); // error !!

}.debounce(200,false);
this.inputbox.attachEvent(&quot;onkeyup&quot;, ttt, false);
&lt;/pre&gt;</description>
		<content:encoded><![CDATA[<p>Hi, I wanna use this script in IE, but I can`t get the event keyCode after debounce. how can i get it?</p>
<p>test code here:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> ttt <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>e <span style="color: #339933;">&amp;&amp;</span> parent.<span style="color: #660066;">window</span>.<span style="color: #660066;">event</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> e <span style="color: #339933;">=</span> parent.<span style="color: #660066;">window</span>.<span style="color: #660066;">event</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
        <span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>e.<span style="color: #660066;">keyCode</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// error !!</span>
&nbsp;
<span style="color: #009900;">&#125;</span>.<span style="color: #660066;">debounce</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">200</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">inputbox</span>.<span style="color: #660066;">attachEvent</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;onkeyup&quot;</span><span style="color: #339933;">,</span> ttt<span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

]]></content:encoded>
	</item>
	<item>
		<title>By: Paul Irish &#187; Debounced resize() jQuery event handler</title>
		<link>http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/comment-page-1/#comment-681</link>
		<dc:creator>Paul Irish &#187; Debounced resize() jQuery event handler</dc:creator>
		<pubDate>Wed, 12 Aug 2009 01:06:31 +0000</pubDate>
		<guid isPermaLink="false">http://unscriptable.com/?p=7#comment-681</guid>
		<description>[...] I first saw John Hann&#039;s debounce post, this use case is what I immediately thought [...]</description>
		<content:encoded><![CDATA[<p>[...] I first saw John Hann&#39;s debounce post, this use case is what I immediately thought [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vladimir Dzhuvinov</title>
		<link>http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/comment-page-1/#comment-593</link>
		<dc:creator>Vladimir Dzhuvinov</dc:creator>
		<pubDate>Mon, 08 Jun 2009 20:12:52 +0000</pubDate>
		<guid isPermaLink="false">http://unscriptable.com/?p=7#comment-593</guid>
		<description>Brilliant, thanks! :)</description>
		<content:encoded><![CDATA[<p>Brilliant, thanks! <img src='http://unscriptable.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Uxebu.com - JavaScript addicts &#187; Debouncing Javascript Methods</title>
		<link>http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/comment-page-1/#comment-509</link>
		<dc:creator>Uxebu.com - JavaScript addicts &#187; Debouncing Javascript Methods</dc:creator>
		<pubDate>Tue, 05 May 2009 20:47:06 +0000</pubDate>
		<guid isPermaLink="false">http://unscriptable.com/?p=7#comment-509</guid>
		<description>[...] Debouncing Javascript Methods [...]</description>
		<content:encoded><![CDATA[<p>[...] Debouncing Javascript Methods [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Css howto &#187; Debounce your JavaScript functions</title>
		<link>http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/comment-page-1/#comment-474</link>
		<dc:creator>Css howto &#187; Debounce your JavaScript functions</dc:creator>
		<pubDate>Thu, 23 Apr 2009 15:49:50 +0000</pubDate>
		<guid isPermaLink="false">http://unscriptable.com/?p=7#comment-474</guid>
		<description>[...] Hann has written an enjoyable post on debouncing JavaScript methods that comes with a fun back story on a project that John worked [...]</description>
		<content:encoded><![CDATA[<p>[...] Hann has written an enjoyable post on debouncing JavaScript methods that comes with a fun back story on a project that John worked [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mk</title>
		<link>http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/comment-page-1/#comment-453</link>
		<dc:creator>mk</dc:creator>
		<pubDate>Mon, 30 Mar 2009 20:18:01 +0000</pubDate>
		<guid isPermaLink="false">http://unscriptable.com/?p=7#comment-453</guid>
		<description>interesting article. i had to write the same thing once, so it was interesting to see how you did it. My function was a jquery plugin and probably not as nice. You may be interested to check it out:
http://notetodogself.blogspot.com/2008/12/jquery-responsiveness-plugin-for-fast.html</description>
		<content:encoded><![CDATA[<p>interesting article. i had to write the same thing once, so it was interesting to see how you did it. My function was a jquery plugin and probably not as nice. You may be interested to check it out:<br />
<a href="http://notetodogself.blogspot.com/2008/12/jquery-responsiveness-plugin-for-fast.html" rel="nofollow">http://notetodogself.blogspot.com/2008/12/jquery-responsiveness-plugin-for-fast.html</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alejandro</title>
		<link>http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/comment-page-1/#comment-452</link>
		<dc:creator>Alejandro</dc:creator>
		<pubDate>Fri, 27 Mar 2009 00:42:35 +0000</pubDate>
		<guid isPermaLink="false">http://unscriptable.com/?p=7#comment-452</guid>
		<description>Just wanted to let you know that this article has made my life much better. Thanks. Great job</description>
		<content:encoded><![CDATA[<p>Just wanted to let you know that this article has made my life much better. Thanks. Great job</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John Hann</title>
		<link>http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/comment-page-1/#comment-450</link>
		<dc:creator>John Hann</dc:creator>
		<pubDate>Tue, 24 Mar 2009 18:59:09 +0000</pubDate>
		<guid isPermaLink="false">http://unscriptable.com/?p=7#comment-450</guid>
		<description>Hey h3,

Your post is a bit off-topic, but I share your sentiment about Microsoft products so I&#039;ll let it through! :-P  

There are some good lessons to learn from your experience that can also be applied to Javascript debouncing:

&#160;&#8226; Setting the detection period too high could cause missed events.
&#160;&#8226; Setting the detection period too low could cause redundant events.
&#160;&#8226; Coordinating multiple debounce routines can be tricky. (In your case, the Shift and other keys probably had different debounce circuitry.)
&#160;&#8226; The quality of the underlying system is critical to being able to lower the detection period to a level that is neither missing events nor causing redundant events.

That last point is key.  If you&#039;re debouncing native browser events, you don&#039;t really have much choice.  However, if you&#039;re debouncing your own methods/events, then fast-performing Javascript can make a huge difference.

Thanks for the post!</description>
		<content:encoded><![CDATA[<p>Hey h3,</p>
<p>Your post is a bit off-topic, but I share your sentiment about Microsoft products so I&#8217;ll let it through! <img src='http://unscriptable.com/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' />   </p>
<p>There are some good lessons to learn from your experience that can also be applied to Javascript debouncing:</p>
<p>&nbsp;&bull; Setting the detection period too high could cause missed events.<br />
&nbsp;&bull; Setting the detection period too low could cause redundant events.<br />
&nbsp;&bull; Coordinating multiple debounce routines can be tricky. (In your case, the Shift and other keys probably had different debounce circuitry.)<br />
&nbsp;&bull; The quality of the underlying system is critical to being able to lower the detection period to a level that is neither missing events nor causing redundant events.</p>
<p>That last point is key.  If you&#8217;re debouncing native browser events, you don&#8217;t really have much choice.  However, if you&#8217;re debouncing your own methods/events, then fast-performing Javascript can make a huge difference.</p>
<p>Thanks for the post!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Naeem Bhatti</title>
		<link>http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/comment-page-1/#comment-449</link>
		<dc:creator>Naeem Bhatti</dc:creator>
		<pubDate>Tue, 24 Mar 2009 17:30:22 +0000</pubDate>
		<guid isPermaLink="false">http://unscriptable.com/?p=7#comment-449</guid>
		<description>Good stuff.</description>
		<content:encoded><![CDATA[<p>Good stuff.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: h3</title>
		<link>http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/comment-page-1/#comment-448</link>
		<dc:creator>h3</dc:creator>
		<pubDate>Tue, 24 Mar 2009 14:55:18 +0000</pubDate>
		<guid isPermaLink="false">http://unscriptable.com/?p=7#comment-448</guid>
		<description>&gt; In practice, you should at least halve this, so about 50 msec for our keyboard example. I have no idea what keyboards really use, by the way. This is just an illustration.

Most keyboards have a bounce time of ~8ms. I found out at my expanse when I bought a 50$ Microsoft keyboard which have a bounce time of 15ms, most people will never notice, but I did.

Don&#039;t buy this s**t: http://www.microsoft.com/hardware/mouseandkeyboard/ProductDetails.aspx?pid=083&amp;active_tab=systemRequirements

With this keyboard when I type &quot;Shift + :w + Enter&quot; in Vim to save a document,  the computer actually gets &quot;:W + Enter&quot;, which triggers an error in Vim. It&#039;s pretty annoying, I guess Microsoft&#039;s keyboard designer a slow typists.

At first I thought my fingers were becoming lazy, but I realized it was the s***ty Microsoft keyboard when I bought a Razer Lycosa, one of the best keyboard I ever had for programming.

With its 1ms response time this problem *never* occurred once. It also looks pretty bad ass: http://www.razerzone.com/gaming-keyboards/razer-lycosa/razer-lycosa-keyboard</description>
		<content:encoded><![CDATA[<p>&gt; In practice, you should at least halve this, so about 50 msec for our keyboard example. I have no idea what keyboards really use, by the way. This is just an illustration.</p>
<p>Most keyboards have a bounce time of ~8ms. I found out at my expanse when I bought a 50$ Microsoft keyboard which have a bounce time of 15ms, most people will never notice, but I did.</p>
<p>Don&#8217;t buy this s**t: <a href="http://www.microsoft.com/hardware/mouseandkeyboard/ProductDetails.aspx?pid=083&amp;active_tab=systemRequirements" rel="nofollow">http://www.microsoft.com/hardware/mouseandkeyboard/ProductDetails.aspx?pid=083&amp;active_tab=systemRequirements</a></p>
<p>With this keyboard when I type &#8220;Shift + :w + Enter&#8221; in Vim to save a document,  the computer actually gets &#8220;:W + Enter&#8221;, which triggers an error in Vim. It&#8217;s pretty annoying, I guess Microsoft&#8217;s keyboard designer a slow typists.</p>
<p>At first I thought my fingers were becoming lazy, but I realized it was the s***ty Microsoft keyboard when I bought a Razer Lycosa, one of the best keyboard I ever had for programming.</p>
<p>With its 1ms response time this problem *never* occurred once. It also looks pretty bad ass: <a href="http://www.razerzone.com/gaming-keyboards/razer-lycosa/razer-lycosa-keyboard" rel="nofollow">http://www.razerzone.com/gaming-keyboards/razer-lycosa/razer-lycosa-keyboard</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ed Hardy</title>
		<link>http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/comment-page-1/#comment-447</link>
		<dc:creator>Ed Hardy</dc:creator>
		<pubDate>Tue, 24 Mar 2009 10:12:59 +0000</pubDate>
		<guid isPermaLink="false">http://unscriptable.com/?p=7#comment-447</guid>
		<description>Impressive piece of code. I&#039;ll definitely find this useful some day. I bookmarked it.</description>
		<content:encoded><![CDATA[<p>Impressive piece of code. I&#8217;ll definitely find this useful some day. I bookmarked it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Straps</title>
		<link>http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/comment-page-1/#comment-446</link>
		<dc:creator>Straps</dc:creator>
		<pubDate>Tue, 24 Mar 2009 08:53:28 +0000</pubDate>
		<guid isPermaLink="false">http://unscriptable.com/?p=7#comment-446</guid>
		<description>Radical and very useful approach, thanks</description>
		<content:encoded><![CDATA[<p>Radical and very useful approach, thanks</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Debounce your JavaScript functions</title>
		<link>http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/comment-page-1/#comment-445</link>
		<dc:creator>Debounce your JavaScript functions</dc:creator>
		<pubDate>Tue, 24 Mar 2009 04:01:27 +0000</pubDate>
		<guid isPermaLink="false">http://unscriptable.com/?p=7#comment-445</guid>
		<description>[...] John Hann has written an enjoyable post on debouncing JavaScript methods that comes with a fun back story on a project that John worked [...]</description>
		<content:encoded><![CDATA[<p>[...] John Hann has written an enjoyable post on debouncing JavaScript methods that comes with a fun back story on a project that John worked [...]</p>
]]></content:encoded>
	</item>
</channel>
</rss>
