<?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>Ian Dunn</title>
	<atom:link href="http://iandunn.name/feed/" rel="self" type="application/rss+xml" />
	<link>http://iandunn.name</link>
	<description>Seattle-based web developer blogging about tips and solutions</description>
	<lastBuildDate>Fri, 18 May 2012 18:11:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<item>
		<title>Cross Site Scripting Vulnerability in Subscribe2 Plugin</title>
		<link>http://iandunn.name/cross-site-scripting-vulnerability-in-subscribe2-plugin/</link>
		<comments>http://iandunn.name/cross-site-scripting-vulnerability-in-subscribe2-plugin/#comments</comments>
		<pubDate>Fri, 18 May 2012 18:10:19 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Cross-site Scripting]]></category>
		<category><![CDATA[Subscribe2]]></category>

		<guid isPermaLink="false">http://iandunn.name/?p=1327</guid>
		<description><![CDATA[News of <a title="WordPress Subscribe2 8.0 Cross Site Scripting" href="http://packetstormsecurity.org/files/112688/WordPress-Subscribe2-8.0-Cross-Site-Scripting.html">the XSS bug in Subscribe2</a> didn&#8217;t show up in any of my RSS feeds or mailing lists, even though it&#8217;s a fairly popular plugin,  so I wanted to make a note of it in case anyone else missed it. <a title="Subscribe2" href="http://wordpress.org/extend/plugins/subscribe2/">Version 8.2 has a fix for it</a> .]]></description>
			<content:encoded><![CDATA[<p>News of <a title="WordPress Subscribe2 8.0 Cross Site Scripting" href="http://packetstormsecurity.org/files/112688/WordPress-Subscribe2-8.0-Cross-Site-Scripting.html">the XSS bug in Subscribe2</a> didn&#8217;t show up in any of my RSS feeds or mailing lists, even though it&#8217;s a fairly popular plugin,  so I wanted to make a note of it in case anyone else missed it. <a title="Subscribe2" href="http://wordpress.org/extend/plugins/subscribe2/">Version 8.2 has a fix for it</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://iandunn.name/cross-site-scripting-vulnerability-in-subscribe2-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating Admin Notices From a WordPress Plugin</title>
		<link>http://iandunn.name/creating-admin-notices-from-a-wordpress-plugin/</link>
		<comments>http://iandunn.name/creating-admin-notices-from-a-wordpress-plugin/#comments</comments>
		<pubDate>Tue, 15 May 2012 20:53:56 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Admin Notices]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[IDAdminNotices]]></category>
		<category><![CDATA[IDDescribeVar]]></category>
		<category><![CDATA[Plugin Development]]></category>

		<guid isPermaLink="false">http://iandunn.name/?p=1322</guid>
		<description><![CDATA[I just threw a couple small PHP classes up on GitHub that I use in almost every WordPress plugin I write. The first is  <a href="https://github.com/iandunn/IDAdminNotices">IDAdminNotices</a> , which is a clean and easy way for plugins and themes to send messages/errors to the user within the Administration Panels. The second is <a href="https://github.com/iandunn/IDDescribeVar">IDDescribeVar</a> , which will outputs the type, length and contents... [<a href="http://iandunn.name/creating-admin-notices-from-a-wordpress-plugin/">more</a>]]]></description>
			<content:encoded><![CDATA[<p>I just threw a couple small PHP classes up on GitHub that I use in almost every WordPress plugin I write. The first is <a href="https://github.com/iandunn/IDAdminNotices">IDAdminNotices</a>, which is a clean and easy way for plugins and themes to send messages/errors to the user within the Administration Panels. The second is <a href="https://github.com/iandunn/IDDescribeVar">IDDescribeVar</a>, which will outputs the type, length and contents of a variable in a readable format, and send it to wp_die(), die(), return, set_transient(), or an IDAdminNotice.</p>
]]></content:encoded>
			<wfw:commentRss>http://iandunn.name/creating-admin-notices-from-a-wordpress-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Virtual Workspaces for Windows</title>
		<link>http://iandunn.name/virtual-workspaces-for-windows/</link>
		<comments>http://iandunn.name/virtual-workspaces-for-windows/#comments</comments>
		<pubDate>Mon, 14 May 2012 22:26:16 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[Dexpot]]></category>
		<category><![CDATA[Hotkeys]]></category>
		<category><![CDATA[Keyboard Shortcuts]]></category>
		<category><![CDATA[PowerToys Virtual Desktop Manager]]></category>
		<category><![CDATA[Taskbar Shuffle]]></category>
		<category><![CDATA[Virtual Desktops]]></category>
		<category><![CDATA[VirtuaWin]]></category>
		<category><![CDATA[Winamp]]></category>
		<category><![CDATA[Workspaces]]></category>

		<guid isPermaLink="false">http://iandunn.name/?p=1316</guid>
		<description><![CDATA[I&#8217;ve been using Linux since high school &#8212; which is longer ago than I care to admit ;) &#8212; and one of my favorite features of *nix window managers has always been the concept of <a title="Linux Work Spaces" href="http://www.youtube.com/watch?v=apH7j50uTS0">workspaces</a> , but for some reason it never occurred to me until today to search for a Windows tool that would create them.... [<a href="http://iandunn.name/virtual-workspaces-for-windows/">more</a>]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been using Linux since high school &#8212; which is longer ago than I care to admit ;) &#8212; and one of my favorite features of *nix window managers has always been the concept of <a title="Linux Work Spaces" href="http://www.youtube.com/watch?v=apH7j50uTS0">workspaces</a>, but for some reason it never occurred to me until today to search for a Windows tool that would create them. A few minutes on Google revealed several options:</p>
<ul>
<li><a href="http://virtuawin.sourceforge.net">VirtuaWin</a> -  This one is my favorite. It&#8217;s pretty much perfect.
<ul>
<li>It even has an extra option to preserve the dynamic order of applications on the taskbar, so it&#8217;ll work with <a href="http://nerdcave.webs.com/">Taskbar Shuffle</a>.</li>
<li>When I first started it I got an error that the hotkeys couldn&#8217;t be registered, but I just had to disable the corresponding hotkeys in Winamp and the Intel Graphics control panel to avoid conflicts.</li>
</ul>
</li>
<li><a href="http://windows.microsoft.com/en-us/windows/downloads/windows-xp">PowerToys Virtual Desktop Manager</a> &#8211; This works pretty well, but there was some flickering for me when transitioning between desktops, and it takes up way too much room on the taskbar.</li>
<li><a href="http://dexpot.de/">Dexpot</a> &#8211; This works well, but the interface is kind of clunky.</li>
</ul>
<p>This is pretty huge for someone as neurotic about organization as I am.</p>
]]></content:encoded>
			<wfw:commentRss>http://iandunn.name/virtual-workspaces-for-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why Short URLs are Evil and You Should Never Use Them</title>
		<link>http://iandunn.name/why-short-urls-are-evil-and-you-should-never-use-them/</link>
		<comments>http://iandunn.name/why-short-urls-are-evil-and-you-should-never-use-them/#comments</comments>
		<pubDate>Fri, 11 May 2012 17:07:06 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Spam]]></category>
		<category><![CDATA[Standards and Best Practices]]></category>
		<category><![CDATA[Attack Vector]]></category>
		<category><![CDATA[Browser Extensions]]></category>
		<category><![CDATA[Design Flaws]]></category>
		<category><![CDATA[Hackers]]></category>
		<category><![CDATA[Joshua Schachter]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[Short URLs]]></category>

		<guid isPermaLink="false">http://iandunn.name/?p=1306</guid>
		<description><![CDATA[Ok, so maybe that title was a bit of a hyperbole, but this is one of my biggest pet peeves on the Web right now. Joshua Schachter has <a title="On URL Shorteners" href="http://joshua.schachter.org/2009/04/on-url-shorteners.html">a comprehensive analysis</a> of the concept of Short URLs and the myriad problems associated with it, but the biggest one for me is the fact that the true URL is... [<a href="http://iandunn.name/why-short-urls-are-evil-and-you-should-never-use-them/">more</a>]]]></description>
			<content:encoded><![CDATA[<p>Ok, so maybe that title was a bit of a hyperbole, but this is one of my biggest pet peeves on the Web right now. Joshua Schachter has <a title="On URL Shorteners" href="http://joshua.schachter.org/2009/04/on-url-shorteners.html">a comprehensive analysis</a> of the concept of Short URLs and the myriad problems associated with it, but the biggest one for me is the fact that the true URL is hidden from the user. As a user, if you want me to go somewhere on the Web, you better damn well tell me where that is first, instead of expecting me to blindly trust you. Another primary reason short URLs should (almost) never be used is <a title="Popular short URL service hacked and millions redirected" href="http://www.sophos.com/en-us/press-office/press-releases/2009/06/cligs.aspx">their potential as a massive attack vector for hackers</a>.</p>
<p>In order to get around the &#8220;opaqueness&#8221; problem, there are several <a title="5 Browser Extensions To Expand Shortened URLs" href="http://www.makeuseof.com/tag/5-browser-extensions-expand-shortened-urls/">browser extensions that will automatically expand the short URL</a> &#8212; my favorite is <a title="Explode, a Chrome extension to expand short URLs" href="https://chrome.google.com/webstore/detail/hniojmjkfmakikcfighiifjflnecmnjn">Explode</a> &#8211; which goes a long way toward mitigating the negative impact on user experience, but doesn&#8217;t solve the fundamental design flaws or security concerns.</p>
]]></content:encoded>
			<wfw:commentRss>http://iandunn.name/why-short-urls-are-evil-and-you-should-never-use-them/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Preventing Callback Functions From Executing Multiple Times</title>
		<link>http://iandunn.name/preventing-callback-functions-from-executing-multiple-times/</link>
		<comments>http://iandunn.name/preventing-callback-functions-from-executing-multiple-times/#comments</comments>
		<pubDate>Thu, 19 Apr 2012 17:52:33 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Actions]]></category>
		<category><![CDATA[Callback]]></category>
		<category><![CDATA[Hooks]]></category>
		<category><![CDATA[Pippin Williamson]]></category>
		<category><![CDATA[Plugin Development]]></category>

		<guid isPermaLink="false">http://iandunn.name/?p=1297</guid>
		<description><![CDATA[Many actions in WordPress will fire multiple times, which can lead to performance drags and undesired/intuitiveness results. Pippin Williamson points out that <a title="Detect when an Action has Run with did_action" href="http://pippinsplugins.com/detect-when-an-action-has-run-with-did_action/">you can check how many times an action has already run</a> , and modify your code to respond accordingly.]]></description>
			<content:encoded><![CDATA[<p>Many actions in WordPress will fire multiple times, which can lead to performance drags and undesired/intuitiveness results. Pippin Williamson points out that <a title="Detect when an Action has Run with did_action" href="http://pippinsplugins.com/detect-when-an-action-has-run-with-did_action/">you can check how many times an action has already run</a>, and modify your code to respond accordingly.</p>
]]></content:encoded>
			<wfw:commentRss>http://iandunn.name/preventing-callback-functions-from-executing-multiple-times/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Connecting to a PPTP VPN from an OpenVZ CentOS VPS</title>
		<link>http://iandunn.name/connecting-to-a-pptp-vpn-from-an-openvz-centos-vps/</link>
		<comments>http://iandunn.name/connecting-to-a-pptp-vpn-from-an-openvz-centos-vps/#comments</comments>
		<pubDate>Wed, 18 Apr 2012 17:25:08 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[Linux / Unix]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[OpenVZ / Virtuozzo / Plesk]]></category>
		<category><![CDATA[How-To]]></category>
		<category><![CDATA[Kernel Modules]]></category>
		<category><![CDATA[MPPE]]></category>
		<category><![CDATA[PPP]]></category>
		<category><![CDATA[PPTP]]></category>
		<category><![CDATA[Routing]]></category>
		<category><![CDATA[VPN]]></category>

		<guid isPermaLink="false">http://iandunn.name/?p=1281</guid>
		<description><![CDATA[When setting up the PPTP and PPP packages on an OpenVZ VPS in order to connect to a VPN, there are <a title="How to install pptpd on vpn openvz linux vps" href="http://www.linuxhelp.in/2011/05/how-to-install-pptpd-on-vpn-openvz.html">a few extra steps</a> you need to take that you don&#8217;t have to do with a non-virtualized box. First, you have to load the following kernel modules on the hardware node and/or <a title="CentOS Persistent Module Loading" href="http://www.centos.org/docs/5/html/Deployment_Guide-en-US/s1-kernel-modules-persistant.html">set them to automatically start during the boot up process</a> : After doing that you should... [<a href="http://iandunn.name/connecting-to-a-pptp-vpn-from-an-openvz-centos-vps/">more</a>]]]></description>
			<content:encoded><![CDATA[<p>When setting up the PPTP and PPP packages on an OpenVZ VPS in order to connect to a VPN, there are <a title="How to install pptpd on vpn openvz linux vps" href="http://www.linuxhelp.in/2011/05/how-to-install-pptpd-on-vpn-openvz.html">a few extra steps</a> you need to take that you don&#8217;t have to do with a non-virtualized box.</p>
<p><strong>First</strong>, you have to load the following kernel modules on the hardware node and/or <a title="CentOS Persistent Module Loading" href="http://www.centos.org/docs/5/html/Deployment_Guide-en-US/s1-kernel-modules-persistant.html">set them to automatically start during the boot up process</a>:</p>
<pre class="brush: bash; title: ; notranslate">

modprobe ppp_mppe
modprobe ppp_deflate
modprobe zlib_deflate
modprobe ppp_async
modprobe ppp_generic
modprobe slhc
modprobe crc_ccitt
</pre>
<p>After doing that you should see something similiar to this when running <em>lsmod</em></p>
<pre class="brush: bash; title: ; notranslate">

[root@me ~]# lsmod | grep ppp
ppp_mppe 39816 0
ppp_deflate 39168 0
zlib_deflate 52760 1 ppp_deflate
ppp_async 45056 0
ppp_generic 63632 4 ppp_mppe,ppp_deflate,ppp_async
slhc 39680 1 ppp_generic
crc_ccitt 35200 1 ppp_async
</pre>
<p><strong>Second</strong>, you have to tweak the VPS&#8217;s conf file:</p>
<pre class="brush: bash; title: ; notranslate">

vzctl stop [VEnumber]
vzctl set [VEnumber] --features ppp:on --save
vzctl start [VEnumber]
vzctl set [VEnumber] --devices c:108:0:rw --save
vzctl exec [VEnumber] mknod /dev/ppp c 108 0
vzctl exec [VEnumber] chmod 600 /dev/ppp
</pre>
<p>Once that&#8217;s done, you can <a title="Connect to PPTP VPN from Linux only by one command" href="http://www.adminsehow.com/2010/04/connect-to-pptp-vpn-from-linux-only-by-one-command/">follow the normal instructions</a>.</p>
<p>After that, you might need to uncomment the <em>require-mppe-128</em> or <em>mppe required,stateless</em> line in <em>/etc/ppp/options.pptp</em> (depending on the VPN server). You may also need to manually create a static route to the network, with <em>route add -net 10.1.1.0 netmask 255.255.255.0 ppp0</em>.</p>
<p>You can check <em>/var/log/messages</em> for details about negotiation errors.</p>
]]></content:encoded>
			<wfw:commentRss>http://iandunn.name/connecting-to-a-pptp-vpn-from-an-openvz-centos-vps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Discouraging Trolls</title>
		<link>http://iandunn.name/discouraging-trolls/</link>
		<comments>http://iandunn.name/discouraging-trolls/#comments</comments>
		<pubDate>Wed, 18 Apr 2012 16:17:53 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[Ethics and Values]]></category>
		<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[Errorbanning]]></category>
		<category><![CDATA[Hellbanning]]></category>
		<category><![CDATA[Jeff Atwood]]></category>
		<category><![CDATA[Slowbanning]]></category>
		<category><![CDATA[Trolls]]></category>

		<guid isPermaLink="false">http://iandunn.name/?p=1290</guid>
		<description><![CDATA[Jeff Atwood wrote a fascinating article on different methods to use to <a title="Suspension, Ban or Hellban?" href="http://www.codinghorror.com/blog/2011/06/suspension-ban-or-hellban.html">discourage trolling on social websites</a> , including some discussion of their ethical merits. I wasn&#8217;t aware of slowbanning and hellbanning before, but I think they&#8217;re very clever ideas. &#160;]]></description>
			<content:encoded><![CDATA[<p>Jeff Atwood wrote a fascinating article on different methods to use to <a title="Suspension, Ban or Hellban?" href="http://www.codinghorror.com/blog/2011/06/suspension-ban-or-hellban.html">discourage trolling on social websites</a>, including some discussion of their ethical merits. I wasn&#8217;t aware of slowbanning and hellbanning before, but I think they&#8217;re very clever ideas.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://iandunn.name/discouraging-trolls/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Principles to Apply When Preventing Brute Force Attacks</title>
		<link>http://iandunn.name/principles-to-apply-when-preventing-brute-force-attacks/</link>
		<comments>http://iandunn.name/principles-to-apply-when-preventing-brute-force-attacks/#comments</comments>
		<pubDate>Wed, 18 Apr 2012 16:10:55 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Brute Force Attack]]></category>
		<category><![CDATA[Bryan Rite]]></category>
		<category><![CDATA[CAPTCHA]]></category>
		<category><![CDATA[Denial of Service Attack]]></category>
		<category><![CDATA[Dictionary Attack]]></category>
		<category><![CDATA[OpenID]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://iandunn.name/?p=1287</guid>
		<description><![CDATA[I just read a good article by Bryan Rite about the security principles involved in  <a title="Preventing Brute Force Attacks on your Web Login" href="http://www.bryanrite.com/preventing-brute-force-attacks-on-your-web-login/">preventing dictionary attacks</a> . He makes a good point about offloading the work to a service like <a href="http://openid.net/">OpenID</a> if possible, and has some other tips to use if you have to implement it yourself. Some of it challenges the conventional wisdom, but I think he does... [<a href="http://iandunn.name/principles-to-apply-when-preventing-brute-force-attacks/">more</a>]]]></description>
			<content:encoded><![CDATA[<p>I just read a good article by Bryan Rite about the security principles involved in <a title="Preventing Brute Force Attacks on your Web Login" href="http://www.bryanrite.com/preventing-brute-force-attacks-on-your-web-login/">preventing dictionary attacks</a>. He makes a good point about offloading the work to a service like <a href="http://openid.net/">OpenID</a> if possible, and has some other tips to use if you have to implement it yourself. Some of it challenges the conventional wisdom, but I think he does a good job of defending his position.</p>
]]></content:encoded>
			<wfw:commentRss>http://iandunn.name/principles-to-apply-when-preventing-brute-force-attacks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>$( this ).attr( &#8230; ) Is Often Unnecessary</title>
		<link>http://iandunn.name/jquery-this-attr-is-often-unnecessary/</link>
		<comments>http://iandunn.name/jquery-this-attr-is-often-unnecessary/#comments</comments>
		<pubDate>Mon, 09 Apr 2012 22:32:03 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://iandunn.name/?p=1268</guid>
		<description><![CDATA[It&#8217;s often much <a href="http://whattheheadsaid.com/2010/10/utilizing-the-awesome-power-of-jquery-to-access-properties-of-an-element">more efficient to access DOM properties directly</a> , rather than using jQuery. The downside to that approach is that there are differences between the various browsers, so in some cases it introduces bigger problems than the extra performance overhead.]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s often much <a href="http://whattheheadsaid.com/2010/10/utilizing-the-awesome-power-of-jquery-to-access-properties-of-an-element">more efficient to access DOM properties directly</a>, rather than using jQuery. The downside to that approach is that there are differences between the various browsers, so in some cases it introduces bigger problems than the extra performance overhead.</p>
]]></content:encoded>
			<wfw:commentRss>http://iandunn.name/jquery-this-attr-is-often-unnecessary/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Registering jQuery Event Handlers Before the Elements Exist</title>
		<link>http://iandunn.name/registering-jquery-event-handlers-before-the-elements-exist/</link>
		<comments>http://iandunn.name/registering-jquery-event-handlers-before-the-elements-exist/#comments</comments>
		<pubDate>Mon, 09 Apr 2012 21:27:32 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[$( document ).ready()]]></category>
		<category><![CDATA[Dave Ward]]></category>
		<category><![CDATA[Deprecated]]></category>
		<category><![CDATA[Event Handlers]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[live()]]></category>
		<category><![CDATA[on()]]></category>

		<guid isPermaLink="false">http://iandunn.name/?p=1266</guid>
		<description><![CDATA[Dave Ward wrote an article  <a href="http://encosia.com/dont-let-jquerys-document-ready-slow-you-down/">Don’t let jQuery’s $(document).ready() slow you down</a> that shows a few situations where execute the contents of a JavaScript file immediately, rather than wrapping it all inside jQuery( document ).ready(). The .live() method has been deprecated since he wrote the article, though; <a title="jQuery &#34;on&#34; method" href="http://api.jquery.com/on/">.on()</a> is its replacement.]]></description>
			<content:encoded><![CDATA[<p>Dave Ward wrote an article <a href="http://encosia.com/dont-let-jquerys-document-ready-slow-you-down/">Don’t let jQuery’s $(document).ready() slow you down</a> that shows a few situations where execute the contents of a JavaScript file immediately, rather than wrapping it all inside jQuery( document ).ready(). The .live() method has been deprecated since he wrote the article, though; <a title="jQuery &quot;on&quot; method" href="http://api.jquery.com/on/">.on()</a> is its replacement.</p>
]]></content:encoded>
			<wfw:commentRss>http://iandunn.name/registering-jquery-event-handlers-before-the-elements-exist/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

