<?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>QiGuang Articles</title>
	<atom:link href="http://articles.qiguang.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://articles.qiguang.net</link>
	<description></description>
	<lastBuildDate>Wed, 24 Aug 2011 12:37:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.5</generator>
		<item>
		<title>Killing the Windows Update Nag Popup</title>
		<link>http://articles.qiguang.net/2011/06/02/killing-the-windows-update-nag-popup/</link>
		<comments>http://articles.qiguang.net/2011/06/02/killing-the-windows-update-nag-popup/#comments</comments>
		<pubDate>Thu, 02 Jun 2011 17:55:26 +0000</pubDate>
		<dc:creator>articles</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://articles.qiguang.net/?p=251</guid>
		<description><![CDATA[How do you tell the Windows Update popup that only gives you the options "Restart Now" or "Postpone" to simply just go away until you restart your computer yourself?  With a simple command.  Here's how.]]></description>
		<wfw:commentRss>http://articles.qiguang.net/2011/06/02/killing-the-windows-update-nag-popup/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Impressions of Firefox 4</title>
		<link>http://articles.qiguang.net/2011/05/24/impressions-of-firefox-4/</link>
		<comments>http://articles.qiguang.net/2011/05/24/impressions-of-firefox-4/#comments</comments>
		<pubDate>Wed, 25 May 2011 01:05:26 +0000</pubDate>
		<dc:creator>articles</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Headline]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://articles.qiguang.net/?p=215</guid>
		<description><![CDATA[I'm one of those people who subscribe to the idea, "if it ain't broke, don't fix it," which is why I was a bit hesitant to install Firefox 4.  But after a month of using the new <a href="http://en.wikipedia.org/wiki/Gecko_%28layout_engine%29">Gecko 2.0</a> based web browser, it's left such a positive impression on me that I've been inspired to write about it here. ]]></description>
		<wfw:commentRss>http://articles.qiguang.net/2011/05/24/impressions-of-firefox-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unpacking Javascript</title>
		<link>http://articles.qiguang.net/2011/03/29/unpacking-javascript/</link>
		<comments>http://articles.qiguang.net/2011/03/29/unpacking-javascript/#comments</comments>
		<pubDate>Tue, 29 Mar 2011 17:57:55 +0000</pubDate>
		<dc:creator>articles</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://articles.qiguang.net/?p=194</guid>
		<description><![CDATA[If you&#8217;ve worked with numerous javascript-heavy open source web applications, you&#8217;ve probably come across javascript files that look like they were encoded into a single large block of gibberish.  Whether the purpose of this obfuscation was to protect the original code or to minimize the download size, it becomes a pain if you are trying to debug or modify a piece of javascript code that looks something like this:

eval(function(p,a,c,k,e,d){e=function(c){return c};if(!''.replace(/^/,
String)){while(c--){d[c]=k[c]&#124;&#124;c}k=[(function(e){return d[e]})];
e=(function(){return'\\w+'});c=1};while(c--){if(k[c]){p=p.replace(
new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('3.0(\'1 2!\');',
4,4,'write&#124;Hello&#124;World&#124;document'.split('&#124;'),0,{}))

Well, it turns out this &#8220;encoding&#8221; is the result of one of several &#8220;packers&#8221; (which you may have realized if you noticed the &#8220;cute&#8221; arguments of the first function), the most famous of which is probably Dean Edward&#8217;s packer.  
How it works is like this.  The characters that make up the content of the code are all contained at the end of the block, albeit jumbled together in a seemingly random order.  The eval() function at the beginning of the block contains the logic to rearrange those characters into the correct order necessary to create the original javascript code.  
This means you could actually run the code in your browser and it should output the correct javascript code for you.  Of &#8230; <a href="http://articles.qiguang.net/2011/03/29/unpacking-javascript/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
		<wfw:commentRss>http://articles.qiguang.net/2011/03/29/unpacking-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Case Sensitivity in PHP</title>
		<link>http://articles.qiguang.net/2010/07/14/case-sensitivity-in-php/</link>
		<comments>http://articles.qiguang.net/2010/07/14/case-sensitivity-in-php/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 18:14:21 +0000</pubDate>
		<dc:creator>articles</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://articles.qiguang.net/?p=174</guid>
		<description><![CDATA[It surprised me to learn that class names in PHP are actually case insensitive.  That means the following is legal:

class MyController {}
$obj = new mYcOnTrOlLeR;

User defined function names are also case insensitive, as well as certain keywords and constructs like echo.  Variable names are case sensitive, so the madness ends there at least.  This can be confusing to people coming from other languages like Java, Ruby, and C (and its variants) where everything is case sensitive.  
To be safe, you should probably always keep your cases straight and strictly defined when working in PHP.  But knowing this helps when reading through code and wondering how a new object can be created when there&#8217;s no class defined with an exact, case-sensitive match.
]]></description>
		<wfw:commentRss>http://articles.qiguang.net/2010/07/14/case-sensitivity-in-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Curly Braces within Double Quotes in PHP</title>
		<link>http://articles.qiguang.net/2010/05/31/curly-braces-within-double-quotes-in-php/</link>
		<comments>http://articles.qiguang.net/2010/05/31/curly-braces-within-double-quotes-in-php/#comments</comments>
		<pubDate>Tue, 01 Jun 2010 02:19:48 +0000</pubDate>
		<dc:creator>articles</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://articles.qiguang.net/?p=25</guid>
		<description><![CDATA[Curly braces are used to delimit variables in double quoted strings in PHP. While very useful in many situations, this can cause confusion when trying to print a combination of curly braces and variables.]]></description>
		<wfw:commentRss>http://articles.qiguang.net/2010/05/31/curly-braces-within-double-quotes-in-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Hard Drive Dead? Stick it in the Freezer!</title>
		<link>http://articles.qiguang.net/2009/05/12/hard-drive-died-stick-it-in-the-freezer/</link>
		<comments>http://articles.qiguang.net/2009/05/12/hard-drive-died-stick-it-in-the-freezer/#comments</comments>
		<pubDate>Tue, 12 May 2009 16:37:16 +0000</pubDate>
		<dc:creator>articles</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[hdd]]></category>
		<category><![CDATA[storage]]></category>

		<guid isPermaLink="false">http://articles.qiguang.net/?p=67</guid>
		<description><![CDATA[Okay, so I’ve known about this idea for a while but never had a chance to try it out until now. The basic idea is if your hard drive suddenly fails and your computer can no longer read it, putting it in a freezer for a few hours might fix it so that you can use it long enough to copy your data over to a backup drive before it fails again.]]></description>
		<wfw:commentRss>http://articles.qiguang.net/2009/05/12/hard-drive-died-stick-it-in-the-freezer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Automating Facebook</title>
		<link>http://articles.qiguang.net/2009/01/27/6/</link>
		<comments>http://articles.qiguang.net/2009/01/27/6/#comments</comments>
		<pubDate>Tue, 27 Jan 2009 21:49:02 +0000</pubDate>
		<dc:creator>articles</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[facebook]]></category>

		<guid isPermaLink="false">http://articles.qiguang.net/?p=6</guid>
		<description><![CDATA[You know those Facebook applications that require you to click a button over and over again?  Ever wish you could program your browser to automatically click those buttons so you don't have to do it yourself? With a little programming knowledge you can, and here's how.]]></description>
		<wfw:commentRss>http://articles.qiguang.net/2009/01/27/6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dealing with High Laptop Temperatures</title>
		<link>http://articles.qiguang.net/2008/10/24/dealing-with-high-laptop-temperatures/</link>
		<comments>http://articles.qiguang.net/2008/10/24/dealing-with-high-laptop-temperatures/#comments</comments>
		<pubDate>Fri, 24 Oct 2008 16:56:13 +0000</pubDate>
		<dc:creator>articles</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[computers]]></category>

		<guid isPermaLink="false">http://articles.qiguang.net/?p=72</guid>
		<description><![CDATA[My laptop had started overheating recently, so I took some steps to help cool it down and thought I'd share them here.  ]]></description>
		<wfw:commentRss>http://articles.qiguang.net/2008/10/24/dealing-with-high-laptop-temperatures/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Modding a Nintendo Wii</title>
		<link>http://articles.qiguang.net/2008/04/01/modding-a-nintendo-wii/</link>
		<comments>http://articles.qiguang.net/2008/04/01/modding-a-nintendo-wii/#comments</comments>
		<pubDate>Tue, 01 Apr 2008 17:08:26 +0000</pubDate>
		<dc:creator>articles</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Headline]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[mods]]></category>
		<category><![CDATA[wii]]></category>

		<guid isPermaLink="false">http://articles.qiguang.net/?p=77</guid>
		<description><![CDATA[Ever since the PS2, modchips have become extremely popular among technology enthusiasts.  Installing a modchip on your Wii allows you to play Wii backups, play GameCube backups, play Wii games from different regions, and run homebrew games and applications.  Here, we'll walk through the steps involved in modding a Nintendo Wii, from deciding which modchip to use to the actual installation.]]></description>
		<wfw:commentRss>http://articles.qiguang.net/2008/04/01/modding-a-nintendo-wii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PlayStation 2 Hacking Notes</title>
		<link>http://articles.qiguang.net/2007/07/27/playstation-2-hacking-notes/</link>
		<comments>http://articles.qiguang.net/2007/07/27/playstation-2-hacking-notes/#comments</comments>
		<pubDate>Sat, 28 Jul 2007 02:27:29 +0000</pubDate>
		<dc:creator>articles</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[gaming]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[playstation]]></category>

		<guid isPermaLink="false">http://articles.qiguang.net/?p=110</guid>
		<description><![CDATA[I hacked my PS2 a long, long time ago to play games off the hard drive and use the SNES emulator. Because it’s not often that I install new games, each time I want to do so, I forget what I need to do and end up spending 30 minutes searching for files and instructions. Well, enough of that– I’m going to write down some notes here to help me remember what to do, even if the PS2 is so last-generation.]]></description>
		<wfw:commentRss>http://articles.qiguang.net/2007/07/27/playstation-2-hacking-notes/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

