<?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>Mike Gerwitz</title>
	<atom:link href="http://www.mikegerwitz.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mikegerwitz.com</link>
	<description>Free Software Developer</description>
	<lastBuildDate>Mon, 08 Mar 2010 19:36:39 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Beauty From Treetops</title>
		<link>http://www.mikegerwitz.com/2010/02/06/beauty-from-treetops/</link>
		<comments>http://www.mikegerwitz.com/2010/02/06/beauty-from-treetops/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 01:42:38 +0000</pubDate>
		<dc:creator>Mike Gerwitz</dc:creator>
				<category><![CDATA[Poetry]]></category>

		<guid isPermaLink="false">http://www.mikegerwitz.com/?p=249</guid>
		<description><![CDATA[I will grow higher&#8230;
I will grow stronger&#8230;
My life with be brighter..
My life will be sounder..
My hopes resemble reason.
Don&#8217;t let me flounder.
Soon I&#8217;ll look up.
The world will be beautiful.
My thoughts will be shaken&#8230;
My will will be weakened&#8230;
All will feel against me..
Nobody will guide me..
But I&#8217;ll be my own guide.
I&#8217;ll stand by my own side.
Watch me grow [...]]]></description>
			<content:encoded><![CDATA[<p>I will grow higher&#8230;<br />
I will grow stronger&#8230;<br />
My life with be brighter..<br />
My life will be sounder..<br />
My hopes resemble reason.<br />
Don&#8217;t let me flounder.<br />
Soon I&#8217;ll look up.<br />
The world will be beautiful.</p>
<p>My thoughts will be shaken&#8230;<br />
My will will be weakened&#8230;<br />
All will feel against me..<br />
Nobody will guide me..<br />
But I&#8217;ll be my own guide.<br />
I&#8217;ll stand by my own side.<br />
Watch me grow stronger.</p>
<p>And my sight has shown me&#8230;<br />
How the world will behold me&#8230;<br />
I feel my face lighten..<br />
I feel my grip strengthen..<br />
Life&#8217;s presence surrounds me.<br />
My hope is abounding.<br />
Watch me grow higher.</p>
<p>My thoughts have grown brighter&#8230;<br />
My will has grown sounder&#8230;<br />
And though I was week..<br />
Behold, I am stronger!<br />
And from my new perch,<br />
The landscape appears so hopeful.<br />
I look up.<br />
The world is beautiful.</p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.mikegerwitz.com%2F2010%2F02%2F06%2Fbeauty-from-treetops%2F&amp;linkname=Beauty%20From%20Treetops">Share/Bookmark</a>]]></content:encoded>
			<wfw:commentRss>http://www.mikegerwitz.com/2010/02/06/beauty-from-treetops/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>False Freedom in Wordpress Themes</title>
		<link>http://www.mikegerwitz.com/2010/02/06/false-freedom-in-wordpress-themes/</link>
		<comments>http://www.mikegerwitz.com/2010/02/06/false-freedom-in-wordpress-themes/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 01:09:08 +0000</pubDate>
		<dc:creator>Mike Gerwitz</dc:creator>
				<category><![CDATA[Free Software]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.mikegerwitz.com/?p=235</guid>
		<description><![CDATA[I&#8217;ve always had one major issue with some of the &#8220;free&#8221; Wordpress themes out there &#8211; the encryption of footer data. I&#8217;ve seen countless themes licensed under the GNU GPL that violate the very principles for which it exists.
Someone took the time to make their theme available under the GPL &#8211; that&#8217;s an excellent, noble [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve always had one major issue with some of the &#8220;free&#8221; Wordpress themes out there &#8211; the encryption of footer data. I&#8217;ve seen countless themes licensed under the <a href="http://www.gnu.org/licenses/gpl.html"><acronym title="GNU's Not Unix!">GNU</acronym> <acronym title="GNU General Public License">GPL</acronym></a> that violate the very principles for which it exists.</p>
<p>Someone took the time to make their theme available under the <acronym title="GNU General Public License">GPL</acronym> &#8211; that&#8217;s an excellent, noble thing. However, the encryption of footer data shows a complete lack of understanding of the philosophy behind <a href="http://www.gnu.org/philosophy/free-sw.html">Free Software</a> and the <acronym title="GNU General Public License">GPL</acronym>.</p>
<p>Freedom #1 states:</p>
<blockquote><p>The freedom to study how the program works, and change it to make it do what you wish (freedom 1). Access to the source code is a precondition for this.</p></blockquote>
<p>Here is an example footer from one of the themes I found (most of the content has been removed and what remains has been altered to (a) not throw anyone under a bus and (b) reduce the size of this post):</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p235code2'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p2352"><td class="code" id="p235code2"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">eval</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">gzinflate</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">base64_decode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'gfE8f[...]T8='</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">/* WARNING: This file is protected by copyright law. To reverse engineer or decode this file is strictly prohibited. */</span>
<span style="color: #000088;">$o</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;ZnvJF[...]Mn=&quot;</span><span style="color: #339933;">;</span>eval<span style="color: #009900;">&#40;</span><span style="color: #990000;">base64_decode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Xvxsbe0wO2V2YWwoYmFzZT[...]GxsfW9cnw==&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>return<span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Clearly, this is in violation of Freedom #1 for the following reasons:</p>
<ol>
<li><strong>The only way to gain access to the source code is to decrypt (reverse engineer) the above content.</strong> The fact that it is a very simple matter to do so is irrelevant &#8211; the source code should be clearly visible.</li>
<li><strong>There is a comment in the code that clearly states that any attempt to reverse engineer the code is illegal.</strong> This is in direct conflict with the <acronym title="GNU General Public License">GPL</acronym> &#8211; in fact, it&#8217;s completely incompatible. So that statement is actually negated by the license. You&#8217;re more than welcome to do so under terms of the <acronym title="GNU General Public License">GPL</acronym>.</li>
<li><strong>Since you do not have access to the original source code without decrypting the data, you are not free to modify it.</strong> Many try to decrypt the data and are unable to do so because they do are familiar with the <acronym title="PHP: Hypertext Preprocessor">PHP</acronym> language or are otherwise unable to figure out how to decrypt it. If you do decrypt the above, you will find that the majority of it is <acronym title="HyperText Markup Language">HTML</acronym>, with one call to <tt>wp_footer()</tt>. This means that, were it not encrypted, users would need only know <acronym title="HyperText Markup Language">HTML</acronym> to safely modify it.</li>
</ol>
<p>But those aren&#8217;t the only issues. There&#8217;s also some other considerations:</p>
<ol>
<li>The encrypted footer is <strong>7743 bytes</strong>. Decrypted, it is roughly <strong>996 bytes</strong>. That is a <em>huge</em> size difference &#8211; a lot of wasted bytes to secure the footer.</li>
<li>There are <strong>a great number of function calls in order to decrypt the footer</strong>. You can see some of them above, but the eval()&#8217;d code contains additional methods to decrypt further encrypted and obfuscated code. That&#8217;s unnecessary overhead. Not to mention that <strong>eval() in itself is very slow</strong>. <em>So, not only did the author prevent you from modifying the footer, you&#8217;re taking a performance hit because of it!</em></li>
</ol>
<p>I can understand why the author would want to encrypt the footer. They probably felt that, if they&#8217;re releasing their source code free of charge to the public, they should at least be allowed to keep their copyright notice in tact. And yes, they should be able to. In fact, the copyright notice should never be removed on <acronym title="GNU General Public License">GPL</acronym>&#8217;d code &#8211; it&#8217;s a legal requirement to keep it there. It is still the author&#8217;s work, and it is a copyrighted work, so the notice must remain in tact. But yes, people do remove it anyway, even though they shouldn&#8217;t.</p>
<p>But when an author takes the time to not only prevent me from modifying the source, but in doing so causes me to incur a performance hit, <em>and</em> on top of it licenses the theme under the <acronym title="GNU General Public License">GPL</acronym> &#8211; I see some very large ethical issues. Especially considering that all I wanted to do was add my own link, and its placement required being able to modify the encrypted <acronym title="HyperText Markup Language">HTML</acronym>.</p>
<p>I propose that all those who support free software boycott such themes and send a notice to the authors when they come by such themes (or send them a link to this post). Furthermore, do not let developers who try to restrict your freedom push you around. I do not propose you remove the copyright notice &#8211; in fact, I would never, ever suggest that someone do that; but I do propose that, if the theme is licensed under the <acronym title="GNU General Public License">GPL</acronym>, you decrypt the footer regardless of any notices that state you otherwise cannot. The license clearly states you have access to the source code, and if you are not given such access, the code either needs to be relicensed, or the developer needs to comply with its terms.</p>
<p>As there are also many themes out there that encrypt their data and are <em>not</em> licensed under the <acronym title="GNU General Public License">GPL</acronym> or other free software licenses, I&#8217;m not going to provide any methods of decrypting the data. I do not support proprietary software, but I also do not encourage license violations.</p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.mikegerwitz.com%2F2010%2F02%2F06%2Ffalse-freedom-in-wordpress-themes%2F&amp;linkname=False%20Freedom%20in%20Wordpress%20Themes">Share/Bookmark</a>]]></content:encoded>
			<wfw:commentRss>http://www.mikegerwitz.com/2010/02/06/false-freedom-in-wordpress-themes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft: Hijacking Your Data</title>
		<link>http://www.mikegerwitz.com/2010/01/03/microsoft-hijacking-your-data/</link>
		<comments>http://www.mikegerwitz.com/2010/01/03/microsoft-hijacking-your-data/#comments</comments>
		<pubDate>Mon, 04 Jan 2010 03:32:13 +0000</pubDate>
		<dc:creator>Mike Gerwitz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[drm]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[privacy]]></category>

		<guid isPermaLink="false">http://www.mikegerwitz.com/?p=224</guid>
		<description><![CDATA[I recently read this story on Slashdot:
Microsoft Seeks Patent On Shaming Fat Gamers
The idea is that Microsoft wants to create a system whereby it will gather physical statistics on a user and alter the game play around those characteristics. For example, as the article mentioned, an obese player may be cut off from playing. I [...]]]></description>
			<content:encoded><![CDATA[<p>I recently read this story on Slashdot:</p>
<p><a href="http://games.slashdot.org/story/09/12/18/1649253/Microsoft-Seeks-Patent-On-Shaming-Fat-Gamers">Microsoft Seeks Patent On Shaming Fat Gamers</a></p>
<p>The idea is that Microsoft wants to create a system whereby it will gather physical statistics on a user and alter the game play around those characteristics. For example, as the article mentioned, an obese player may be cut off from playing. I suppose the idea could have benefits &#8211; such as helping players get into shape if they can&#8217;t wait to get back on their consoles. But this raises some serious ethical issues. What, for example, about those players who are unable to lose weight for genetic reasons? Or what ever happened to those who play video games to escape from the real world? Hell, that&#8217;s half the fun in my opinion.</p>
<blockquote><p>Microsoft also proposes shaping gaming experiences by using &#8216;psychological and demographic information such as education level, geographic location, age, sex, intelligence quotient, socioeconomic class, occupation, marital/relationship status, religious belief, political affiliation, etc.&#8217;</p></blockquote>
<p>This to me raises some serious privacy issues. I would never wish a video game or vendor to have <em>that</em> much personal information on myself. In fact, I feel the name on a credit card is too much information for the vendor or any party to have. But the traits listed above? Look, placing yourself in a video game is a pretty cool idea if you consent to it. For those who do want to give up all of that personal information, good for them. But basing game play off of factors like physical appearance, sex, religion, politically affiliation, etc could turn into a discriminatory battle.</p>
<p>Furthermore, you know that corporations will use this information for other statistical purposes, or to sell to other companies. Would you want a company like Microsoft to know more about you than you probably do? The only way I would subscribe to such a system is if it (a) used an open protocol, (b) was subject to very strict privacy standards and policies that are heavily enforced and investigated, (c) we were able to strictly state what information we wanted to give to the vendor, (d) we were able to choose what remote server to upload such statistical data to (i.e. one we may be able to trust) and (e) if the video game provided this is an <em>option</em> rather than a requirement. The patent does use the word &#8220;nonvolitionally&#8221; when referencing information gathered from the user, but we&#8217;ll see how that goes. Vendors can still state, &#8220;oh, uh, you can only play this game if you give us this, this, this and this.&#8221;</p>
<p>&#8230;surprise, the girl you&#8217;ve been lusting over in your video game is actually a guy, and this will prove it.</p>
<p>The patent states:</p>
<blockquote><p>[0009]In yet a further aspect, an apparatus is provided for interacting with a virtual gaming environment. An information source is accessed for receiving a health information nonvolitionally obtained from a user. These sources are at least two of a a physiological sensor, a networked healthcare information repository, and a healthcare smart card.</p></blockquote>
<p>I would be highly against anyone having access to information on that type of level &#8211; as everyone else should be. This is just one example of how vendors like Microsoft may try to steal information from you. If they were able to have access to heathcare records, you wouldn&#8217;t be able to say &#8220;I only want you to see this&#8221;. No, they&#8217;d probably be able to see it all.</p>
<p>Again, I&#8217;m not saying it&#8217;s a horrible idea. I&#8217;ve often fantasized about placing yourself in a virtual reality, where the game actually rendered you in the virtual environment. But considering Microsoft&#8217;s track record, they are not the company to implement or control this.</p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.mikegerwitz.com%2F2010%2F01%2F03%2Fmicrosoft-hijacking-your-data%2F&amp;linkname=Microsoft%3A%20Hijacking%20Your%20Data">Share/Bookmark</a>]]></content:encoded>
			<wfw:commentRss>http://www.mikegerwitz.com/2010/01/03/microsoft-hijacking-your-data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Grub 2 Hangs on Boot</title>
		<link>http://www.mikegerwitz.com/2009/11/01/grub-2-hangs-on-boot/</link>
		<comments>http://www.mikegerwitz.com/2009/11/01/grub-2-hangs-on-boot/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 00:10:36 +0000</pubDate>
		<dc:creator>Mike Gerwitz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[grub]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.mikegerwitz.com/2009/11/01/grub-2-hangs-on-boot/</guid>
		<description><![CDATA[When BETA testing Ubuntu Karmic (9.10), I noticed that the whole boot process wasn&#8217;t so fast. This was primarily due to Grub 2 hanging for nearly 35 seconds each boot.
I haven&#8217;t the time to figure out what Grub is trying to do in that amount of time, but I did notice a solution. I have [...]]]></description>
			<content:encoded><![CDATA[<p>When BETA testing Ubuntu Karmic (9.10), I noticed that the whole boot process wasn&#8217;t so fast. This was primarily due to Grub 2 hanging for nearly 35 seconds each boot.</p>
<p>I haven&#8217;t the time to figure out what Grub is trying to do in that amount of time, but I did notice a solution. I have three HDDs. In the BIOS, it was set as the third boot device. By moving it to the top, Grub quickly moved along to boot Ubuntu.</p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.mikegerwitz.com%2F2009%2F11%2F01%2Fgrub-2-hangs-on-boot%2F&amp;linkname=Grub%202%20Hangs%20on%20Boot">Share/Bookmark</a>]]></content:encoded>
			<wfw:commentRss>http://www.mikegerwitz.com/2009/11/01/grub-2-hangs-on-boot/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ssh-copy-id and sshd port</title>
		<link>http://www.mikegerwitz.com/2009/10/07/ssh-copy-id-and-sshd-port/</link>
		<comments>http://www.mikegerwitz.com/2009/10/07/ssh-copy-id-and-sshd-port/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 03:21:57 +0000</pubDate>
		<dc:creator>Mike Gerwitz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[SSH]]></category>

		<guid isPermaLink="false">http://www.mikegerwitz.com/2009/10/07/ssh-copy-id-and-sshd-port/</guid>
		<description><![CDATA[For security purposes, I don&#8217;t run sshd on the default port (22). This gave me some problems when attempting to use the command ssh-copy-id. Ideally, you&#8217;d expect the following to work:

?View Code BASH1
ssh-copy-id -p XXXX -i ~/.ssh/id_rsa.pub username@host

However, that didn&#8217;t do anything but output an error:
Bad port 'umask 077; test -d .ssh &#124;&#124; mkdir .ssh [...]]]></description>
			<content:encoded><![CDATA[<p>For security purposes, I don&#8217;t run sshd on the default port (22). This gave me some problems when attempting to use the command <tt>ssh-copy-id</tt>. Ideally, you&#8217;d expect the following to work:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p120code4'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p1204"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p120code4"><pre class="bash" style="font-family:monospace;">ssh-copy-id <span style="color: #660033;">-p</span> XXXX <span style="color: #660033;">-i</span> ~<span style="color: #000000; font-weight: bold;">/</span>.ssh<span style="color: #000000; font-weight: bold;">/</span>id_rsa.pub username<span style="color: #000000; font-weight: bold;">@</span>host</pre></td></tr></table></div>

<p>However, that didn&#8217;t do anything but output an error:</p>
<p><tt>Bad port 'umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys'</tt></p>
<p>The solution was to enclose it in quotes as follows:</p>
<p>ssh-copy-id &#8216;-p XXXX -i ~/.ssh/id_rsa.pub username@host&#8217;</p>
<p>Hope that helps.</p>
<p>(The above error probably doesn&#8217;t make any sense. <tt>ssh-copy-id</tt> is a shell script. The command that appears in the error message is a command sent to the server via <acronym title="Secure Shell">SSH</acronym>. Feel free to take a look at the file: <tt>cat `locate ssh-copy-id | head -n1`</tt>)</p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.mikegerwitz.com%2F2009%2F10%2F07%2Fssh-copy-id-and-sshd-port%2F&amp;linkname=ssh-copy-id%20and%20sshd%20port">Share/Bookmark</a>]]></content:encoded>
			<wfw:commentRss>http://www.mikegerwitz.com/2009/10/07/ssh-copy-id-and-sshd-port/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>gnome-screensaver: What happens when you can&#8217;t unlock your PC.</title>
		<link>http://www.mikegerwitz.com/2009/10/01/gnome-screensaver-what-happens-when-you-cant-unlock-your-pc/</link>
		<comments>http://www.mikegerwitz.com/2009/10/01/gnome-screensaver-what-happens-when-you-cant-unlock-your-pc/#comments</comments>
		<pubDate>Thu, 01 Oct 2009 03:38:51 +0000</pubDate>
		<dc:creator>Mike Gerwitz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.mikegerwitz.com/2009/10/01/gnome-screensaver-what-happens-when-you-cant-unlock-your-pc/</guid>
		<description><![CDATA[This is an issue that has irritated me enough that I feel I should post my work-around. On Ubuntu (I&#8217;m not sure since what version &#8211; I&#8217;m currently using 9.04 Jaunty), I&#8217;ve noticed that every once in a while, gnome-screensaver would hang when I tried to log back in. Let me clarify a little. When [...]]]></description>
			<content:encoded><![CDATA[<p>This is an issue that has irritated me enough that I feel I should post my work-around. On Ubuntu (I&#8217;m not sure since what version &#8211; I&#8217;m currently using 9.04 Jaunty), I&#8217;ve noticed that every once in a while, gnome-screensaver would hang when I tried to log back in. Let me clarify a little. When you lock your computer, it fades out, that&#8217;s gnome-screensaver (assuming you&#8217;re using GNOME of course). When you move your mouse or hit a key and you are prompted for your password, that&#8217;s gnome-screensaver as well.</p>
<p>The problem is, there are times (however few) that I&#8217;d enter my password, and it&#8217;d just sit there. Everything would be disabled and it&#8217;d act like it was simply pausing due to an incorrect password.</p>
<p>But it&#8217;d never unlock.</p>
<p>As long as you know what the application is that&#8217;s running, you can kill it. Going off of a hunch, I hit <tt>Ctrl+Alt+F1</tt> to go to TTY1. I logged in under the same user, then typed the following command:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p118code6'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p1186"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p118code6"><pre class="bash" style="font-family:monospace;">  <span style="color: #c20cb9; font-weight: bold;">killall</span> gnome-screensaver</pre></td></tr></table></div>

<p>This successfully gets rid of the login screen. Simply hit <tt>Ctrl+Alt+F8</tt> (or whatever TTY your X session was running on), and tada!</p>
<p>Of course, you&#8217;ll have to run gnome-screen saver again or you won&#8217;t be able to lock your computer. Hit Alt+F2 and type &#8220;gnome-screensaver&#8221; to have it run in the background as it was before. It may also be a good idea to go back to TTY1 and log out, since you never want to leave a terminal wide open unprotected.</p>
<p>If you&#8217;re worried that someone might use this to bypass your login, don&#8217;t worry. They&#8217;d have to either log in as you in order to kill gnome-screensaver on your session, or they&#8217;d have to log in as root. And if they&#8217;re root, you have nowhere to hide anyway.</p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.mikegerwitz.com%2F2009%2F10%2F01%2Fgnome-screensaver-what-happens-when-you-cant-unlock-your-pc%2F&amp;linkname=gnome-screensaver%3A%20What%20happens%20when%20you%20can%26%238217%3Bt%20unlock%20your%20PC.">Share/Bookmark</a>]]></content:encoded>
			<wfw:commentRss>http://www.mikegerwitz.com/2009/10/01/gnome-screensaver-what-happens-when-you-cant-unlock-your-pc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>compgen -d: No such file or directory</title>
		<link>http://www.mikegerwitz.com/2009/08/25/compgen-d-no-such-file-or-directory/</link>
		<comments>http://www.mikegerwitz.com/2009/08/25/compgen-d-no-such-file-or-directory/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 03:47:52 +0000</pubDate>
		<dc:creator>Mike Gerwitz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[GNU/Linux]]></category>

		<guid isPermaLink="false">http://www.mikegerwitz.com/2009/08/25/compgen-d-no-such-file-or-directory/</guid>
		<description><![CDATA[For a while, I was having a problem on my Ubuntu server. After creating a user, I noticed that tab completion didn&#8217;t work properly. In fact, it went so far as to output an error:

]]></description>
			<content:encoded><![CDATA[<p>For a while, I was having a problem on my Ubuntu server. After creating a user, I noticed that tab completion didn&#8217;t work properly. In fact, it went so far as to output an error:<br />
<code><br />
<( compgen -d -- '/my/dir' ): No such file or directory</code></p>
<p>Where "/my/dir" would vary depending on what you're tab-completing. I suspected the problem might be with permissions, but that came up short.</p>
<p>I finally came across the solution here:</p>
<p><a href="http://serverfault.com/questions/47554/ubuntu-tab-completon-and-mc-problems">http://serverfault.com/questions/47554/ubuntu-tab-completon-and-mc-problems</a></p>
<p>Since I had trouble finding much information on Google, hopefully this post will help. It turned out to be a shell issue. When I created the user, I never specified the default shell to use (<acronym title="Bourne Again Shell">BASH</acronym>), and I apparently never went back and changed it. Which explains why it worked on some of my users' accounts but not others.</p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.mikegerwitz.com%2F2009%2F08%2F25%2Fcompgen-d-no-such-file-or-directory%2F&amp;linkname=compgen%20-d%3A%20No%20such%20file%20or%20directory">Share/Bookmark</a>]]></content:encoded>
			<wfw:commentRss>http://www.mikegerwitz.com/2009/08/25/compgen-d-no-such-file-or-directory/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PHP Extension Writing: Namespaces</title>
		<link>http://www.mikegerwitz.com/2009/06/21/php-extension-writing-namespaces/</link>
		<comments>http://www.mikegerwitz.com/2009/06/21/php-extension-writing-namespaces/#comments</comments>
		<pubDate>Sun, 21 Jun 2009 08:53:47 +0000</pubDate>
		<dc:creator>Mike Gerwitz</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.mikegerwitz.com/?p=97</guid>
		<description><![CDATA[I&#8217;m fairly new to PHP extension writing. I&#8217;ve just gotten into it in order to optimize some existing PHP 5.3 code for my WebKernel project. However, there was one fundamental problem that I could not find the solution to anywhere online &#8211; how do you define a function within a namespace!? WebKernel used namespaces extensively, [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m fairly new to <acronym title="PHP: Hypertext Preprocessor">PHP</acronym> extension writing. I&#8217;ve just gotten into it in order to optimize some existing <acronym title="PHP: Hypertext Preprocessor">PHP</acronym> 5.3 code for my WebKernel project. However, there was one fundamental problem that I could not find the solution to anywhere online &#8211; <em>how do you define a function within a namespace!? </em>WebKernel used namespaces extensively, so I needed to know the solution to the problem.</p>
<p>Namespaces are new as of <acronym title="PHP: Hypertext Preprocessor">PHP</acronym> 5.3. Therefore, there&#8217;s very few people actually writing extensions with namespace support. To make matters worse, documentation of the Zend core is very poor. Much of my time is spent reading through the code, trying to figure out what macros do what, etc. This was another one of those cases.</p>
<h1>Normal <acronym title="PHP: Hypertext Preprocessor">PHP</acronym> Functions:</h1>
<p>Normal <acronym title="PHP: Hypertext Preprocessor">PHP</acronym> functions are placed within the functions list using the <tt>PHP_FE</tt> macro. The actual function is defined using <tt>PHP_FUNCTION</tt>. So your code may look like this:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p97code14'); return false;">View Code</a> C</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p9714"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
</pre></td><td class="code" id="p97code14"><pre class="c" style="font-family:monospace;"><span style="color: #993333;">static</span> function_entry my_functions<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span>
<span style="color: #666666; font-style: italic;">// ...</span>
PHP_FE<span style="color: #009900;">&#40;</span> myfunc<span style="color: #339933;">,</span> NULL <span style="color: #009900;">&#41;</span>
<span style="color: #666666; font-style: italic;">// ...</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
PHP_FUNCTION<span style="color: #009900;">&#40;</span> myfunc <span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
<span style="color: #666666; font-style: italic;">// Function body here</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>If you were to call <tt>myfunc()</tt> from within userland (within a <acronym title="PHP: Hypertext Preprocessor">PHP</acronym> script), it would execute the C code defined within the body of <tt>PHP_FUNCTION( myfunc )</tt>. Simple enough. Now what if we wanted namespaces?</p>
<h1>Using Namespaces</h1>
<p><strong>The short answer:</strong><br />
Replace <tt>PHP_FE( myfunc, NULL )</tt> with <tt>ZEND_NS_FE( "myns", myfunc, NULL )</tt>. But if you actually want to know why, keep reading.</p>
<p><strong>The detailed answer:</strong><br />
<tt>PHP_FE</tt> is defined within <tt>main/php.h</tt>. That points us to the <tt>ZEND_FE</tt> macro defined within <tt>Zend/zend_API.h</tt>. While looking through this file, I noticed a <tt>ZEND_NS_FE</tt> macro in there, and figured it must be referring to namespaces. So I figured that logically, there would be a <tt>PHP_NS_FE</tt> macro, right? Nope. There&#8217;s no such macro defined anywhere. At least not at this point in time. Hopefully there will be for the final release of 5.3.<br />
 yourself, however that will ruin your chances of your extension becoming portable. Other developers aren&#8217;t going to want to patch their php.h file to use it.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p97code15'); return false;">View Code</a> C</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p9715"><td class="code" id="p97code15"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#define ZEND_FE(name, arg_info)						ZEND_FENTRY(name, ZEND_FN(name), arg_info, 0)</span>
<span style="color: #339933;">#define ZEND_NS_FE(ns, name, arg_info)					ZEND_NS_FENTRY(ns, name, ZEND_FN(name), arg_info, 0)</span></pre></td></tr></table></div>

<p>Looking over the macros, you see that both macros make use of the <tt>ZEND_FN</tt> macro. A quick glance at that macro shows that it converts our &#8220;myfunc&#8221; function into &#8220;zif_myfunc&#8221;:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p97code16'); return false;">View Code</a> C</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p9716"><td class="code" id="p97code16"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#define ZEND_FN(name) zif_##name</span></pre></td></tr></table></div>

<p>This means that internally, zend will use the same function name regardless of whether or not it is contained within a namespace. In other words, we don&#8217;t even have to touch our <tt>PHP_FUNCTION</tt> line! Great &#8211; so then what&#8217;s different? Let&#8217;s take a look at <tt>ZEND_NS_FENTRY</tt>:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p97code17'); return false;">View Code</a> C</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p9717"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p97code17"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#define ZEND_NS_FENTRY(ns, zend_name, name, arg_info, flags)		ZEND_RAW_FENTRY(ZEND_NS_NAME(ns, #zend_name), name, arg_info, flags)</span></pre></td></tr></table></div>

<p>The difference here is that Zend is making use of the <tt>ZEND_NS_NAME</tt> macro:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p97code18'); return false;">View Code</a> C</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p9718"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p97code18"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#define ZEND_NS_NAME(ns, name)			ns&quot;\\&quot;name</span></pre></td></tr></table></div>

<p>Ah-ha! (Ignoring the fact that it&#8217;s, at present, at the top of the file.) While internally our function name is no different, Zend will only call it if it is prefixed with the namespace name from within userland. The above macro converts our function name to &#8220;myns\myfunc&#8221;. So, our updated code may look like this:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p97code19'); return false;">View Code</a> C</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p9719"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td class="code" id="p97code19"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#define MY_NS &quot;myns&quot;&lt;/code&gt;</span>
&nbsp;
<span style="color: #993333;">static</span> function_entry my_functions<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span>
<span style="color: #666666; font-style: italic;">// ...</span>
ZEND_NS_FE<span style="color: #009900;">&#40;</span> MY_NS<span style="color: #339933;">,</span> myfunc<span style="color: #339933;">,</span> NULL <span style="color: #009900;">&#41;</span>
<span style="color: #666666; font-style: italic;">// ...</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
PHP_FUNCTION<span style="color: #009900;">&#40;</span> myfunc <span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
<span style="color: #666666; font-style: italic;">// Function body here</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>We can then call our function via &#8220;myns\myfunc&#8221;. Remember &#8211; you must use <tt>ZEND_NS_FE</tt>. As of this time of writing, <tt>PHP_NS_FE</tt> does not exist! Of course, that could easily be solved by adding it to your own source files yourself, but it&#8217;s still a messy task. I&#8217;ve submitted a bug report to the <acronym title="PHP: Hypertext Preprocessor">PHP</acronym> team detailing the additions (I couldn&#8217;t find where to submit a patch), so hopefully it&#8217;ll make it in. Until then, feel free to add this to your header file, along with any other <tt>ZEND_NS_*</tt> aliases you may need:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p97code20'); return false;">View Code</a> C</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p9720"><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code" id="p97code20"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#ifndef PHP_NS_FE</span>
<span style="color: #339933;">#    define PHP_NS_FE ZEND_NS_FE</span>
<span style="color: #339933;">#endif</span></pre></td></tr></table></div>

<h1>Summary</h1>
<p>While diving into the C code isn&#8217;t necessary to use namespaces, it does greatly improve your understanding of how the system works. Because there is so little documentation, I encourage you to keep looking through <acronym title="PHP: Hypertext Preprocessor">PHP</acronym>&#8217;s source and see what you find. There are goodies hidden everywhere that may be incredibly useful to you, and save you a lot of time. Look through existing extensions within the <tt>ext</tt> folder and see if any of them use methods that you are interested in.</p>
<p>It was the unfortunate circumstance that none of the extensions did make use of namespace support. So I was on my own to look for it. I hope this helps save some frustration for others, especially those new to Zend that are just trying to figure out whether or not porting their code to C is worth the effort.</p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.mikegerwitz.com%2F2009%2F06%2F21%2Fphp-extension-writing-namespaces%2F&amp;linkname=PHP%20Extension%20Writing%3A%20Namespaces">Share/Bookmark</a>]]></content:encoded>
			<wfw:commentRss>http://www.mikegerwitz.com/2009/06/21/php-extension-writing-namespaces/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mother</title>
		<link>http://www.mikegerwitz.com/2009/02/06/mother/</link>
		<comments>http://www.mikegerwitz.com/2009/02/06/mother/#comments</comments>
		<pubDate>Fri, 06 Feb 2009 06:46:26 +0000</pubDate>
		<dc:creator>Mike Gerwitz</dc:creator>
				<category><![CDATA[Poetry]]></category>

		<guid isPermaLink="false">http://www.mikegerwitz.com/?p=84</guid>
		<description><![CDATA[Society nurtures their young and guides them into a set of values that are acceptable. Values and beliefs that are allowed and are surely &#8220;the right thing&#8221;. Society does a job to shelter from outside influence, its members protecting each other from the &#8220;danger&#8221; of exploration and thought. At a glance, society seems wonderful. Stable. [...]]]></description>
			<content:encoded><![CDATA[<p>Society nurtures their young and guides them into a set of values that are acceptable. Values and beliefs that are allowed and are surely &#8220;the right thing&#8221;. Society does a job to shelter from outside influence, its members protecting each other from the &#8220;danger&#8221; of exploration and thought. At a glance, society seems wonderful. Stable. Helping. Step back, and see that society is a curse. Enslaved minds living in anguish, afraid to peek at the world above.</p>
<p><span id="more-84"></span></p>
<p>Young minds<br />
Cradled by their mother<br />
So pure and willing<br />
Open to guidance</p>
<p>Young minds gather<br />
Knowledge of their mother<br />
Their ways paved<br />
By a helping hand</p>
<p>Young minds seek<br />
To further themselves<br />
Mother protects them<br />
From certain danger</p>
<p>Young minds dream<br />
Silence such nightmares<br />
Mother protects<br />
Mother comforts</p>
<p>Young minds infected<br />
By lies of bias<br />
By slave-built paths<br />
By deceptive hand</p>
<p>Young minds betrayed<br />
Caged inside<br />
Mother defeats them<br />
Prevents certain change</p>
<p>Young minds beaten<br />
Thoughts of twisted reality<br />
Mother hinders<br />
Mother disugises</p>
<p>Young minds flee<br />
Mother beckons<br />
Mother scolds<br />
Mother punishes</p>
<p>Young minds rebel<br />
Mother turns against them<br />
Mother refutes them<br />
Mother abandons them</p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.mikegerwitz.com%2F2009%2F02%2F06%2Fmother%2F&amp;linkname=Mother">Share/Bookmark</a>]]></content:encoded>
			<wfw:commentRss>http://www.mikegerwitz.com/2009/02/06/mother/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Defend Your Liberties &#8211; Speak Against ACTA!</title>
		<link>http://www.mikegerwitz.com/2008/12/21/defend-your-liberties-speak-against-acta/</link>
		<comments>http://www.mikegerwitz.com/2008/12/21/defend-your-liberties-speak-against-acta/#comments</comments>
		<pubDate>Sun, 21 Dec 2008 04:04:53 +0000</pubDate>
		<dc:creator>Mike Gerwitz</dc:creator>
				<category><![CDATA[Free Software]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[FSF]]></category>
		<category><![CDATA[liberties]]></category>

		<guid isPermaLink="false">http://www.mikegerwitz.com/?p=71</guid>
		<description><![CDATA[&#8220;ACTA, the Anti-Counterfeiting Trade Agreement, is a proposed enforcement treaty between United States, the European Community, Switzerland, Japan, Australia, the Republic of Korea, New Zealand and Mexico, with Canada set to join any day now.&#8221; &#8211; More information here
The name of the treaty sounds innocent enough, but what are they not telling you? This is [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>&#8220;ACTA, the Anti-Counterfeiting Trade Agreement, is a proposed enforcement treaty between United States, the European Community, Switzerland, Japan, Australia, the Republic of Korea, New Zealand and Mexico, with Canada set to join any day now.&#8221; &#8211; <a href="http://www.fsf.org/campaigns/acta/">More information here</a></p></blockquote>
<p>The name of the treaty sounds innocent enough, but what are they not telling you? This is just another addition to the huge string of laws recently forced upon us by corrupt governments and corporations to take away our liberties. For what? Money, as always.</p>
<p>What makes this law so bad? I just want to highlight a few points. I <a href="http://arstechnica.com/news.ars/post/20080916-100-groups-demand-to-see-secret-anticounterfeiting-treaty.html">quote ars technica</a> with the following details with what the treaty may cause:</p>
<ul>
<li>Require Internet Service Providers to monitor all consumers&#8217; Internet communications, terminate their customers&#8217; Internet connections based on rights-holders&#8217; repeated allegation of copyright infringement, and divulge the identity of alleged copyright infringers possibly without judicial process</li>
<li>Interfere with fair use of copyrighted materials</li>
<li>Criminalize peer-to-peer file sharing</li>
<li>Interfere with legitimate parallel trade in goods, including the resale of brand-name pharmaceutical products</li>
<li>Impose liability on manufacturers of active pharmaceutical ingredients (APIs), if those APIs are used to make counterfeits</li>
<li>Improperly criminalize acts not done for commercial purpose and with no public health consequences</li>
<li>Improperly divert public resources into enforcement of private rights</li>
</ul>
<p>What does this mean for the average computer user? Peer-to-peer (<acronym title="Peer to Peer">P2P</acronym>) file sharing will become unlawful, knocking out a huge chunk of collaborative file sharing, including Bittorrent. Some may consider this a good thing &#8211; after all, files are often unlawfully distributed using these services. But <em>not always</em>. Venues like bittorrent help reduce costs by allowing for the <em>legal distribution</em> of files, such as <a href="http://fsf.org">free software</a> or your own personal files. Corporations also use it to cut costs of file distribution (let&#8217;s take the popular example of Blizzard&#8217;s use of bittorrent to distribute World of Warcraft files to their users).</p>
<p>File sharing itself is not illegal! It is how some use it is that is. You should not criminalize an entire right for the sake of hindering pirates, which will simply find another venue. Crackers use computers to steal account information and steal identities &#8211; why not make computers illegal? The internet&#8217;s being used to download all these illegal files, why not abolish the internet? How soon before they begin taking away additional rights simply so corporations will stop fussing because <em>their multi-billion profits are not enough</em>?</p>
<p>Think of this like prohibition. The law was repealed because you cannot force people to behave. You cannot take away the right to free will &#8211; people will do what they want despite the laws. It&#8217;s the same with drugs &#8211; they&#8217;re illegal, yet still used. And what do we do? Waste countless tax dollars putting druggies in prison while that space and money could be put to much better use to catch <em>actual criminals!</em> (I highly recommend <a href="http://www.last.fm/music/System+of+a+Down/_/Prison+Song/+lyrics">reading the lyrics to Prison Song by System of a Down</a> for an excellent demonstration of this point.)</p>
<p>If this law passes &#8211; what will happen? The &#8220;good guys&#8221; will get screwed. We will be down a major, cheap venue for distributing our software when we may not have the money or resources to use other services. Businesses and corporations will also be forced to pay higher distribution costs. What about the pirates? What about those who are actually breaking the law? That won&#8217;t stop them. Hell, it may not even hinder them. They&#8217;ll come up with another method before the law is even passed. There already <em>are</em> plenty of other methods that are not <acronym title="Peer to Peer">P2P</acronym>. You are loosing your right because others do not know how to behave and it&#8217;s <em>not even going to stop them!</em></p>
<p>If you don&#8217;t know what <acronym title="Digital Restrictions Management">DRM</acronym> is yet (which may be surprising considering how often it is seen all over this website), I encourage you <a href="http://www.defectivebydesign.org/what_is_drm">to take a look</a>. Digital Right Management, more appropriately called Digital <em>Restrictions</em> Management, is seen all over, and is growing. With <acronym title="Digital Restrictions Management">DRM</acronym>, your computer, your devices, your software tells <em>you</em> what to do. It says, &#8220;oh, I don&#8217;t want you to do that&#8221; or &#8220;oh, you can only play this song this many times&#8221;. It restricts you. You should tell your computer what to do, <em>not</em> the other way around. It&#8217;s just another ploy to further remove our rights &#8211; to control our lives.</p>
<p>This treaty would enforce the use of <acronym title="Digital Restrictions Management">DRM</acronym>. You would not be able to buy any music that is not encrypted with <acronym title="Digital Restrictions Management">DRM</acronym> &#8211; meaning you cannot share it with your friends, you can&#8217;t transfer it to another device without your computer&#8217;s permission, and sometimes <em>if you upgrade your computer you will be denied the right to listen to your own music!</em> You will also only be able to play the music on <acronym title="Digital Restrictions Management">DRM</acronym>-compatible devices. Free software cannot play <acronym title="Digital Restrictions Management">DRM</acronym>-encrypted music. You will be eating out of the palms of the corporations.</p>
<p>I&#8217;m sure many recognize the recent release of the game Spore by EA Games. It was a very controversial release because it incorporated <acronym title="Digital Restrictions Management">DRM</acronym> to a ridiculous degree, needing to &#8220;call home&#8221; every once in a while (it may have been 10 days) to re-activate. This means that in the future, once the activation server was taken down, Spore would no longer be playable. It was as if you were renting the game, not purchasing it. Because EA tried to control its users, they ended up <a href="http://games.slashdot.org/article.pl?sid=08/12/06/0734206&amp;tid=95">making Spore the most pirated game of 2008</a> &#8211; exactly the opposite effect they had intended. The point &#8211; you cannot control people. They will rebel. You need to focus on the problem under the peoples&#8217; own terms or you&#8217;ll just make things worse. Now imagine what something like the ACTA will do. Probably make things worse.</p>
<p>Let&#8217;s not forget about the mention of ISPs (Internet Service Providers) monitoring their customers&#8217; connections for illegal material. Such plans are already attempting to be forced upon the users of other countries, such as the UK and Australia. What does this mean? Well, putting aside the fact that you are being <em>spied on without a warrant</em>, the software used to track your connection will <em>slow down your connection speeds</em>. This affects everyone &#8211; regardless of whether or not you are doing anything illegal. As if the connection monitoring wasn&#8217;t bad enough.</p>
<p><strong>The world&#8217;s governments need to prioritize and stop taking from us our liberties! </strong>Before you know it, they&#8217;ll all be gone. You have to help put a stop to it before it&#8217;s too late &#8211; before you wake up one morning and realize you have nothing left and are powerless to do anything about it. Stop letting your government and your corporations boss you around. Some may not think technology right are such a big deal &#8211; but keep in mind. Technology already rules society, and it&#8217;s only going to continue to take more control. We&#8217;re becoming increasingly dependant on technology and we cannot allow it to enslave us.</p>
<p><a href="http://arstechnica.com/news.ars/post/20080916-100-groups-demand-to-see-secret-anticounterfeiting-treaty.html">Please read more information about this treaty here.</a></p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.mikegerwitz.com%2F2008%2F12%2F21%2Fdefend-your-liberties-speak-against-acta%2F&amp;linkname=Defend%20Your%20Liberties%20%26%238211%3B%20Speak%20Against%20ACTA%21">Share/Bookmark</a>]]></content:encoded>
			<wfw:commentRss>http://www.mikegerwitz.com/2008/12/21/defend-your-liberties-speak-against-acta/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->