<?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>Artem Russakovskii&#039;s programming and technology blog</title>
	<atom:link href="http://beerpla.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://beerpla.net</link>
	<description>where things have nothing to do with beer - tutorials, tips, how-tos, thoughts, hacks, and other techy nonsense</description>
	<lastBuildDate>Fri, 30 Jul 2021 17:28:43 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>[Updated for 2019] Here&#039;s An Exclusive 10% Off NuSphere PHPEd Discount Coupon Code (Also Includes NuCoder And PHPDoc)</title>
		<link>http://beerpla.net/2019/01/15/heres-an-exclusive-10-off-nuspheres-phped-coupon-also-includes-nucoder-and-phpdoc-discount-code/</link>
					<comments>http://beerpla.net/2019/01/15/heres-an-exclusive-10-off-nuspheres-phped-coupon-also-includes-nucoder-and-phpdoc-discount-code/#comments</comments>
		
		<dc:creator><![CDATA[Artem Russakovskii]]></dc:creator>
		<pubDate>Tue, 15 Jan 2019 18:00:07 +0000</pubDate>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[% off]]></category>
		<category><![CDATA[10% off]]></category>
		<category><![CDATA[debugger]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[discount]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[ide]]></category>
		<category><![CDATA[nu-coder]]></category>
		<category><![CDATA[nucoder]]></category>
		<category><![CDATA[nusphere]]></category>
		<category><![CDATA[percent off]]></category>
		<category><![CDATA[php ed]]></category>
		<category><![CDATA[php editor]]></category>
		<category><![CDATA[phpdoc]]></category>
		<category><![CDATA[phped]]></category>
		<category><![CDATA[phpexpress]]></category>
		<category><![CDATA[techplatform]]></category>
		<guid isPermaLink="false">http://beerpla.net/2010/01/31/heres-an-exclusive-10-off-nuspheres-phped-coupon-also-includes-nucoder-and-phpdoc/</guid>

					<description><![CDATA[<p><a href="http://beerpla.net/wp-content/uploads/2014/02/image.png"><img decoding="async" style="float: left; margin: 0px 10px 10px 0px; display: inline;" title="image" src="http://beerpla.net/wp-content/uploads/2014/02/image_thumb.png" alt="image" width="150" height="144" align="left" /></a></p>
<h2>Introduction</h2>
<p>I don&#039;t know about you, but I can&#039;t imagine doing my PHP development without an IDE with a debugger anymore.</p>
<p>It autocompletes for me, it lets me step through each line of code, jumping around the project, execute and change the code flow on the fly, and does many other things that make me feel cozy, comfortable, and efficient at PHP development (as opposed to, say, CPP which makes me feel cold and lonely).</p>
<p>There are many PHP IDEs out there and I&#039;ve tried most of them (including the free <a href="http://www.phpeclipse.com/" rel="nofollow">PHPEclipse</a> and <a href="http://www.eclipse.org/pdt/" rel="nofollow">PDT</a> for Eclipse) but kept coming back to <a href="http://www.nusphere.com/products/phped.htm" rel="nofollow">NuSphere&#039;s PHPEd</a> every time. The other ones just don&#039;t do as good of a job and don&#039;t have the ...<div class=clear></div> <a href="http://beerpla.net/2019/01/15/heres-an-exclusive-10-off-nuspheres-phped-coupon-also-includes-nucoder-and-phpdoc-discount-code/" class="read_more"><div class=excerpt-end>Read the rest of this article &#187;</div></a></p>]]></description>
										<content:encoded><![CDATA[<p><a href="http://beerpla.net/wp-content/uploads/2014/02/image.png"><img loading="lazy" decoding="async" style="float: left; margin: 0px 10px 10px 0px; display: inline;" title="image" src="http://beerpla.net/wp-content/uploads/2014/02/image_thumb.png" alt="image" width="150" height="144" align="left" /></a></p>
<h2>Introduction</h2>
<p>I don&#039;t know about you, but I can&#039;t imagine doing my PHP development without an IDE with a debugger anymore.</p>
<p>It autocompletes for me, it lets me step through each line of code, jumping around the project, execute and change the code flow on the fly, and does many other things that make me feel cozy, comfortable, and efficient at PHP development (as opposed to, say, CPP which makes me feel cold and lonely).</p>
<p>There are many PHP IDEs out there and I&#039;ve tried most of them (including the free <a href="http://www.phpeclipse.com/" rel="nofollow">PHPEclipse</a> and <a href="http://www.eclipse.org/pdt/" rel="nofollow">PDT</a> for Eclipse) but kept coming back to <a href="http://www.nusphere.com/products/phped.htm" rel="nofollow">NuSphere&#039;s PHPEd</a> every time. The other ones just don&#039;t do as good of a job and don&#039;t have the array of features PHPEd does. Did you know Dmitri, the author of PHPEd, actually wrote the PHP debugger and profiler for PHPEd from scratch?</p>
<p>But this post is not about PHPEd&#039;s features &#8211; I&#039;m planning on doing a few detailed ones later on &#8211; this post is a quick note about a coupon code for <strong><em>10% off PHPEd</em></strong> or any of their other products.</p>
<h2>The Coupon</h2>
<p>Here it is for your immediate enjoyment:</p>
<p><div class="note"><div class="notetip"><strong>Updated for 2019</strong>: Exclusive 10% off at <a href="http://www.nusphere.com/products/index.htm" rel="nofollow">NuSphere.com</a>: <b>ALL-OTH-10-O-5A4A9</b></div></div></p>
<p>Just add the products you want to your cart and enter the coupon in the Coupon code field:</p>
<p align="center"><img loading="lazy" decoding="async" style="margin-left: 0px; display: inline; margin-right: 0px;" src="http://beerpla.net/wp-content/uploads/2011/07/image1.png" width="552" height="234" /></p>
<p>Observe the discount applied immediately:</p>
<p align="center"> <img loading="lazy" decoding="async" style="display: inline;" src="http://beerpla.net/wp-content/uploads/2011/07/image2.png" width="407" height="105" /></p>
<p><strong>Edit:</strong> it seems that they&#039;re running some sort of a promotion &#8211; PHPEd Pro temporarily has an additional $80 off the regular price. The discount was set to expire on January 15th but it seems to be still active:</p>
<p align="center"><img loading="lazy" decoding="async" style="display: inline;" title="PHPEd $80 of" src="http://beerpla.net/wp-content/uploads/2011/07/image3.png" alt="PHPEd $80 of" width="243" height="146" /></p>
<p>The 10% off should work on top of the $80 discount no problem.</p>
<p>Enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>http://beerpla.net/2019/01/15/heres-an-exclusive-10-off-nuspheres-phped-coupon-also-includes-nucoder-and-phpdoc-discount-code/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			</item>
		<item>
		<title>Quick Tip: How To Fix &#034;Network is unreachable&#034; After Switching From DHCP To Static IP Configuration</title>
		<link>http://beerpla.net/2012/07/15/quick-tip-how-to-fix-network-is-unreachable-after-switching-from-dhcp-to-static-ip-configuration/</link>
					<comments>http://beerpla.net/2012/07/15/quick-tip-how-to-fix-network-is-unreachable-after-switching-from-dhcp-to-static-ip-configuration/#comments</comments>
		
		<dc:creator><![CDATA[Artem Russakovskii]]></dc:creator>
		<pubDate>Sun, 15 Jul 2012 19:56:04 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[DHCP]]></category>
		<category><![CDATA[down]]></category>
		<category><![CDATA[dynamic]]></category>
		<category><![CDATA[eth0]]></category>
		<category><![CDATA[ifdown]]></category>
		<category><![CDATA[ifup]]></category>
		<category><![CDATA[IP]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[network is unreachable]]></category>
		<category><![CDATA[restart]]></category>
		<category><![CDATA[start]]></category>
		<category><![CDATA[static]]></category>
		<category><![CDATA[up]]></category>
		<guid isPermaLink="false">http://beerpla.net/?p=1618</guid>

					<description><![CDATA[<p>Today I was setting up a new machine (running OpenSUSE 12.1, but it&#039;s not really important), and after switching the network configuration from DHCP to static IP, lost all connectivity, in and out. /etc/init.d/network restart seemed to list the right IP, yet I was getting</p>
<blockquote><p>&#034;unknown host&#034;</p></blockquote>
<p>and</p>
<blockquote><p>&#034;Network is unreachable&#034;</p></blockquote>
<p>errors while pinging. I double and triple checked all the settings &#8211; DNS and gateway were set up right. I even rebooted, but nothing worked.</p>
<p>Then I vaguely remembered that I ran into the same issue a few years prior and also spent hours trying to figure out what was going wrong. The solution was so incredibly simple that my geek cred should have been docked 10 points. But ...<div class=clear></div> <a href="http://beerpla.net/2012/07/15/quick-tip-how-to-fix-network-is-unreachable-after-switching-from-dhcp-to-static-ip-configuration/" class="read_more"><div class=excerpt-end>Read the rest of this article &#187;</div></a></p>]]></description>
										<content:encoded><![CDATA[<p>Today I was setting up a new machine (running OpenSUSE 12.1, but it&#039;s not really important), and after switching the network configuration from DHCP to static IP, lost all connectivity, in and out. /etc/init.d/network restart seemed to list the right IP, yet I was getting</p>
<blockquote><p>&#034;unknown host&#034;</p></blockquote>
<p>and</p>
<blockquote><p>&#034;Network is unreachable&#034;</p></blockquote>
<p>errors while pinging. I double and triple checked all the settings &#8211; DNS and gateway were set up right. I even rebooted, but nothing worked.</p>
<p>Then I vaguely remembered that I ran into the same issue a few years prior and also spent hours trying to figure out what was going wrong. The solution was so incredibly simple that my geek cred should have been docked 10 points. But what was it?.. And then it finally hit me.</p>
<p>Let&#039;s see&#8230; check ifconfig&#8230; yup, the network interface has no IP even though I set it and it even showed up during the network restart command.</p>
<blockquote><p><strong><em>ifup eth0</em></strong></p></blockquote>
<p>Check ifconfig again &#8211; there it goes, and the network is finally operational. Damn you, whoever wrote the network start script, for not dealing with this situation properly or at least issuing a warning that the interface was not up.</p>
<p>Hopefully, I won&#039;t have to waste time solving this problem next time it occurs, if I remember that I already blogged about it. Perhaps it will save you some time too.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://beerpla.net/2012/07/15/quick-tip-how-to-fix-network-is-unreachable-after-switching-from-dhcp-to-static-ip-configuration/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			</item>
		<item>
		<title>How To Fix Incomplete WordPress (WXR) Exports</title>
		<link>http://beerpla.net/2012/04/13/how-to-fix-incomplete-wordpress-wxr-exports/</link>
					<comments>http://beerpla.net/2012/04/13/how-to-fix-incomplete-wordpress-wxr-exports/#comments</comments>
		
		<dc:creator><![CDATA[Artem Russakovskii]]></dc:creator>
		<pubDate>Fri, 13 Apr 2012 08:19:07 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[channel]]></category>
		<category><![CDATA[closing]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[export]]></category>
		<category><![CDATA[incomplete]]></category>
		<category><![CDATA[item]]></category>
		<category><![CDATA[parsing]]></category>
		<category><![CDATA[premature end of data in tag channel]]></category>
		<category><![CDATA[tag]]></category>
		<category><![CDATA[validation]]></category>
		<category><![CDATA[wxr]]></category>
		<category><![CDATA[xmllint]]></category>
		<guid isPermaLink="false">http://beerpla.net/?p=1614</guid>

					<description><![CDATA[<p>Having spent way more time on this problem than I really should have, I&#039;m going to make sure everyone can actually find a solution instead of useless WordPress support threads.</p>
<h2>The Problem</h2>
<p>I wanted to export all the data from WordPress using its native export mechanism (located at <a href="http://YOURBLOG/wp-admin/export.php">http://YOURBLOG/wp-admin/export.php</a>), but since the blog <a href="http://www.androidpolice.com" target="_blank">I was working on</a> was pretty large (6k posts, 120k comments), I kept getting XML files that ended prematurely and for which xmllint spit out this error:</p>
<blockquote>
<p>Premature end of data in tag channel</p>
</blockquote>
<p>Upon closer inspection, I saw the XML file ended with a random, yet always fully closed, &#60;/item&#62; tag, but was missing the closing &#60;/channel&#62; and &#60;/rss&#62; tags, as well as a whole ...<div class=clear></div> <a href="http://beerpla.net/2012/04/13/how-to-fix-incomplete-wordpress-wxr-exports/" class="read_more"><div class=excerpt-end>Read the rest of this article &#187;</div></a></p>]]></description>
										<content:encoded><![CDATA[<p>Having spent way more time on this problem than I really should have, I&#039;m going to make sure everyone can actually find a solution instead of useless WordPress support threads.</p>
<h2>The Problem</h2>
<p>I wanted to export all the data from WordPress using its native export mechanism (located at <a href="http://YOURBLOG/wp-admin/export.php">http://YOURBLOG/wp-admin/export.php</a>), but since the blog <a href="http://www.androidpolice.com" target="_blank">I was working on</a> was pretty large (6k posts, 120k comments), I kept getting XML files that ended prematurely and for which xmllint spit out this error:</p>
<blockquote>
<p>Premature end of data in tag channel</p>
</blockquote>
<p>Upon closer inspection, I saw the XML file ended with a random, yet always fully closed, &lt;/item&gt; tag, but was missing the closing &lt;/channel&gt; and &lt;/rss&gt; tags, as well as a whole bunch of data.</p>
<p>My immediate theory was that PHP was running out of memory. It&#039;s also interesting that the number of &lt;item&gt; elements was always divisible by 20, but after looking at the code in export.php, I saw the loop grabbed 20 posts at a time. This revelation made it obvious that the code crashed while processing one of the batches, which only made the out-of-memory theory stronger.</p>
<h2>The Solution</h2>
<p>After raising the memory in the export.php file itself and verifying the fix, I came up with the following solution that removes the need to modify core WordPress files. Just add this somewhere in <strong><em>functions.php</em></strong>:</p>
<pre line="1">/** 
* Dynamically increase allowed memory limit for export. 
* 
*/ 
function my_export_wp() { 
  ini_set('memory_limit', '1024M'); 
} 
add_action('export_wp', 'my_export_wp');</pre>
<p>The code above will dynamically set the memory limit high enough for all but unimaginably large jobs to complete. Feel free to adjust this limit if you have, for instance, millions of comments and lots of RAM on the web server.</p>
<p>And there you have it &#8211; full exports. Much better, isn&#039;t it?</p>
<p><strong>P.S.</strong> Some shared hosting providers have PHP set to ignore the directive above, in which case this solution, or no other solution but upgrading your hosting, will do anything.</p>
<p><strong>P.P.S.</strong> There is a bug (<a href="http://core.trac.wordpress.org/ticket/15203" target="_blank">#15203</a>) in WordPress &lt;=3.3.1, which doesn&#039;t properly escape posts that contain CDATA and breaks XML. It is slated for a fix in WordPress 3.4, but if you haven&#039;t upgraded yet (it&#039;s not even out at the time of this writing), you can still apply the fix manually, <a href="http://core.trac.wordpress.org/changeset/19858" target="_blank">like so</a>. My dumps wouldn&#039;t validate before the fix, but I&#039;ve confirmed that they now fully validate after.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://beerpla.net/2012/04/13/how-to-fix-incomplete-wordpress-wxr-exports/feed/</wfw:commentRss>
			<slash:comments>13</slash:comments>
		
		
			</item>
		<item>
		<title>How To: Disable/Block External HTTP Requests In WordPress</title>
		<link>http://beerpla.net/2011/11/16/how-to-disableblock-external-http-requests-in-wordpress/</link>
					<comments>http://beerpla.net/2011/11/16/how-to-disableblock-external-http-requests-in-wordpress/#comments</comments>
		
		<dc:creator><![CDATA[Artem Russakovskii]]></dc:creator>
		<pubDate>Wed, 16 Nov 2011 18:57:43 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[block]]></category>
		<category><![CDATA[disable]]></category>
		<category><![CDATA[external]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[request]]></category>
		<category><![CDATA[WP_ACCESSIBLE_HOSTS]]></category>
		<category><![CDATA[WP_HTTP_BLOCK_EXTERNAL]]></category>
		<guid isPermaLink="false">http://beerpla.net/2011/11/16/how-to-disableblock-external-http-requests-in-wordpress/</guid>

					<description><![CDATA[<p>One thing that&#039;s been continuously annoying me when doing WordPress development on the go is when something somewhere inside WordPress decides to send requests to external urls when I don&#039;t even have Internet connection or it&#039;s slow and flaky (tethering, slow Wi-Fi, etc). This results in random lag when loading pages, especially if I haven&#039;t opened my dev WordPress instance for a long time.</p>
<p>Turns out there&#039;s an easy and undocumented (other than in code) solution. To block external HTTP requests right in WordPress&#039;s core itself, open up wp-config.php and add <strong><em>WP_HTTP_BLOCK_EXTERNAL</em></strong> like so:</p>
<pre line="1">define('WP_HTTP_BLOCK_EXTERNAL', true);
</pre>
<p>Whenever this variable is present, external requests will be ignored, unless you specify your own comma-separated whitelist of domains using <strong><em>WP_ACCESSIBLE_HOSTS</em></strong> like so:</p>
<pre line="1">define('WP_ACCESSIBLE_HOSTS', ...<div class=clear></div> <a href="http://beerpla.net/2011/11/16/how-to-disableblock-external-http-requests-in-wordpress/" class="read_more"><div class=excerpt-end>Read the rest of this article &#187;</div></a></pre>]]></description>
										<content:encoded><![CDATA[<p>One thing that&#039;s been continuously annoying me when doing WordPress development on the go is when something somewhere inside WordPress decides to send requests to external urls when I don&#039;t even have Internet connection or it&#039;s slow and flaky (tethering, slow Wi-Fi, etc). This results in random lag when loading pages, especially if I haven&#039;t opened my dev WordPress instance for a long time.</p>
<p>Turns out there&#039;s an easy and undocumented (other than in code) solution. To block external HTTP requests right in WordPress&#039;s core itself, open up wp-config.php and add <strong><em>WP_HTTP_BLOCK_EXTERNAL</em></strong> like so:</p>
<pre line="1">define('WP_HTTP_BLOCK_EXTERNAL', true);
</pre>
<p>Whenever this variable is present, external requests will be ignored, unless you specify your own comma-separated whitelist of domains using <strong><em>WP_ACCESSIBLE_HOSTS</em></strong> like so:</p>
<pre line="1">define('WP_ACCESSIBLE_HOSTS', 'site1.com, site2.com');</pre>
<pre></pre>
<p>You can examine relevant core code <a href="http://svn.automattic.com/wordpress/trunk/wp-includes/class-http.php">here</a> and the relevant bug reports <a href="http://core.trac.wordpress.org/ticket/8927">here</a> and <a href="http://core.trac.wordpress.org/ticket/14636">here</a>.</p>
<p>Happy developing!</p>
]]></content:encoded>
					
					<wfw:commentRss>http://beerpla.net/2011/11/16/how-to-disableblock-external-http-requests-in-wordpress/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
			</item>
		<item>
		<title>[Updated x3] Goodbye Outlook, I Don&#039;t Need You Anymore &#8211; Gmail Now Lets You Paste Images Directly From Clipboard</title>
		<link>http://beerpla.net/2011/06/13/goodbye-outlook-i-dont-need-you-anymore-gmail-now-lets-you-paste-images-directly-from-clipboard/</link>
					<comments>http://beerpla.net/2011/06/13/goodbye-outlook-i-dont-need-you-anymore-gmail-now-lets-you-paste-images-directly-from-clipboard/#comments</comments>
		
		<dc:creator><![CDATA[Artem Russakovskii]]></dc:creator>
		<pubDate>Mon, 13 Jun 2011 17:13:00 +0000</pubDate>
				<category><![CDATA[Awesomeness]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[My Favorites]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[clipboard]]></category>
		<category><![CDATA[direct]]></category>
		<category><![CDATA[firefox 4]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[inline]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[outlook]]></category>
		<category><![CDATA[paste]]></category>
		<category><![CDATA[screenshots]]></category>
		<guid isPermaLink="false">http://beerpla.net/2011/04/06/goodbye-outlook-i-dont-need-you-anymore-gmail-now-lets-you-paste-images-directly-from-clipboard/</guid>

					<description><![CDATA[<p><a href="http://beerpla.net/wp-content/uploads/2011/04/image.png"><img loading="lazy" decoding="async" style="margin: 0px 10px 10px 0px; display: inline; float: left" title="image" alt="image" align="left" src="http://beerpla.net/wp-content/uploads/2011/04/image_thumb.png" width="200" height="145" /></a>There used to be a time when you couldn&#039;t imagine your life without Microsoft&#039;s Outlook &#8211; web email clients were pathetic and non-functional, Internet access was scarce, and access to certain advanced features was only possible with a desktop application like Outlook.</p>
<p>Then, <a href="http://www.gmail.com/" target="_blank">Gmail</a> arrived and exploded the whole notion of desktop email clients forever, almost overnight. It was fast, robust, logical, and integrated &#8211; many things Outlook still isn&#039;t to this day (Outlook 2010 + IMAP is pure hell).</p>
<p>Slowly, Google brought out more and more features that made the fine line between web and desktop emailing thinner and thinner, and today, it finally disappeared, at least for me.</p>
<p>The final nail in the coffin turned out to be ...<div class=clear></div> <a href="http://beerpla.net/2011/06/13/goodbye-outlook-i-dont-need-you-anymore-gmail-now-lets-you-paste-images-directly-from-clipboard/" class="read_more"><div class=excerpt-end>Read the rest of this article &#187;</div></a></p>]]></description>
										<content:encoded><![CDATA[<p><a href="http://beerpla.net/wp-content/uploads/2011/04/image.png"><img loading="lazy" decoding="async" style="margin: 0px 10px 10px 0px; display: inline; float: left" title="image" alt="image" align="left" src="http://beerpla.net/wp-content/uploads/2011/04/image_thumb.png" width="200" height="145" /></a>There used to be a time when you couldn&#039;t imagine your life without Microsoft&#039;s Outlook &#8211; web email clients were pathetic and non-functional, Internet access was scarce, and access to certain advanced features was only possible with a desktop application like Outlook.</p>
<p>Then, <a href="http://www.gmail.com/" target="_blank">Gmail</a> arrived and exploded the whole notion of desktop email clients forever, almost overnight. It was fast, robust, logical, and integrated &#8211; many things Outlook still isn&#039;t to this day (Outlook 2010 + IMAP is pure hell).</p>
<p>Slowly, Google brought out more and more features that made the fine line between web and desktop emailing thinner and thinner, and today, it finally disappeared, at least for me.</p>
<p>The final nail in the coffin turned out to be something I&#039;d desired for a very long time &#8211; taking screenshots and pasting them directly into Gmail in the browser window. Inline image pasting from the clipboard if you will.</p>
<p><div class="note"><div class="noteclassic"><strong>Update #1</strong>: Hrm, I may have jumped the gun here. While the image appears perfectly fine in the Create interface and can be resized, moved, etc, it seems to be sent out with formatting errors that prevent it from showing up properly on the recipient&#039;s side.</p>
<p>Essentially, what happens is the image is encoded inline, but for some reason the encoding is done wrong.</p>
<p><a href="http://tinypaste.com/17a76" target="_blank">Here</a> is what Gmail shows this image was encoded as (via &quot;Show original&quot;). I don&#039;t know if it&#039;s Gmail adding these or not, but there are a ton of =\r\n characters along with &quot;3D&quot; in there that break everything.</p>
<p><a href="http://tinypaste.com/79cd3f" target="_blank">Here</a> is what this image is supposed to look like with those things stripped (it works in Chrome and Firefox just fine).</p>
<p>We&#039;re close, really close.</p>
<p></div></div></p>
<p><div class="note"><div class="noteclassic"><strong>Update #2</strong>: HowToGeek <a href="http://www.howtogeek.com/58087/did-you-know-you-can-copy-and-paste-images-directly-into-gmail/" target="_blank">investigated</a> this new capability with Chrome and found that while it doesn&#039;t work with the clipboard, it does work if you copy and paste images within Chrome itself, and it doesn&#039;t suffer from the bug above.</p>
<p>After digging into it, I found that it only works because rather than create the image inline, like Firefox does, Chrome just makes an &lt;img&gt; tag with the src parameter pointing to the original url.</p>
<p>This means the image in the email will disappear if it&#039;s deleted and simply won&#039;t show up if you tried to copy something that requires a login.</p>
<p></div></div></p>
<p><div class="note"><div class="noteclassic"><strong>Update #3 (6/13/11)</strong>: <a href="http://gmailblog.blogspot.com/2011/06/pasting-images-into-messages-just-got.html">According to the Gmail blog</a>, you can finally paste images directly into your emails, albeit in Chrome only at this time!</p>
<p></div></div></p>
<p>I take a lot of screenshots of my desktop or certain parts of it when doing reviews or reporting bugs (with OneNote or SnagIt), and having to save the image, find it on the disk, and drop it into Gmail, while relatively easy, was still too cumbersome. In that regard, Outlook was great &#8211; I could quickly pump out a few screenshots and send off an email with all of them inline with text in only a few seconds. If I attempted to do that in Gmail, I either got nothing or a little image basically saying how full of fail I was.</p>
<p>It all changed with Firefox 4 (at least that&#039;s my theory) &#8211; I am now able to take screenshots and paste them straight into Gmail, right in the browser. Let&#039;s take a look:</p>
<p><a href="http://beerpla.net/wp-content/uploads/2011/04/image1.png"><img loading="lazy" decoding="async" style="margin: 0px auto; display: block; float: none" title="image" alt="image" src="http://beerpla.net/wp-content/uploads/2011/04/image_thumb1.png" width="700" height="646" /></a></p>
<p>Amazing, isn&#039;t it? This does not work for me in Chrome 12 or IE 9 &#8211; only Firefox 4 at the moment. I&#039;m not sure how it works or why it started working only now, but I&#039;m sure one of you will eventually come here and provide a sensible explanation.</p>
<p>Goodbye Outlook, I hardly knew ye.</p>
<p>P.S. I&#039;m using Windows 7 in case it matters.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://beerpla.net/2011/06/13/goodbye-outlook-i-dont-need-you-anymore-gmail-now-lets-you-paste-images-directly-from-clipboard/feed/</wfw:commentRss>
			<slash:comments>12</slash:comments>
		
		
			</item>
		<item>
		<title>How To Fix ERROR_NOT_FOUND 0x80070490 During Windows 7 SP1 Installation</title>
		<link>http://beerpla.net/2011/05/06/how-to-fix-error_not_found-0x80070490-during-windows-7-sp1-installation/</link>
					<comments>http://beerpla.net/2011/05/06/how-to-fix-error_not_found-0x80070490-during-windows-7-sp1-installation/#comments</comments>
		
		<dc:creator><![CDATA[Artem Russakovskii]]></dc:creator>
		<pubDate>Fri, 06 May 2011 18:21:20 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[0x80070490]]></category>
		<category><![CDATA[490]]></category>
		<category><![CDATA[64 bit]]></category>
		<category><![CDATA[7]]></category>
		<category><![CDATA[ERROR_NOT_FOUND]]></category>
		<category><![CDATA[fix]]></category>
		<category><![CDATA[install]]></category>
		<category><![CDATA[installation]]></category>
		<category><![CDATA[problem]]></category>
		<category><![CDATA[solve]]></category>
		<category><![CDATA[SP1]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[windows 7]]></category>
		<category><![CDATA[x64]]></category>
		<guid isPermaLink="false">http://beerpla.net/2011/05/06/how-to-fix-error_not_found-0x80070490-during-windows-7-sp1-installation/</guid>

					<description><![CDATA[<p><a href="http://beerpla.net/wp-content/uploads/2011/05/image.png"><img loading="lazy" decoding="async" style="margin: 0px 10px 10px 0px; display: inline; float: left" title="image" alt="image" align="left" src="http://beerpla.net/wp-content/uploads/2011/05/image_thumb.png" width="150" height="150" /></a>Well, this one took ages. And whenever something takes me ages, rather than write it down in my personal notes, I prefer to put it out online for everyone with the same problem to easily find and benefit from.</p>
<p>The problem I&#039;m talking about today is trying to upgrade your Windows 7 installation to SP1 by applying Microsoft&#039;s update KB976932, called &#34;Windows 7 Service Pack 1 for x64-based Systems&#34; and getting nothing but a failure every time. The same problem may affect 32-bit systems as well, and I&#039;m not sure what the update number for that would be, but the solution should work for either one.</p>
<p><a href="http://beerpla.net/wp-content/uploads/2011/05/SNAGHTML3837080.png"><img loading="lazy" decoding="async" style="margin: 0px auto; display: block; float: none" title="SNAGHTML3837080" alt="SNAGHTML3837080" src="http://beerpla.net/wp-content/uploads/2011/05/SNAGHTML3837080_thumb.png" width="566" height="395" /></a></p>
<p>The update starts just fine, chugs along for 10 minutes or so, then reboots ...<div class=clear></div> <a href="http://beerpla.net/2011/05/06/how-to-fix-error_not_found-0x80070490-during-windows-7-sp1-installation/" class="read_more"><div class=excerpt-end>Read the rest of this article &#187;</div></a></p>]]></description>
										<content:encoded><![CDATA[<p><a href="http://beerpla.net/wp-content/uploads/2011/05/image.png"><img loading="lazy" decoding="async" style="margin: 0px 10px 10px 0px; display: inline; float: left" title="image" alt="image" align="left" src="http://beerpla.net/wp-content/uploads/2011/05/image_thumb.png" width="150" height="150" /></a>Well, this one took ages. And whenever something takes me ages, rather than write it down in my personal notes, I prefer to put it out online for everyone with the same problem to easily find and benefit from.</p>
<p>The problem I&#039;m talking about today is trying to upgrade your Windows 7 installation to SP1 by applying Microsoft&#039;s update KB976932, called &quot;Windows 7 Service Pack 1 for x64-based Systems&quot; and getting nothing but a failure every time. The same problem may affect 32-bit systems as well, and I&#039;m not sure what the update number for that would be, but the solution should work for either one.</p>
<p><a href="http://beerpla.net/wp-content/uploads/2011/05/SNAGHTML3837080.png"><img loading="lazy" decoding="async" style="margin: 0px auto; display: block; float: none" title="SNAGHTML3837080" alt="SNAGHTML3837080" src="http://beerpla.net/wp-content/uploads/2011/05/SNAGHTML3837080_thumb.png" width="566" height="395" /></a></p>
<p>The update starts just fine, chugs along for 10 minutes or so, then reboots the system and starts performing more operations, when suddenly one of them fails about 10% down the road, reboots, and reverts the whole process. You end up with this message (code 80070490) and a failure for which there are a lot of useless &quot;solutions&quot; on the web that just don&#039;t work.</p>
<p>Except for one. I can&#039;t take credit for it &#8211; all I did was spend a month weeding through the crap, retrying, and getting nowhere, until a genius by the name <a href="http://social.technet.microsoft.com/profile/ben-is/?type=forum">Ben-IS</a> came up with exactly the right diagnosis and <a href="http://social.technet.microsoft.com/Forums/en-US/w7itproinstall/thread/bfb3e5b5-a3bd-4124-b4d6-7fb437ac7b74/">provided exactly the right solution</a>. This solution, in my own interpretation, is below.</p>
<h2>Step 1</h2>
<p>We are going to use a utility called <a href="http://en.wikipedia.org/wiki/System_File_Checker">SFC</a> (System File Checker or Windows Resource Checker), which is part of the Windows installation. It will help diagnose the problem.</p>
<p>Open up a command prompt (cmd) as administrator and run</p>
<blockquote>
<p>sfc /scannow</p>
</blockquote>
<p>This will run for a while and produce a file called CBS.log which you can find in %WINDIR%\Logs\CBS (usually C:\Windows\Logs\CBS). See this <a href="http://support.microsoft.com/kb/929833">KB929833</a> for more info on SFC and CBS (Component Based Servicing).</p>
<blockquote>
<p>sfc /scannow</p>
<p>Beginning system scan.&#160; This process will take some time.</p>
<p>Beginning verification phase of system scan.     <br />Verification 100% complete.</p>
<p>Windows Resource Protection did not find any integrity violations.</p>
</blockquote>
<p>Even though there are no integrity violations, we should have enough info in the log to diagnose the problem.</p>
<h2>Step 2</h2>
<p>Unfortunately, Windows overwrote my CBS.log, so I&#039;ll go by the one Ben-IS provided.</p>
<p>Open up CBS.log and look for something like <strong>Failed uninstalling driver updates</strong> or <strong>0x80070490 &#8211; ERROR_NOT_FOUND.</strong></p>
<p>If you have this line, which you should if you&#039;re reading this post, you should also see lines similar to these a few lines above:</p>
<blockquote>
<p>2011-04-14 12:02:33, Info CBS Doqe: q-uninstall: Inf: usbvideo.inf, Ranking: 2, Device-Install: 0, Key: 598, Identity: <strong>usbvideo.inf</strong>, Culture=neutral, Type=driverUpdate, Version=6.1.7600.16543, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=amd64, versionScope=NonSxS</p>
<p>2011-04-14 12:02:33, Info CBS Doqe: q-uninstall: Inf: sffdisk.inf, Ranking: 2, Device-Install: 0, Key: 599, Identity: sffdisk.inf, Culture=neutral, Type=driverUpdate, Version=6.1.7600.16438, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=amd64, versionScope=NonSxS</p>
<p>2011-04-14 12:02:33, Info CBS Doqe: q-uninstall: Inf: sdbus.inf, Ranking: 2, Device-Install: 0, Key: 600, Identity: sdbus.inf, Culture=neutral, Type=driverUpdate, Version=6.1.7600.16438, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=amd64, versionScope=NonSxS</p>
</blockquote>
<p>One of these .inf files is the culprit, and we&#039;re going to find out which one in the next step.</p>
<h2>Step 3</h2>
<p>Now open up a different log file located at <strong>%WINDIR%\inf\setupapi.dev.log </strong>(normally c:\Windows\inf\setupapi.dev.log).</p>
<p>Look for a line that contains <strong>Failed to find driver update</strong> or <strong>FAILURE(0x00000490)</strong>.</p>
<p>Note the exact path to the .inf file that failed. In my case, it was:</p>
<blockquote>
<p>sto: Failed to find driver update &#039;<strong>C:\Windows\WinSxS\amd64_usbvideo.inf_31bf3856ad364e35_6.1.7600.16543_none_8a1a2513d42628c3\usbvideo.inf</strong>&#039; in Driver Store. Error = 0x00000490      </p>
</blockquote>
<h2>Step 4</h2>
<p>This is the key to the whole operation. Open up the command prompt again (cmd) as administrator and run</p>
<blockquote>
<p>pnputil -a INSERT_FILE_NAME_FROM_STEP_3</p>
</blockquote>
<p>For example, I ran </p>
<blockquote>
<p>pnputil -a C:\Windows\WinSxS\amd64_usbvideo.inf_31bf3856ad364e35_6.1.7600.16543_none_8a1a2513d42628c3\usbvideo.inf</p>
</blockquote>
<p>You should see the following dialog:</p>
<p><a href="http://beerpla.net/wp-content/uploads/2011/05/SNAGHTML3a03ec7.png"><img loading="lazy" decoding="async" style="margin: 0px auto; display: block; float: none" title="SNAGHTML3a03ec7" alt="SNAGHTML3a03ec7" src="http://beerpla.net/wp-content/uploads/2011/05/SNAGHTML3a03ec7_thumb.png" width="516" height="308" /></a></p>
<p>Choose <strong>Install this driver software anyway</strong>.</p>
<p>The end result should be something like this:</p>
<blockquote>
<p>pnputil -a C:\Windows\WinSxS\amd64_usbvideo.inf_31bf3856ad364e35_6.1.7600.16543_none_8a1a2513d42628c3\usbvideo.inf     <br />Microsoft PnP Utility</p>
<p>Processing inf :&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; usbvideo.inf     <br />Driver package added successfully.      <br />Published name :&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; oem69.inf</p>
<p>Total attempted:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 1      <br />Number successfully imported: 1</p>
</blockquote>
<p>Repeat this step for any failures found in step 3.</p>
<h2>Step 5</h2>
<p>Apply the SP1 Windows Update again &#8211; it should now install successfully.</p>
<p>And voila &#8211; enjoy your SP1!</p>
<p>Microsoft has failed to fix this incredibly cryptic problem, leaving it up to the users to figure out why their SP1 updates are not installing. Thanks to people like Ben-IS, solutions no longer involve head-banging, postal rage, and <a href="http://www.reddit.com/r/fffffffuuuuuuuuuuuu/">f7u12</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://beerpla.net/2011/05/06/how-to-fix-error_not_found-0x80070490-during-windows-7-sp1-installation/feed/</wfw:commentRss>
			<slash:comments>213</slash:comments>
		
		
			</item>
		<item>
		<title>How To Dynamically Increase Memory Limits When Interfacing With WordPress Using XML-RPC (Windows Live Writer, Etc)</title>
		<link>http://beerpla.net/2010/11/06/how-to-dynamically-increase-memory-limits-when-interfacing-with-wordpress-using-xml-rpc-windows-live-writer-etc/</link>
					<comments>http://beerpla.net/2010/11/06/how-to-dynamically-increase-memory-limits-when-interfacing-with-wordpress-using-xml-rpc-windows-live-writer-etc/#comments</comments>
		
		<dc:creator><![CDATA[Artem Russakovskii]]></dc:creator>
		<pubDate>Sat, 06 Nov 2010 09:00:44 +0000</pubDate>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[error 500]]></category>
		<category><![CDATA[limit]]></category>
		<category><![CDATA[memory]]></category>
		<category><![CDATA[out of memory]]></category>
		<category><![CDATA[rpc]]></category>
		<category><![CDATA[server error]]></category>
		<category><![CDATA[web server]]></category>
		<category><![CDATA[Windows Live Writer]]></category>
		<category><![CDATA[WLW]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[xml-rpc]]></category>
		<category><![CDATA[xmlrpc]]></category>
		<guid isPermaLink="false">http://beerpla.net/2010/11/06/how-to-dynamically-increase-memory-limits-when-interfacing-with-wordpress-using-xml-rpc-windows-live-writer-etc/</guid>

					<description><![CDATA[<p>Today&#039;s snippet is tremendously helpful if you are using an XML-RPC WordPress interface to read and publish your articles and are running into <em><strong>500 Server Error</strong></em> issues due to running out of memory, manifesting themselves in something like this error message: <em><strong>&#34;Invalid Server Response &#8211; The response to the metaWeblog.newMediaObject method received from the weblog server was invalid&#34;</strong></em>.</p>
<p>For example, my regular PHP memory allocation is 32MB or so, but if I load up Windows Live Writer, my favorite publishing tool, and ask it to load 1000 of the latest blog posts, I will undoubtedly get a server error back.</p>
<p>One solution would be to increase the memory allocated to PHP to something higher, like 256MB, which is how ...<div class=clear></div> <a href="http://beerpla.net/2010/11/06/how-to-dynamically-increase-memory-limits-when-interfacing-with-wordpress-using-xml-rpc-windows-live-writer-etc/" class="read_more"><div class=excerpt-end>Read the rest of this article &#187;</div></a></p>]]></description>
										<content:encoded><![CDATA[<p>Today&#039;s snippet is tremendously helpful if you are using an XML-RPC WordPress interface to read and publish your articles and are running into <em><strong>500 Server Error</strong></em> issues due to running out of memory, manifesting themselves in something like this error message: <em><strong>&quot;Invalid Server Response &#8211; The response to the metaWeblog.newMediaObject method received from the weblog server was invalid&quot;</strong></em>.</p>
<p>For example, my regular PHP memory allocation is 32MB or so, but if I load up Windows Live Writer, my favorite publishing tool, and ask it to load 1000 of the latest blog posts, I will undoubtedly get a server error back.</p>
<p>One solution would be to increase the memory allocated to PHP to something higher, like 256MB, which is how I used to get around the issue. I say &quot;get around&quot; because it&#039;s not a good solution &#8211; if someone finds a page that uses a lot of memory on your site, they could easily kill not only your web server but the whole machine due to swap death. Keeping a lower memory limit allows you to run your web server, such as Apache, with more children, thus serving more requests without getting overloaded.</p>
<p>So, I&#039;ve looked into the WordPress core and came up with what I think is a proper fix &#8211; dynamic memory limit tweaking when dealing with XML-RPC only. Here is the code &#8211; add it to your <em><strong>functions.php</strong></em> and you should be golden:</p>
<pre line="1">/**
* Dynamically increase allowed memory limit for XML-RPC only.
*
* @param array $methods
* @return array
*/
function my_xmlrpc_methods($methods) {
  ini_set('memory_limit', '256M');
  return $methods;
}
add_action('xmlrpc_methods', 'my_xmlrpc_methods');</pre>
<p>The code is pretty self-explanatory: it hooks into a WordPress hook that fires only for XML-RPC requests and adjusts the memory limit on the fly. No more out of memory errors and I&#039;m able to load 1000 posts in Windows Live Writer without problems. If you want to load more, and PHP still crashes, try to raise this limit, but be careful not to send the server into swap death spiral.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://beerpla.net/2010/11/06/how-to-dynamically-increase-memory-limits-when-interfacing-with-wordpress-using-xml-rpc-windows-live-writer-etc/feed/</wfw:commentRss>
			<slash:comments>10</slash:comments>
		
		
			</item>
		<item>
		<title>How To Add Shortcode Support To WordPress Comments And Sidebar Widgets</title>
		<link>http://beerpla.net/2010/10/15/how-to-add-shortcode-support-to-wordpress-comments-and-sidebars/</link>
					<comments>http://beerpla.net/2010/10/15/how-to-add-shortcode-support-to-wordpress-comments-and-sidebars/#comments</comments>
		
		<dc:creator><![CDATA[Artem Russakovskii]]></dc:creator>
		<pubDate>Sat, 16 Oct 2010 03:20:26 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[action]]></category>
		<category><![CDATA[add]]></category>
		<category><![CDATA[comment]]></category>
		<category><![CDATA[filter]]></category>
		<category><![CDATA[shortcode]]></category>
		<category><![CDATA[sidebar]]></category>
		<category><![CDATA[support]]></category>
		<category><![CDATA[trigger]]></category>
		<guid isPermaLink="false">http://beerpla.net/2010/10/15/how-to-add-shortcode-support-to-wordpress-comments-and-sidebars/</guid>

					<description><![CDATA[<p>WordPress has a great way of letting you use simple text tags called shortcodes to provide a whole bunch of functionality, including custom PHP code. In this article, I&#039;m assuming that you already know what shortcodes do and how they operate (if you don&#039;t, head over here: <a href="http://codex.wordpress.org/Shortcode_API">Shortcode_API</a>).</p>
<p>One glaring omission in the way shortcodes are set up by default is that they only get triggered in the content of your post, leaving the sidebar and comments out. I&#039;m sure this is done for security, so that your readers can&#039;t screw something up by posting shortcodes they&#039;re not supposed to &#8211; after all, shortcodes are PHP snippets on the backend.</p>
<p>However, let&#039;s assume you really know what you&#039;re doing ...<div class=clear></div> <a href="http://beerpla.net/2010/10/15/how-to-add-shortcode-support-to-wordpress-comments-and-sidebars/" class="read_more"><div class=excerpt-end>Read the rest of this article &#187;</div></a></p>]]></description>
										<content:encoded><![CDATA[<p>WordPress has a great way of letting you use simple text tags called shortcodes to provide a whole bunch of functionality, including custom PHP code. In this article, I&#039;m assuming that you already know what shortcodes do and how they operate (if you don&#039;t, head over here: <a href="http://codex.wordpress.org/Shortcode_API">Shortcode_API</a>).</p>
<p>One glaring omission in the way shortcodes are set up by default is that they only get triggered in the content of your post, leaving the sidebar and comments out. I&#039;m sure this is done for security, so that your readers can&#039;t screw something up by posting shortcodes they&#039;re not supposed to &#8211; after all, shortcodes are PHP snippets on the backend.</p>
<p>However, let&#039;s assume you really know what you&#039;re doing and you want, for example, to allow certain shortcodes in the comments and all shortcodes in the sidebar. It&#039;s your site and you should be able to do whatever you want with it. For instance, I wanted to provide a way to include QR codes using a <a href="http://www.androidpolice.com/2010/09/15/new-androidpolice-com-feature-instant-qr-magic-hover-on-any-link-in-any-post-to-get-the-corresponding-qr-code-poll/">[qr] shortcode syntax that I&#039;d written</a> both in the sidebar and in the comments, except in the comments that was the only shortcode I wanted to allow my readers to use.</p>
<p>Since these cases can get complicated, let&#039;s start simple and then progressively get deeper.</p>
<h2>Allow all shortcodes in the sidebar</h2>
<p>Assuming you want to enable shortcodes in the <a href="http://wordpress.org/extend/plugins/php-code-widget/">PHP Code Widget</a> widgets (I believe this is the most common way to add PHP support to the sidebar), use this code:</p>
<pre line="1">add_filter('widget_execphp', 'do_shortcode');</pre>
<p>If you have some other widgets in mind, you have to find out the right filter and use it just like above.</p>
<h2>Allow only whitelisted shortcodes in the comments</h2>
<p>Since I don&#039;t want <em>all</em> shortcodes to fire here, things get slightly trickier.</p>
<pre line="1">function init_common_shortcodes() {
  add_shortcode('qr', 'my_shortcode_qr');
}

function init_comment_shortcodes() {
  remove_all_shortcodes();
  init_common_shortcodes();
  add_filter('comment_text', 'do_shortcode');
}

init_common_shortcodes();
add_filter('comments_template', 'init_comment_shortcodes');</pre>
<p>The code above will remove all shortcodes when it gets to comments and reinitialize only the whitelisted one called &quot;<strong>[</strong>qr<strong>]</strong>&quot;, which is exactly what I wanted.</p>
<p><div class="note"><div class="noteclassic"><strong>Note</strong>: If your code somehow uses shortcodes after the comments (such as a sidebar or a custom post query), you will need the trick in the next section.</div></div> </p>
<h2>Allow all shortcodes in the sidebar AND only whitelisted ones in the comments</h2>
<p>At this point, things get slightly tricky because if I combine the previous 2 solutions into 1, by the time WordPress gets to the sidebar, it&#039;ll be left without any shortcodes at all &#8211; they&#039;ve been removed by the code dealing with comments. Therefore, I need to save the shortcodes before dealing with comments and then restore them after the comments and before the sidebar.</p>
<pre line="1">function my_remove_all_shortcodes() {
  global $shortcode_tags;
  global $temp_shortcode_tags;
  $temp_shortcode_tags = $shortcode_tags;
  remove_all_shortcodes();
}

function my_restore_all_shortcodes() {
  global $shortcode_tags;
  global $temp_shortcode_tags;
  if(!empty($temp_shortcode_tags)) {
    $shortcode_tags = $temp_shortcode_tags;
  }
}

function init_common_shortcodes() {
  add_shortcode('qr', 'my_shortcode_qr');
}

function init_comment_shortcodes() {
  my_remove_all_shortcodes();
  init_common_shortcodes();
  add_filter('comment_text', 'do_shortcode');
}

add_filter('comments_template', 'init_comment_shortcodes');
add_filter('dynamic_sidebar', 'my_restore_all_shortcodes');
add_filter('widget_execphp', 'do_shortcode');
init_common_shortcodes();</pre>
<p>Here is what the code does:</p>
<ol>
<li>Initialize custom shortcodes that I want to add all over the place.</li>
<li>When WP gets to the comment block, it removes all shortcodes (again, for security) and re-initializes only the ones I want, but this time remembers them so that they can be restored later.</li>
<li>After the comments, when WP gets to the dynamic sidebar, it restores all the shortcodes and applies them to each <a href="http://wordpress.org/extend/plugins/php-code-widget/">PHP Code Widget</a>.</li>
</ol>
<p>And there you have it. Of course, the code may need tweaking for your own scenario but the ideas are all there. If you spot an error or know of an easier/better way, please let me know.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://beerpla.net/2010/10/15/how-to-add-shortcode-support-to-wordpress-comments-and-sidebars/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>How To Update Eclipse From Galileo (3.5) To Helios (3.6) In-Place Without Reinstalling</title>
		<link>http://beerpla.net/2010/09/29/how-to-update-eclipse-from-galileo-3-5-to-helios-3-6-in-place-without-reinstalling/</link>
					<comments>http://beerpla.net/2010/09/29/how-to-update-eclipse-from-galileo-3-5-to-helios-3-6-in-place-without-reinstalling/#comments</comments>
		
		<dc:creator><![CDATA[Artem Russakovskii]]></dc:creator>
		<pubDate>Wed, 29 Sep 2010 23:47:21 +0000</pubDate>
				<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[clean]]></category>
		<category><![CDATA[galileo]]></category>
		<category><![CDATA[helios]]></category>
		<category><![CDATA[in-place]]></category>
		<category><![CDATA[inline]]></category>
		<category><![CDATA[update]]></category>
		<category><![CDATA[upgrade]]></category>
		<guid isPermaLink="false">http://beerpla.net/2010/09/29/how-to-update-eclipse-from-galileo-3-5-to-helios-3-6-in-place-without-reinstalling/</guid>

					<description><![CDATA[<p><a href="http://beerpla.net/wp-content/uploads/2011/12/image.png"><img loading="lazy" decoding="async" style="margin: 0px 10px 10px 0px; display: inline; float: left" title="image" alt="image" align="left" src="http://beerpla.net/wp-content/uploads/2011/12/image_thumb.png" width="150" height="139" /></a>As a developer, I both love and hate Eclipse for its chaotic nature, buggy and sometimes unusable interface, but at the same time incredible usefulness and ability to serve as a single tool for all of my development, be it C++, PHP, Java, Android, Perl, etc.</p>
<p>One of the biggest problems with Eclipse is that there is no clear upgrade path from major versions, for example 3.5-&#62;3.6. What I ended up having to do for years is back up the old release, download and unpack the new release, and then try to migrate all the settings by importing and exporting left and right. Not so pleasant.</p>
<p>Turns out, as of Eclipse 3.3 (though I&#039;ve only tried it with Eclipse 3.5), ...<div class=clear></div> <a href="http://beerpla.net/2010/09/29/how-to-update-eclipse-from-galileo-3-5-to-helios-3-6-in-place-without-reinstalling/" class="read_more"><div class=excerpt-end>Read the rest of this article &#187;</div></a></p>]]></description>
										<content:encoded><![CDATA[<p><a href="http://beerpla.net/wp-content/uploads/2011/12/image.png"><img loading="lazy" decoding="async" style="margin: 0px 10px 10px 0px; display: inline; float: left" title="image" alt="image" align="left" src="http://beerpla.net/wp-content/uploads/2011/12/image_thumb.png" width="150" height="139" /></a>As a developer, I both love and hate Eclipse for its chaotic nature, buggy and sometimes unusable interface, but at the same time incredible usefulness and ability to serve as a single tool for all of my development, be it C++, PHP, Java, Android, Perl, etc.</p>
<p>One of the biggest problems with Eclipse is that there is no clear upgrade path from major versions, for example 3.5-&gt;3.6. What I ended up having to do for years is back up the old release, download and unpack the new release, and then try to migrate all the settings by importing and exporting left and right. Not so pleasant.</p>
<p>Turns out, as of Eclipse 3.3 (though I&#039;ve only tried it with Eclipse 3.5), it&#039;s possible to successfully complete an in-place upgrade without doing any wiping or voodoo hackery. I&#039;ve successfully completed this on 2 of my machines and now need to share it with the rest of the world.</p>
<p><a href="http://beerpla.net/wp-content/uploads/HowToUpdateEclipseFromGa.6InPlaceWithout_E371/image.png"><img loading="lazy" decoding="async" style="margin: 0px auto; display: block; float: none" title="image" alt="image" src="http://beerpla.net/wp-content/uploads/HowToUpdateEclipseFromGa.6InPlaceWithout_E371/image_thumb.png" width="634" height="330" /></a></p>
<p><strong>Step 1.</strong> Go to Help &gt; Install New Software… &gt; Available Software Sites or Windows &gt; Preferences &gt; Install/Update &gt; Available Software Sites. I personally prefer the former way because it results in fewer clicks but both end up in the same place.</p>
<p><strong>Step 2.</strong> Everywhere you see 3.5, press Edit and change it to 3.6. Similarly, change &quot;galileo&quot; to &quot;helios&quot;. For example, you should end up with at least these (if you don&#039;t have these, just add them):</p>
<blockquote>
<p><a title="http://download.eclipse.org/eclipse/updates/3.6" href="http://download.eclipse.org/eclipse/updates/3.6">http://download.eclipse.org/eclipse/updates/3.6</a></p>
<p><a title="http://download.eclipse.org/releases/helios" href="http://download.eclipse.org/releases/helios">http://download.eclipse.org/releases/helios</a></p>
</blockquote>
<p>Note: you may also need to update other repositories (for example, Galileo was compatible with CDT 6, while Helios needed CDT 7).</p>
<p><a href="http://beerpla.net/wp-content/uploads/HowToUpdateEclipseFromGa.6InPlaceWithout_E371/image_3.png"><img loading="lazy" decoding="async" style="margin: 0px auto; display: block; float: none" title="image" alt="image" src="http://beerpla.net/wp-content/uploads/HowToUpdateEclipseFromGa.6InPlaceWithout_E371/image_thumb_3.png" width="700" height="399" /></a></p>
<p><strong>Step 3.</strong> Press OK, then go to Help &gt; Check for Updates. You should see the progress in the Progress tab &#8211; let the magic happen, restart when prompted, and after a few minutes, you should have a working upgraded version of Eclipse.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://beerpla.net/2010/09/29/how-to-update-eclipse-from-galileo-3-5-to-helios-3-6-in-place-without-reinstalling/feed/</wfw:commentRss>
			<slash:comments>18</slash:comments>
		
		
			</item>
		<item>
		<title>How To Display Just The HTTP Response Code In Command Line Curl</title>
		<link>http://beerpla.net/2010/06/10/how-to-display-just-the-http-response-code-in-cli-curl/</link>
					<comments>http://beerpla.net/2010/06/10/how-to-display-just-the-http-response-code-in-cli-curl/#comments</comments>
		
		<dc:creator><![CDATA[Artem Russakovskii]]></dc:creator>
		<pubDate>Fri, 11 Jun 2010 05:49:05 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[curl]]></category>
		<category><![CDATA[custom]]></category>
		<category><![CDATA[format]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[response]]></category>
		<guid isPermaLink="false">http://beerpla.net/2010/06/10/how-to-display-just-the-http-response-code-in-cli-curl/</guid>

					<description><![CDATA[<p>Today, I was looking for a quick way to see HTTP response codes of a bunch of urls. Naturally, I turned to the <strong><em>curl</em></strong> command, which I would usually use like this:</p>
<pre line="0">curl -IL "URL"</pre>
<p>This command would send a HEAD request (-I), follow through all redirects (-L), and display some useful information in the end. Most of the time it&#039;s ideal:</p>
<pre line="0">curl -IL "http://www.google.com"

HTTP/1.1 200 OK
Date: Fri, 11 Jun 2010 03:58:55 GMT
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=ISO-8859-1
Server: gws
X-XSS-Protection: 1; mode=block
Transfer-Encoding: chunked</pre>
<p>However, the server I was curling didn&#039;t support HEAD requests explicitly. Additionally, I was really only interested in HTTP status codes and not in the rest of the output. This ...<div class=clear></div> <a href="http://beerpla.net/2010/06/10/how-to-display-just-the-http-response-code-in-cli-curl/" class="read_more"><div class=excerpt-end>Read the rest of this article &#187;</div></a></p>]]></description>
										<content:encoded><![CDATA[<p>Today, I was looking for a quick way to see HTTP response codes of a bunch of urls. Naturally, I turned to the <strong><em>curl</em></strong> command, which I would usually use like this:</p>
<pre line="0">curl -IL "URL"</pre>
<p>This command would send a HEAD request (-I), follow through all redirects (-L), and display some useful information in the end. Most of the time it&#039;s ideal:</p>
<pre line="0">curl -IL "http://www.google.com"

HTTP/1.1 200 OK
Date: Fri, 11 Jun 2010 03:58:55 GMT
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=ISO-8859-1
Server: gws
X-XSS-Protection: 1; mode=block
Transfer-Encoding: chunked</pre>
<p>However, the server I was curling didn&#039;t support HEAD requests explicitly. Additionally, I was really only interested in HTTP status codes and not in the rest of the output. This means I would have to change my strategy and issue GET requests, ignoring HTML output completely.</p>
<p>Curl manual to the rescue. A few minutes later, I came up with the following, which served my needs perfectly:</p>
<pre line="0">curl -sL -w "%{http_code} %{url_effective}\\n" "URL" -o /dev/null</pre>
<p>Here is a sample of what comes out:</p>
<pre line="0">curl -sL -w "%{http_code} %{url_effective}\\n" "http://www.amazon.com/dp/B0015T963C/?tag=beepla-20" -o /dev/null

200 http://www.amazon.com/dp/B0015T963C/?tag=beepla-20</pre>
<p>Here, -s silences curl&#039;s progress output, -L follows all redirects as before, -w prints the report using a custom format, and -o redirects curl&#039;s HTML output to /dev/null.</p>
<p>Here are the other special variables available in case you want to customize the output some more:</p>
<ul>
<li>url_effective</li>
<li>http_code</li>
<li>http_connect</li>
<li>time_total</li>
<li>time_namelookup</li>
<li>time_connect</li>
<li>time_pretransfer</li>
<li>time_redirect</li>
<li>time_starttransfer</li>
<li>size_download</li>
<li>size_upload</li>
<li>size_header</li>
<li>size_request</li>
<li>speed_download</li>
<li>speed_upload</li>
<li>content_type</li>
<li>num_connects</li>
<li>num_redirects</li>
<li>ftp_entry_path</li>
</ul>
<p>Is there a better way to do this with curl? Perhaps, but this way offers the most flexibility, as I am in control of all the formatting.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://beerpla.net/2010/06/10/how-to-display-just-the-http-response-code-in-cli-curl/feed/</wfw:commentRss>
			<slash:comments>26</slash:comments>
		
		
			</item>
		<item>
		<title>How To Diagnose And Fix Incorrect Post Comment Counts In WordPress</title>
		<link>http://beerpla.net/2010/03/21/how-to-diagnose-and-fix-incorrect-post-comment-counts-in-wordpress/</link>
					<comments>http://beerpla.net/2010/03/21/how-to-diagnose-and-fix-incorrect-post-comment-counts-in-wordpress/#comments</comments>
		
		<dc:creator><![CDATA[Artem Russakovskii]]></dc:creator>
		<pubDate>Sun, 21 Mar 2010 10:42:10 +0000</pubDate>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[broken]]></category>
		<category><![CDATA[comment]]></category>
		<category><![CDATA[count]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[fix]]></category>
		<category><![CDATA[incorrect]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[query]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[wp_comments]]></category>
		<category><![CDATA[wp_posts]]></category>
		<guid isPermaLink="false">http://beerpla.net/2010/03/21/how-to-diagnose-and-fix-incorrect-post-comment-counts-in-wordpress/</guid>

					<description><![CDATA[<p><img loading="lazy" decoding="async" style="margin: 0px 10px 10px 0px; display: inline" title="image" alt="image" align="left" src="http://beerpla.net/wp-content/uploads/517e9e45d3fa_2C92/image.png" width="222" height="189" /></p>
<h2>Introduction</h2>
<p>If your WordPress comment counts got messed up, whether because of a plugin (I&#039;m talking about you, DISQUS) or you messed with your database manually and did something wrong (yup, that&#039;s what I just did), fear not &#8211; I have a solution for you.</p>
<p>But first, a little background.</p>
<h2>Comment Counts In WordPress</h2>
<p>Here&#039;s how comment counts work in WP:</p>
<ul>
<li>Posts live in a table called <strong><em>wp_posts</em></strong> and each has an ID.</li>
<li>Comments reside in a table called <strong><em>wp_comments</em></strong>, each referring to an ID in wp_posts.</li>
<li>However, to make queries faster, the comment count is also cached in the wp_posts table, rather than getting calculated on every page load.     <br />If this count ever gets out of sync with </li>...<div class=clear></div> <a href="http://beerpla.net/2010/03/21/how-to-diagnose-and-fix-incorrect-post-comment-counts-in-wordpress/" class="read_more"><div class=excerpt-end>Read the rest of this article &#187;</div></a></ul>]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" style="margin: 0px 10px 10px 0px; display: inline" title="image" alt="image" align="left" src="http://beerpla.net/wp-content/uploads/517e9e45d3fa_2C92/image.png" width="222" height="189" /></p>
<h2>Introduction</h2>
<p>If your WordPress comment counts got messed up, whether because of a plugin (I&#039;m talking about you, DISQUS) or you messed with your database manually and did something wrong (yup, that&#039;s what I just did), fear not &#8211; I have a solution for you.</p>
<p>But first, a little background.</p>
<h2>Comment Counts In WordPress</h2>
<p>Here&#039;s how comment counts work in WP:</p>
<ul>
<li>Posts live in a table called <strong><em>wp_posts</em></strong> and each has an ID.</li>
<li>Comments reside in a table called <strong><em>wp_comments</em></strong>, each referring to an ID in wp_posts.</li>
<li>However, to make queries faster, the comment count is also cached in the wp_posts table, rather than getting calculated on every page load.     <br />If this count ever gets out of sync with the actual number of comments for some reason, WordPress, while still displaying all comments properly, will simply show the wrong count. </li>
</ul>
<h2>How To Find Out Which Posts Are Out Of Sync</h2>
<p>Fire up a MySQL shell or your favorite MySQL software (mine is <a href="http://www.navicat.com" rel="nofollow">Navicat</a>) and run this query.</p>
<p>It assumes your database is called <strong><em>wordpress</em></strong> and the prefix is <strong><em>wp_</em></strong>, so adjust those accordingly.</p>
<pre line="1">SELECT wpp.id, wpp.post_title, wpp.comment_count, wpc.cnt
FROM wordpress.wp_posts wpp
LEFT JOIN
(SELECT comment_post_id AS c_post_id, count(*) AS cnt FROM wordpress.wp_comments
 WHERE comment_approved = 1 GROUP BY comment_post_id) wpc
ON wpp.id=wpc.c_post_id
WHERE wpp.post_type IN ('post', 'page')
      AND (wpp.comment_count!=wpc.cnt OR (wpp.comment_count != 0 AND wpc.cnt IS NULL));</pre>
</p>
<p>The result of this query is a list of posts whose comment_counts differ from the actual number of comments associated with each of them.</p>
<p>The left count is the cached number, while the right one is the right one.</p>
<h2>How To Fix The Counts Automatically</h2>
<p><div class="note"><div class="notewarning">Please make a backup of your database before performing any altering queries such as the one below (I recommend mysqldump or the <a href="http://lesterchan.net/wordpress/readme/wp-dbmanager.html" rel="nofollow">WP-DBManager plugin</a>).</div></div></p>
<p>The following query will recalculate and fix the comment counts for all posts that are out of sync (ones we just queried for above):</p>
<pre line="1">UPDATE wordpress.wp_posts wpp
LEFT JOIN
(SELECT comment_post_id AS c_post_id, count(*) AS cnt FROM wordpress.wp_comments
 WHERE comment_approved = 1 GROUP BY comment_post_id) wpc
ON wpp.id=wpc.c_post_id
SET wpp.comment_count=wpc.cnt
WHERE wpp.post_type IN ('post', 'page')
      AND (wpp.comment_count!=wpc.cnt OR (wpp.comment_count != 0 AND wpc.cnt IS NULL));</pre>
<p>I tested this approach on a few test cases but if you experience any problems, please do alert me in the comments and desribe your problem.</p>
<p>Happy WP hacking!</p>
]]></content:encoded>
					
					<wfw:commentRss>http://beerpla.net/2010/03/21/how-to-diagnose-and-fix-incorrect-post-comment-counts-in-wordpress/feed/</wfw:commentRss>
			<slash:comments>35</slash:comments>
		
		
			</item>
		<item>
		<title>How To Show Hidden/Invisible Files In Total Commander, Both Locally And On An FTP Server</title>
		<link>http://beerpla.net/2010/03/06/how-to-show-hiddeninvisible-files-in-total-commander-both-locally-and-on-an-ftp-server/</link>
					<comments>http://beerpla.net/2010/03/06/how-to-show-hiddeninvisible-files-in-total-commander-both-locally-and-on-an-ftp-server/#comments</comments>
		
		<dc:creator><![CDATA[Artem Russakovskii]]></dc:creator>
		<pubDate>Sat, 06 Mar 2010 08:56:49 +0000</pubDate>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[directories]]></category>
		<category><![CDATA[files]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[hidden]]></category>
		<category><![CDATA[invisible]]></category>
		<category><![CDATA[local]]></category>
		<category><![CDATA[setting]]></category>
		<category><![CDATA[show]]></category>
		<category><![CDATA[total commander]]></category>
		<guid isPermaLink="false">http://beerpla.net/2010/03/06/how-to-show-hiddeninvisible-files-in-total-commander-both-locally-and-on-an-ftp-server/</guid>

					<description><![CDATA[<p><img loading="lazy" decoding="async" style="margin: 0px 20px 10px 0px; display: inline" alt="http://media.smashingmagazine.com/cdn_smash/images/shortcuts/total-commander-logo.png" align="left" src="http://media.smashingmagazine.com/cdn_smash/images/shortcuts/total-commander-logo.png" width="150" height="148" />Today I have 2 tips for <a href="http://www.ghisler.com" rel="nofollow">Total Commander</a> users:</p>
<ul>
<li>how to display hidden local directories and files and</li>
<li>how to display hidden FTP directories and files</li>
</ul>
<p>Really, Total Commander should just control this setting in one place but, unfortunately, it is not the case.</p>
<p>I usually prefer when my file manager shows me everything I have, so that I can be more in control and see the hidden directories, such as .svn or $Recycle.Bin, and files, such as .bashrc or pagefile.sys.</p>
<h2>How To Display Hidden Local Directories And Files</h2>
<ul>
<li>go to Configuration -&#62; Options… -&#62; Display</li>
<li>put a check next to the &#34;Show hidden/system files (for experts only)&#34;</li>
</ul>
<h2><img loading="lazy" decoding="async" style="display: block; float: none; margin-left: auto; margin-right: auto" title="local show hidden files total commander" alt="local show hidden files total commander" src="http://beerpla.net/wp-content/uploads/HowToShowHiddenInvisibleFilesInTotalComm_14844/image.png" width="571" height="459" /> </h2>
<h2>How To Display Hidden FTP Directories And Files</h2>
<p>This one is a ...<div class=clear></div> <a href="http://beerpla.net/2010/03/06/how-to-show-hiddeninvisible-files-in-total-commander-both-locally-and-on-an-ftp-server/" class="read_more"><div class=excerpt-end>Read the rest of this article &#187;</div></a></p>]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" style="margin: 0px 20px 10px 0px; display: inline" alt="http://media.smashingmagazine.com/cdn_smash/images/shortcuts/total-commander-logo.png" align="left" src="http://media.smashingmagazine.com/cdn_smash/images/shortcuts/total-commander-logo.png" width="150" height="148" />Today I have 2 tips for <a href="http://www.ghisler.com" rel="nofollow">Total Commander</a> users:</p>
<ul>
<li>how to display hidden local directories and files and</li>
<li>how to display hidden FTP directories and files</li>
</ul>
<p>Really, Total Commander should just control this setting in one place but, unfortunately, it is not the case.</p>
<p>I usually prefer when my file manager shows me everything I have, so that I can be more in control and see the hidden directories, such as .svn or $Recycle.Bin, and files, such as .bashrc or pagefile.sys.</p>
<h2>How To Display Hidden Local Directories And Files</h2>
<ul>
<li>go to Configuration -&gt; Options… -&gt; Display</li>
<li>put a check next to the &quot;Show hidden/system files (for experts only)&quot;</li>
</ul>
<h2><img loading="lazy" decoding="async" style="display: block; float: none; margin-left: auto; margin-right: auto" title="local show hidden files total commander" alt="local show hidden files total commander" src="http://beerpla.net/wp-content/uploads/HowToShowHiddenInvisibleFilesInTotalComm_14844/image.png" width="571" height="459" /> </h2>
<h2>How To Display Hidden FTP Directories And Files</h2>
<p>This one is a bit trickier &#8211; you would think the same option as above controls this, and you would be wrong.</p>
<p>Furthermore, you would think that it&#039;s an option in the FTP manager (Ctrl-F), and you would be wrong again.</p>
<p>Here is how to do it:</p>
<ul>
<li>connect to the FTP server you need</li>
<li>select Net -&gt; FTP Show Hidden Files</li>
</ul>
<p><img loading="lazy" decoding="async" style="display: block; float: none; margin-left: auto; margin-right: auto" title="ftp show hidden files total commander" alt="ftp show hidden files total commander" src="http://beerpla.net/wp-content/uploads/HowToShowHiddenInvisibleFilesInTotalComm_14844/image_3.png" width="308" height="252" /> </p>
<p>Weird choice for an option, isn&#039;t it?</p>
<p>Apparently, at least as of Total Commander 7.50a, this option persists while Total Commander is running but it is not saved when you restart it.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://beerpla.net/2010/03/06/how-to-show-hiddeninvisible-files-in-total-commander-both-locally-and-on-an-ftp-server/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
		<item>
		<title>The Most Awesome VPN Tip: How To Make Windows Automatically Use Your Local WiFi/LAN Connection Directly For Requests That Don&#039;t Need To Go Through VPN</title>
		<link>http://beerpla.net/2010/03/01/the-most-awesome-vpn-tip-how-to-make-windows-automatically-use-your-local-wifilan-connection-directly-for-requests-that-dont-need-to-go-through-vpn/</link>
					<comments>http://beerpla.net/2010/03/01/the-most-awesome-vpn-tip-how-to-make-windows-automatically-use-your-local-wifilan-connection-directly-for-requests-that-dont-need-to-go-through-vpn/#comments</comments>
		
		<dc:creator><![CDATA[Artem Russakovskii]]></dc:creator>
		<pubDate>Tue, 02 Mar 2010 00:45:05 +0000</pubDate>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[connection]]></category>
		<category><![CDATA[default]]></category>
		<category><![CDATA[fast]]></category>
		<category><![CDATA[gateway]]></category>
		<category><![CDATA[lan]]></category>
		<category><![CDATA[local]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[remote]]></category>
		<category><![CDATA[route]]></category>
		<category><![CDATA[tip]]></category>
		<category><![CDATA[vpn]]></category>
		<category><![CDATA[wifi]]></category>
		<category><![CDATA[windows]]></category>
		<guid isPermaLink="false">http://beerpla.net/2010/03/01/the-most-awesome-vpn-tip-how-to-make-windows-automatically-use-your-local-wifilan-connection-directly-for-requests-that-dont-need-to-go-through-vpn/</guid>

					<description><![CDATA[<p><img loading="lazy" decoding="async" style="margin: 0px 10px 10px 0px; display: inline" title="VPN" alt="VPN" align="left" src="http://beerpla.net/wp-content/uploads/4a1ace4eb070_A683/image_6.png" width="149" height="150" /> This tip can also be filed in the &#34;post with the longest title that kind of makes sense but needs more explanation&#34; category.</p>
<p>If you use a <a href="http://en.wikipedia.org/wiki/Virtual_private_network" rel="nofollow">VPN</a> (Virtual Private Network), this tip is for you.</p>
<p>&#160;</p>
<h2>The Problem</h2>
<ul>
<li>you connect to a VPN to get access to your work/whatever network </li>
<li>your connection is fast but the VPN connection is balls slow </li>
<li>you try to stream a bit of online radio, go to a website, watch a video, or do anything, which is automatically routed through the VPN connection but everything TAKES AGES because the VPN connection is the limiting factor </li>
<li>so not only are you frustrated by hiccupping radio, stuttering video, and a never disappearing progress bar but you&#039;re </li>...<div class=clear></div> <a href="http://beerpla.net/2010/03/01/the-most-awesome-vpn-tip-how-to-make-windows-automatically-use-your-local-wifilan-connection-directly-for-requests-that-dont-need-to-go-through-vpn/" class="read_more"><div class=excerpt-end>Read the rest of this article &#187;</div></a></ul>]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" style="margin: 0px 10px 10px 0px; display: inline" title="VPN" alt="VPN" align="left" src="http://beerpla.net/wp-content/uploads/4a1ace4eb070_A683/image_6.png" width="149" height="150" /> This tip can also be filed in the &quot;post with the longest title that kind of makes sense but needs more explanation&quot; category.</p>
<p>If you use a <a href="http://en.wikipedia.org/wiki/Virtual_private_network" rel="nofollow">VPN</a> (Virtual Private Network), this tip is for you.</p>
<p>&#160;</p>
<h2>The Problem</h2>
<ul>
<li>you connect to a VPN to get access to your work/whatever network </li>
<li>your connection is fast but the VPN connection is balls slow </li>
<li>you try to stream a bit of online radio, go to a website, watch a video, or do anything, which is automatically routed through the VPN connection but everything TAKES AGES because the VPN connection is the limiting factor </li>
<li>so not only are you frustrated by hiccupping radio, stuttering video, and a never disappearing progress bar but you&#039;re also making your already slow link slower, so now remote desktop and other activity for which you&#039;ve VPN&#039;ed in the first place is taking even longer </li>
</ul>
<p>Familiar situation? You bet.</p>
<p>&#160;</p>
<h2>The Solution</h2>
<p>This solution is for Windows users only but I&#039;m sure similar settings are available in MacOS, Linux, etc.</p>
<p>Here in particular I am using Windows 7 but this solution applies to Windows XP and Vista as well (the menus look only slightly different for those).</p>
<h3>1. Open up the VPN Connection&#039;s Properties</h3>
<p>These properties can be reached by right clicking on the VPN connection in the list of networks and selecting Properties.</p>
<p> <img loading="lazy" decoding="async" style="display: block; float: none; margin-left: auto; margin-right: auto" title="VPN tweak step 1" alt="VPN tweak step 1" src="http://beerpla.net/wp-content/uploads/4a1ace4eb070_A683/image_thumb.png" width="279" height="255" />   </p>
<h3>2. Go to the TCP Properties</h3>
<p>On Windows XP, you might see only the &quot;Internet Protocol (TCP/IP)&quot;, while on Windows 7 you will see both IPv4 and IPv6. You will most likely need to select IPv4 then.</p>
<p><img loading="lazy" decoding="async" style="display: block; float: none; margin-left: auto; margin-right: auto" title="VPN tweak step 2" alt="VPN tweak step 2" src="http://beerpla.net/wp-content/uploads/4a1ace4eb070_A683/image_thumb_3.png" width="378" height="481" /> </p>
<h3>3. Head to the Advanced settings</h3>
<p> <img loading="lazy" decoding="async" style="display: block; float: none; margin-left: auto; margin-right: auto" title="VPN tweak step 3" alt="VPN tweak step 3" src="http://beerpla.net/wp-content/uploads/4a1ace4eb070_A683/image_thumb_4.png" width="409" height="457" />   </p>
<h3>4. Uncheck the &quot;Use default gateway on remote network&quot; checkbox</h3>
<p> <img loading="lazy" decoding="async" style="display: block; float: none; margin-left: auto; margin-right: auto" title="VPN tweak step 4" alt="VPN tweak step 4" src="http://beerpla.net/wp-content/uploads/4a1ace4eb070_A683/image_thumb_5.png" width="409" height="485" />   </p>
<h3>5. Restart the VPN connection</h3>
<p>This should do the trick.</p>
<p>&#160;</p>
<h2>The New Behavior</h2>
<p>The new behavior from what I can tell is:</p>
<ul>
<li>use a local connection, such as your WiFi or wired connection, so your radio, streaming video, websites, etc should now bypass the VPN connection </li>
<li>if the request above fails, Windows should only then fall back on the VPN connection </li>
</ul>
<p>&#160;</p>
<h2>When Not To Use This Tweak</h2>
</p>
<p>Do not use this tweak if you rely on the VPN to always encrypt all your network traffic.</p>
<p>Temporarily disable this tweak if normally you are OK with not encrypting all of your traffic but are currently using an unsecure network. Examples include a WiFi connection that does not prompt for a password or a public network, such as an Internet cafe.</p>
<p>&#160;</p>
<p>Enjoy your faster VPN experience!</p>
]]></content:encoded>
					
					<wfw:commentRss>http://beerpla.net/2010/03/01/the-most-awesome-vpn-tip-how-to-make-windows-automatically-use-your-local-wifilan-connection-directly-for-requests-that-dont-need-to-go-through-vpn/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
			</item>
		<item>
		<title>My New Desktop Background On The iMac Running Window 7 &#8211; That&#039;s Right, It&#039;s Awesome</title>
		<link>http://beerpla.net/2010/02/20/my-new-desktop-background-on-the-imac-running-window-7-thats-right-its-awesome/</link>
					<comments>http://beerpla.net/2010/02/20/my-new-desktop-background-on-the-imac-running-window-7-thats-right-its-awesome/#comments</comments>
		
		<dc:creator><![CDATA[Artem Russakovskii]]></dc:creator>
		<pubDate>Sun, 21 Feb 2010 06:44:11 +0000</pubDate>
				<category><![CDATA[Awesomeness]]></category>
		<category><![CDATA[My Favorites]]></category>
		<category><![CDATA[1920x1200]]></category>
		<category><![CDATA[awesome]]></category>
		<category><![CDATA[hackintosh]]></category>
		<category><![CDATA[imac]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[wallpaper]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[windows 7]]></category>
		<guid isPermaLink="false">http://beerpla.net/2010/02/20/my-new-desktop-background-on-the-imac-running-window-7-thats-right-its-awesome/</guid>

					<description><![CDATA[<p>I got a new development machine at work &#8211; a 24&#34; iMac. Since I am not an OSX fan at all, I immediately installed Windows 7 x64 on it and initiated a search for a fitting background image.</p>
<p>And then I found it:</p>
<p><a href="http://beerpla.net/wp-content/uploads/MyNewDesktopBackgroundOnTheiMacRunningWi_13D05/image.png"><img loading="lazy" decoding="async" style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="image" border="0" alt="image" src="http://beerpla.net/wp-content/uploads/MyNewDesktopBackgroundOnTheiMacRunningWi_13D05/image_thumb.png" width="700" height="438" /></a></p>
<p align="center"><strong><em><a href="http://beerpla.net/wp-content/uploads/MyNewDesktopBackgroundOnTheiMacRunningWi_13D05/image.png" rel="nofollow">Right click here and Save As to download the 1920&#215;1200 version</a></em></strong></p>
<p>And <em>that&#039;s</em> how you set up your iMac people.</p>
<p>Credit goes to <a href="http://jonzy.deviantart.com/art/Hackintosh-Wallpaper-v4-112694381" rel="nofollow">Jonzy</a> from DeviantArt....<div class=clear></div> <a href="http://beerpla.net/2010/02/20/my-new-desktop-background-on-the-imac-running-window-7-thats-right-its-awesome/" class="read_more"><div class=excerpt-end>Read the rest of this article &#187;</div></a></p>]]></description>
										<content:encoded><![CDATA[<p>I got a new development machine at work &#8211; a 24&quot; iMac. Since I am not an OSX fan at all, I immediately installed Windows 7 x64 on it and initiated a search for a fitting background image.</p>
<p>And then I found it:</p>
<p><a href="http://beerpla.net/wp-content/uploads/MyNewDesktopBackgroundOnTheiMacRunningWi_13D05/image.png"><img loading="lazy" decoding="async" style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="image" border="0" alt="image" src="http://beerpla.net/wp-content/uploads/MyNewDesktopBackgroundOnTheiMacRunningWi_13D05/image_thumb.png" width="700" height="438" /></a></p>
<p align="center"><strong><em><a href="http://beerpla.net/wp-content/uploads/MyNewDesktopBackgroundOnTheiMacRunningWi_13D05/image.png" rel="nofollow">Right click here and Save As to download the 1920&#215;1200 version</a></em></strong></p>
<p>And <em>that&#039;s</em> how you set up your iMac people.</p>
<p>Credit goes to <a href="http://jonzy.deviantart.com/art/Hackintosh-Wallpaper-v4-112694381" rel="nofollow">Jonzy</a> from DeviantArt.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://beerpla.net/2010/02/20/my-new-desktop-background-on-the-imac-running-window-7-thats-right-its-awesome/feed/</wfw:commentRss>
			<slash:comments>11</slash:comments>
		
		
			</item>
		<item>
		<title>How To View A Specific SVN Revision In Your Browser</title>
		<link>http://beerpla.net/2010/02/20/how-to-view-a-specific-svn-revision-in-your-browser/</link>
					<comments>http://beerpla.net/2010/02/20/how-to-view-a-specific-svn-revision-in-your-browser/#comments</comments>
		
		<dc:creator><![CDATA[Artem Russakovskii]]></dc:creator>
		<pubDate>Sun, 21 Feb 2010 06:04:17 +0000</pubDate>
				<category><![CDATA[SVN]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[bc]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[directory]]></category>
		<category><![CDATA[file]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[internet explorer]]></category>
		<category><![CDATA[revision]]></category>
		<category><![CDATA[specific]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[trunk]]></category>
		<category><![CDATA[update]]></category>
		<category><![CDATA[view]]></category>
		<category><![CDATA[Wordpress]]></category>
		<guid isPermaLink="false">http://beerpla.net/2010/02/20/how-to-view-a-specific-svn-revision-in-your-browser/</guid>

					<description><![CDATA[<p><img loading="lazy" decoding="async" style="margin: 0px 10px 10px 0px; display: inline" title="image" alt="image" align="left" src="http://beerpla.net/wp-content/uploads/2010/04/image.png" width="150" height="150" /> This is a quick recipe that I found pretty interesting and relatively unknown.</p>
<p>Everyone who uses SVN knows that most repositories are set up to allow viewing of their contents via a web browser. For example, here&#039;s the trunk of WP Plugins SVN: <a title="http://plugins.svn.wordpress.org/" href="http://plugins.svn.wordpress.org/" rel="nofollow">http://plugins.svn.wordpress.org/</a> and here is the current trunk version of a specific file, let&#039;s say <a title="http://plugins.svn.wordpress.org/stats/trunk/readme.txt" href="http://plugins.svn.wordpress.org/stats/trunk/readme.txt" rel="nofollow">http://plugins.svn.wordpress.org/stats/trunk/readme.txt</a>.</p>
<h2>The Problem</h2>
<p>However, what if you wanted to view a <strong><em>specific revision</em></strong> of a file or directory <strong><em>in your browser</em></strong>?</p>
<p>Let&#039;s say I wanted revision 100,000 of <a href="http://plugins.svn.wordpress.org/stats/trunk/readme.txt" rel="nofollow">http://plugins.svn.wordpress.org/stats/trunk/readme.txt</a></p>
<p>Normally, on a command line, you&#039;d do something like</p>
<pre line="0">svn co http://plugins.svn.wordpress.org/stats/trunk/readme.txt stats
cd stats;
svn up -r100000 readme.txt</pre>
<p>or simply</p>
<pre line="0">svn export -r100000 http://plugins.svn.wordpress.org/stats/trunk/readme.txt</pre>
<p>However, how would you do this in ...<div class=clear></div> <a href="http://beerpla.net/2010/02/20/how-to-view-a-specific-svn-revision-in-your-browser/" class="read_more"><div class=excerpt-end>Read the rest of this article &#187;</div></a></p>]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" style="margin: 0px 10px 10px 0px; display: inline" title="image" alt="image" align="left" src="http://beerpla.net/wp-content/uploads/2010/04/image.png" width="150" height="150" /> This is a quick recipe that I found pretty interesting and relatively unknown.</p>
<p>Everyone who uses SVN knows that most repositories are set up to allow viewing of their contents via a web browser. For example, here&#039;s the trunk of WP Plugins SVN: <a title="http://plugins.svn.wordpress.org/" href="http://plugins.svn.wordpress.org/" rel="nofollow">http://plugins.svn.wordpress.org/</a> and here is the current trunk version of a specific file, let&#039;s say <a title="http://plugins.svn.wordpress.org/stats/trunk/readme.txt" href="http://plugins.svn.wordpress.org/stats/trunk/readme.txt" rel="nofollow">http://plugins.svn.wordpress.org/stats/trunk/readme.txt</a>.</p>
<h2>The Problem</h2>
<p>However, what if you wanted to view a <strong><em>specific revision</em></strong> of a file or directory <strong><em>in your browser</em></strong>?</p>
<p>Let&#039;s say I wanted revision 100,000 of <a href="http://plugins.svn.wordpress.org/stats/trunk/readme.txt" rel="nofollow">http://plugins.svn.wordpress.org/stats/trunk/readme.txt</a></p>
<p>Normally, on a command line, you&#039;d do something like</p>
<pre line="0">svn co http://plugins.svn.wordpress.org/stats/trunk/readme.txt stats
cd stats;
svn up -r100000 readme.txt</pre>
<p>or simply</p>
<pre line="0">svn export -r100000 http://plugins.svn.wordpress.org/stats/trunk/readme.txt</pre>
<p>However, how would you do this in your browser? Trying something like ?r=100000 or ?revision=100000 parameters doesn&#039;t work.</p>
<h2>The Solution</h2>
<p>Here is the syntax to get a specific revision of a file or directory:</p>
<ol>
<li>Take the root of the repository (in our case, <a href="http://plugins.svn.wordpress.org" rel="nofollow">http://plugins.svn.wordpress.org</a>) </li>
<li>Append this string <strong><em>!svn/bc/REVISION_NUMBER</em></strong> right after the repository root and before the directory or file path. </li>
</ol>
<p>Going back to our example:</p>
<ul>
<li><a href="http://plugins.svn.wordpress.org/!svn/bc/100000/stats/" rel="nofollow">http://plugins.svn.wordpress.org/!svn/bc/100000/stats/</a>
<p>shows the stats directory exactly as it was at revision 100,000 and </p>
</li>
<li><a title="http://plugins.svn.wordpress.org/!svn/bc/100000/stats/trunk/readme.txt" href="http://plugins.svn.wordpress.org/!svn/bc/100000/stats/trunk/readme.txt" rel="nofollow">http://plugins.svn.wordpress.org/!svn/bc/100000/stats/trunk/readme.txt</a>
<p>shows our readme.txt at 100,000. </p>
</li>
</ul>
<p>And that&#039;s how you do it, folks. Happy revisioning!</p>
<p><strong>Update</strong>: this post is now sponsored by <a href="http://www.wirefly.com/learn/">Wirefly Learn</a> where you can find cell phone news and reviews, as well as comparisons and videos.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://beerpla.net/2010/02/20/how-to-view-a-specific-svn-revision-in-your-browser/feed/</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
			</item>
		<item>
		<title>My Hands-On Review Of 2010 thirtytwo Focus Boa Snowboard Boots. Are These The Best Snowboard Boots&#8230; Ever?</title>
		<link>http://beerpla.net/2010/02/16/my-hands-on-review-of-2010-thirtytwo-focus-boa-snowboard-boots-are-these-the-best-snowboard-boots-ever/</link>
					<comments>http://beerpla.net/2010/02/16/my-hands-on-review-of-2010-thirtytwo-focus-boa-snowboard-boots-are-these-the-best-snowboard-boots-ever/#comments</comments>
		
		<dc:creator><![CDATA[Artem Russakovskii]]></dc:creator>
		<pubDate>Tue, 16 Feb 2010 09:46:00 +0000</pubDate>
				<category><![CDATA[Awesomeness]]></category>
		<category><![CDATA[My Favorites]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Sports]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[best]]></category>
		<category><![CDATA[boa]]></category>
		<category><![CDATA[boots]]></category>
		<category><![CDATA[dual]]></category>
		<category><![CDATA[focus]]></category>
		<category><![CDATA[hands-on]]></category>
		<category><![CDATA[laces]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[snowboard]]></category>
		<category><![CDATA[snowboarding]]></category>
		<category><![CDATA[zone]]></category>
		<guid isPermaLink="false">http://beerpla.net/?p=1415</guid>

					<description><![CDATA[<h2>Introduction</h2>
<p><a href="http://beerpla.net/wp-content/lg-gallery/2010/2010.01.05%20thirtytwo%20Focus%20Boa%20Snowboarding%20Boots/IMG_5158.JPG"><img decoding="async" style="margin: 0px 10px 10px 0px; display: inline" title="2010 thirtytwo Focus Boa Boots" alt="2010 thirtytwo Focus Boa Boots" align="left" src="http://beerpla.net/wp-content/lg-gallery/2010/2010.01.05%20thirtytwo%20Focus%20Boa%20Snowboarding%20Boots/thumbs/IMG_5158.JPG" /></a></p>
<p>In this review I&#039;m going to take a look at a pair of <strong><em><a href="http://www.amazon.com/dp/B002AJ7IDG/?tag=beepla-20" rel="nofollow">2010 thirtytwo Focus Boa snowboard boots</a></em></strong> that I picked up a few weeks ago, after spending a day demoing them in the snow at a resort in Tahoe.</p>
<p>Even though I am an avid snowboarder (I try to go to the snow almost every weekend during the winter), I haven&#039;t evaluated my gear in years. This season, however, I decided to take a look at my options with the snowboard boots.</p>
<p>&#160;</p>
<h2>The Upgrade</h2>
<p>It was only after the shoelace on one of my 5 year old <a href="http://www.amazon.com/dp/B002BYOVIK/?tag=beepla-20" rel="nofollow">Salomon Dialogue</a> boots snapped that I even considered checking out other boots. I was always *kind of* happy with ...<div class=clear></div> <a href="http://beerpla.net/2010/02/16/my-hands-on-review-of-2010-thirtytwo-focus-boa-snowboard-boots-are-these-the-best-snowboard-boots-ever/" class="read_more"><div class=excerpt-end>Read the rest of this article &#187;</div></a></p>]]></description>
										<content:encoded><![CDATA[<h2>Introduction</h2>
<p><a href="http://beerpla.net/wp-content/lg-gallery/2010/2010.01.05%20thirtytwo%20Focus%20Boa%20Snowboarding%20Boots/IMG_5158.JPG"><img decoding="async" style="margin: 0px 10px 10px 0px; display: inline" title="2010 thirtytwo Focus Boa Boots" alt="2010 thirtytwo Focus Boa Boots" align="left" src="http://beerpla.net/wp-content/lg-gallery/2010/2010.01.05%20thirtytwo%20Focus%20Boa%20Snowboarding%20Boots/thumbs/IMG_5158.JPG" /></a></p>
<p>In this review I&#039;m going to take a look at a pair of <strong><em><a href="http://www.amazon.com/dp/B002AJ7IDG/?tag=beepla-20" rel="nofollow">2010 thirtytwo Focus Boa snowboard boots</a></em></strong> that I picked up a few weeks ago, after spending a day demoing them in the snow at a resort in Tahoe.</p>
<p>Even though I am an avid snowboarder (I try to go to the snow almost every weekend during the winter), I haven&#039;t evaluated my gear in years. This season, however, I decided to take a look at my options with the snowboard boots.</p>
<p>&#160;</p>
<h2>The Upgrade</h2>
<p>It was only after the shoelace on one of my 5 year old <a href="http://www.amazon.com/dp/B002BYOVIK/?tag=beepla-20" rel="nofollow">Salomon Dialogue</a> boots snapped that I even considered checking out other boots. I was always *kind of* happy with the Dialogues but never really fully happy.</p>
<p><strong><em>Here are some reasons you, like me, might not be happy with your boots</em></strong>:</p>
<ul>
<li>They were hard to get into and yet my foot would move around inside. They were comfortable to walk around in but little did I know that it was actually a sign of the wrong boot size &#8211; more on that later. </li>
<li>The outer lace, which uses this seemingly pretty cool one-pull quicklace, would actually constantly loosen itself. </li>
<li>The inner lace never really tightened well either. </li>
<li>They&#039;re kind of ugly&#8230; Here, <a href="http://www.amazon.com/dp/B002BYOVIK/?tag=beepla-20">check my old ones out</a>. </li>
</ul>
<p>To cut the long story short, after trying on a few different models and weighing all positives and negatives, I selected the 2010 thirtytwo Focus Boas for my demo day. The next day, absolutely in love with them, I came back and bought a pair on the spot.</p>
<p><div class="note"><div class="notetip">Here are some snowboarding tips that I picked up during both my riding and my conversation with John at Tahoe Dave&#039;s:</p>
<ul>
<li>Never rest the edge of the board on your boot. The board edge is quite sharp &#8211; it will shred your lace and destroy the boot surface. Instead, try to squeeze the front of the boot into the opening in the back of the binding or suck it up and let it hang. </li>
<li>If you have the Boa system, loosen it when you get down the hill, walk around in comfort, and then quickly snap it back at the top of the mountain. </li>
<li>The right boot size should feel tight all around but shouldn&#039;t be too painful in your toe area lengthwise. Remember that the boots will loosen inside after the break-in period and ask about the possibility of custom heat molding them to your foot&#039;s shape. </li>
<li>Wear thick socks while trying on boots. Also, lace them up fully and walk around to see how comfortable you are, while remembering the previous point. </li>
<li>Read more about boot sizes in a section called <a href="#a-note-on-boot-size">A Note On Boot Size</a> below. </li>
</ul>
<p></div></div></p>
<p>&#160;</p>
<h2>Main Highlights</h2>
<p>Here are some highlights that make these boots top notch:</p>
<ul>
<li><a href="#dual-zone-boa-lacing-system">Dual Zone Boa Lacing System</a> </li>
<li><a href="#fully-heat-moldable-liner-custom-fit-comfort">Fully Heat Moldable Liner = Custom Fit Comfort</a> </li>
<li><a href="#forward-lean">Forward Lean</a> </li>
<li><a href="#excellent-tongue-strap-and-inner-lacing">Excellent Tongue Strap And Inner Lacing</a> </li>
</ul>
<p>Here&#039;s each one in detail:</p>
<p>&#160;</p>
<h3>Dual Zone Boa Lacing System</h3>
<p><a href="http://beerpla.net/wp-content/lg-gallery/2010/2010.01.05%20thirtytwo%20Focus%20Boa%20Snowboarding%20Boots/IMG_5180.JPG"><img loading="lazy" decoding="async" style="margin: 0px 10px 10px 0px; display: inline" title="2010 thirtytwo Focus Boa Boot dual zone" alt="2010 thirtytwo Focus Boa Boot dual zone" align="left" src="http://beerpla.net/wp-content/uploads/2010thirtytwoFocusBoaDualZoneSnowbo.Ever_F18C/image_thumb.png" width="150" height="150" /></a>The Boa lacing system is what really sets these boots apart from most others, and anything I&#039;d seen before.</p>
<p>Rather than having conventional laces that you need to tie, <strong><em>the Boa system consists of a dial and a metal cable</em></strong>. It is very simple.</p>
<p>You push on the dial to lock it and crank it clockwise to tighten the metal &quot;lace&quot;.</p>
<p>When you want to loosen the grip, just pull on the dial and it instantly lets go and loosens the cable.</p>
<p>What this achieves is nothing short of amazing:</p>
<ul>
<li>The quickest way to lace up and unlace. </li>
<li>Having this very durable cable instead of a soft lace makes it almost impossible to snap it (in an unlikely case that you do, there&#039;s a spare one in the box). </li>
<li>It doesn&#039;t untie throughout the day. </li>
<li>Small adjustments, such as tightening the lace, are very easy &#8211; I just have to turn the dial a few more clicks, which is possible to do while going down the hill. </li>
</ul>
<p>Now, note that I mentioned a <strong><em>dual zone</em></strong> Boa. After the original Boa system came out, there were some complaints that it doesn&#039;t tie the cable evenly at the top and bottom &#8211; some people prefer to have a tighter fit at the bottom and a loser one at the top, for instance.</p>
<p>To address this issue, the 2010 Focus boots actually come with 2 dials and 2 sets of cables &#8211; one in the front and one on the side, controlling the top and bottom cables respectively.</p>
</p>
<p>I have to tell you &#8211; after using them 4 times this season, I am still excited about the Boa. I don&#039;t have to mess with my laces anymore, don&#039;t have to tighten them, and here&#039;s <em><strong>the most beautiful part</strong></em>: when I get down the hill, I unlace and walk around relaxed and comfortable (by pulling on the dials &#8211; takes 2 seconds). Then, when I&#039;m back at the top of the lift, a few cranks and I&#039;m back in business (6-10 seconds).</p>
<p><strong><em>To summarize, the Boa cable system rocks.</em></strong></p>
<p>Check it out in action in this quick video I shot:</p>
<p><iframe loading="lazy" title="thirtytwo Focus Boa Snowboarding Boots" width="500" height="375" src="https://www.youtube.com/embed/wwPjMkpkcV4?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe> </p>
<p>&#160;</p>
<h3>Fully Heat Moldable Liner = Custom Fit Comfort</h3>
<p><a href="http://beerpla.net/wp-content/lg-gallery/2010/2010.01.05%20thirtytwo%20Focus%20Boa%20Snowboarding%20Boots/IMG_5171.JPG"><img loading="lazy" decoding="async" style="margin: 0px 10px 10px 0px; display: inline" title="2010 thirtytwo Focus Boa Boot heat moldable liner" alt="2010 thirtytwo Focus Boa Boot heat moldable liner" align="left" src="http://beerpla.net/wp-content/uploads/2010thirtytwoFocusBoaDualZoneSnowbo.Ever_F18C/image_thumb_3.png" width="150" height="150" /></a> Another feature of these boots that makes them stand out is a fully heat moldable liner.</p>
<p>What this means is that you can essentially custom mold the inside of the boot to your foot.</p>
<p>It only needs to be done one time, when you buy the boots, and can be done at a local snowboard shop (it costs $10 at Tahoe Dave&#039;s, for example but is included for free if you buy the boots from them).</p>
<p>What sets the thirtytwo Focus boots apart from others is that most boots only contain a partially moldable liner. With the Focus, however, the whole liner can be molded.</p>
<p>In order to mold the liner, I had to put on special socks and wait till a special machine heats the boots up. After that, I had to put them on and stand around, flexing, for about 15 minutes. This ironed out all pressure points and eliminated any discomfort.</p>
<p><strong><em>To summarize, the heat moldable liner is very comfortable and after molding fits your feet like a glove.</em></strong></p>
<p>&#160;</p>
<h3>Forward Lean</h3>
<p><a href="http://beerpla.net/wp-content/lg-gallery/2010/2010.01.05%20thirtytwo%20Focus%20Boa%20Snowboarding%20Boots/IMG_5166.JPG"><img loading="lazy" decoding="async" style="margin: 0px 10px 10px 0px; display: inline" title="2010 thirtytwo Focus Boa Boot forward lean" alt="2010 thirtytwo Focus Boa Boot forward lean" align="left" src="http://beerpla.net/wp-content/uploads/2010thirtytwoFocusBoaDualZoneSnowbo.Ever_F18C/image_4.png" width="150" height="150" /></a> The Focus boots are angled forward for more convenient riding.</p>
<p>At first it may feel a bit unnatural, until you realize that on the mountain most of the time you ride bending your knees a bit and this forward lean is actually much more comfortable than the plain L shape of your old boots.</p>
<p>In fact, because of the Boa system that allows you to quickly unlace when you walk around, this extra lean never bothers me.</p>
<p>&#160;</p>
<h3>Excellent Tongue Strap And Inner Lacing</h3>
<p><a href="http://beerpla.net/wp-content/lg-gallery/2010/2010.01.05%20thirtytwo%20Focus%20Boa%20Snowboarding%20Boots/IMG_5173.JPG"><img loading="lazy" decoding="async" style="margin: 0px 10px 10px 0px; display: inline" title="2010 thirtytwo Focus Boa Boot tongue strap and inner lacing" alt="2010 thirtytwo Focus Boa Boot tongue strap and inner lacing" align="left" src="http://beerpla.net/wp-content/uploads/2010thirtytwoFocusBoaDualZoneSnowbo.Ever_F18C/image_5.png" width="150" height="150" /></a> </p>
</p>
<p>The inner lacing system is excellent &#8211; it locks in very easily, holds all day, and unlocks with a quick pull.</p>
<p>In order to make unlacing the inner lace easier, the thirtytwo folks added a loop to its bottom &#8211; pull on it and it relaxes the whole lace from the bottom. I found this very helpful at the end of the day.</p>
<p>There is also a strap going through the front of the tongue, which keeps it centered and snug with your leg.</p>
<p>&#160;</p>
<h2>A Note On Boot Size</h2>
<p>I think the biggest mistake you can make buying new snowboard boots is getting them in the <strong><em>wrong size</em></strong>. Therefore, I highly suggest you try the boots out before you buy.</p>
<p>If you get them <strong><em>too big</em></strong>, your foot will move around and you will not have enough control. What&#039;s worse is it will most likely cause pain all over your foot and lower leg as you try to steer with a loose boot.</p>
<p>Even worse, if you get it <strong><em>too small</em></strong>, you will probably be in pain by the time you get half way down the mountain.</p>
<p>It turns out my previous boots were a size and a half too big: 10.5. I didn&#039;t know what I was doing 5 years back and didn&#039;t have the right person helping me out, so I went &quot;safe&quot; with something I felt less constrained in.</p>
<p><strong><em>With thirtytwo boots, just go with your regular size</em></strong>. I wear size 9 shoes, and the size 9 boot ended up being perfect. Another person confirms the same observation <a href="http://www.backcountry.com/outdoorgear/ThirtyTwo-Focus-Boa-Snowboard-Boot-Mens/TTW0036M.html" rel="nofollow">here</a>.</p>
<p>&#160;</p>
<h2>What&#039;s In The Box</h2>
<ul>
<li>boots </li>
<li>an extra metal replacement cord (don&#039;t think I&#039;ll ever need it but nice to have just in case) </li>
<li>a little tool for opening the cord mechanism </li>
<li>a snowboarding poster </li>
<li>a hamster (OK, maybe not) </li>
</ul>
<p>&#160;</p>
<h2>Buy thirtytwo Focus Boas</h2>
<p>I hope I helped influence your buying decision in one way or another and that you&#039;ll give these great boots a go.</p>
<p>They come in 2 different colors:</p>
<ul>
<li>Black/Silver &#8211; these are the ones I got </li>
<li>Green/Black </li>
</ul>
<p>Here are some places and direct links to purchasing the Focus Boa boots:</p>
<ul>
<li>your local snowboard store (I highly recommend <a href="http://www.yelp.com/biz/tahoe-daves-skis-and-boards-tahoe-city" rel="nofollow">Tahoe Dave&#039;s in Tahoe City</a>) &#8211; these guys usually know what they&#039;re talking about and if they have the product on hand, you can try it out immediately</li>
<li><a href="http://www.amazon.com/dp/B002AJ7IDG/?tag=beepla-20" rel="nofollow">Amazon.com</a> </li>
<li><a href="http://www.endless.com/thirtytwo-Mens-Focus-Snowboard-Boot/dp/B002AJ7IHW/ref=sr_1_1?ie=UTF8" rel="nofollow">Endless.com</a> </li>
<li><a href="http://www.anrdoezrs.net/click-3323079-10374581" rel="nofollow">Zappos.com</a> </li>
<li><a href="http://www.backcountry.com/outdoorgear/ThirtyTwo-Focus-Boa-Snowboard-Boot-Mens/TTW0036M.html" rel="nofollow">Backcountry.com</a> </li>
<li><a href="http://www.evogear.com/snowboard-boots/32-focus-boa-2010.aspx" rel="nofollow">Evogear.com</a> </li>
<li><a href="http://www.snowboardconnection.com/product_detail.cfm?Product=32-Focus-Boa-Snowboard-Boots-BLACK/SILVER&amp;Category=Snow-Womens-Boots&amp;CatID=24&amp;PID=73799&amp;avad=1768_b83dafd" rel="nofollow">SnowboardConnection.com</a> </li>
<li><a href="http://shorelineoftahoe.com/store/product.php?productid=3797" rel="nofollow">ShorelineOfTahoe.com</a> (though these seem to be an older model &#8211; 08 or 09) </li>
<li><a href="http://www.valsurf.com/product.php?productid=28336" rel="nofollow">ValSurf</a> </li>
<li><a href="http://store.verticalurge.com/32-thirtytwo-focus-boa-black-green-2010-sale.aspx" rel="nofollow">VerticalUrge</a></li>
</ul>
<p>&#160;</p>
<h2>Similar Boots With A Dual Zone Boa System</h2>
<p>Here are some competitors with a similar dual zone boa system, if you want to check them out and compare to the Focus:</p>
<p align="center"><iframe src="http://rcm-na.amazon-adsystem.com/e/cm?lt1=_blank&amp;bc1=000000&amp;IS2=1&amp;bg1=FFFFFF&amp;fc1=000000&amp;lc1=0000FF&amp;o=1&amp;p=8&amp;l=as1&amp;m=amazon&amp;f=ifr&amp;md=10FE9736YVPPT7A0FBG2&amp;asins=B002AJ7IHW" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-na.amazon-adsystem.com/e/cm?lt1=_blank&amp;bc1=000000&amp;IS2=1&amp;bg1=FFFFFF&amp;fc1=000000&amp;lc1=0000FF&amp;o=1&amp;p=8&amp;l=as1&amp;m=amazon&amp;f=ifr&amp;md=10FE9736YVPPT7A0FBG2&amp;asins=B00260GZKG" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-na.amazon-adsystem.com/e/cm?lt1=_blank&amp;bc1=000000&amp;IS2=1&amp;bg1=FFFFFF&amp;fc1=000000&amp;lc1=0000FF&amp;o=1&amp;p=8&amp;l=as1&amp;m=amazon&amp;f=ifr&amp;md=10FE9736YVPPT7A0FBG2&amp;asins=B00260H2YO" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-na.amazon-adsystem.com/e/cm?lt1=_blank&amp;bc1=000000&amp;IS2=1&amp;bg1=FFFFFF&amp;fc1=000000&amp;lc1=0000FF&amp;o=1&amp;p=8&amp;l=as1&amp;m=amazon&amp;f=ifr&amp;md=10FE9736YVPPT7A0FBG2&amp;asins=B002V19M00" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><iframe src="http://rcm-na.amazon-adsystem.com/e/cm?lt1=_blank&amp;bc1=000000&amp;IS2=1&amp;bg1=FFFFFF&amp;fc1=000000&amp;lc1=0000FF&amp;o=1&amp;p=8&amp;l=as1&amp;m=amazon&amp;f=ifr&amp;md=10FE9736YVPPT7A0FBG2&amp;asins=B00260GZ60" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe> </p>
<p>&#160;</p>
<h2>Gallery</h2>
<p>[lg_folder folder=&#039;2010/2010.01.05 thirtytwo Focus Boa Snowboarding Boots&#039;]</p>
]]></content:encoded>
					
					<wfw:commentRss>http://beerpla.net/2010/02/16/my-hands-on-review-of-2010-thirtytwo-focus-boa-snowboard-boots-are-these-the-best-snowboard-boots-ever/feed/</wfw:commentRss>
			<slash:comments>14</slash:comments>
		
		
			</item>
		<item>
		<title>How *Not* To Implement A Web Application That Handles External Authentication, Using BeTwittered.com As An Example</title>
		<link>http://beerpla.net/2010/02/03/how-not-to-implement-a-web-application-that-handles-external-authentication-using-betwittered-com-as-an-example/</link>
					<comments>http://beerpla.net/2010/02/03/how-not-to-implement-a-web-application-that-handles-external-authentication-using-betwittered-com-as-an-example/#comments</comments>
		
		<dc:creator><![CDATA[Artem Russakovskii]]></dc:creator>
		<pubDate>Thu, 04 Feb 2010 02:29:04 +0000</pubDate>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[auth]]></category>
		<category><![CDATA[authentication]]></category>
		<category><![CDATA[betwittered]]></category>
		<category><![CDATA[breach]]></category>
		<category><![CDATA[clear text]]></category>
		<category><![CDATA[cookie]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[https]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[password]]></category>
		<category><![CDATA[sniffing]]></category>
		<category><![CDATA[ssl]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[username]]></category>
		<category><![CDATA[xss]]></category>
		<guid isPermaLink="false">http://beerpla.net/2010/02/03/how-not-to-implement-a-web-application-that-handles-external-authentication-using-betwittered-com-as-an-example/</guid>

					<description><![CDATA[<p><img loading="lazy" decoding="async" style="margin: 0px 10px 10px 0px; display: inline" title="lock" alt="lock" align="left" src="http://beerpla.net/wp-content/uploads/HowNotToImplementAWebApplicationThatHand_F181/image.png" width="150" height="150" /> Today I&#039;m going to look at how not to handle user authentication in a web application, taking <a href="http://www.betwittered.com" rel="nofollow">BeTwittered.com</a> authenticating with Twitter as an example (sorry, guys).</p>
<p>BeTwittered is a simple and comfortable gadget that you can add to your site, such as your iGoogle homepage.</p>
<p>Since BeTwittered is just a bridge between you and Twitter, it has to first log you into your account. Here is where things go horribly, horribly wrong.</p>
<h2>1. BeTwittered does not use SSL to secure requests to its servers</h2>
<p>All authentication information is transmitted to BeTwittered servers in plain text and is easily sniffable by an attacker, both on your own network and outside of it. You can read more about SSL encryption <a href="http://en.wikipedia.org/wiki/Transport_Layer_Security" rel="nofollow">here</a>....<div class=clear></div> <a href="http://beerpla.net/2010/02/03/how-not-to-implement-a-web-application-that-handles-external-authentication-using-betwittered-com-as-an-example/" class="read_more"><div class=excerpt-end>Read the rest of this article &#187;</div></a></p>]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" style="margin: 0px 10px 10px 0px; display: inline" title="lock" alt="lock" align="left" src="http://beerpla.net/wp-content/uploads/HowNotToImplementAWebApplicationThatHand_F181/image.png" width="150" height="150" /> Today I&#039;m going to look at how not to handle user authentication in a web application, taking <a href="http://www.betwittered.com" rel="nofollow">BeTwittered.com</a> authenticating with Twitter as an example (sorry, guys).</p>
<p>BeTwittered is a simple and comfortable gadget that you can add to your site, such as your iGoogle homepage.</p>
<p>Since BeTwittered is just a bridge between you and Twitter, it has to first log you into your account. Here is where things go horribly, horribly wrong.</p>
<h2>1. BeTwittered does not use SSL to secure requests to its servers</h2>
<p>All authentication information is transmitted to BeTwittered servers in plain text and is easily sniffable by an attacker, both on your own network and outside of it. You can read more about SSL encryption <a href="http://en.wikipedia.org/wiki/Transport_Layer_Security" rel="nofollow">here</a>.</p>
<p>Since BeTwittered passes your Twitter username and password unencrypted as GET parameters, it may as well be serving them to potential attackers on a silver platter (note that passing this data in a POST request would change nothing, security-wise).</p>
<p>Here is an example request:</p>
<p><a title="http://betwittered.com/api/?_=1265242511260&amp;req=verify_credentials&amp;username=foo&amp;password=bar" href="http://betwittered.com/api/?_=1265242511260&amp;req=verify_credentials&amp;username=foo&amp;password=bar">http://betwittered.com/api/?_=1265242511260&amp;req=verify_credentials<strong><em>&amp;username=foo&amp;password=bar</em></strong></a></p>
<p>Ugh…</p>
<h2>2. BeTwittered stores your username and password in unencrypted cookies</h2>
<p>Because BeTwittered tries to keep you logged into Twitter, it caches the username and password, unencrypted, inside browser cookies.</p>
<p>This means that an attacker needs to simply look at your cookies to steal this information. This can be done using these methods, among others:</p>
<ul>
<li>using an XSS vulnerability </li>
<li>sniffing the network traffic </li>
<li>walking up to your computer </li>
</ul>
<p><a href="http://beerpla.net/wp-content/uploads/HowNotToImplementAWebApplicationThatHand_F181/image_3.png"><img loading="lazy" decoding="async" style="display: block; float: none; margin-left: auto; margin-right: auto" title="betwittered username and password in cookies" alt="betwittered username and password in cookies" src="http://beerpla.net/wp-content/uploads/HowNotToImplementAWebApplicationThatHand_F181/image_thumb.png" width="700" height="512" /></a></p>
<h2>3. Because BeTwittered passes your authentication information to its servers, it&#039;s already insecure</h2>
<p>If someone gets access to BeTwittered servers, it&#039;s safe to assume at that time that all accounts are potentially compromised.</p>
<p>Smaller sites generally cannot dedicate appropriate resources to securing their servers, which can make breaching them easier for hackers. Even Twitter itself was <a href="http://www.google.com/search?hl=en&amp;q=twitter+hacked" rel="nofollow">hacked numerous times</a>.</p>
<p>&#160;</p>
<h2>The Alternative Solution</h2>
<h3>oAuth</h3>
<p>If the endpoint application supports <a href="http://oauth.net/" rel="nofollow">oAuth</a> (Twitter has for months), do us all a favor and use it. Please.</p>
<p>oAuth allows delegating authentication to Twitter itself and only giving the application easily revokable limited access.</p>
<p>If BeTwittered were using oAuth, the user would be redirected to Twitter, where he or she would login. Then, the user would be sent back to BeTwittered, but now bearing special tokens. Any requests to Twitter would then be accompanied by these tokens, which would be validated by Twitter every time they&#039;re used &#8211; all of this without ever passing your password around.</p>
<p>You can find a nice overview of the oAuth architecture <a href="http://hueniverse.com/2008/10/beginners-guide-to-oauth-part-iii-security-architecture/" rel="nofollow">here</a>.</p>
<h3>Otherwise</h3>
<p>If the endpoint application doesn&#039;t support oAuth, then</p>
<ul>
<li>use SSL encryption (https) </li>
<li>store the authentication information on the server side instead of the client side in a cookie. Instead, use the cookie to store some sort of an internal ID pointing to this server-side data. Alternatively, encrypt the username and password via a secure salted two-way hash and only then store the encrypted version in a cookie </li>
<li>make sure to stay on top of securing your servers (and give your sysadmin a raise). It&#039;s a time-consuming commitment, please take it seriously </li>
</ul>
<h2>Conclusion</h2>
<p>What other secure authentication technique or tips do you know about? Feel free to share in the comments.</p>
<p>Oh, and this goes without saying &#8211; stop using BeTwittered, at least until they implement a more secure login option. I&#039;ve alerted the creators about the issue and also started these threads on <a href="http://news.ycombinator.com/item?id=1099356" rel="nofollow">HN</a> and <a href="http://www.reddit.com/r/reddit.com/comments/axs81/using_betwittered_did_you_know_it_sends_your/" rel="nofollow">Reddit</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://beerpla.net/2010/02/03/how-not-to-implement-a-web-application-that-handles-external-authentication-using-betwittered-com-as-an-example/feed/</wfw:commentRss>
			<slash:comments>9</slash:comments>
		
		
			</item>
		<item>
		<title>Why Are?.. &#8211; Presented By Google [PICTURES]</title>
		<link>http://beerpla.net/2010/01/31/why-are-presented-by-google-pictures/</link>
					<comments>http://beerpla.net/2010/01/31/why-are-presented-by-google-pictures/#comments</comments>
		
		<dc:creator><![CDATA[Artem Russakovskii]]></dc:creator>
		<pubDate>Sun, 31 Jan 2010 22:39:00 +0000</pubDate>
				<category><![CDATA[Humor]]></category>
		<category><![CDATA[Politics]]></category>
		<category><![CDATA[Stuff]]></category>
		<category><![CDATA[americans]]></category>
		<category><![CDATA[armenians]]></category>
		<category><![CDATA[asians]]></category>
		<category><![CDATA[black]]></category>
		<category><![CDATA[brazilian]]></category>
		<category><![CDATA[british]]></category>
		<category><![CDATA[canadians]]></category>
		<category><![CDATA[chinese]]></category>
		<category><![CDATA[germans]]></category>
		<category><![CDATA[hawaiians]]></category>
		<category><![CDATA[indians]]></category>
		<category><![CDATA[irish]]></category>
		<category><![CDATA[israeli]]></category>
		<category><![CDATA[italians]]></category>
		<category><![CDATA[japanese]]></category>
		<category><![CDATA[koreans]]></category>
		<category><![CDATA[mexican]]></category>
		<category><![CDATA[new yorkers]]></category>
		<category><![CDATA[palestinians]]></category>
		<category><![CDATA[polish]]></category>
		<category><![CDATA[russians]]></category>
		<category><![CDATA[spanish]]></category>
		<category><![CDATA[swedish]]></category>
		<category><![CDATA[texans]]></category>
		<category><![CDATA[white]]></category>
		<category><![CDATA[why are]]></category>
		<guid isPermaLink="false">http://beerpla.net/?p=953</guid>

					<description><![CDATA[<p><img loading="lazy" decoding="async" style="margin: 0px 10px 10px 0px; display: inline" title="Google" alt="Google" align="left" src="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image_27.png" width="150" height="125" /> Recently, I decided to conduct a Google experiment and write down what the search engines suggests for the phrase &#34;why are&#34; followed by all kinds of nationalities, races, and localities (alright, &#34;recently&#34; seems to be last March, as evident from the Google theme, but I only decided to post this now).</p>
<p>I did this just for fun and found most of the results funny, some hilarious, and some offensive and controversial.</p>
<p>However, all of them have a reason for being there &#8211; statistics. It&#039;s what people search for. The cream of the crop. Stereotypes, hilarities, it&#039;s all here.</p>
<p>If you can, please don&#039;t take them too close to heart. In fact, if you&#039;re a righteous conservative thinking of lecturing me, ...<div class=clear></div> <a href="http://beerpla.net/2010/01/31/why-are-presented-by-google-pictures/" class="read_more"><div class=excerpt-end>Read the rest of this article &#187;</div></a></p>]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" style="margin: 0px 10px 10px 0px; display: inline" title="Google" alt="Google" align="left" src="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image_27.png" width="150" height="125" /> Recently, I decided to conduct a Google experiment and write down what the search engines suggests for the phrase &quot;why are&quot; followed by all kinds of nationalities, races, and localities (alright, &quot;recently&quot; seems to be last March, as evident from the Google theme, but I only decided to post this now).</p>
<p>I did this just for fun and found most of the results funny, some hilarious, and some offensive and controversial.</p>
<p>However, all of them have a reason for being there &#8211; statistics. It&#039;s what people search for. The cream of the crop. Stereotypes, hilarities, it&#039;s all here.</p>
<p>If you can, please don&#039;t take them too close to heart. In fact, if you&#039;re a righteous conservative thinking of lecturing me, do me a favor and close this page now.</p>
<p>So here goes.</p>
<h2>&#160;</h2>
<h2>Why Are?..</h2>
<h3>&quot;Why are canadians&quot;</h3>
<p>Afraid of the dark? &#8211; I didn&#039;t know that, thanks Google.</p>
<p><a href="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image51.png"><img loading="lazy" decoding="async" style="display: block; float: none; margin-left: auto; margin-right: auto" title="canadians" alt="canadians" src="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image51_thumb.png" width="520" height="391" /></a> </p>
<h3>&quot;Why are brazilian&quot;</h3>
<p>Agreed.</p>
<p><a href="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image39.png"><img loading="lazy" decoding="async" style="display: block; float: none; margin-left: auto; margin-right: auto" title="brazilian" alt="brazilian" src="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image39_thumb.png" width="520" height="397" /></a></p>
<h3>&quot;Why are swedish&quot;</h3>
<p>Also agreed.</p>
<p><a href="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image57.png"><img loading="lazy" decoding="async" style="display: block; float: none; margin-left: auto; margin-right: auto" title="swedish" alt="swedish" src="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image57_thumb.png" width="520" height="377" /></a> </p>
<h3>&quot;Why are irish&quot;</h3>
<p>Heh.</p>
<p><a href="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image60.png"><img loading="lazy" decoding="async" style="display: block; float: none; margin-left: auto; margin-right: auto" title="irish" alt="irish" src="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image60_thumb.png" width="520" height="378" /></a> </p>
<h3>&quot;Why are palestinians&quot;</h3>
<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f641.png" alt="🙁" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p><a href="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image63.png"><img loading="lazy" decoding="async" style="display: block; float: none; margin-left: auto; margin-right: auto" title="palestinians" alt="palestinians" src="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image63_thumb.png" width="520" height="378" /></a></p>
<h3>&quot;Why are israeli&quot;</h3>
<p>Another <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f641.png" alt="🙁" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>And the women&#8230; true again.</p>
<p><a href="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image66.png"><img loading="lazy" decoding="async" style="display: block; float: none; margin-left: auto; margin-right: auto" title="israeli" alt="israeli" src="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image66_thumb.png" width="520" height="376" /></a> </p>
<h3>&quot;Why are mexican&quot;</h3>
<p>Ouch.</p>
<p><a href="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image42.png"><img loading="lazy" decoding="async" style="display: block; float: none; margin-left: auto; margin-right: auto" title="mexican" alt="mexican" src="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image42_thumb.png" width="520" height="393" /></a> </p>
<h3>&quot;Why are hawaiians&quot;</h3>
<p>I can think of a few reasons.</p>
<p><a href="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image69.png"><img loading="lazy" decoding="async" style="display: block; float: none; margin-left: auto; margin-right: auto" title="hawaiians" alt="hawaiians" src="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image69_thumb.png" width="520" height="327" /></a> </p>
<h3>&quot;Why are germans&quot;</h3>
<p>I can attest to the rude part.</p>
<p><a href="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image45.png"><img loading="lazy" decoding="async" style="display: block; float: none; margin-left: auto; margin-right: auto" title="germans" alt="germans" src="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image45_thumb_3.png" width="520" height="384" /></a> </p>
<h3>&quot;Why are italians&quot;</h3>
<p>We&#039;ve all seen the movies.</p>
<p><a href="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image48.png"><img loading="lazy" decoding="async" style="display: block; float: none; margin-left: auto; margin-right: auto" title="italians" alt="italians" src="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image48_thumb.png" width="520" height="373" /></a> </p>
<h3>&quot;Why are japanese&quot;</h3>
<p>Have you seen a non-weird Japanese video?</p>
<p><a href="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image9.png"><img loading="lazy" decoding="async" style="display: block; float: none; margin-left: auto; margin-right: auto" title="japanese" alt="japanese" src="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image9_thumb.png" width="520" height="407" /></a> </p>
<h3>&quot;Why are chinese&quot;</h3>
<p>The truth is there somewhere.</p>
<p><a href="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image6.png"><img loading="lazy" decoding="async" style="display: block; float: none; margin-left: auto; margin-right: auto" title="chinese" alt="chinese" src="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image6_thumb.png" width="520" height="395" /></a> </p>
<h3>&quot;Why are russians&quot;</h3>
<p>Very observational.</p>
<p><a href="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image_28.png"><img loading="lazy" decoding="async" style="display: block; float: none; margin-left: auto; margin-right: auto" title="russians" alt="russians" src="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image_thumb_27.png" width="520" height="325" /></a> </p>
<h3>&quot;Why are koreans&quot;</h3>
<p>Starcraft &#8211; so true.</p>
<p><a href="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image12.png"><img loading="lazy" decoding="async" style="display: block; float: none; margin-left: auto; margin-right: auto" title="koreans" alt="koreans" src="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image12_thumb.png" width="520" height="402" /></a> </p>
<h3>&quot;Why are british&quot;</h3>
<p>This is hilarious.</p>
</p>
</p>
<p><a href="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image_29.png"><img loading="lazy" decoding="async" style="display: block; float: none; margin-left: auto; margin-right: auto" title="british" alt="british" src="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image_thumb_28.png" width="520" height="393" /></a> </p>
<h3>&quot;Why are spanish&quot;</h3>
<p>100% correct.</p>
<p><a href="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image27.png"><img loading="lazy" decoding="async" style="display: block; float: none; margin-left: auto; margin-right: auto" title="spanish" alt="spanish" src="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image27_thumb.png" width="520" height="309" /></a> </p>
<h3>&quot;Why are polish&quot;</h3>
<p>This one was frankly news to me. Poor Polish people.</p>
<p><a href="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image30.png"><img loading="lazy" decoding="async" style="display: block; float: none; margin-left: auto; margin-right: auto" title="polish" alt="polish" src="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image30_thumb.png" width="520" height="406" /></a> </p>
<h3>&quot;Why are indians&quot;</h3>
<p>Indians are afraid of dogs?</p>
<p><a href="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image33.png"><img loading="lazy" decoding="async" style="display: block; float: none; margin-left: auto; margin-right: auto" title="indians" alt="indians" src="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image33_thumb.png" width="520" height="405" /></a></p>
<h3>&quot;Why are armenians&quot;</h3>
<p>I&#039;ve never seen a non-hairy Armenian.</p>
<p><a href="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image54.png"><img loading="lazy" decoding="async" style="display: block; float: none; margin-left: auto; margin-right: auto" title="armenians" alt="armenians" src="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image54_thumb.png" width="520" height="314" /></a> </p>
<p>&#160;</p>
<p>And something more generic, without comments.</p>
<h3>&quot;Why are white&quot;</h3>
<p><a href="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image_30.png"><img loading="lazy" decoding="async" style="display: block; float: none; margin-left: auto; margin-right: auto" title="white" alt="white" src="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image_thumb_29.png" width="520" height="389" /></a> </p>
<h3>&quot;Why are black&quot;</h3>
<p><a href="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image18.png"><img loading="lazy" decoding="async" style="display: block; float: none; margin-left: auto; margin-right: auto" title="black" alt="black" src="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image18_thumb.png" width="520" height="403" /></a> </p>
<h3>&quot;Why are asians&quot;</h3>
<p><a href="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image24.png"><img loading="lazy" decoding="async" style="display: block; float: none; margin-left: auto; margin-right: auto" title="asians" alt="asians" src="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image24_thumb.png" width="520" height="393" /></a> </p>
<p>&#160;</p>
<p>And something more local.</p>
<h3>&quot;Why are new yorkers&quot;</h3>
<p><a href="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image72.png"><img loading="lazy" decoding="async" style="display: block; float: none; margin-left: auto; margin-right: auto" title="new yorkers" alt="new yorkers" src="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image72_thumb.png" width="520" height="313" /></a> </p>
<h3>&quot;Why are texans&quot;</h3>
<p><a href="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image75.png"><img loading="lazy" decoding="async" style="display: block; float: none; margin-left: auto; margin-right: auto" title="texans" alt="texans" src="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image75_thumb.png" width="520" height="300" /></a> </p>
<p>&#160;</p>
<p>Of course I saved the best for last:</p>
<h3>&quot;Why are americans&quot;</h3>
<p><a href="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image36.png"><img loading="lazy" decoding="async" style="display: block; float: none; margin-left: auto; margin-right: auto" title="americans" alt="americans" src="http://beerpla.net/wp-content/uploads/91e07c17e3a0_11707/image36_thumb.png" width="520" height="408" /></a></p>
]]></content:encoded>
					
					<wfw:commentRss>http://beerpla.net/2010/01/31/why-are-presented-by-google-pictures/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
			</item>
		<item>
		<title>How To Remove Inline Hardcoded Recent Comments Sidebar Widget Style From Your WordPress Theme</title>
		<link>http://beerpla.net/2010/01/31/how-to-remove-inline-hardcoded-recent-comments-sidebar-widget-style-from-your-wordpress-theme/</link>
					<comments>http://beerpla.net/2010/01/31/how-to-remove-inline-hardcoded-recent-comments-sidebar-widget-style-from-your-wordpress-theme/#comments</comments>
		
		<dc:creator><![CDATA[Artem Russakovskii]]></dc:creator>
		<pubDate>Sun, 31 Jan 2010 09:45:15 +0000</pubDate>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[add_action]]></category>
		<category><![CDATA[comments]]></category>
		<category><![CDATA[functions]]></category>
		<category><![CDATA[functions.php]]></category>
		<category><![CDATA[hardcoded]]></category>
		<category><![CDATA[inline]]></category>
		<category><![CDATA[recent]]></category>
		<category><![CDATA[recent_comments_style]]></category>
		<category><![CDATA[remove]]></category>
		<category><![CDATA[remove_action]]></category>
		<category><![CDATA[sidebar]]></category>
		<category><![CDATA[theme]]></category>
		<category><![CDATA[widget]]></category>
		<guid isPermaLink="false">http://beerpla.net/2010/01/31/how-to-remove-inline-hardcoded-recent-comments-sidebar-widget-style-from-your-wordpress-theme/</guid>

					<description><![CDATA[<h2>The Problem</h2>
<p>If you use the Recent Comments sidebar widget in your WordPress installation, it&#039;s possible that you want to customize this widget&#039;s style.</p>
<p>You will quickly find, however, that as soon as you add the widget to your sidebar, it injects the following inline, hardcoded CSS into the containing page (using !important to make things worse):&#160; </p>
<pre line="0">&#60;style type=&#34;text/css&#34;&#62;.recentcomments a{display:inline !important;padding:0 !important;margin:0 !important;}&#60;/style&#62;</pre>
<p>The code above comes from <strong><em>recent_comments_style()</em></strong> (found in wp-includes/default-widgets.php), which is in turn called by <strong><em>WP_Widget_Recent_Comments()</em></strong> in the same file (this is just an old-style PHP4 constructor &#8211; same as PHP5&#039;s __construct()), which is triggered when the Recent Comments widget is used:</p>
<pre line="0">add_action( 'wp_head', array(&#38;$this, 'recent_comments_style') );</pre>
<p>This leaves a bad taste in my mouth because:</p>
<ul>
<li>the </li>...<div class=clear></div> <a href="http://beerpla.net/2010/01/31/how-to-remove-inline-hardcoded-recent-comments-sidebar-widget-style-from-your-wordpress-theme/" class="read_more"><div class=excerpt-end>Read the rest of this article &#187;</div></a></ul>]]></description>
										<content:encoded><![CDATA[<h2>The Problem</h2>
<p>If you use the Recent Comments sidebar widget in your WordPress installation, it&#039;s possible that you want to customize this widget&#039;s style.</p>
<p>You will quickly find, however, that as soon as you add the widget to your sidebar, it injects the following inline, hardcoded CSS into the containing page (using !important to make things worse):&#160; </p>
<pre line="0">&lt;style type=&quot;text/css&quot;&gt;.recentcomments a{display:inline !important;padding:0 !important;margin:0 !important;}&lt;/style&gt;</pre>
<p>The code above comes from <strong><em>recent_comments_style()</em></strong> (found in wp-includes/default-widgets.php), which is in turn called by <strong><em>WP_Widget_Recent_Comments()</em></strong> in the same file (this is just an old-style PHP4 constructor &#8211; same as PHP5&#039;s __construct()), which is triggered when the Recent Comments widget is used:</p>
<pre line="0">add_action( 'wp_head', array(&amp;$this, 'recent_comments_style') );</pre>
<p>This leaves a bad taste in my mouth because:</p>
<ul>
<li>the style is automatically forced into any page that embeds the widget </li>
<li>it uses !important to override any existing styles </li>
<li>it cannot be configured from the widget </li>
<li>this is a core WordPress widget and not some widget added by a random plugin. WordPress should not contain such bad practices. </li>
</ul>
<p>After seeing this, I raised a new <a href="http://core.trac.wordpress.org/ticket/11928" rel="nofollow">issue #11928</a> in the WordPress bug tracker but in the meantime, of course, I could go and hack the default-widgets.php core file to solve this problem. That, of course, would be a horrible thing to do &#8211; the next upgrade could wipe my changes or result in a conflict (if upgrading via svn). In general, one should never need to modify core files.</p>
<h2>The Solution</h2>
<p>Fortunately, there is a solution that doesn&#039;t involve modifying core files. Remember that we are talking about WordPress here, which gained its popularity due to the ease of customization.</p>
<p>Normally, we would just need to remove the <strong><em>recent_comments_style</em></strong> hook, which would prevent it from ever firing and injecting the CSS. In fact, <a href="http://webstractions.com/wordpress/remove-recent-comments-inline-styl/" rel="nofollow">somebody over at webstractions.com</a> already took a crack at this approach with the following code, which may have worked for a while but doesn&#039;t anymore:</p>
<pre line="1">function remove_wp_widget_recent_comments_style() {
   if ( has_filter('wp_head', 'wp_widget_recent_comments_style') ) {
      remove_filter('wp_head', 'wp_widget_recent_comments_style' );
   }
}
add_filter( 'wp_head', 'remove_wp_widget_recent_comments_style', 1 );</pre>
<p>This code doesn&#039;t work in the current version of WordPress because <strong><em>recent_comments_style()</em></strong> belongs to the <strong><em>WP_Widget_Recent_Comments</em></strong> class, and we need a tiny bit more effort to get through to the object of that class.</p>
<p>The following snippet, suggested by <a href="http://twitter.com/nacin" rel="nofollow">Andrew Nacin</a> in a comment to the bug I opened up, does the job and works in WordPress 2.9.1:</p>
<pre line="1">add_action('widgets_init', 'my_remove_recent_comments_style');
function my_remove_recent_comments_style() {
	global $wp_widget_factory;
	remove_action('wp_head', array($wp_widget_factory-&gt;widgets['WP_Widget_Recent_Comments'], 'recent_comments_style'));
}</pre>
<p>This code first gets access to the right object and then passes it to the <strong><em>remove_action()</em></strong> function, along with the right function name <strong><em>recent_comments_style</em></strong>. Stick it intoyour functions.php and it should do the trick.</p>
<p>And there you have it.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://beerpla.net/2010/01/31/how-to-remove-inline-hardcoded-recent-comments-sidebar-widget-style-from-your-wordpress-theme/feed/</wfw:commentRss>
			<slash:comments>12</slash:comments>
		
		
			</item>
		<item>
		<title>WordPress Developers &#8211; How Do You Make A Living [Poll + Discussion]?</title>
		<link>http://beerpla.net/2010/01/18/wordpress-developers-how-do-you-make-a-living-poll-discussion/</link>
					<comments>http://beerpla.net/2010/01/18/wordpress-developers-how-do-you-make-a-living-poll-discussion/#comments</comments>
		
		<dc:creator><![CDATA[Artem Russakovskii]]></dc:creator>
		<pubDate>Tue, 19 Jan 2010 01:33:45 +0000</pubDate>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[automattic]]></category>
		<category><![CDATA[core]]></category>
		<category><![CDATA[cost]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[living]]></category>
		<category><![CDATA[money]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[poll]]></category>
		<category><![CDATA[salary]]></category>
		<category><![CDATA[theme]]></category>
		<guid isPermaLink="false">http://beerpla.net/2010/01/18/wordpress-developers-how-do-you-make-a-living-poll-discussion/</guid>

					<description><![CDATA[<h2>The Question</h2>
<p>I&#039;d like to pose this question to all WordPress developers &#8211; plugin, theme, as well as core ones:</p>
<blockquote>
<div class="quote_left"></div>
<p>How do you make your living?</p>
</blockquote>
<p>And, for clarification, by this I mean: &#34;what are your primary sources of income?&#34;</p>
<h2>Open Source</h2>
<p>Open source is a beautiful concept but it often comes with a price tag or, rather, the inverse price tag: most of the time you are not being paid for your time (of course, there are exceptions, such as companies hiring dedicated open source developers and keeping them on their direct payroll).</p>
<p>Everyone has to make a living, however, and everyone has their ways.</p>
<p>Developers can benefit from such income sources as:</p>
<ul>
<li><strong><em>advertising</em></strong> on their sites, fueled by </li>...<div class=clear></div> <a href="http://beerpla.net/2010/01/18/wordpress-developers-how-do-you-make-a-living-poll-discussion/" class="read_more"><div class=excerpt-end>Read the rest of this article &#187;</div></a></ul>]]></description>
										<content:encoded><![CDATA[<h2>The Question</h2>
<p>I&#039;d like to pose this question to all WordPress developers &#8211; plugin, theme, as well as core ones:</p>
<blockquote>
<div class="quote_left"></div>
<p>How do you make your living?</p>
</blockquote>
<p>And, for clarification, by this I mean: &quot;what are your primary sources of income?&quot;</p>
<h2>Open Source</h2>
<p>Open source is a beautiful concept but it often comes with a price tag or, rather, the inverse price tag: most of the time you are not being paid for your time (of course, there are exceptions, such as companies hiring dedicated open source developers and keeping them on their direct payroll).</p>
<p>Everyone has to make a living, however, and everyone has their ways.</p>
<p>Developers can benefit from such income sources as:</p>
<ul>
<li><strong><em>advertising</em></strong> on their sites, fueled by boosted Alexa and Google PR ratings </li>
<li><strong><em>freelancing</em></strong> and <strong><em>consulting</em></strong> work directly related to their open source project </li>
<li><strong><em>presenting</em></strong> at developer conferences </li>
<li><strong><em>creating products</em></strong> based on the open source projects they&#039;re involved with, as the technologies should be very familiar to them </li>
</ul>
<h2>WordPress</h2>
<p>Since <a href="http://wordpress.org/support/profile/276841" rel="nofollow">I&#039;ve always been interested in WordPress development</a>, I feel connected to the WordPress community and would like to get some insight into the lives of WordPress developers.</p>
<p>Therefore, in addition to the main question, I have some follow-up questions:</p>
<ul>
<li>does Automattic pay WordPress core developers <strong><em>salary</em></strong>? </li>
<li>are there many WordPress core developers working for Automattic <strong><em>full time</em></strong>, besides Matt? </li>
<li>how about you, <strong><em>plugin</em></strong> and <strong><em>theme</em></strong> developers &#8211; are any of you successful enough that you can <strong><em>make a living off your plugins or themes</em></strong>? </li>
<li>what are your <strong><em>secrets</em></strong>? </li>
</ul>
<p>So in your responses, please state whether you&#039;re a <strong><em>core</em></strong> or <strong><em>plugin/theme</em></strong> developer, and answer the questions above that you can.</p>
<p>Of course, it goes without saying that any extra bits of advice would be welcomed as well.</p>
Note: There is a poll embedded within this post, please visit the site to participate in this post's poll.
<p><strong>Update</strong>: this post is now sponsored by <a href="http://www.wirefly.com/learn/">Wirefly Learn</a>, where you can find a ton of cell phone tutorials, comparisons, and videos.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://beerpla.net/2010/01/18/wordpress-developers-how-do-you-make-a-living-poll-discussion/feed/</wfw:commentRss>
			<slash:comments>19</slash:comments>
		
		
			</item>
	</channel>
</rss>
