<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/1.5.1-alpha" -->
<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/"
>

<channel>
	<title>Digital Stronghold</title>
	<link>http://eradicus.blogsome.com</link>
	<description>Coding Blog</description>
	<pubDate>Thu, 24 Mar 2011 18:12:35 +0000</pubDate>
	<generator>http://wordpress.org/?v=1.5.1-alpha</generator>
	<language>en</language>

		<item>
		<title>Fiddler Web Debugging Proxy</title>
		<link>http://eradicus.blogsome.com/2011/03/24/fiddler-web-debugging-proxy/</link>
		<comments>http://eradicus.blogsome.com/2011/03/24/fiddler-web-debugging-proxy/#comments</comments>
		<pubDate>Thu, 24 Mar 2011 05:04:24 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2011/03/24/fiddler-web-debugging-proxy/</guid>
		<description><![CDATA[	I just want to share this useful tool for debugging web apps specifically running in IE versions 8 and below. This is not just limited to applications running on the browser though, it can listen to any application utilizing HTTP / HTTPS. You do not need to configure your proxy settings to redirect traffic, it [...]]]></description>
			<content:encoded><![CDATA[	<p>I just want to share this useful <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.fiddler2.com%2Ffiddler2%2F&amp;i=0&amp;c=654817d09ce153ec6764add28dd10a34d2240996">tool</a> for debugging web apps specifically running in IE versions 8 and below. This is not just limited to applications running on the browser though, it can listen to any application utilizing HTTP / HTTPS. You do not need to configure your proxy settings to redirect traffic, it just works on the fly.</p>
	<p>IE 9 has Developer Tools in it, more info <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwindows.microsoft.com%2Fen-US%2Finternet-explorer%2Fproducts%2Fie-9%2Fcompare-browsers&amp;i=0&amp;c=ee1c3c6d60051f02940e946d67161d99c3a00cb3">[here]</a> just like FireBug for Firefox and Chrome Developer Tools. </p>
	<p>It does not mean that we can not use it though. I would still recommend it for debugging HTTP / HTTPS communication to avoid looking at 3 different tools.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2011/03/24/fiddler-web-debugging-proxy/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Number of Simultaneous Connections in IIS</title>
		<link>http://eradicus.blogsome.com/2011/03/23/number-of-simultaneous-connections-in-iis/</link>
		<comments>http://eradicus.blogsome.com/2011/03/23/number-of-simultaneous-connections-in-iis/#comments</comments>
		<pubDate>Wed, 23 Mar 2011 04:31:11 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2011/03/23/number-of-simultaneous-connections-in-iis/</guid>
		<description><![CDATA[	So I have reached the testing phase of the anti CSRF / CSS / SQL Injection fixes for a classic ASP web application at work. Luckily it didn&#8217;t take me long enough to learn the language. My machine will be used for quality assurance purposes. I have encountered an error regarding the number of simultaneous [...]]]></description>
			<content:encoded><![CDATA[	<p>So I have reached the testing phase of the anti CSRF / CSS / SQL Injection fixes for a classic ASP web application at work. Luckily it didn&#8217;t take me long enough to learn the language. My machine will be used for quality assurance purposes. I have encountered an error regarding the number of simultaneous connections made to my local IIS webserver while running <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.owasp.org%2Findex.php%2FCategory%3AOWASP_CSRFTester_Project&amp;i=0&amp;c=754949f3ae450619b97849730d63e65af5241d1b">OWASP CSRFTester Project</a>. </p>
	<p>The fix is simple; just increase the number of simultaneous connections for IIS using the command below:</p>
	<p>Assuming your PWD is inetpub\adminscripts</p>
	<pre class="codeblock">
cscript adsutil.vbs set w3svc/MaxConnections 40
iisreset
</pre>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2011/03/23/number-of-simultaneous-connections-in-iis/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Repair Windows 7 System Files</title>
		<link>http://eradicus.blogsome.com/2011/03/20/repair-windows-7-system-files/</link>
		<comments>http://eradicus.blogsome.com/2011/03/20/repair-windows-7-system-files/#comments</comments>
		<pubDate>Sun, 20 Mar 2011 15:24:08 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2011/03/20/repair-windows-7-system-files/</guid>
		<description><![CDATA[	8 out of 10 average PC users have their box&#8217;s system files altered by malwares, viruses, etc. We usually reinstall the OS if the antivirus and anti malware software did not perform their job well. Here&#8217;s one way to fix the corrupted system files without the need of restarting your Windows 7 box.
	1. Run the [...]]]></description>
			<content:encoded><![CDATA[	<p>8 out of 10 average PC users have their box&#8217;s system files altered by malwares, viruses, etc. We usually reinstall the OS if the antivirus and anti malware software did not perform their job well. Here&#8217;s one way to fix the corrupted system files without the need of restarting your Windows 7 box.</p>
	<p>1. Run the Command Prompt as Administrator<br />
2. Type the following command</p>
	<pre class="codeblock">
C:\Windows\system32\> sfc /scannow
</pre>
	<p><img src="http://farm6.static.flickr.com/5013/5542707485_508322e7cd.jpg" width="500" height="251" alt="repairsystemfiles" /></p>
	<p>3. After the verification phase, you will receive a message about your system files&#8217; integrity</p>
	<pre class="codeblock">
Windows Resource Protection did not find any integrity violations.
</pre>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2011/03/20/repair-windows-7-system-files/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Android Intent</title>
		<link>http://eradicus.blogsome.com/2011/03/19/android-intent/</link>
		<comments>http://eradicus.blogsome.com/2011/03/19/android-intent/#comments</comments>
		<pubDate>Sat, 19 Mar 2011 09:34:59 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2011/03/19/android-intent/</guid>
		<description><![CDATA[	What is an Android Intent?
	- functions like a verb
- something like &#8220;open contacts manager&#8221;, &#8220;search contacts&#8221;, &#8220;call contact&#8221;, and etc.
- I see it something like a description of a method / action to be performed
- used for starting other Activities
	You can read more about this here: Android Intent
]]></description>
			<content:encoded><![CDATA[	<p>What is an Android Intent?</p>
	<p>- functions like a verb<br />
- something like &#8220;open contacts manager&#8221;, &#8220;search contacts&#8221;, &#8220;call contact&#8221;, and etc.<br />
- I see it something like a description of a method / action to be performed<br />
- used for starting other Activities</p>
	<p>You can read more about this here: <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fdeveloper.android.com%2Freference%2Fandroid%2Fcontent%2FIntent.html&amp;i=0&amp;c=8e69a058c47edc55a384f7b882953dcad7bb0a92">Android Intent</a></p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2011/03/19/android-intent/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Android Activity</title>
		<link>http://eradicus.blogsome.com/2011/03/14/android-activity/</link>
		<comments>http://eradicus.blogsome.com/2011/03/14/android-activity/#comments</comments>
		<pubDate>Mon, 14 Mar 2011 13:49:17 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2011/03/14/android-activity/</guid>
		<description><![CDATA[	What is an Android Activity?
	- one of the building blocks of an Android application
- used for rendering user interfaces that can respond to events
- a single screen
- can return a value to the previous activity
- pushed into a stack every time a new activity starts
	You can read more about this here: Android Activity
]]></description>
			<content:encoded><![CDATA[	<p>What is an Android Activity?</p>
	<p>- one of the building blocks of an Android application<br />
- used for rendering user interfaces that can respond to events<br />
- a single screen<br />
- can return a value to the previous activity<br />
- pushed into a stack every time a new activity starts</p>
	<p>You can read more about this here: <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fdeveloper.android.com%2Freference%2Fandroid%2Fapp%2FActivity.html&amp;i=0&amp;c=2e8083bb89e7fd7ff115f13fdff2b193681daeaa">Android Activity</a></p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2011/03/14/android-activity/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Let&#8217;s help Japan</title>
		<link>http://eradicus.blogsome.com/2011/03/14/lets-help-japan/</link>
		<comments>http://eradicus.blogsome.com/2011/03/14/lets-help-japan/#comments</comments>
		<pubDate>Mon, 14 Mar 2011 00:23:59 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2011/03/14/lets-help-japan/</guid>
		<description><![CDATA[	Help The Victims of the 8.9 Earthquake in Japan by Spreading Awareness and Aid. Visit http://goo.gl/wjZQz to donate.

]]></description>
			<content:encoded><![CDATA[	<p>Help The Victims of the 8.9 Earthquake in Japan by Spreading Awareness and Aid. Visit <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fgoo.gl%2FwjZQz&amp;i=0&amp;c=56a949d23556d4ac081ad96a77c00741be26ac94">http://goo.gl/wjZQz</a> to donate.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2011/03/14/lets-help-japan/feed/</wfw:commentRss>
	</item>
		<item>
		<title>HTTPS in Tomcat 6.0 Server</title>
		<link>http://eradicus.blogsome.com/2011/02/16/https-in-tomcat-60-server/</link>
		<comments>http://eradicus.blogsome.com/2011/02/16/https-in-tomcat-60-server/#comments</comments>
		<pubDate>Wed, 16 Feb 2011 08:37:20 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2011/02/16/https-in-tomcat-60-server/</guid>
		<description><![CDATA[	1. Create a self-signed server certificate using keytool. Take note of the keystore password, you will need it later on for setting up the server.
	
keytool -genkeypair -alias tomcat -keyalg RSA -keysize 1024
-dname &quot;CN=localhost, OU=Group, O=Company Name, L=City, S=Region,
C=PH&quot; -validity 365 -keystore keystore

	2. Move the generated certificate file (keystore) to Tomcat&#8217;s conf directory.
	3. Modify conf/server.xml
	
&lt;Connector port=&quot;443&quot; [...]]]></description>
			<content:encoded><![CDATA[	<p>1. Create a self-signed server certificate using <em>keytool</em>. Take note of the keystore password, you will need it later on for setting up the server.</p>
	<pre class="codeblock">
keytool -genkeypair -alias tomcat -keyalg RSA -keysize 1024
-dname &quot;CN=localhost, OU=Group, O=Company Name, L=City, S=Region,
C=PH&quot; -validity 365 -keystore keystore
</pre>
	<p>2. Move the generated certificate file (keystore) to Tomcat&#8217;s conf directory.</p>
	<p>3. Modify conf/server.xml</p>
	<pre class="codeblock">
&lt;Connector port=&quot;443&quot; protocol=&quot;HTTP/1.1&quot; SSLEnabled=&quot;true&quot;
maxThreads=&quot;150&quot; scheme=&quot;https&quot;
secure=&quot;true&quot; clientAuth=&quot;false&quot;
sslProtocol=&quot;TLS&quot;
keystoreFile=&quot;conf/keystore&quot; keystorePass=&quot;your password&quot; /&gt;
</pre>
	<p>4. Restart Tomcat.</p>
	<p>5. Visit this link <a href="http://eradicus.blogsome.com/go.php?u=https%3A%2F%2Flocalhost%3A443&amp;i=0&amp;c=f995ba45fc0f94eb27ada96cea72feb91644a530">https://localhost:443/</a>. You will receive a warning about the self-signed certificate. If you want to get away with this warning, purchase a commercial certificate.</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2011/02/16/https-in-tomcat-60-server/feed/</wfw:commentRss>
	</item>
		<item>
		<title>My New Android 1.6 / Debian Tablet Splash Screen</title>
		<link>http://eradicus.blogsome.com/2011/02/07/my-new-android-16-debian-tablet-splash-screen/</link>
		<comments>http://eradicus.blogsome.com/2011/02/07/my-new-android-16-debian-tablet-splash-screen/#comments</comments>
		<pubDate>Mon, 07 Feb 2011 08:44:28 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2011/02/07/my-new-android-16-debian-tablet-splash-screen/</guid>
		<description><![CDATA[	Logos are registered trademarks of their respective owners.

Created using The GIMP.
]]></description>
			<content:encoded><![CDATA[	<p>Logos are registered trademarks of their respective owners.<br />
<img src="http://farm6.static.flickr.com/5019/5424002785_6f035d4303.jpg" width="500" height="300" alt="splash" /><br />
Created using <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.gimp.org%2F&amp;i=0&amp;c=8c1162b860ea6be65841ce40b1aebdbd08417f97">The GIMP</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2011/02/07/my-new-android-16-debian-tablet-splash-screen/feed/</wfw:commentRss>
	</item>
		<item>
		<title>MD5 Hash Function for Oracle</title>
		<link>http://eradicus.blogsome.com/2011/01/18/md5-hash-function-for-oracle/</link>
		<comments>http://eradicus.blogsome.com/2011/01/18/md5-hash-function-for-oracle/#comments</comments>
		<pubDate>Tue, 18 Jan 2011 03:51:31 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2011/01/18/md5-hash-function-for-oracle/</guid>
		<description><![CDATA[	Basically there are 2 functions needed. Some people prefer the raw hash instead of the hex equivalent.
1. md5raw - for encoding text in raw md5 hash
2. md5 - for converting raw md5 hash to hex.
	Here&#8217;s the code for the md5raw function. 
	
create or replace
function md5raw (text in varchar2)
return varchar2 is
hash_value varchar2(20);
begin
   hash_value := [...]]]></description>
			<content:encoded><![CDATA[	<p>Basically there are 2 functions needed. Some people prefer the raw hash instead of the hex equivalent.<br />
1. md5raw - for encoding text in raw md5 hash<br />
2. md5 - for converting raw md5 hash to hex.</p>
	<p>Here&#8217;s the code for the md5raw function. </p>
	<pre class="codeblock">
create or replace
function md5raw (text in varchar2)
return varchar2 is
hash_value varchar2(20);
begin
   hash_value := dbms_obfuscation_toolkit.md5 (input_string => text);
   return hash_value;
end;
</pre>
	<p>and the code for the md5 function.</p>
	<pre class="codeblock">
create or replace
function md5(text in varchar2)
return varchar2 is
hash_value varchar2(32);
begin
    select lower(rawtohex(md5raw(text)))
    into hash_value
    from dual;
    return hash_value;
end;
</pre>
	<p>Now you can do something like this.</p>
	<pre class="codeblock">
select md5('koala') from dual;
	
|---------------------------------------|
|MD5('koala')                           |
|---------------------------------------|
|a564de63c2d0da68cf47586ee05984d7       |
|---------------------------------------|
</pre>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2011/01/18/md5-hash-function-for-oracle/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Access VirtualBox Shared Folder in Ubuntu Guest</title>
		<link>http://eradicus.blogsome.com/2011/01/05/access-virtualbox-shared-folder-in-ubuntu-guest/</link>
		<comments>http://eradicus.blogsome.com/2011/01/05/access-virtualbox-shared-folder-in-ubuntu-guest/#comments</comments>
		<pubDate>Wed, 05 Jan 2011 05:26:19 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2011/01/05/access-virtualbox-shared-folder-in-ubuntu-guest/</guid>
		<description><![CDATA[	I have been doing this for quite some time now but I failed to document it. First, install the VirtualBox Guest Additions on your host. Then you create a mount point (assuming it is /media/shared).
	
$ sudo mkdir /media/shared

	You may change the path if you want. Mount the shared folder using the command below.
	
$ sudo mount [...]]]></description>
			<content:encoded><![CDATA[	<p>I have been doing this for quite some time now but I failed to document it. First, install the VirtualBox Guest Additions on your host. Then you create a mount point (assuming it is /media/shared).</p>
	<pre class="codeblock">
$ sudo mkdir /media/shared
</pre>
	<p>You may change the path if you want. Mount the shared folder using the command below.</p>
	<pre class="codeblock">
$ sudo mount -t vboxsf &lt;folder&gt; /media/shared
</pre>
	<p>Replace the &lt;folder&gt; above with the correct shared folder name. Enjoy.</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2011/01/05/access-virtualbox-shared-folder-in-ubuntu-guest/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Welcome 2011!</title>
		<link>http://eradicus.blogsome.com/2011/01/01/welcome-2011/</link>
		<comments>http://eradicus.blogsome.com/2011/01/01/welcome-2011/#comments</comments>
		<pubDate>Fri, 31 Dec 2010 16:10:24 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2011/01/01/welcome-2011/</guid>
		<description><![CDATA[	Happy New Year! Prospero Ano Nuevo!

]]></description>
			<content:encoded><![CDATA[	<p>Happy New Year! <em>Prospero Ano Nuevo!</em>
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2011/01/01/welcome-2011/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Play Low Quality Videos in Gome Flytouch</title>
		<link>http://eradicus.blogsome.com/2010/12/14/play-low-quality-videos-in-gome-flytouch/</link>
		<comments>http://eradicus.blogsome.com/2010/12/14/play-low-quality-videos-in-gome-flytouch/#comments</comments>
		<pubDate>Tue, 14 Dec 2010 10:35:42 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2010/12/14/play-low-quality-videos-in-gome-flytouch/</guid>
		<description><![CDATA[	One of the common problems of Gome Flytouch is its inability to play high quality videos. Here is a trick by Kiarov for converting videos to a lower quality in order to be playable - Gome Flytouch Video Encoding Tutorial. Do not forget, you must have your tablet overclocked to 400MHz.
	The software used for conversion [...]]]></description>
			<content:encoded><![CDATA[	<p>One of the common problems of Gome Flytouch is its inability to play high quality videos. Here is a trick by Kiarov for converting videos to a lower quality in order to be playable - <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DNQiks9YXC5Y&amp;i=0&amp;c=0a559a0b6b6f612bfa96dd46f3d3a60c24caddda">Gome Flytouch Video Encoding Tutorial</a>. Do not forget, you must have your tablet overclocked to 400MHz.</p>
	<p>The software used for conversion was <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fhandbrake.fr%2Fdownloads.php&amp;i=0&amp;c=00c8cd2e63dd7c9bff70666231b3d4ba3b1b734f">HandBrake</a> but you can use any converter of your choice. The converted videos work well with <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.androidtapp.com%2Fmeridian-player%2F&amp;i=0&amp;c=5653f4bae5daf49e2db5c255947bec46e0dce60a">Meridian Player</a>.</p>
	<p>Here&#8217;s the settings:</p>
	<p>Type: MP4<br />
Size: 480x320<br />
Video Bit Rate: 384 kbps<br />
Frame Rate: 25 fps<br />
Video Encoder: XVid<br />
Audio Encoder: AAC<br />
Sample Rate: 44.1 KHz<br />
Audio Bit Rate: 64 kbps</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2010/12/14/play-low-quality-videos-in-gome-flytouch/feed/</wfw:commentRss>
	</item>
		<item>
		<title>G Sensor and Camera Fix for Gome Flytouch</title>
		<link>http://eradicus.blogsome.com/2010/12/09/g-sensor-and-camera-fix-for-gome-flytouch/</link>
		<comments>http://eradicus.blogsome.com/2010/12/09/g-sensor-and-camera-fix-for-gome-flytouch/#comments</comments>
		<pubDate>Thu, 09 Dec 2010 12:01:18 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2010/12/09/g-sensor-and-camera-fix-for-gome-flytouch/</guid>
		<description><![CDATA[	Some Gome Flytouch tablets have their G sensors and cameras inverted by default. There are two ways to fix these.
	1. If you&#8217;re creating your own firmware, it&#8217;s better to include the fix right on the scriptcmd file. 
	For the G sensor, add this line:
	
setenv gsensor_axis 0,-1,1,1,2,1

	and for the camera:
	
setenv camera_rotate 270

	2. If you had your [...]]]></description>
			<content:encoded><![CDATA[	<p>Some Gome Flytouch tablets have their G sensors and cameras inverted by default. There are two ways to fix these.</p>
	<p>1. If you&#8217;re creating your own firmware, it&#8217;s better to include the fix right on the scriptcmd file. </p>
	<p>For the G sensor, add this line:</p>
	<pre class="codeblock">
setenv gsensor_axis 0,-1,1,1,2,1
</pre>
	<p>and for the camera:</p>
	<pre class="codeblock">
setenv camera_rotate 270
</pre>
	<p>2. If you had your device rooted, just execute the commands above on any Android terminal as root.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2010/12/09/g-sensor-and-camera-fix-for-gome-flytouch/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Run Android Apps in Windows using YouWave</title>
		<link>http://eradicus.blogsome.com/2010/12/05/run-android-apps-in-windows-using-youwave/</link>
		<comments>http://eradicus.blogsome.com/2010/12/05/run-android-apps-in-windows-using-youwave/#comments</comments>
		<pubDate>Sun, 05 Dec 2010 13:40:44 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2010/12/05/run-android-apps-in-windows-using-youwave/</guid>
		<description><![CDATA[	Now you can test run apps in your Windows machine before installing them in your device or perhaps you don&#8217;t want to miss the fun playing Robo Defense. This is best for extending the battery life of your device if you are just testing apps.
	Watch the demo [here]. Click [here] to download. Enjoy!
]]></description>
			<content:encoded><![CDATA[	<p>Now you can test run apps in your Windows machine before installing them in your device or perhaps you don&#8217;t want to miss the fun playing Robo Defense. This is best for extending the battery life of your device if you are just testing apps.</p>
	<p>Watch the demo <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.youtube.com%2Fv%2F6SvcnNAXt-Y&amp;i=0&amp;c=d167348192ccbb34698249b8bf69feeb522ada53">[here]</a>. Click <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.youwave.com%2FTextpage%2Fdownload.html&amp;i=0&amp;c=a5c9cf3e7eee57c3cedb30228b6f0eb1da2e1d99">[here]</a> to download. Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2010/12/05/run-android-apps-in-windows-using-youwave/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Gome Flytouch Android Tablet</title>
		<link>http://eradicus.blogsome.com/2010/12/04/gome-flytouch-android-tablet/</link>
		<comments>http://eradicus.blogsome.com/2010/12/04/gome-flytouch-android-tablet/#comments</comments>
		<pubDate>Fri, 03 Dec 2010 20:18:16 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2010/12/04/gome-flytouch-android-tablet/</guid>
		<description><![CDATA[	Gome Flytouch
	

	
Model: generic
Manufacturer: generic
Device: generic
Product: generic
Brand: generic
CPI ABI: armeabi
Kernel Version: 2.6.29-00236-g4f8dbbb-dirty howayhuo@szmce12(MontaVista)
Build No: Donut.eng.howayhuo.20100910.134417
Release: 1.6
SDK: 4
	
Processor: ARM926EJ-S rev 5 (v5l)
BogoMIPS: 174.48
Features: swp half thumb fastmult edsp java
CPU Implementer: 0x41
CPU Architecture: 5TEJ
CPU Variant: 0x0
CPU Part: 0x926
CPU Revision: 5
	
Hardware: WMT
Revision:0000
Serial: 000000000000000
	
Type： Touchscreen Tablet
Materials： Plastic
Colors： White
Camera: 0.3 Megapixel
Screen： 7&quot; Resistive Touchscreen at 800*480(16:9)
CPU: VIA WM8505 (350MHz)
RAM: 256MB DDR2
Flash [...]]]></description>
			<content:encoded><![CDATA[	<p>Gome Flytouch</p>
	<p><img src="http://www.androidtablets.net/logos/gome.png" width="130" height="25" alt="Gome Logo" /><br />
<img src="http://farm6.static.flickr.com/5283/5257888901_15b75c84e7.jpg" width="243" height="187" alt="Gome Flytouch" /></p>
	<pre class="codeblock">
Model: generic
Manufacturer: generic
Device: generic
Product: generic
Brand: generic
CPI ABI: armeabi
Kernel Version: 2.6.29-00236-g4f8dbbb-dirty howayhuo@szmce12(MontaVista)
Build No: Donut.eng.howayhuo.20100910.134417
Release: 1.6
SDK: 4
	
Processor: ARM926EJ-S rev 5 (v5l)
BogoMIPS: 174.48
Features: swp half thumb fastmult edsp java
CPU Implementer: 0x41
CPU Architecture: 5TEJ
CPU Variant: 0x0
CPU Part: 0x926
CPU Revision: 5
	
Hardware: WMT
Revision:0000
Serial: 000000000000000
	
Type： Touchscreen Tablet
Materials： Plastic
Colors： White
Camera: 0.3 Megapixel
Screen： 7&quot; Resistive Touchscreen at 800*480(16:9)
CPU: VIA WM8505 (350MHz)
RAM: 256MB DDR2
Flash ROM：2GB
Expansion Memory： SD/SDHC/MMC up to 32GB
Network Connectivity： WiFi or Ethernet (RJ45)
Sensors: Accelerometer (supports rotation)
Vibration: Yes
Battery Capacity: 2400mah
Ports： USB 2.0 Host /USB 2.0 Device Port/3.5 mm Headphone Jack
Sound: Internal Microphone and Speakers
</pre>
	<p>If you are buying from the Philippines you can get this one for PHP 3,300 (USD 75) at 168 Mall, Divisoria.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2010/12/04/gome-flytouch-android-tablet/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Android 1.6 Firmware Default Wallpaper</title>
		<link>http://eradicus.blogsome.com/2010/12/04/android-16-firmware-default-wallpaper/</link>
		<comments>http://eradicus.blogsome.com/2010/12/04/android-16-firmware-default-wallpaper/#comments</comments>
		<pubDate>Fri, 03 Dec 2010 19:57:20 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2010/12/04/android-16-firmware-default-wallpaper/</guid>
		<description><![CDATA[	The default wallpaper file is:
	
/data/data/com.android.settings/files/wallpaper

	It is a JPEG file format without the .jpg extension.

]]></description>
			<content:encoded><![CDATA[	<p>The default wallpaper file is:</p>
	<pre class="codeblock">
/data/data/com.android.settings/files/wallpaper
</pre>
	<p>It is a JPEG file format without the .jpg extension.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2010/12/04/android-16-firmware-default-wallpaper/feed/</wfw:commentRss>
	</item>
		<item>
		<title>My Android Splash Screen</title>
		<link>http://eradicus.blogsome.com/2010/12/02/my-android-splash-screen/</link>
		<comments>http://eradicus.blogsome.com/2010/12/02/my-android-splash-screen/#comments</comments>
		<pubDate>Thu, 02 Dec 2010 03:43:09 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2010/12/02/my-android-splash-screen/</guid>
		<description><![CDATA[	I just want to share my Android Splash Screen. Credit goes to the original artist. I just modified some part of it.
	
	If you have an 800x480 pad, make sure your bitmap is 24-bit and of course the resolution must be 800x480.

]]></description>
			<content:encoded><![CDATA[	<p>I just want to share my Android Splash Screen. Credit goes to the original artist. I just modified some part of it.</p>
	<p><img src="http://farm6.static.flickr.com/5205/5225568060_f5b0570e10.jpg" width="500" height="300" alt="Android Splash Screen" /></p>
	<p>If you have an 800x480 pad, make sure your bitmap is 24-bit and of course the resolution must be 800x480.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2010/12/02/my-android-splash-screen/feed/</wfw:commentRss>
	</item>
		<item>
		<title>mkimage for Windows</title>
		<link>http://eradicus.blogsome.com/2010/12/02/mkimage-for-windows/</link>
		<comments>http://eradicus.blogsome.com/2010/12/02/mkimage-for-windows/#comments</comments>
		<pubDate>Thu, 02 Dec 2010 03:34:01 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2010/12/02/mkimage-for-windows/</guid>
		<description><![CDATA[	Even if you do not use Linux, you can still roll your own Android firmware update on Windows. Click [here] to download mkimage for Windows.

]]></description>
			<content:encoded><![CDATA[	<p>Even if you do not use Linux, you can still roll your own Android firmware update on Windows. Click <a href="www.hyfse.com/armVT8500/mkimage-win.zip">[here]</a> to download mkimage for Windows.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2010/12/02/mkimage-for-windows/feed/</wfw:commentRss>
	</item>
		<item>
		<title>update.sh for Android</title>
		<link>http://eradicus.blogsome.com/2010/12/01/my-updatesh-for-android/</link>
		<comments>http://eradicus.blogsome.com/2010/12/01/my-updatesh-for-android/#comments</comments>
		<pubDate>Wed, 01 Dec 2010 00:44:30 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2010/12/01/my-updatesh-for-android/</guid>
		<description><![CDATA[	After scriptcmd (previous blog post), the next to be called is the update.sh script. The script will setup the file system, data partition, cache partition, and user space. It will install BusyBox for you.
	
height=22
pointX=30
pointY=100
	
SDCARD=/mnt/mmcblk0p1
	
string=&quot;Good luck!&quot;
echo $string
gui-echo $pointX $pointY &quot;$string&quot;
	
if [ -x /mnt/mmcblk0/script/update.sh ] ; then
    SDCARD=/mnt/mmcblk0
fi
	
if [ -f ${SDCARD}/script/android_fs.tar ] ; then
 [...]]]></description>
			<content:encoded><![CDATA[	<p>After scriptcmd (previous blog post), the next to be called is the update.sh script. The script will setup the file system, data partition, cache partition, and user space. It will install <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.busybox.net%2Fabout.html&amp;i=0&amp;c=5009a0d2db40dd697f973e1a8e061584f8606898">BusyBox</a> for you.</p>
	<pre class="codeblock">
height=22
pointX=30
pointY=100
	
SDCARD=/mnt/mmcblk0p1
	
string=&quot;Good luck!&quot;
echo $string
gui-echo $pointX $pointY &quot;$string&quot;
	
if [ -x /mnt/mmcblk0/script/update.sh ] ; then
    SDCARD=/mnt/mmcblk0
fi
	
if [ -f ${SDCARD}/script/android_fs.tar ] ; then
    string=&quot;Updating file system...&quot;
    echo $string
    gui-echo $pointX $pointY &quot;$string&quot;
else
    string=&quot;--- File not found - script/android_fs.tar&quot;
    echo $string
    gui-echo $pointX $pointY &quot;$string&quot;
    pointY=$(($pointY + $height + $height))
    string=&quot;Failed updating file system!&quot;
    echo $string
    gui-echo $pointX $pointY &quot;$string&quot;
    exit 0
fi
	
# FILE SYSTEM SETUP
	
pointY=$(($pointY + $height + $height))
string=&quot;Cleaning up file system...&quot;
echo $string
gui-echo $pointX $pointY &quot;$string&quot;
	
flash_eraseall /dev/mtd9
if [ $? -ne 0 ] ; then
    pointY=$(($pointY + $height + $height))
    string=&quot;--- Failed cleaning up file system!&quot;
    echo $string
    gui-echo $pointX $pointY &quot;$string&quot;
    pointY=$(($pointY + $height))
    string=&quot;Kernel doesn't support NAND flash?&quot;
    echo $string
    gui-echo $pointX $pointY &quot;$string&quot;
    exit 0
else
   string=&quot;Done cleaning up file system...&quot;
   echo $string
   gui-echo $pointX $pointY &quot;$string&quot;
fi
	
mount -t yaffs2 /dev/mtdblock9 /mnt/mtd
if [ $? -ne 0 ] ; then
    pointY=$(($pointY + $height + $height))
    string=&quot;--- Failed mounting file system!&quot;
    echo $string
    gui-echo $pointX $pointY &quot;$string&quot;
    exit 0
else
    string=&quot;File system is now mounted...&quot;
    echo $string
    gui-echo $pointX $pointY &quot;$string&quot;
fi
	
pointY=$(($pointY + $height))
string=&quot;Now copying system files...&quot;
echo $string
gui-echo $pointX $pointY &quot;$string&quot;
	
tar xvf ${SDCARD}/script/android_fs.tar -C /mnt/mtd
chmod 777 -R /mnt/mtd
string=&quot;Files were copied successfully...&quot;
echo $string
gui-echo $pointX $pointY &quot;$string&quot;
pointY=$(($pointY + $height))
	
if [ -d ${SDCARD}/script/driver ] ; then
    echo &quot;Now copying device drivers...&quot;
    if [ ! -d /mnt/mtd/.driver ] ; then
        mkdir /mnt/mtd/.driver
    fi
    cp -a ${SDCARD}/script/driver/* /mnt/mtd/.driver
	
    string=&quot;Files were copied successfully...&quot;
    echo $string
    gui-echo $pointX $pointY &quot;$string&quot;
fi
	
boardID=`getenv wmt.model`
if [ $? -eq 0 ] ; then
    if [ $boardID = &quot;8088b_90_20k&quot; ] || [ $boardID = &quot;8088b_90_1k&quot; ] || [ $boardID = &quot;8088b_90_1k&quot; ] ; then
        boardID=8088b
    fi
    special_driver=${SDCARD}/script/driver_$boardID
    if [ -d $special_driver ] ; then
        echo &quot;Now copying special device drivers...&quot;
        if [ ! -d /mnt/mtd/.driver ] ; then
            mkdir /mnt/mtd/.driver
        fi
        cp -a ${special_driver}/* /mnt/mtd/.driver
        string=&quot;Done copying special device drivers...&quot;
        echo $string
        gui-echo $pointX $pointY &quot;$string&quot;
    fi
fi
	
if [ -f ${SDCARD}/script/busybox_1.17.tar ] &#038;&#038; [ ! -x /mnt/mtd/system/bin/sh-org ] ; then
    string=&quot;Now copying BusyBox...&quot;
    echo $string
    gui-echo $pointX $pointY &quot;$string&quot;
    tar xvf ${SDCARD}/script/busybox_1.17.tar -C /mnt/mtd
    string=&quot;Done copying BusyBox...&quot;
    echo $string
    gui-echo $pointX $pointY &quot;$string&quot;
    pointY=$(($pointY + $height))    
	
    if [ -x /mnt/mtd/busybox/bin/ash ] ; then
        mv /mnt/mtd/system/bin/sh /mnt/mtd/system/bin/sh-org
        ln -s /busybox/bin/busybox /mnt/mtd/system/bin/sh
	rm /mnt/mtd/system/bin/busybox
        cp /busybox/bin/busybox /mnt/mtd/system/bin/
        if [ ! -d /mnt/mtd/bin ] ; then
            mkdir /mnt/mtd/bin
        fi
        ln -s /busybox/bin/busybox /mnt/mtd/bin/sh
    fi
fi
	
if [ -d ${SDCARD}/script/pre_root_disk ] || [ -f ${SDCARD}/script/data.tar ] || [ -f ${SDCARD}/script/cache.tar ] ; then
    string=&quot;Now copying additional files...&quot;
    echo $string
    gui-echo $pointX $pointY &quot;$string&quot;
	
    if [ -d ${SDCARD}/script/pre_root_disk ] ; then
        cp -a ${SDCARD}/script/pre_root_disk/*  /mnt/mtd
        if [ -d /mnt/mtd/restore ] ; then
            if [ -d /mnt/mtd/.restore ] ; then
                cp -a  /mnt/mtd/restore/*  /mnt/mtd/.restore/
                rm -rf /mnt/mtd/restore
            else
                mv /mnt/mtd/restore /mnt/mtd/.restore
            fi
        fi
    fi
	
    if [ -f ${SDCARD}/script/data.tar ] ; then
        if [ ! -d /mnt/mtd/.restore ] ; then
            mkdir /mnt/mtd/.restore
        fi
        cp -rf ${SDCARD}/script/data.tar /mnt/mtd/.restore
	
        if [ -d ${SDCARD}/script/pre_data_disk/app ] ; then
            cp -rf ${SDCARD}/script/pre_data_disk/app /mnt/mtd/.restore
        fi
    fi
	
    if [ -f ${SDCARD}/script/cache.tar ] ; then
        if [ ! -d /mnt/mtd/.restore ] ; then
            mkdir /mnt/mtd/.restore
        fi
        cp ${SDCARD}/script/cache.tar /mnt/mtd/.restore
    fi
	
    if [ -d /mnt/mtd/.restore ] ; then
        if [ -f ${SDCARD}/script/etc/touchcal ] ; then
            cp -a ${SDCARD}/script/etc/touchcal /mnt/mtd/.restore/
        fi
        boardID=`getenv wmt.model`
        if [ $? -eq 0 ] ; then
            special_touchcal_file=${SDCARD}/script/etc/touchcal_$boardID
            if [ -f ${special_touchcal_file} ] ; then
                cp -a ${special_touchcal_file} /mnt/mtd/.restore/touchcal
            fi
        fi
    fi
	
    string=&quot;Done copying additional files...&quot;
    echo $string
    gui-echo $pointX $pointY &quot;$string&quot;
    pointY=$(($pointY + $height))
fi
	
string=&quot;Setting file system permissions...&quot;
echo $string
gui-echo $pointX $pointY &quot;$string&quot;
	
    chmod 755 -R /mnt/mtd
    chmod 750 /mnt/mtd/init.rc
    chmod 750 /mnt/mtd/init.goldfish.rc
    chmod 750 /mnt/mtd/init
    chmod 644 /mnt/mtd/default.prop
    chmod 700 /mnt/mtd/root
    chmod 750 /mnt/mtd/sbin
    chmod 751 /mnt/mtd/bin
    chmod 751 /mnt/mtd/busybox
    chmod 750 /mnt/mtd/lib
	
string=&quot;File system permissions were set...&quot;
echo $string
gui-echo $pointX $pointY &quot;$string&quot;
pointY=$(($pointY + $height))
	
if [ -f /mnt/mtd/system/bin/preboot ] ; then
    chown root:0 /mnt/mtd/system/bin/preboot
    chmod a-w /mnt/mtd/system/bin/preboot
    chmod a+rxs /mnt/mtd/system/bin/preboot
fi
chmod 777 -R /mnt/mtd
mv /mnt/mtd/busybox/bin/su /mnt/mtd/busybox/bin/su.bak
chown root:root /mnt/mtd/system/bin/su
chmod 4777 /mnt/mtd/system/bin/su 
	
sync
umount /mnt/mtd
	
if [ $? -ne 0 ] ; then
    pointY=$(($pointY + $height))
    string=&quot;Failed dismounting file system!&quot;
    echo $string
    gui-echo $pointX $pointY &quot;$string&quot;
    exit 0
fi
	
# DATA PARTITION SETUP
	
if [ -d ${SDCARD}/script/etc ] || [ -f ${SDCARD}/script/data.tar ] || [ -d ${SDCARD}/script/pre_data_disk ] ; then
    string=&quot;Erasing data partition...&quot;
    echo $string
    gui-echo $pointX $pointY &quot;$string&quot;
	
    flash_eraseall /dev/mtd10
    if [ $? -ne 0 ] ; then
        pointY=$(($pointY + $height + $height))
        string=&quot;Failed erasing data partition!&quot;
        echo $string
        gui-echo $pointX $pointY &quot;$string&quot;
        pointY=$(($pointY + $height))
        string=&quot;Kernel doesn't support NAND flash?&quot;
        echo $string
        gui-echo $pointX $pointY &quot;$string&quot;
        exit 0
    else
       string=&quot;Done erasing data partition...&quot;
       echo $string
       gui-echo $pointX $pointY &quot;$string&quot;
    fi
	
    mount -t yaffs2 /dev/mtdblock10 /mnt/mtd
    if [ $? -ne 0 ] ; then
        pointY=$(($pointY + $height + $height))
        string=&quot;Failed mounting data partition!&quot;
        echo $string
        gui-echo $pointX $pointY &quot;$string&quot;
        exit 0
    else
        string=&quot;Data partition mounted successully...&quot;
        echo $string
        gui-echo $pointX $pointY &quot;$string&quot;
    fi
    pointY=$(($pointY + $height))
	
    string=&quot;Now copying files to data partition...&quot;
    echo $string
    gui-echo $pointX $pointY &quot;$string&quot;
	
    if [ -f ${SDCARD}/script/data.tar ] ; then
        tar xvf ${SDCARD}/script/data.tar -C /mnt/mtd
    fi
	
    if [ -d ${SDCARD}/script/etc ] ; then
        if [ ! -d /mnt/mtd/wmtpref ] ; then
            mkdir /mnt/mtd/wmtpref
        fi
        cp -a ${SDCARD}/script/etc/* /mnt/mtd/wmtpref/
	
        boardID=`getenv wmt.model`
        if [ $? -eq 0 ] ; then
            special_touchcal_file=${SDCARD}/script/etc/touchcal_$boardID
            if [ -f ${special_touchcal_file} ] ; then
                cp -a ${special_touchcal_file} /mnt/mtd/wmtpref/touchcal
            fi
        fi
    fi
	
    if [ -d ${SDCARD}/script/app ] ; then
        if [ -d /mnt/mtd/app ] ; then
            echo &quot;The app folder exists in the data partition. We don't want it there!&quot;
        else
            cp -a ${SDCARD}/script/app  /mnt/mtd/
        fi
    fi
	
    if [ -d ${SDCARD}/script/pre_data_disk ] ; then
       cp -a ${SDCARD}/script/pre_data_disk/*  /mnt/mtd
    fi
	
    if [ -d ${SDCARD}/script/pre_root_disk/restore/etc ] ; then
       cp -a ${SDCARD}/script/pre_root_disk/restore/etc  /mnt/mtd/wmtpref/
    fi
	
    string=&quot;Done copying files to data partition...&quot;
    echo $string
    gui-echo $pointX $pointY &quot;$string&quot;
    pointY=$(($pointY + $height))
	
    chmod 777 -R /mnt/mtd
    sync
    umount /mnt/mtd
	
    if [ $? -ne 0 ] ; then
        pointY=$(($pointY + $height))
        string=&quot;Failed to dismount data partition!&quot;
        echo $string
        gui-echo $pointX $pointY &quot;$string&quot;
        exit 0
    fi
fi
	
# CACHE PARTITION SETUP
	
if [ -f ${SDCARD}/script/cache.tar ] || [ -d ${SDCARD}/script/pre_cache_disk ] ; then
    string=&quot;Erasing cache partition...&quot;
    echo $string
    gui-echo $pointX $pointY &quot;$string&quot;
	
    flash_eraseall /dev/mtd11
    if [ $? -ne 0 ] ; then
        pointY=$(($pointY + $height + $height))
        string=&quot;Failed to erase cache partition!&quot;
        echo $string
        gui-echo $pointX $pointY &quot;$string&quot;
        pointY=$(($pointY + $height))
        string=&quot;Kernel doesn't support NAND flash?&quot;
        echo $string
        gui-echo $pointX $pointY &quot;$string&quot;
        exit 0
    else
       string=&quot;Done erasing cache partition...&quot;
       echo $string
       gui-echo $pointX $pointY &quot;$string&quot;
    fi
	
    mount -t yaffs2 /dev/mtdblock11 /mnt/mtd
    if [ $? -ne 0 ] ; then
        pointY=$(($pointY + $height + $height))
        string=&quot;Failed mounting data partition!&quot;
        echo $string
        gui-echo $pointX $pointY &quot;$string&quot;
        exit 0
    else
        string=&quot;Cache partition mounted successfully...&quot;
        echo $string
        gui-echo $pointX $pointY &quot;$string&quot;
    fi
    pointY=$(($pointY + $height))
	
    string=&quot;Now copying files to cache partition...&quot;
    echo $string
    gui-echo $pointX $pointY &quot;$string&quot;
	
    if [ -f ${SDCARD}/script/cache.tar ] ; then
        tar xvf ${SDCARD}/script/chache.tar -C /mnt/mtd
    fi
	
    if [ -d ${SDCARD}/script/pre_cache_disk ] ; then
       cp -a ${SDCARD}/script/pre_cache_disk/*  /mnt/mtd
    fi
	
    string=&quot;Done copying files to cache partition...&quot;
    echo $string
    gui-echo $pointX $pointY &quot;$string&quot;
    pointY=$(($pointY + $height))
	
    chmod 777 -R /mnt/mtd
    sync
    umount /mnt/mtd
	
    if [ $? -ne 0 ] ; then
        pointY=$(($pointY + $height))
        string=&quot;Failed to dismount cache partition!&quot;
        echo $string
        gui-echo $pointX $pointY &quot;$string&quot;
        exit 0
    fi
fi
	
string=&quot;File system updated successfully!&quot;
echo $string
gui-echo $pointX $pointY &quot;$string&quot;
pointY=$(($pointY + $height + $height))
	
# USER SPACE SETUP
	
if [ -f ${SDCARD}/script/driver/g_file_storage.ko ] ; then
    string=&quot;Erasing user space...&quot;
    echo $string
    gui-echo $pointX $pointY &quot;$string&quot;
	
    flash_eraseall /dev/mtd12
	
    if [ $? -ne 0 ] ; then
        pointY=$(($pointY + $height + $height))
        string=&quot;Failed to erase user space!&quot;
        echo $string
        gui-echo $pointX $pointY &quot;$string&quot;
        exit 0
    else
        string=&quot;Done erasing user space...&quot;
        echo $string
        gui-echo $pointX $pointY &quot;$string&quot;
    fi
    mount -t yaffs2 /dev/mtdblock12 /mnt/mtd
	
    if [ $? -ne 0 ] ; then
        pointY=$(($pointY + $height + $height))
        string=&quot;Failed to mount user space!&quot;
        echo $string
        gui-echo $pointX $pointY &quot;$string&quot;
        exit 0
    else
        string=&quot;Done mounting user space...&quot;
        echo $string
        gui-echo $pointX $pointY &quot;$string&quot;
    fi
	
    pointY=$(($pointY + $height))
    string=&quot;Creating loop file...&quot;
    echo $string
    gui-echo $pointX $pointY &quot;$string&quot;
	
    create_loopfile mtd12 /mnt/mtd/vfat.bin bs=524288
	
    if [ $? -ne 0 ] ; then
        pointY=$(($pointY + $height + $height))
        string=&quot;Failed to create loop file!&quot;
        echo $string
        gui-echo $pointX $pointY &quot;$string&quot;
        exit 0
    else
        if [ -f /mnt/mtd/vfat.bin ] ; then
            string=&quot;Loop file created...&quot;
            echo $string
            gui-echo $pointX $pointY &quot;$string&quot;
        else
            pointY=$(($pointY + $height + $height))
            string=&quot;Failed to create loop file!&quot;
            echo $string
            gui-echo $pointX $pointY &quot;$string&quot;
            exit 0
        fi
    fi
    pointY=$(($pointY + $height))
	
    string=&quot;Formatting loop file...&quot;
    echo $string
    gui-echo $pointX $pointY &quot;$string&quot;
	
    mkdosfs /mnt/mtd/vfat.bin
	
    if [ $? -ne 0 ] ; then
        pointY=$(($pointY + $height + $height))
        string=&quot;Failed formatting loop file!&quot;
        echo $string
        gui-echo $pointX $pointY &quot;$string&quot;
        exit 0
    else
        string=&quot;Loop file formatted...&quot;
        echo $string
        gui-echo $pointX $pointY &quot;$string&quot;
    fi
	
    if [ -d ${SDCARD}/script/DemoFile ] || [ -d ${SDCARD}/script/pre_local_disk ] ; then
	
        losetup /dev/loop/0 /mnt/mtd/vfat.bin
        if [ $? -ne 0 ] ; then
            pointY=$(($pointY + $height))
            string=&quot;Command losetup failed!&quot;
            echo $string
            gui-echo $pointX $pointY &quot;$string&quot;
            exit 0
        fi
        mkdir /LocalDisk
        mount -o iocharset=gb2312 -t vfat /dev/loop/0  /LocalDisk
        if [ $? -ne 0 ] ; then
            pointY=$(($pointY + $height))
            string=&quot;Mounting /dev/loop/0 to /LocalDisk failed!&quot;
            echo $string
            gui-echo $pointX $pointY &quot;$string&quot;
            exit 0
        fi
	
        if [ -d ${SDCARD}/script/DemoFile ] ; then
            string=&quot;Now copying demo Files to user space...&quot;
            echo $string
            gui-echo $pointX $pointY &quot;$string&quot;
	
            cp -a ${SDCARD}/script/DemoFile /LocalDisk
	
            string=&quot;Demo files were copied to user space successfully...&quot;
            echo $string
            gui-echo $pointX $pointY &quot;$string&quot;
        fi
	
        if [ -d ${SDCARD}/script/pre_local_disk ] ; then
            string=&quot;Now copying files to user space...&quot;
            echo $string
            gui-echo $pointX $pointY &quot;$string&quot;
	
            cp -a ${SDCARD}/script/pre_local_disk/*  /LocalDisk
	
            string=&quot;Done copying files to user space...&quot;
            echo $string
            gui-echo $pointX $pointY &quot;$string&quot;
        fi
	
        chmod 777 -R /LocalDisk
        sync
        umount /LocalDisk
        if [ $? -ne 0 ] ; then
            pointY=$(($pointY + $height))
            string=&quot;Failed dismounting LocalDisk!&quot;
            echo $string
            gui-echo $pointX $pointY &quot;$string&quot;
            exit 0
        fi
        losetup -d /dev/loop/0
        if [ $? -ne 0 ] ; then
            pointY=$(($pointY + $height))
            string=&quot;Command losetup -d /dev/loop/0 failed!&quot;
            echo $string
            gui-echo $pointX $pointY &quot;$string&quot;
            exit 0
        fi
    fi
	
    chmod 777 -R /mnt/mtd
    sync
    umount /mnt/mtd
	
    if [ $? -ne 0 ] ; then
        pointY=$(($pointY + $height + $height))
        string=&quot;Failed dismounting user space!&quot;
        echo $string
        gui-echo $pointX $pointY &quot;$string&quot;
        exit 0
    fi
	
    pointY=$(($pointY + $height + $height))
else
    if [ -d ${SDCARD}/script/DemoFile ] || [ -d ${SDCARD}/script/pre_local_disk ] ; then
        string=&quot;Erasing user space...&quot;
        echo $string
        gui-echo $pointX $pointY &quot;$string&quot;
	
        flash_eraseall /dev/mtd12
	
        if [ $? -ne 0 ] ; then
            pointY=$(($pointY + $height + $height))
            string=&quot;Failed erasing user space!&quot;
            echo $string
            gui-echo $pointX $pointY &quot;$string&quot;
            exit 0
        else
            string=&quot;Done erasing user space...&quot;
            echo $string
            gui-echo $pointX $pointY &quot;$string&quot;
        fi
        mount -t yaffs2 /dev/mtdblock12 /mnt/mtd
	
        if [ $? -ne 0 ] ; then
            pointY=$(($pointY + $height + $height))
            string=&quot;Failed mounting user space!&quot;
            echo $string
            gui-echo $pointX $pointY &quot;$string&quot;
            exit 0
        else
            string=&quot;Done mounting user space...&quot;
            echo $string
            gui-echo $pointX $pointY &quot;$string&quot;
        fi
	
        pointY=$(($pointY + $height))
	
        if [ -d ${SDCARD}/script/DemoFile ] ; then
            string=&quot;Now copying demo files to user space...&quot;
            echo $string
            gui-echo $pointX $pointY &quot;$string&quot;
	
            cp -a ${SDCARD}/script/DemoFile /mnt/mtd
	
            string=&quot;Done copying demo files to user space...&quot;
            echo $string
            gui-echo $pointX $pointY &quot;$string&quot;
        fi
	
        if [ -d ${SDCARD}/script/pre_local_disk ] ; then
            string=&quot;Now copying files to user space...&quot;
            echo $string
            gui-echo $pointX $pointY &quot;$string&quot;
	
            cp -a ${SDCARD}/script/pre_local_disk/*  /mnt/mtd
	
            string=&quot;Done copying files to user space...&quot;
            echo $string
            gui-echo $pointX $pointY &quot;$string&quot;
        fi
	
        chmod 777 -R /mnt/mtd
        sync
        umount /mnt/mtd
	
        if [ $? -ne 0 ] ; then
            pointY=$(($pointY + $height + $height))
            string=&quot;Failed dismounting user space!&quot;
            echo $string
            gui-echo $pointX $pointY &quot;$string&quot;
            exit 0
        fi
	
        pointY=$(($pointY + $height + $height))
    fi
fi
	
echo 0 > /proc/boot-splash
cleanlcd
remove_sd
	
string=&quot;Please remove SD card...&quot;
while [ -x /bin/ls ]
do
    if [ -x ${SDCARD}/script/update.sh ] ; then
        echo $string
        sleep 1
    else
        break
    fi
done
	
cleanlcd
hint_shutdown
string=&quot;Shutting down...&quot;
echo $string
poweroff
</pre>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2010/12/01/my-updatesh-for-android/feed/</wfw:commentRss>
	</item>
		<item>
		<title>scriptcmd for Android</title>
		<link>http://eradicus.blogsome.com/2010/12/01/my-scriptcmd-for-android/</link>
		<comments>http://eradicus.blogsome.com/2010/12/01/my-scriptcmd-for-android/#comments</comments>
		<pubDate>Tue, 30 Nov 2010 16:56:59 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2010/12/01/my-scriptcmd-for-android/</guid>
		<description><![CDATA[	Here&#8217;s my script for updating the Android firmware. This script must contain the correct file header for your processor.
	
setenv BMP_ADR 3c00000
fatload mmc 0 $(BMP_ADR) script/hint1_en.bmp
setenv lcdparam 1,30000,8,800,480,48,40,40,3,29,13
setenv pwmparam 0,45,1040,1040
setenv LCDC_FB f900000
lcdinit
logo show -1 0
textout 30 80 &quot;Android update will start after 8 seconds...&quot; ffff00
sleep 1
textout 30 80 &quot;Android update will start after 7 seconds...&quot; ffff00
sleep [...]]]></description>
			<content:encoded><![CDATA[	<p>Here&#8217;s my script for updating the Android firmware. This script must contain the correct file header for your processor.</p>
	<pre class="codeblock">
setenv BMP_ADR 3c00000
fatload mmc 0 $(BMP_ADR) script/hint1_en.bmp
setenv lcdparam 1,30000,8,800,480,48,40,40,3,29,13
setenv pwmparam 0,45,1040,1040
setenv LCDC_FB f900000
lcdinit
logo show -1 0
textout 30 80 &quot;Android update will start after 8 seconds...&quot; ffff00
sleep 1
textout 30 80 &quot;Android update will start after 7 seconds...&quot; ffff00
sleep 1
textout 30 80 &quot;Android update will start after 6 seconds...&quot; ffff00
sleep 1
textout 30 80 &quot;Android update will start after 5 seconds...&quot; ffff00
sleep 1
textout 30 80 &quot;Android update will start after 4 seconds...&quot; ffff00
sleep 1
textout 30 80 &quot;Android update will start after 3 seconds...&quot; ffff00
sleep 1
textout 30 80 &quot;Android update will start after 2 seconds...&quot; ffff00
sleep 1
textout 30 80 &quot;Android update will start after 1 second...&quot; ffff00
sleep 1
mmcinit
setenv text1 'textout 705 458 &quot;  1.9.99 by eradicus&quot; c5c5c5'
run text1
textout 30 80 &quot;Android Update&quot; ffff00
textout -1 -1 &quot;Updating w-load...&quot; ffff00
fatload mmc 0 0 script/wload.bin
erase ffff0000 +10000
cp.b 0 ffff0000 10000
textout -1 -1 &quot;w-load update done!&quot; ff00
textout -1 -1 &quot;Updating u-boot...&quot; ffff00
fatload mmc 0 0 script/u-boot.bin
erase fff80000 +50000
cp.b 0 fff80000 50000
textout -1 -1 &quot;u-boot update done!&quot; ff00
setenv touchic  true
setenv bootdelay 1
setenv audioic  wm9715
setenv touchirq  gpio5
setenv battvoltlist  6830,7086,7310,7503,7575,7636,7720,7861,7953,8018,8190
setenv gpiostate  3
setenv kpadid wms8088b_14
setenv panelres.x 800
setenv panelres.y 480
setenv logocmd 'nand read 3c00000 600000 150000;logo show;run text1'
setenv bootcmd 'nand read 0 0 380000;bootm 0'
setenv bootargs 'mem=237M noinitrd root=/dev/mtdblock9 rootfstype=yaffs2 rw console=ttyS0,115200n8 init=/init lcdid=1 androidboot.console=ttyS0 loadtime=-3'
setenv sd_powerup
setenv sd_powerdown
setenv amp_powerup 0xd811005c|0x4,0xd8110084|0x4,0xd81100ac&#038;~0x4
setenv amp_powerdown 0xd811005c|0x4,0xd8110084|0x4,0xd81100ac|0x4
setenv wifi_powerdown 0xd811005c|0x2,0xd8110084|0x2,0xd81100ac&#038;~0x2
setenv wifi_powerup 0xd811005c|0x2,0xd8110084|0x2,0xd81100ac|0x2
setenv regop $(amp_powerdown),$(wifi_powerdown),D8130054|0x1
setenv LOGO_STRING
setenv basevolt 3300
setenv hibernation_ui no
setenv eth_ui yes
setenv gsensor_axis 0,1,1,-1,2,1
setenv gsensor_int gpio6
setenv gsensor_ui yes
setenv motor_ui yes
setenv photo_ui_slideshow_mode
setenv vibra_start 0xD811005C|0x8,0xD8110084|0x8,0xD81100AC|0x8
setenv vibra_stop 0xD81100AC&#038;~0x8
setenv vibra_enable 0
setenv video_ui_dir_select
setenv 88 1
setenv dw
setenv restore
setenv need_restore_data yes
setenv orientation_ui yes
setenv cam_pre_width 360
setenv cam_pre_height 480
setenv camera_rotate 90
setenv camera_chip sonix
setenv camera_up 5c|0x1,84|0x1,ac|0x1
setenv camera_down ac&#038;~0x1
setenv camera_ui yes
setenv customer_id 1
setenv musicplayer_black_cd yes
setenv enable_hw_scal yes
setenv enable_gome_theme no
setenv modem3g_ui no
setenv pppoe_ui no
setenv release_ver 1.9_88v4c
setenv release_date 20101107
setenv release_language english
setenv bluetooth_ui no
setenv wmt.model 8088b_90_20k
setenv powerhold 1
setenv touchcodec
setenv amp_stop_when_nouse
randommac
protect off all
saveenv
fatload mmc 0 0 script/androidpad.bmp
textout -1 -1 &quot;Updating splash screen...&quot; ffff00
nand write 0 600000 $(filesize)
textout -1 -1 &quot;Splash screen update done!&quot; ff00
fatload mmc 0 0 script/ramdisk_88_en.gz
textout -1 -1 &quot;Updating ramdisk...&quot; ffff00
nand write 0 C00000 $(filesize)
textout -1 -1 &quot;ramdisk update done!&quot; ff00
fatload mmc 0 0 script/uzImage.bin
textout -1 -1 &quot;Updating kernel...&quot; ffff00
nand write 0 0 $(filesize)
textout -1 -1 &quot;Kernel update done!&quot; ff00
textout -1 -1 &quot;Updating file system...&quot; ffff00
setenv bootargs 'mem=237M root=/dev/ram rw initrd=0x01000000,32M console=ttyS0,115200n8 init=/linuxrc lcdid=1 loadtime=-3'
fatload mmc 0 1000000 script/mvl5_v5t_ramdisk_WM8505.090922.loop_en.gz
textout -1 -1 &quot;Please wait...&quot; ff00
bootm 0
</pre>
	<p>To prepend the file header, execute </p>
	<pre class="codeblock">
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n &quot;info&quot; -d thisscript.txt scriptcmd
</pre>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2010/12/01/my-scriptcmd-for-android/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Android ASCII Art</title>
		<link>http://eradicus.blogsome.com/2010/11/29/android-ascii-art/</link>
		<comments>http://eradicus.blogsome.com/2010/11/29/android-ascii-art/#comments</comments>
		<pubDate>Mon, 29 Nov 2010 15:51:30 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2010/11/29/android-ascii-art/</guid>
		<description><![CDATA[	
                         G                         G
     [...]]]></description>
			<content:encoded><![CDATA[	<pre class="codeblock">
                         G                         G
                         GG                       GG
                          G                       G
                          GG                     GG
                           GG   GGGGGGGGGGGGG   GG
                            GGGGGGGGGGGGGGGGGGGGG
                         GGGGGGGGGGGGGGGGGGGGGGGGGGG
                       GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
                      GGGGGG  GGGGGGGGGGGGGGGGG  GGGGGG
                     GGGGGG    GGGGGGGGGGGGGGG    GGGGGG
                    GGGGGGG    GGGGGGGGGGGGGGG    GGGGGGG
                    GGGGGGGG  GGGGGGGGGGGGGGGGG  GGGGGGGG
                   GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
                   GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
                  GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG           
	
           GG     GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG     GG
         GGGGGG   GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG   GGGGGG
        GGGGGGG   GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG   GGGGGGG
        GGGGGGGG  GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG  GGGGGGGG
        GGGGGGGG  GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG  GGGGGGGG
        GGGGGGGG  GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG  GGGGGGGG
        GGGGGGGG  GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG  GGGGGGGG
        GGGGGGGG  GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG  GGGGGGGG
        GGGGGGGG  GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG  GGGGGGGG
        GGGGGGGG  GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG  GGGGGGGG
        GGGGGGGG  GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG  GGGGGGGG
        GGGGGGGG  GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG  GGGGGGGG
        GGGGGGGG  GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG  GGGGGGGG
        GGGGGGG   GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG   GGGGGGG
         GGGGG    GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG    GGGGG
                  GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
                  GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
                   GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
                   GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
                    GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
                         GGGGGGGGG         GGGGGGGGG
                         GGGGGGGGG         GGGGGGGGG
                         GGGGGGGGG         GGGGGGGGG
                         GGGGGGGGG         GGGGGGGGG
                         GGGGGGGGG         GGGGGGGGG
                         GGGGGGGGG         GGGGGGGGG
                         GGGGGGGGG         GGGGGGGGG
                          GGGGGGG           GGGGGGG
                          GGGGGGG           GGGGGGG
</pre>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2010/11/29/android-ascii-art/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Active Directory with JXplorer</title>
		<link>http://eradicus.blogsome.com/2010/10/19/active-directory-with-jxplorer/</link>
		<comments>http://eradicus.blogsome.com/2010/10/19/active-directory-with-jxplorer/#comments</comments>
		<pubDate>Mon, 18 Oct 2010 21:10:24 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2010/10/19/active-directory-with-jxplorer/</guid>
		<description><![CDATA[	For folks who do not read the manual. If you encounter this error using JXplorer:
	
[LDAP: error code 1 - 00000000: LdapErr: DSID-0C090627, comment:
In order to perform this operation a successful bind must be completed
on the connection., data 0, vece]

	Do not use your login name. Use your full name instead.
]]></description>
			<content:encoded><![CDATA[	<p>For folks who do not read the manual. If you encounter this error using JXplorer:</p>
	<pre class="codeblock">
[LDAP: error code 1 - 00000000: LdapErr: DSID-0C090627, comment:
In order to perform this operation a successful bind must be completed
on the connection., data 0, vece]
</pre>
	<p>Do not use your login name. Use your full name instead.</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2010/10/19/active-directory-with-jxplorer/feed/</wfw:commentRss>
	</item>
		<item>
		<title>On an obsolete road</title>
		<link>http://eradicus.blogsome.com/2010/09/28/on-an-obsolete-road/</link>
		<comments>http://eradicus.blogsome.com/2010/09/28/on-an-obsolete-road/#comments</comments>
		<pubDate>Tue, 28 Sep 2010 08:52:29 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2010/09/28/on-an-obsolete-road/</guid>
		<description><![CDATA[	I have already forgotten these things.
	1. Inner join versus outer join
2. Simple select statement for getting the max value of a column + another column
3. Definition of Object Oriented programming
4. Exact figure of the limitation of HTTP GET.
5. Differences between GET and POST.
6. The default method of an HTML form when submitted.
	I have made time [...]]]></description>
			<content:encoded><![CDATA[	<p>I have already forgotten these things.</p>
	<p>1. Inner join versus outer join<br />
2. Simple select statement for getting the max value of a column + another column<br />
3. Definition of Object Oriented programming<br />
4. Exact figure of the limitation of HTTP GET.<br />
5. Differences between GET and POST.<br />
6. The default method of an HTML form when submitted.</p>
	<p>I have made time to review them. Here they are.</p>
	<p>1. Inner join will return matched results between two tables while outer join will return all regardless if there is a match or none between the two tables. Here&#8217;s a good article by Jeff Atwood, <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.codinghorror.com%2Fblog%2F2007%2F10%2Fa-visual-explanation-of-sql-joins.html&amp;i=0&amp;c=17a48cc48bf642f4caba104066c33abfce4cb2fe">A Visual Explanation of SQL Joins</a>.</p>
	<p>2. Given a table Person with two columns, Name and Age. To get the eldest, </p>
	<pre class="codeblock">
SELECT Name, Age FROM Person WHERE Age = max(Age);
</pre>
	<p>3. Object oriented programming is a programming paradigm that uses objects. These objects consist of fields, methods and their interaction.</p>
	<p>4. 256 characters.</p>
	<p>5. Given the size limit of GET, POST is used to overcome that. POST is used if you want to submit data with non-ASCII characters. If you want to hide data you&#8217;ll prefer POST than GET since it hides hidden fields in the URL but it&#8217;s not enough since you can view the source or use browser debugging tools such as FireBug and Chrome Developer Tools.</p>
	<p>6. If you have an HTML form with no method defined, GET is the default.</p>
	<p>There goes my hopes and dreams. The road less traveled.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2010/09/28/on-an-obsolete-road/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Casting to a Boolean in JavaScript</title>
		<link>http://eradicus.blogsome.com/2010/09/24/casting-to-a-boolean-in-javascript/</link>
		<comments>http://eradicus.blogsome.com/2010/09/24/casting-to-a-boolean-in-javascript/#comments</comments>
		<pubDate>Thu, 23 Sep 2010 22:49:05 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2010/09/24/casting-to-a-boolean-in-javascript/</guid>
		<description><![CDATA[	I came across with this expression,
	
button.enabled = !!enable

	!! is just a double not. This is just obscure.

]]></description>
			<content:encoded><![CDATA[	<p>I came across with this expression,</p>
	<pre class="codeblock">
button.enabled = !!enable
</pre>
	<p>!! is just a <em>double not</em>. This is just obscure.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2010/09/24/casting-to-a-boolean-in-javascript/feed/</wfw:commentRss>
	</item>
		<item>
		<title>HTML5 Web SQL Database</title>
		<link>http://eradicus.blogsome.com/2010/07/16/html5-web-sql-database/</link>
		<comments>http://eradicus.blogsome.com/2010/07/16/html5-web-sql-database/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 01:27:38 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2010/07/16/html5-web-sql-database/</guid>
		<description><![CDATA[	HTML5 has a bunch of cool APIs. In one of my previous posts, I have written a simple demonstration of the Web Storage JavaScript API. In this post I will be showing another demonstration, the Web SQL Database JavaScript API. What is so fascinating about these APIs is they are &#8220;crash-safe.&#8221; Now you can lessen [...]]]></description>
			<content:encoded><![CDATA[	<p>HTML5 has a bunch of cool APIs. In one of my previous posts, I have written a simple demonstration of the Web Storage JavaScript API. In this post I will be showing another demonstration, the Web SQL Database JavaScript API. What is so fascinating about these APIs is they are &#8220;crash-safe.&#8221; Now you can lessen the load of your web servers and perform SQL tasks like, sorting, joining, etc. on the client side.</p>
	<p>Click <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Feradicus.blogsome.com%2Fhtml5-web-sql-database-demo%2F&amp;i=0&amp;c=6a3ab9619e74c75c35406d0898e43d152683c583">[here]</a> for the demonstration.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2010/07/16/html5-web-sql-database/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Removing while Iterating a Collection in Java</title>
		<link>http://eradicus.blogsome.com/2010/07/15/removing-while-iterating-a-collection-in-java/</link>
		<comments>http://eradicus.blogsome.com/2010/07/15/removing-while-iterating-a-collection-in-java/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 22:15:10 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2010/07/15/removing-while-iterating-a-collection-in-java/</guid>
		<description><![CDATA[	Let us say you have a list and you want to remove items while iterating through it if a certain condition satisfies. 
	
for (Object object : listOfObjects) {
    if (isConditionSatisfied) {
        listOfObjects.remove(object);
    }
}

	What is wrong with this code above? Try it and [...]]]></description>
			<content:encoded><![CDATA[	<p>Let us say you have a list and you want to remove items while iterating through it if a certain condition satisfies. </p>
	<pre class="codeblock">
for (Object object : listOfObjects) {
    if (isConditionSatisfied) {
        listOfObjects.remove(object);
    }
}
</pre>
	<p>What is wrong with this code above? Try it and you will get this,</p>
	<pre class="codeblock">
Exception in thread &quot;main&quot; java.util.ConcurrentModificationException
</pre>
	<p>You might want to do this instead,</p>
	<pre class="codeblock">
Iterator&lt;Object&gt; iterator = listOfObjects.iterator();
while (iterator.hasNext()) {
    Object object = iterator.next();
    if (isConditionSatisfied) {
        iterator.remove();
    }
}
</pre>
	<p>Have a nice day.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2010/07/15/removing-while-iterating-a-collection-in-java/feed/</wfw:commentRss>
	</item>
		<item>
		<title>HTML5 Web Storage</title>
		<link>http://eradicus.blogsome.com/2010/07/13/html5-web-storage/</link>
		<comments>http://eradicus.blogsome.com/2010/07/13/html5-web-storage/#comments</comments>
		<pubDate>Tue, 13 Jul 2010 08:21:25 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2010/07/13/html5-web-storage/</guid>
		<description><![CDATA[	Here is a simple demonstration of HTML5&#8217;s Web Storage. The code is quite straightforward. One thing to experiment is after entering any string and hitting save, try closing the browser entirely and opening it again visiting the same page to see if the data persisted.
	Click [here] for the demonstration.
]]></description>
			<content:encoded><![CDATA[	<p>Here is a simple demonstration of HTML5&#8217;s Web Storage. The code is quite straightforward. One thing to experiment is after entering any string and hitting save, try closing the browser entirely and opening it again visiting the same page to see if the data persisted.</p>
	<p>Click <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Feradicus.blogsome.com%2Fhtml5-web-storage-demo%2F&amp;i=0&amp;c=1dab943f2d58fa3124ef11aa0ee3d4d8fa1522d2">[here]</a> for the demonstration.</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2010/07/13/html5-web-storage/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Just for fun!</title>
		<link>http://eradicus.blogsome.com/2010/06/09/just-for-fun/</link>
		<comments>http://eradicus.blogsome.com/2010/06/09/just-for-fun/#comments</comments>
		<pubDate>Tue, 08 Jun 2010 22:15:34 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2010/06/09/just-for-fun/</guid>
		<description><![CDATA[	It has been a while since I have written something about Javascript. You need to copy and paste this to your browser&#8217;s address bar to see how it works.
	
javascript:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200;
DI=document.getElementsByTagName(&quot;a&quot;); DIL=DI.length; function A(){for(i=0; i-DIL; i++){DIS=DI[ i ].style;
DIS.position='absolute'; DIS.left=(Math.sin(R*x1+i*x2+x3)*x4+x5)+&quot;px&quot;; DIS.top=
(Math.cos(R*y1+i*y2+y3)*y4+y5)+&quot;px&quot;}R++}setInterval('A()',50); void(0);

	Enjoy!

]]></description>
			<content:encoded><![CDATA[	<p>It has been a while since I have written something about Javascript. You need to copy and paste this to your browser&#8217;s address bar to see how it works.</p>
	<pre class="codeblock">
javascript:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200;
DI=document.getElementsByTagName(&quot;a&quot;); DIL=DI.length; function A(){for(i=0; i-DIL; i++){DIS=DI[ i ].style;
DIS.position='absolute'; DIS.left=(Math.sin(R*x1+i*x2+x3)*x4+x5)+&quot;px&quot;; DIS.top=
(Math.cos(R*y1+i*y2+y3)*y4+y5)+&quot;px&quot;}R++}setInterval('A()',50); void(0);
</pre>
	<p>Enjoy!
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2010/06/09/just-for-fun/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Performance of null checks in Java</title>
		<link>http://eradicus.blogsome.com/2010/06/07/null-checks-in-java/</link>
		<comments>http://eradicus.blogsome.com/2010/06/07/null-checks-in-java/#comments</comments>
		<pubDate>Mon, 07 Jun 2010 11:08:50 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2010/06/07/null-checks-in-java/</guid>
		<description><![CDATA[	Which one is faster? a == null or null == a? 
	This is the method of the former.
	
    public static boolean firstNullCheck(Object a) {
        if (a == null) {
            return true;
    [...]]]></description>
			<content:encoded><![CDATA[	<p>Which one is faster? <em>a == null</em> or <em>null == a</em>? </p>
	<p>This is the method of the former.</p>
	<pre class="codeblock">
    public static boolean firstNullCheck(Object a) {
        if (a == null) {
            return true;
        }
        return false;
    }
</pre>
	<p>and the method of the latter.</p>
	<pre class="codeblock">
    public static boolean secondNullCheck(Object a) {
        if (null == a) {
            return true;
        }
        return false;
    }
</pre>
	<p>Here&#8217;s the disassembly of the former.</p>
	<pre class="codeblock">
public static boolean firstNullCheck(java.lang.Object);
  Code:
   0:	aload_0
   1:	ifnonnull	6
   4:	iconst_1
   5:	ireturn
   6:	iconst_0
   7:	ireturn
</pre>
	<p>and the disassembly of the latter.</p>
	<pre class="codeblock">
public static boolean secondNullCheck(java.lang.Object);
  Code:
   0:	aconst_null
   1:	aload_0
   2:	if_acmpne	7
   5:	iconst_1
   6:	ireturn
   7:	iconst_0
   8:	ireturn
</pre>
	<p>The former saves you a bytecode. Anyone who can explain further since I am not sure whether <em>if_acmpne</em> is faster than <em>ifnonnull</em>?
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2010/06/07/null-checks-in-java/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Google over SSL</title>
		<link>http://eradicus.blogsome.com/2010/06/07/google-over-ssl/</link>
		<comments>http://eradicus.blogsome.com/2010/06/07/google-over-ssl/#comments</comments>
		<pubDate>Mon, 07 Jun 2010 09:54:25 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2010/06/07/google-over-ssl/</guid>
		<description><![CDATA[	If you do not want your search queries to be compromised, use Google SSL. However, there is one thing I discovered though, if you click on a cached link, it&#8217;s not encrypted, it goes back to HTTP from HTTPS making the protected search useless. Just be aware.

]]></description>
			<content:encoded><![CDATA[	<p>If you do not want your search queries to be compromised, use <a href="http://eradicus.blogsome.com/go.php?u=https%3A%2F%2Fwww.google.com%2F&amp;i=0&amp;c=b26a54ce63909bcab079dff546b341d42c87748f">Google SSL</a>. However, there is one thing I discovered though, if you click on a cached link, it&#8217;s not encrypted, it goes back to HTTP from HTTPS making the protected search useless. Just be aware.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2010/06/07/google-over-ssl/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Importance of daily meetings</title>
		<link>http://eradicus.blogsome.com/2010/06/04/importance-of-meetings-2/</link>
		<comments>http://eradicus.blogsome.com/2010/06/04/importance-of-meetings-2/#comments</comments>
		<pubDate>Thu, 03 Jun 2010 16:38:15 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2010/06/04/importance-of-meetings-2/</guid>
		<description><![CDATA[	Why are daily meetings important? Yes I know what you are thinking, to check if the schedule is on target, to spot showstoppers, roadblocks and whatnots. But aside from those, there are things that make daily meetings rewarding.
	Let&#8217;s face it, some people (including me) find it hard oftentimes to achieve a certain level of focus [...]]]></description>
			<content:encoded><![CDATA[	<p>Why are daily meetings important? Yes I know what you are thinking, to check if the schedule is on target, to spot showstoppers, roadblocks and whatnots. But aside from those, there are things that make daily meetings rewarding.</p>
	<p>Let&#8217;s face it, some people (including me) find it hard oftentimes to achieve a certain level of focus at work especially when multitasking is inevitable. Meetings will remind us of our commitments infront of our peers. Since most of us will be ashamed of not making any progress, it will trigger ourselves to do something about it. </p>
	<p>In my opinion, having daily meetings typically before the shift starts will help a lot of peers suffering from bad habits - procrastination. It is one way of invigorating those who have not found their way out yet. </p>
	<p>&#8220;Keep each other in the zone, what are teammates for?&#8221;
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2010/06/04/importance-of-meetings-2/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Yesterday I turned 0x18</title>
		<link>http://eradicus.blogsome.com/2010/06/01/yesterday-i-turned-0x18/</link>
		<comments>http://eradicus.blogsome.com/2010/06/01/yesterday-i-turned-0x18/#comments</comments>
		<pubDate>Tue, 01 Jun 2010 13:40:29 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2010/06/01/yesterday-i-turned-0x18/</guid>
		<description><![CDATA[	A very simple party, KFC Bucket, 1 Black Forest Cake. Thank you God for another blessed year.

]]></description>
			<content:encoded><![CDATA[	<p>A very simple party, KFC Bucket, 1 Black Forest Cake. Thank you God for another blessed year.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2010/06/01/yesterday-i-turned-0x18/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Google Search Operators</title>
		<link>http://eradicus.blogsome.com/2010/03/12/google-search-operators/</link>
		<comments>http://eradicus.blogsome.com/2010/03/12/google-search-operators/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 00:00:07 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2010/03/12/google-search-operators/</guid>
		<description><![CDATA[	There is great power here. I know most of you are not taking advantage of these operators.
	1. + (plus) - this will yield search results ordered by the number of occurrences of the specified word
2. - (dash) - this will yield search results that do not contain the specified word
3. &quot; &quot; (double quotes) - [...]]]></description>
			<content:encoded><![CDATA[	<p>There is great power here. I know most of you are not taking advantage of these operators.</p>
	<p>1. <strong>+ (plus)</strong> - this will yield search results ordered by the number of occurrences of the specified word<br />
2. <strong>- (dash)</strong> - this will yield search results that do not contain the specified word<br />
3. <strong>&quot; &quot; (double quotes)</strong> - this will yield search results containing the exact word specified<br />
4. <strong>. (dot)</strong> - is a wildcard representing a single character<br />
5. <strong>* (asterisk)</strong> - is a wildcard representing a single word<br />
6. <strong>|</strong> - traditional OR operator<br />
7. <strong>site:</strong> - search within a specified domain<br />
8. <strong>intitle:</strong> - this will search for the 1st specified word in page titles and the 2nd specified word in the text<br />
9. <strong>allintitle:</strong> - this will search for texts in page titles only<br />
10. <strong>inurl:</strong> - this will search for URLs containing the specified word<br />
11. <strong>allinurl:</strong> - this will search for texts in URLs only<br />
12. <strong>filetype:</strong> - this will search for texts containing files of the specified extension and the specified word<br />
13. <strong>ext:</strong> - this will search for texts containing files of the specified extension and the specified word<br />
14. <strong>numrange</strong> - used for searching number sequences<br />
15. <strong>link:</strong> - this will search for pages containing the specified link<br />
16. <strong>inanchor:</strong> - this will yield search results that contain the actual link text specified<br />
17. <strong>allintext:</strong> - this will search for the exact text specified<br />
18. <strong>info:</strong> - this will search for links and information about the specified website<br />
19. <strong>cache:</strong> - this will display a copy of the page stored by Google<br />
20. <strong>movie:</strong> - this will yield search results about the movie specified<br />
21. <strong>stocks:</strong> - display the current stock of the specified symbol<br />
22. <strong>define:</strong> - instant dictionary</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2010/03/12/google-search-operators/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Gmail Search Operators</title>
		<link>http://eradicus.blogsome.com/2010/03/04/gmail-search-operators/</link>
		<comments>http://eradicus.blogsome.com/2010/03/04/gmail-search-operators/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 07:19:44 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2010/03/04/gmail-search-operators/</guid>
		<description><![CDATA[	These operators will give you more precise search results.
	1. from: - mails from the name of the sender
2. to: - mails sent/to be sent to to the recipient
3. subject: - search mails containing the specified words in the subject
4. OR - traditional OR operator
5. -  (dash or hyphen) - exclude messages containing the specified [...]]]></description>
			<content:encoded><![CDATA[	<p>These operators will give you more precise search results.</p>
	<p>1. <strong>from:</strong> - mails from the name of the sender<br />
2. <strong>to:</strong> - mails sent/to be sent to to the recipient<br />
3. <strong>subject:</strong> - search mails containing the specified words in the subject<br />
4. <strong>OR</strong> - traditional OR operator<br />
5. <strong>-</strong>  (dash or hyphen) - exclude messages containing the specified words<br />
6. <strong>label:</strong> - search messages by label<br />
7. <strong>has:attachment</strong> - search mails with attachments<br />
8. <strong>filename:</strong> - search mails by filename of the attachments<br />
9. <strong>&quot; &quot;</strong> (double quotes) - traditional operator for filtering exact specified words<br />
10. <strong>()</strong> - used for grouping search expressions<br />
11. <strong>in:anywhere</strong> - search for mails anywhere in your account<br />
12. <strong>in:inbox</strong> - search for mails in your inbox<br />
13. <strong>in:trash</strong> - search for mails in your trash folder<br />
14. <strong>in:spam</strong> - search for mails in your spam folder<br />
15. <strong>is:starred</strong> - search for starred mails<br />
16. <strong>is:unread</strong> - search for unread mails<br />
17. <strong>is:read</strong> - search for read mails<br />
18. <strong>cc:</strong> - search mails that were carbon copied to a specified recipient<br />
19. <strong>bcc:</strong> - search mails that were blind carbon copied to a specified recipient<br />
20. <strong>after:</strong> - search mails after a specified date in yyyy/MM/dd format<br />
21. <strong>before:</strong> - search mails before a specified date in yyyy/MM/dd format</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2010/03/04/gmail-search-operators/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Endianness of Java</title>
		<link>http://eradicus.blogsome.com/2010/02/20/endianness-of-java/</link>
		<comments>http://eradicus.blogsome.com/2010/02/20/endianness-of-java/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 22:20:05 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2010/02/20/endianness-of-java/</guid>
		<description><![CDATA[	In Java, multibyte data items or streams are stored in big endian order.
	Using Java to write bytes directly to the wire will require byte-order transformation if the recipient talks in little endian. The same is true if you are reading directly from the wire from a sender who talks in little endian.
	If you are using [...]]]></description>
			<content:encoded><![CDATA[	<p>In Java, multibyte data items or streams are stored in big <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FEndianness&amp;i=0&amp;c=ddfcda48c477fb3cd9d92bd04875acdda5db33e0">endian</a> order.</p>
	<p>Using Java to write bytes directly to the wire will require byte-order transformation if the recipient talks in little endian. The same is true if you are reading directly from the wire from a sender who talks in little endian.</p>
	<p>If you are using a byte array wrapped in ByteBuffer,</p>
	<pre class="codeblock">
byte[] data = new byte[] { 12, 19, 83, 05, -05,  55, -55 };
ByteBuffer byteBuffer = ByteBuffer.wrap(data);
</pre>
	<p>Transforming from big endian to little endian is easy,</p>
	<pre class="codeblock">
byteBuffer.order(java.nio.ByteOrder.LITTLE_ENDIAN);
</pre>
	<p>If you are unsure of the endianness of the underlying platform, just invoke the native order method.</p>
	<pre class="codeblock">
java.nio.ByteOrder.nativeOrder();
</pre>
	<p>Aside from streams, operands in classes that are above 1 byte in size are in big endian order.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2010/02/20/endianness-of-java/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Protect your self from Repetitive Strain Injury (RSI)</title>
		<link>http://eradicus.blogsome.com/2010/02/19/protect-your-self-from-repetitive-strain-injury-rsi/</link>
		<comments>http://eradicus.blogsome.com/2010/02/19/protect-your-self-from-repetitive-strain-injury-rsi/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 20:21:53 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2010/02/19/protect-your-self-from-repetitive-strain-injury-rsi/</guid>
		<description><![CDATA[	Putting your keyboard where your brain is means that you are a candidate for repetitive strain injury. 
	You should check out Workrave now. Workrave is a free software available for Windows and *Nix users.
	If you are working on a Debian-based system, 
	
sudo apt-get install workrave

	Windows users, download [here].

]]></description>
			<content:encoded><![CDATA[	<p>Putting your keyboard where your brain is means that you are a candidate for <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FRepetitive_strain_injury&amp;i=0&amp;c=b4c5961c665d77954e8f60e8f701227f0bda8bf9">repetitive strain injury</a>. </p>
	<p>You should check out <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.workrave.org%2F&amp;i=0&amp;c=5089a63ceae7069e4ccc218ac30bc5d5888d3b73">Workrave</a> now. Workrave is a free software available for Windows and *Nix users.</p>
	<p>If you are working on a Debian-based system, </p>
	<pre class="codeblock">
sudo apt-get install workrave
</pre>
	<p>Windows users, download <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.workrave.org%2Fdownload%2F&amp;i=0&amp;c=099c97f7d973ce13a35eb7c3b03e71cc7597149a">[here]</a>.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2010/02/19/protect-your-self-from-repetitive-strain-injury-rsi/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Java Lambda Expressions / Closures</title>
		<link>http://eradicus.blogsome.com/2010/01/12/java-lambda-expressions-closures/</link>
		<comments>http://eradicus.blogsome.com/2010/01/12/java-lambda-expressions-closures/#comments</comments>
		<pubDate>Mon, 11 Jan 2010 18:48:11 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2010/01/12/java-lambda-expressions-closures/</guid>
		<description><![CDATA[	Lambda expressions are just (anonymous) functions.
	
f(x) = x can be expressed as x→x
f(x, y) = x*x + y*y can be expressed as x, y→x*x + y*y

	In simple Java terms,
	1. Return an int 23 with a void argument
	
int j = { => 23 }.invoke();

	2. Closure with 1 argument, convert 23 kilograms to pounds
	
double j = { [...]]]></description>
			<content:encoded><![CDATA[	<p>Lambda expressions are just (anonymous) functions.</p>
	<pre class="codeblock">
f(x) = x can be expressed as x→x
f(x, y) = x*x + y*y can be expressed as x, y→x*x + y*y
</pre>
	<p>In simple Java terms,</p>
	<p>1. Return an int 23 with a void argument</p>
	<pre class="codeblock">
int j = { => 23 }.invoke();
</pre>
	<p>2. Closure with 1 argument, convert 23 kilograms to pounds</p>
	<pre class="codeblock">
double j = { double kilograms => kilograms*2.2D }.invoke(23);
</pre>
	<p>3. Closure with 2 arguments, get the sum of the 2 squares</p>
	<pre class="codeblock">
int squareSum = { int x, int y => (x*x) + (y*y) }.invoke(2,3);
</pre>
	<p>4. Closure returning an instance and invoking an instance method</p>
	<pre class="codeblock">
{ new RocketLauncher() }.invoke().fire();
</pre>
	<p>Every time a closure is created at compile time, an interface is automatically created for each expression having an invoke method with a signature depending on the number of arguments, then an anonymous subclass of this interface is constructed.</p>
	<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2010/01/12/java-lambda-expressions-closures/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Welcome 0x7DA!</title>
		<link>http://eradicus.blogsome.com/2009/12/31/welcome-0x7da/</link>
		<comments>http://eradicus.blogsome.com/2009/12/31/welcome-0x7da/#comments</comments>
		<pubDate>Thu, 31 Dec 2009 15:18:43 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2009/12/31/welcome-0x7da/</guid>
		<description><![CDATA[	Happy New Year!

]]></description>
			<content:encoded><![CDATA[	<p>Happy New Year!
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2009/12/31/welcome-0x7da/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Tips for Reading Source Code</title>
		<link>http://eradicus.blogsome.com/2009/11/25/tips-for-reading-source-code/</link>
		<comments>http://eradicus.blogsome.com/2009/11/25/tips-for-reading-source-code/#comments</comments>
		<pubDate>Wed, 25 Nov 2009 10:15:45 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2009/11/25/tips-for-reading-source-code/</guid>
		<description><![CDATA[	Reading time is longer than the writing time and most programmers will lose focus along the way (some even fall asleep) especially if they are reading monstrous legacy code. There are several reasons why, in no particular order,
	1. Procrastination
Programmer: [Wandering mind&#8230; Facebook&#8230; Twitter&#8230;] &#8220;Oh man, I have a brilliant idea, I&#8217;m going to read more [...]]]></description>
			<content:encoded><![CDATA[	<p>Reading time is longer than the writing time and most programmers will lose focus along the way (some even fall asleep) especially if they are reading monstrous legacy code. There are several reasons why, in no particular order,</p>
	<p>1. Procrastination<br />
<em>Programmer: [Wandering mind&#8230; Facebook&#8230; Twitter&#8230;] &#8220;Oh man, I have a brilliant idea, I&#8217;m going to read more on that&#8230; I&#8217;ll set aside this crap first and try to come up something innovative.&#8221;</em></p>
	<p>2. Impatient<br />
<em>Programmer: &#8220;I hate this crap, ugly legacy code, it sucks! Can I just have the documents and rewrite everything from scratch?&#8221;<br />
Project Manager: &#8220;Unfortunately, the source code is the only document we have.&#8221;</em></p>
	<p>3. Interruptions<br />
<em>Team mate: &#8220;Hey! Can I have 5 seconds from you? I&#8217;m getting a NullPointerException, this is weird, I had everything initialized!&#8221;<br />
Programmer: &#8220;Are you sure? Hold on, let me check that, you might have some methods returning null.&#8221;</em></p>
	<p>4. Discontented -<br />
<em>Programmer: &#8220;What is this elementary code? This isn&#8217;t challenging, I want more challenge!&#8221;</em></p>
	<p>etc.</p>
	<p>You need to know what your goals are before reading the code. Start by asking these questions to your self and if you find out that you are losing focus along the way, just ask these questions again, it will help you get back on track. </p>
	<p>1. Am I going to fix a bug?<br />
2. Is this code implementing an API?<br />
3. Am I going to add a new feature?<br />
4. Am I just being curious to know the logic behind the code and nothing special?</p>
	<p>Often times, you will be able to grasp the logic behind the code by running the program first. Consider the diagram below.</p>
	<p>INPUT -> PROCESS -> OUTPUT </p>
	<p>Being able to understand the INPUT and the OUTPUT, the PROCESS part will follow easily.</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2009/11/25/tips-for-reading-source-code/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Installing Go in Ubuntu Jaunty</title>
		<link>http://eradicus.blogsome.com/2009/11/14/installing-go-in-ubuntu-jaunty/</link>
		<comments>http://eradicus.blogsome.com/2009/11/14/installing-go-in-ubuntu-jaunty/#comments</comments>
		<pubDate>Sat, 14 Nov 2009 13:40:47 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2009/11/14/installing-go-in-ubuntu-jaunty/</guid>
		<description><![CDATA[	Processor: x86
Operating System: Ubuntu Linux 9.04 Jaunty Jackalope
	1. CONFIGURE THE ENVIRONMENT
Set the necessary variables in your .bashrc that is if you are using bash. Assuming you have a 386-descendant processor and you want to keep the installation clean in an external disk (/media/disk).
	
# Google Go Programming Language Settings
export GOROOT=/media/disk/go
export GOARCH=386
export GOOS=linux
export GOBIN=/media/disk/go/bin

	2. INSTALL MERCURIAL.
Easy.
	
$ sudo [...]]]></description>
			<content:encoded><![CDATA[	<p>Processor: x86<br />
Operating System: Ubuntu Linux 9.04 Jaunty Jackalope</p>
	<p><strong>1. CONFIGURE THE ENVIRONMENT</strong><br />
Set the necessary variables in your .bashrc that is if you are using bash. Assuming you have a 386-descendant processor and you want to keep the installation clean in an external disk (/media/disk).</p>
	<pre class="codeblock">
# Google Go Programming Language Settings
export GOROOT=/media/disk/go
export GOARCH=386
export GOOS=linux
export GOBIN=/media/disk/go/bin
</pre>
	<p><strong>2. INSTALL MERCURIAL.</strong><br />
Easy.</p>
	<pre class="codeblock">
$ sudo easy_install mercurial
</pre>
	<p>Install process,</p>
	<pre class="codeblock">
Searching for mercurial
Reading http://pypi.python.org/simple/mercurial/
Reading http://www.selenic.com/mercurial
Best match: mercurial 1.3.1
Downloading http://mercurial.selenic.com/release/mercurial-1.3.1.tar.gz
Processing mercurial-1.3.1.tar.gz
Running mercurial-1.3.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-a3YaRd/mercurial-1.3.1/egg-dist-tmp-VyNqd2
zip_safe flag not set; analyzing archive contents...
mercurial.lsprof: module references __file__
mercurial.templater: module references __file__
mercurial.extensions: module references __file__
mercurial.i18n: module references __file__
Adding mercurial 1.3.1 to easy-install.pth file
Installing hg script to /usr/local/bin
	
Installed /usr/local/lib/python2.6/dist-packages/mercurial-1.3.1-py2.6-linux-i686.egg
Processing dependencies for mercurial
Finished processing dependencies for mercurial
</pre>
	<p><a id="more-199"></a><br />
<strong>3. CHECKOUT GO USING MERCURIAL</strong></p>
	<pre class="codeblock">
$ hg clone -r release https://go.googlecode.com/hg/ $GOROOT
</pre>
	<p>Checkout process,</p>
	<pre class="codeblock">
requesting all changes
adding changesets
adding manifests
adding file changes
added 4016 changesets with 16888 changes to 2931 files
updating working directory
1640 files updated, 0 files merged, 0 files removed, 0 files unresolved
</pre>
	<p><strong>4. BUILD GO</strong></p>
	<pre class="codeblock">
$ cd $GOROOT/src
$ ./all.bash
</pre>
	<p>Build process,</p>
	<pre class="codeblock">
--- cd pkg/exp/ogle
rm -rf *.[568vqo] *.a [568vq].out *.cgo[12].go *.cgo[34].c *.so _obj _test _testmain.go ogle
8g -o _go_.8 abort.go arch.go cmd.go event.go frame.go goroutine.go rruntime.go rtype.go rvalue.go process.go vars.go
rm -f _obj/exp/ogle.a
gopack grc _obj/exp/ogle.a _go_.8
8g -I_obj main.go
8l -L_obj -o ogle main.8
	
real	0m2.264s
user	0m1.496s
sys	0m0.136s
	
--- cd ../doc/progs
	
real	0m4.430s
user	0m3.144s
sys	0m0.444s
	
--- cd ../test/bench
fasta
reverse-complement
nbody
binary-tree
binary-tree-freelist
fannkuch
regex-dna
spectral-norm
k-nucleotide
mandelbrot
meteor-contest
pidigits
threadring
chameneosredux
</pre>
	<p>It should end with the following lines,</p>
	<pre class="codeblock">
--- cd ../test
0 known bugs; 0 unexpected bugs
</pre>
	<p><strong>5. ENJOY!</strong>
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2009/11/14/installing-go-in-ubuntu-jaunty/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Are you treating your computer better than yourself?</title>
		<link>http://eradicus.blogsome.com/2009/11/12/are-you-treating-your-computer-better-than-yourself/</link>
		<comments>http://eradicus.blogsome.com/2009/11/12/are-you-treating-your-computer-better-than-yourself/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 03:57:11 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2009/11/12/are-you-treating-your-computer-better-than-yourself/</guid>
		<description><![CDATA[	Yes, I am guilty. Most of us are not aware that we are treating our computers better than ourselves. We often juggle tasks like a computer processor. It has been proven by experts recently that multitasking drops IQ. The Dumb Little Man has some cool tips for us.
	Read the article, Are You Treating Your Computer [...]]]></description>
			<content:encoded><![CDATA[	<p>Yes, I am guilty. Most of us are not aware that we are treating our computers better than ourselves. We often juggle tasks like a computer processor. It has been proven by experts recently that multitasking drops IQ. The <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.dumblittleman.com%2F&amp;i=0&amp;c=68a39af628544aab65bde82fb847fa63fb14e9e5">Dumb Little Man</a> has some cool tips for us.</p>
	<p>Read the article, <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.dumblittleman.com%2F2009%2F11%2Fare-you-treating-your-computer-better.html&amp;i=0&amp;c=bf9597f365945bb7ae413f88bd66021b250f68fe">Are You Treating Your Computer Better Than You Treat Yourself?</a>
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2009/11/12/are-you-treating-your-computer-better-than-yourself/feed/</wfw:commentRss>
	</item>
		<item>
		<title>The Go Programming Language</title>
		<link>http://eradicus.blogsome.com/2009/11/11/the-go-programming-language/</link>
		<comments>http://eradicus.blogsome.com/2009/11/11/the-go-programming-language/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 13:58:04 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2009/11/11/the-go-programming-language/</guid>
		<description><![CDATA[	Good day! Try out [The Go Programming Language].
	As quoted from its home page, 
	Go is …
	… simple
	
package main
	
import &quot;fmt&quot;
	
func main() {
  fmt.Printf(&quot;Hello, 世界\n&quot;)
}

	… fast
Go compilers produce fast code fast. Typical builds take a fraction of a second yet the resulting programs run nearly as quickly as comparable C or C++ code.
	… safe
Go is type [...]]]></description>
			<content:encoded><![CDATA[	<p>Good day! Try out <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fgolang.org%2F&amp;i=0&amp;c=b7d2507773132ce29ffcceab564cc37106868802">[The Go Programming Language]</a>.</p>
	<p>As quoted from its home page, </p>
	<p>Go is …</p>
	<p>… simple</p>
	<pre class="codeblock">
package main
	
import &quot;fmt&quot;
	
func main() {
  fmt.Printf(&quot;Hello, 世界\n&quot;)
}
</pre>
	<p>… fast<br />
Go compilers produce fast code fast. Typical builds take a fraction of a second yet the resulting programs run nearly as quickly as comparable C or C++ code.</p>
	<p>… safe<br />
Go is type safe and memory safe. Go has pointers but no pointer arithmetic. For random access, use slices, which know their limits.</p>
	<p>… concurrent<br />
Go promotes writing systems and servers as sets of lightweight communicating processes, called goroutines, with strong support from the language. Run thousands of goroutines if you want—and say good-bye to stack overflows.</p>
	<p>… fun<br />
Go has fast builds, clean syntax, garbage collection, methods for any type, and run-time reflection. It feels like a dynamic language but has the speed and safety of a static language. It&#8217;s a joy to use.</p>
	<p>… open source</p>
	<p>Install Go! Click <a href="http://golang.org/doc/install.html">[here].</p>
	<p></a>
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2009/11/11/the-go-programming-language/feed/</wfw:commentRss>
	</item>
		<item>
		<title>I have relocated back to Blogsome</title>
		<link>http://eradicus.blogsome.com/2009/11/11/i-have-relocated-back-to-blogsome/</link>
		<comments>http://eradicus.blogsome.com/2009/11/11/i-have-relocated-back-to-blogsome/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 02:50:38 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2009/11/11/i-have-relocated-back-to-blogsome/</guid>
		<description><![CDATA[	For some reasons, sorry for the confusion. Here is my blog - [Digital Stronghold]

]]></description>
			<content:encoded><![CDATA[	<p>For some reasons, sorry for the confusion. Here is my blog - <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Feradicus.blogsome.com&amp;i=0&amp;c=551b7e1d9236a27f2978ef2c753a1aacc29b1b9e">[Digital Stronghold]</a>
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2009/11/11/i-have-relocated-back-to-blogsome/feed/</wfw:commentRss>
	</item>
		<item>
		<title>I have relocated to WordPress</title>
		<link>http://eradicus.blogsome.com/2009/11/11/i-have-relocated-to-wordpress/</link>
		<comments>http://eradicus.blogsome.com/2009/11/11/i-have-relocated-to-wordpress/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 19:52:20 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2009/11/11/i-have-relocated-to-wordpress/</guid>
		<description><![CDATA[	Here is my new blog site - [Digital Stronghold].

]]></description>
			<content:encoded><![CDATA[	<p>Here is my new blog site - <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Feradicus.wordpress.com&amp;i=0&amp;c=403bb1b3e49c2400db31c6368b4960ae5c42bf96">[Digital Stronghold]</a>.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2009/11/11/i-have-relocated-to-wordpress/feed/</wfw:commentRss>
	</item>
		<item>
		<title>POSIX cksum algorithm in Java</title>
		<link>http://eradicus.blogsome.com/2009/11/09/posix-cksum-algorithm-in-java/</link>
		<comments>http://eradicus.blogsome.com/2009/11/09/posix-cksum-algorithm-in-java/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 13:57:31 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2009/11/09/posix-cksum-algorithm-in-java/</guid>
		<description><![CDATA[	Most Unix programs rely on cksum for checking duplicate files. If you happen to migrate programs doing that, you need to make sure that you&#8217;ll be using the same algorithm for the same functionality of course. 
	Here is the [cksum algorithm] and here is the [cksum man] page.
	The class below is implementing the java.util.zip.Checksum interface [...]]]></description>
			<content:encoded><![CDATA[	<p>Most Unix programs rely on cksum for checking duplicate files. If you happen to migrate programs doing that, you need to make sure that you&#8217;ll be using the same algorithm for the same functionality of course. </p>
	<p>Here is the <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fxnet.fi%2Fsusv3%2Futilities%2Fcksum.html&amp;i=0&amp;c=e8346462f2cec9407085e9646de84293e75e29fb">[cksum algorithm]</a> and here is the <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.manpagez.com%2Fman%2F1%2Fcksum%2F&amp;i=0&amp;c=d769c132898c57c06cc3da548045ee5111233bb7">[cksum man]</a> page.</p>
	<p>The class below is implementing the <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fjava.sun.com%2Fjavase%2F6%2Fdocs%2Fapi%2Fjava%2Futil%2Fzip%2FChecksum.html&amp;i=0&amp;c=df96ed2911ea9ef84d37f1e27d93a8be849d5cff">java.util.zip.Checksum</a> interface for extensibility.</p>
	<pre class="codeblock">
/**
 * Compute the checksum of a data stream using the
 * POSIX cksum algorithm.
 */
public class Cksum implements Checksum {
	
    /**
     * The checksum value.
     */
    private int value;
	
    /**
     * The length of the stream.
     */
    private int length;
	
    /**
     * The cksum payload.
     */
    private final int[] payload = {
        0x00000000,
        0x04C11DB7, 0x09823B6E, 0x0D4326D9, 0x130476DC, 0x17C56B6B,
        0x1A864DB2, 0x1E475005, 0x2608EDB8, 0x22C9F00F, 0x2F8AD6D6,
        0x2B4BCB61, 0x350C9B64, 0x31CD86D3, 0x3C8EA00A, 0x384FBDBD,
        0x4C11DB70, 0x48D0C6C7, 0x4593E01E, 0x4152FDA9, 0x5F15ADAC,
        0x5BD4B01B, 0x569796C2, 0x52568B75, 0x6A1936C8, 0x6ED82B7F,
        0x639B0DA6, 0x675A1011, 0x791D4014, 0x7DDC5DA3, 0x709F7B7A,
        0x745E66CD, 0x9823B6E0, 0x9CE2AB57, 0x91A18D8E, 0x95609039,
        0x8B27C03C, 0x8FE6DD8B, 0x82A5FB52, 0x8664E6E5, 0xBE2B5B58,
        0xBAEA46EF, 0xB7A96036, 0xB3687D81, 0xAD2F2D84, 0xA9EE3033,
        0xA4AD16EA, 0xA06C0B5D, 0xD4326D90, 0xD0F37027, 0xDDB056FE,
        0xD9714B49, 0xC7361B4C, 0xC3F706FB, 0xCEB42022, 0xCA753D95,
        0xF23A8028, 0xF6FB9D9F, 0xFBB8BB46, 0xFF79A6F1, 0xE13EF6F4,
        0xE5FFEB43, 0xE8BCCD9A, 0xEC7DD02D, 0x34867077, 0x30476DC0,
        0x3D044B19, 0x39C556AE, 0x278206AB, 0x23431B1C, 0x2E003DC5,
        0x2AC12072, 0x128E9DCF, 0x164F8078, 0x1B0CA6A1, 0x1FCDBB16,
        0x018AEB13, 0x054BF6A4, 0x0808D07D, 0x0CC9CDCA, 0x7897AB07,
        0x7C56B6B0, 0x71159069, 0x75D48DDE, 0x6B93DDDB, 0x6F52C06C,
        0x6211E6B5, 0x66D0FB02, 0x5E9F46BF, 0x5A5E5B08, 0x571D7DD1,
        0x53DC6066, 0x4D9B3063, 0x495A2DD4, 0x44190B0D, 0x40D816BA,
        0xACA5C697, 0xA864DB20, 0xA527FDF9, 0xA1E6E04E, 0xBFA1B04B,
        0xBB60ADFC, 0xB6238B25, 0xB2E29692, 0x8AAD2B2F, 0x8E6C3698,
        0x832F1041, 0x87EE0DF6, 0x99A95DF3, 0x9D684044, 0x902B669D,
        0x94EA7B2A, 0xE0B41DE7, 0xE4750050, 0xE9362689, 0xEDF73B3E,
        0xF3B06B3B, 0xF771768C, 0xFA325055, 0xFEF34DE2, 0xC6BCF05F,
        0xC27DEDE8, 0xCF3ECB31, 0xCBFFD686, 0xD5B88683, 0xD1799B34,
        0xDC3ABDED, 0xD8FBA05A, 0x690CE0EE, 0x6DCDFD59, 0x608EDB80,
        0x644FC637, 0x7A089632, 0x7EC98B85, 0x738AAD5C, 0x774BB0EB,
        0x4F040D56, 0x4BC510E1, 0x46863638, 0x42472B8F, 0x5C007B8A,
        0x58C1663D, 0x558240E4, 0x51435D53, 0x251D3B9E, 0x21DC2629,
        0x2C9F00F0, 0x285E1D47, 0x36194D42, 0x32D850F5, 0x3F9B762C,
        0x3B5A6B9B, 0x0315D626, 0x07D4CB91, 0x0A97ED48, 0x0E56F0FF,
        0x1011A0FA, 0x14D0BD4D, 0x19939B94, 0x1D528623, 0xF12F560E,
        0xF5EE4BB9, 0xF8AD6D60, 0xFC6C70D7, 0xE22B20D2, 0xE6EA3D65,
        0xEBA91BBC, 0xEF68060B, 0xD727BBB6, 0xD3E6A601, 0xDEA580D8,
        0xDA649D6F, 0xC423CD6A, 0xC0E2D0DD, 0xCDA1F604, 0xC960EBB3,
        0xBD3E8D7E, 0xB9FF90C9, 0xB4BCB610, 0xB07DABA7, 0xAE3AFBA2,
        0xAAFBE615, 0xA7B8C0CC, 0xA379DD7B, 0x9B3660C6, 0x9FF77D71,
        0x92B45BA8, 0x9675461F, 0x8832161A, 0x8CF30BAD, 0x81B02D74,
        0x857130C3, 0x5D8A9099, 0x594B8D2E, 0x5408ABF7, 0x50C9B640,
        0x4E8EE645, 0x4A4FFBF2, 0x470CDD2B, 0x43CDC09C, 0x7B827D21,
        0x7F436096, 0x7200464F, 0x76C15BF8, 0x68860BFD, 0x6C47164A,
        0x61043093, 0x65C52D24, 0x119B4BE9, 0x155A565E, 0x18197087,
        0x1CD86D30, 0x029F3D35, 0x065E2082, 0x0B1D065B, 0x0FDC1BEC,
        0x3793A651, 0x3352BBE6, 0x3E119D3F, 0x3AD08088, 0x2497D08D,
        0x2056CD3A, 0x2D15EBE3, 0x29D4F654, 0xC5A92679, 0xC1683BCE,
        0xCC2B1D17, 0xC8EA00A0, 0xD6AD50A5, 0xD26C4D12, 0xDF2F6BCB,
        0xDBEE767C, 0xE3A1CBC1, 0xE760D676, 0xEA23F0AF, 0xEEE2ED18,
        0xF0A5BD1D, 0xF464A0AA, 0xF9278673, 0xFDE69BC4, 0x89B8FD09,
        0x8D79E0BE, 0x803AC667, 0x84FBDBD0, 0x9ABC8BD5, 0x9E7D9662,
        0x933EB0BB, 0x97FFAD0C, 0xAFB010B1, 0xAB710D06, 0xA6322BDF,
        0xA2F33668, 0xBCB4666D, 0xB8757BDA, 0xB5365D03, 0xB1F740B4
    };
	
    /**
     * Checksum constructor, reset checksum.
     */
    public Cksum() {
        super();
        reset();
    }
	
    /**
     * Reset the checksum.
     */
    public final void reset() {
        value = 0;
        length = 0;
    }
	
    /**
     * Update checksum value using a byte.
     *
     * @param byteRead is the byte read to include in the computation.
     */
    public void update(final byte byteRead) {
        value = (value &lt;&lt; 8 ) ^ payload[ ((value &gt;&gt; 24) ^ byteRead)   &#038; 0xFF];
        length++;
    }
	
    /**
     * Update checksum value using an int.
     *
     * @param byteRead is the byte read in int form to include in the computation.
     */
    public void update(final int byteRead) {
        update((byte)(byteRead &#038; 0xFF));
    }
	
    /**
     * Get the cksum checksum value.
     * a 2.5 GB file (length=2684354560), filled with random
     * bytes (Java seed=0), returns a cksum value of 128656372
     *
     * @return the cksum value.
     */
    public final long getValue() {
	
        // store both length and value to temps,
        // so we can launch getValue() multiple times
        long tmpLength = length;
        int tmpValue = value;
	
        // include the length of the file to the checksum value
        for (; tmpLength != 0; tmpLength &gt;&gt; = 8 ) {
            tmpValue = (tmpValue &lt;&lt; 8 ) ^ payload[((tmpValue &gt;&gt; 24) ^ (int)(tmpLength &#038; 0xFF)) &#038; 0xFF];
        }
	
        return (~tmpValue &#038; 0xFFFFFFFFL);
    }
	
    /**
     * Get the size of the stream.
     *
     * @return the size of the stream in bytes.
     */
    public final long getLength() {
        return length;
    }
	
    /**
     * Get the value in byte array form.
     *
     * @return the checksum value in byte array form.
     */
    public final byte[] getByteArray() {
        final long localValue = getValue();
        return new byte[]
        {(byte)((localValue &gt;&gt; 24)&#038;0xff),
         (byte)((localValue &gt;&gt; 16)&#038;0xff),
         (byte)((localValue &gt;&gt; 8 )&#038;0xff),
         (byte)(localValue&#038;0xff)};
    }
	
    /**
     * Method to work with java.util.zip.Checksum calls.
     */
    @Override
    public void update(final byte[] b, final int off, final int len) {
        for (int i = off; i &lt; len + off; i++) {
            update(b[i]);
        }
    }
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2009/11/09/posix-cksum-algorithm-in-java/feed/</wfw:commentRss>
	</item>
		<item>
		<title>HTTP reader in Java</title>
		<link>http://eradicus.blogsome.com/2009/11/08/http-reader-in-java/</link>
		<comments>http://eradicus.blogsome.com/2009/11/08/http-reader-in-java/#comments</comments>
		<pubDate>Sun, 08 Nov 2009 14:40:16 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2009/11/08/http-reader-in-java/</guid>
		<description><![CDATA[	While there are numerous ways of accessing web services, here is a primitive way of doing it. This is a simple class for reading HTTP responses. You can take advantage of this, classic examples are, 
	1. Reading twitter feeds for executing commands in a target machine
2. Getting the latest articles in a particular website
3. Translating [...]]]></description>
			<content:encoded><![CDATA[	<p>While there are numerous ways of accessing web services, here is a primitive way of doing it. This is a simple class for reading HTTP responses. You can take advantage of this, classic examples are, </p>
	<p>1. Reading twitter feeds for executing commands in a target machine<br />
2. Getting the latest articles in a particular website<br />
3. Translating through Google Translate<br />
4. Arithmetic operations through Google<br />
5. Currency conversion through Google</p>
	<p>and more!</p>
	<p>Here is the class.</p>
	<pre class="codeblock">
/**
 * Hyper-Text Transfer Protocol Reader.
 *
 * @author joset
 */
public final class HttpReader {
	
    private Map&lt;String, List&lt;String&gt;&gt; responseHeader;
    private URL responseUrl;
    private String mimeType;
    private String charset;
    private Object content;
    private int responseCode = -1;
	
    /**
     * Constructor requiring the URL string.
     */
    public HttpReader(final String urlString)
            throws MalformedURLException, IOException {
        // open a connection.
        final URL url = new URL(urlString);
        final URLConnection urlConnection = url.openConnection();
        if (!(urlConnection instanceof HttpURLConnection)) {
            throw new IllegalArgumentException(
                    &quot;URL protocol must be HTTP.&quot;);
        }
        final HttpURLConnection connection =
                (HttpURLConnection) urlConnection;
	
        // set up a request.
        connection.setConnectTimeout(10000);    // 10 sec
        connection.setReadTimeout(10000);       // 10 sec
        connection.setInstanceFollowRedirects(true);
        connection.setRequestProperty(&quot;user-agent&quot;, &quot;spider&quot;);
	
        // send the request.
        connection.connect();
	
        // get the response.
        responseHeader = connection.getHeaderFields();
        responseCode = connection.getResponseCode();
        responseUrl = connection.getURL();
        final int length = connection.getContentLength();
        final String type = connection.getContentType();
        if (type != null) {
            final String[] parts = type.split(&quot;;&quot;);
            mimeType = parts[0].trim();
            for (int i = 1; i &lt; parts.length &#038;&#038; charset == null; i++) {
                final String t = parts[i].trim();
                final int index = t.toLowerCase().indexOf(&quot;charset=&quot;);
                if (index != -1) {
                    charset = t.substring(index + 8 );
                }
            }
        }
	
        // get the content.
        final InputStream stream = connection.getErrorStream();
        if (stream != null) {
            content = readStream(length, stream);
        } else if ((content = connection.getContent()) != null &#038;&#038;
                content instanceof InputStream) {
            content = readStream(length, (InputStream) content);
        }
	
        // close connection.
        connection.disconnect();
    }
	
    /**
     * Read stream bytes and transcode.
     */
    private Object readStream(final int length, final InputStream stream)
            throws IOException {
        final int buflen = Math.max(1024, Math.max(length, stream.available()));
        byte[] buf = new byte[buflen];
        byte[] bytes = null;
	
        for (int nRead = stream.read(buf); nRead != -1; nRead = stream.read(buf)) {
            if (bytes == null) {
                bytes = buf;
                buf = new byte[buflen];
                continue;
            }
            final byte[] newBytes = new byte[bytes.length + nRead];
            System.arraycopy(bytes, 0, newBytes, 0, bytes.length);
            System.arraycopy(buf, 0, newBytes, bytes.length, nRead);
            bytes = newBytes;
        }
	
        if (charset == null) {
            return bytes;
        }
        try {
            return new String(bytes, charset);
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return bytes;
    }
	
    /**
     * Get the content.
     */
    public Object getContent() {
        return content;
    }
	
    /**
     * Get the response code.
     */
    public int getResponseCode() {
        return responseCode;
    }
	
    /**
     * Get the response header.
     */
    public Map&lt;String, List&lt;String&gt;&gt; getHeaderFields() {
        return responseHeader;
    }
	
    /**
     * Get the URL of the received page.
     */
    public URL getUrl() {
        return responseUrl;
    }
	
    /**
     * Get the MIME type.
     */
    public String getMimeType() {
        return mimeType;
    }
}
</pre>
	<p>Enjoy!</p>
	<blockquote><p>
The young do not know enough to be prudent, and therefore they attempt the impossible &#8212; and achieve it, generation after generation. - Pearl S. Buck</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2009/11/08/http-reader-in-java/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Delete files and directories recursively in Java</title>
		<link>http://eradicus.blogsome.com/2009/11/05/delete-files-and-directories-recursively-in-java/</link>
		<comments>http://eradicus.blogsome.com/2009/11/05/delete-files-and-directories-recursively-in-java/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 11:07:08 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2009/11/05/delete-files-and-directories-recursively-in-java/</guid>
		<description><![CDATA[	This post will teach you how to delete files and directories in Java recursively. There is nothing special in this post but I&#8217;m sure this will be useful especially for those who are just starting out their programming career in Java.
	
boolean deleteRecursively(final File file) {
    if (file.exists()) {
     [...]]]></description>
			<content:encoded><![CDATA[	<p>This post will teach you how to delete files and directories in Java recursively. There is nothing special in this post but I&#8217;m sure this will be useful especially for those who are just starting out their programming career in Java.</p>
	<pre class="codeblock">
boolean deleteRecursively(final File file) {
    if (file.exists()) {
        final File[] files = file.listFiles();
        for (int i = 0; i &lt; files.length; i++) {
            if (files[i].isDirectory()) {
                deleteRecursively(files[i]);
            }
            else {
                files[i].delete();
            }
        }
    }
    return (file.delete());
}
</pre>
	<p>This code was not tested. Please read the Java 6 File API documentation <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fjava.sun.com%2Fjavase%2F6%2Fdocs%2Fapi%2Fjava%2Fio%2FFile.html&amp;i=0&amp;c=0589c38264eeecd6f9c7d991572c10c07c01fb0c">[here]</a> for more information.</p>
	<p>&quot;Confidence means non-paralysis, a willingness to act, and act decisively, to start new things and cut failing ventures off.&quot; - Tom Peters
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2009/11/05/delete-files-and-directories-recursively-in-java/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Locking a file in Java</title>
		<link>http://eradicus.blogsome.com/2009/10/29/locking-a-file-in-java/</link>
		<comments>http://eradicus.blogsome.com/2009/10/29/locking-a-file-in-java/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 10:00:43 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2009/10/29/locking-a-file-in-java/</guid>
		<description><![CDATA[	Locking a file in Java is platform dependent. Write once run anywhere? Thumbs down. Some platforms will not allow a file access without a lock while others will.
	This is very useful especially when writing your own database (I know some people will argue but this is still happening in corporations handling very sensitive data). It [...]]]></description>
			<content:encoded><![CDATA[	<p>Locking a file in Java is platform dependent. Write once run anywhere? Thumbs down. Some platforms will not allow a file access without a lock while others will.</p>
	<p>This is very useful especially when writing your own database (I know some people will argue but this is still happening in corporations handling very sensitive data). It starts with a simple file access.</p>
	<pre class="codeblock">
try {
    final File file = new File(&quot;Tables.dat&quot;);
    final FileChannel fileChannel = new RandomAccessFile(file, &quot;rw&quot;).getChannel();
	
    // this method will block until a lock is acquired
    final FileLock lock =fileChannel.lock();
	
    // this method will not block, it will return null or throw an exception
    lock = fileChannel.tryLock();
	
    // TODO: do something with the file
	
    // release the lock
    lock.release();
	
    // cleanup / close file
    fileChannel.close();
} catch (Exception e) {
    // TODO: handle exception
}
</pre>
	<p>Caution: You really need to verify how the target platform handles files. This will not apply on a distributed database as well as networked file systems, if that&#8217;s the case you need to write at least a protocol for handling concurrency.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2009/10/29/locking-a-file-in-java/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Earth planner - Architect Felino Palafox Jr. (Manila Bulletin)</title>
		<link>http://eradicus.blogsome.com/2009/10/20/earth-planner-architect-felino-palafox-jr-manila-bulletin/</link>
		<comments>http://eradicus.blogsome.com/2009/10/20/earth-planner-architect-felino-palafox-jr-manila-bulletin/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 04:55:15 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2009/10/20/earth-planner-architect-felino-palafox-jr-manila-bulletin/</guid>
		<description><![CDATA[	Earth planner
Architect Felino Palafox, Jr.
October 17, 2009, 8:49am
	
THE MMetroplan is to Felino Palafox Jr. as the ark is to Noah.
	Through the plan and the ark, respectively, both forewarned their people of destruction to come their way if they didn’t mend their ways.
	Unfortunately, both were not heeded - and we all know what happened thereafter.
	“It was [...]]]></description>
			<content:encoded><![CDATA[	<p><strong>Earth planner</strong><br />
<strong>Architect Felino Palafox, Jr.</strong><br />
October 17, 2009, 8:49am</p>
	<blockquote><p>
THE MMetroplan is to Felino Palafox Jr. as the ark is to Noah.</p>
	<p>Through the plan and the ark, respectively, both forewarned their people of destruction to come their way if they didn’t mend their ways.</p>
	<p>Unfortunately, both were not heeded - and we all know what happened thereafter.</p>
	<p>“It was not an act of God. The devastation caused by Typhoon Ondoy could have been averted if humans only listened,’’ firmly believes world-renowned Filipino architect Palafox.</p>
	<p>Palafox, of course, completely knows what he was talking about. More than 30 years ago, in 1977, he came out with the Metro Manila Transport, Land Use and Development Planning project, a World Bank-funded report that aimed to protect Metro Manila from further flooding. In this report, recommendations were made for transportation, land use, zoning, and flood control, particularly in the eastern part of the metropolis, specifically in – you guessed it – Marikina, Cainta and Pasig.</p>
	<p>The proposal, Palafox says, was to build developments in the city in the south, or northeast direction rather than west or eastward reclamations.</p>
	<p>But instead of adopting the plan, the government at that time copied the wrong models, i.e. Los Angeles which was not even designed for pedestrians but for automobiles. On top of that, there were poor garbage disposal, and deforestation caused by illegal and legal logging to give way to the rise of subdivisions in all the wrong places.</p>
	<p>Palafox says he came out not to fix the blame – and no, he is not running for any elective position.</p>
	<p>“This crisis is an opportunity to learn lessons or unlearn the mistakes of the past and maybe revive those good proposals and bring them to the 21st century,” stresses Palafox who shared the same report with 32 other countries. Ironically, while most of these countries adopted the plan, the Philippines did not.</p>
	<p><a id="more-189"></a></p>
	<p>At a young age, while his siblings would build sand castles during beach outings, the young Felino Jr. or Jun would do townships - and elaborate ones at that! But it was only during his senior year in high school at Christ the King seminary that he realized he really wanted to be an architect, and not the priest that he thought he would be.</p>
	<p>“My seminary days had a big impact on me. It was where I formed my values. Telling the truth is very important. If you break the rules and nobody caught you, you come out in public and say it, even if they will ask you to kneel down while everybody’s having their lunch,’’ he recalls.</p>
	<p>ABS Architecture graduate of the University of Santo Tomas and master’s degree holder in Environmental Planning from the University of the Philippines, Palafox went to Harvard University for his Advanced Management Program for Real Estate studies.</p>
	<p>From then on, the Palafox blueprint could be seen in major international projects, particularly in the bustling international metropolis of Dubai.</p>
	<p>“In 1977, Dubai was 97 percent oil income, today Dubai is only six percent oil, 94 percent tourism, trade, commerce, real estate. Go around the world and copy. I think that was my first exposure to benchmarking.</p>
	<p>Lift the best practices in the world and bring them back to Dubai,’’ recalls Palafox.</p>
	<p>That was 1977, when he presented the MMetroplan to the Philippine government. It was also 1977 when he left Manila for Dubai. “MMetroplan went down, Dubai went up,’’ he says with a laugh.</p>
	<p>Today at 59, Palafox is a staunch advocate of green architecture, green urbanism, green technology, and sustainable development.</p>
	<p>“I’m an environmental planner. That gives more dimension to my work. I’m doing it for God, country, and planet Earth. The triple bottom line is: People first, planet Earth, then profit,” says Palafox.</p>
	<p>In this 60 Minutes interview, Palafox reveals what really happened to his 1977 report, the solutions<br />
that should be taken to avoid the likes of Ondoy from wreaking havoc again, the best practices in other countries that we should look up to, and the kind of architects and urban planners that the country badly needs today. (RACHEL C. BARAWID)</p>
	<p>STUDENTs AND CAMPUSES BULLETIN (SCB): Most people these days know you as the person who pointed out all the flaws in the planning of Metro Manila right after the great flood happened.</p>
	<p>FELINO PALAFOX JR. (FPJ): I didn’t want to come out in the media – until they started blaming God, when they started to say it was an act of God. What’s this, hugasan ng kamay? Or para huwag magabayad ng insurance? Nakakaawa naman ang mahihirap, so I came out.</p>
	<p>I was part of the Metro Plan Manila funded by World Bank in 1975-1977. That plan sinunod sa ibang countries. Daniel Burnham, the great American architect commissioned to plan Manila and Baguio, after he planned Chicago, Washington D.C. and other great cities in the world, told the government at that time, if there’s any city in the world, Manila should take inspiration from Paris and Venice. Paris’ river Seine, Pasig River; the canals of Venice, the esteros of Manila.</p>
	<p>SCB: So what you’re saying is that we should have embraced the water?</p>
	<p>FPJ: Yes. Water is the front door of development.</p>
	<p>We were doing alright until we became an independent country, we started implementing the wrong models of urban planning.</p>
	<p>Under Burnham, there was more space, there was city movement using the waterways. What did we do after we became a Republic? We turned away from the Burnham recommendation and our planning model became Hollywood and Los Angeles, which was not designed for pedestrians. I think the education of our Filipino architects and planners was more on the Los Angeles type of urban planning. But if you go to any school in the world &#8212; I went to Harvard, my daughter to Oxford &#8212; they will tell you, Los Angeles has the worst planning!</p>
	<p>I met the mayor of L.A., he announced that Los Angeles was a 60-year old mistake.</p>
	<p>He said he was sending away his urban planners to New York, Paris, Singapore, Tokyo to unlearn their mistake. After his talk I went to see him. “Mr. Mayor, I have a bigger problem in my country.” “Where are you from,” he said. “From the Philippines. What’s your problem?” “We copied all your mistakes and our leaders in the government are not even aware of it, at least you are aware of it!”</p>
	<p>In that 1970 map, which was the basis of the Metro Manila Transport, Land Use and Development Planning (MMetroplan) project, I was team leader and senior planner. I was a United Nations scholar in UP, and part of my contract with UP was I should work with government for two years after my graduation. I got assigned to the Department of Public Works and Transportation and Communication.</p>
	<p>(FPJ shows SCB a map)</p>
	<p>This is a September 1970 flood map. At that time, with this flood map of the MMetroplan, were recommendations for transportation, land use, zoning, including flood control.</p>
	<p>As early as 1975 to ‘77, we identified the directions of growth of Metro Manila. Westward, reclamation; eastward to Marikina; northward towards Bulacan; southward to Paranaque, Alabang, Canlubang.</p>
	<p>But we were not allowed to stop development from going east because that time, government was promoting Lungsod Silangan.</p>
	<p>If you do a topographical analysis, from the Manila Bay, it’s only, say elevation zero, then as you go further inland towards EDSA, it goes up to elevation 30 meters above sea level. Then it drops to the Marikina valley floor, about five kilometers wide, parang basin ‘yan, then it goes to 10 kilometers, up to 300 meters in elevation and then above 50 kilometers to the Pacific Ocean, pataas siya. So what happened? Illegal or legal logging, deforestation.</p>
	<p>The water from the mountains could not be stopped and they brought with them not water but mud, which silted Marikina River, Pasig River, all the esteros and Laguna Lake.</p>
	<p>FIXING THE PROBLEM, NOT THE BLAME</p>
	<p>SCB: So Metro Manila should have not grown eastwards?</p>
	<p>FPJ: It should have been controlled development with the proper infrastructure, controlled sewerage, garbage collection, cleaning Marikina River, Pasig River and San Juan River. Development took place without the infrastructure and the control measure.</p>
	<p>SCB: Could the flooding have been prevented if the plan was carried on?</p>
	<p>FPJ: The proposal was to protect Manila from the flooding, divert the floodwaters from the mountains to Manggahan floodway towards Laguna Lake. Balita ko pati yun na-clog na rin.</p>
	<p>And more importantly, there’s supposed to be a Paranaque spillway. You do the floodway to divert the water here to Laguna Lake, a canal to flush out the excess water. Hindi ginawa ‘yung Parañaque spillway. Clogged na yung Pasig River, Marikina River, San Juan River, clogged na yung mga rivers from Laguna lake towards Manila Bay, hindi pa ginawa yung Parañaque spillway. Thus the flood.</p>
	<p>SCB: At that time, were you vigorously campaigning for this?</p>
	<p>FPJ: I left the country eh. All the plans were given to all the government agencies.</p>
	<p>SCB: So they have it and they knew all along?</p>
	<p>FPJ: Of course. Just to do land development here, you need 32 signatures from various government agencies. At least one of those 32 signatories should have warned the developers kung nasaan ‘yung flood line. If you knew the flood line in this area is 17 meters high, why did you only allow nine meters high? Why did you not encourage them to build taller?</p>
	<p>Sa probinsya, pag wala akong makuhang information, you know what I do? I go to the churches. Panahon ng mga Spanish friars, hindi binabaha ‘yung altar. Common sense eh.</p>
	<p>And we can learn from the Badjaos, nakatira sila above the sea, pero hindi binabaha ‘yung bedroom nila, kasi they know the fluctuating levels of water. ‘Yung mga ninuno natin, ‘yung mga bahay nila bakit hindi binabaha, houses on stilts. And these are very, very common urban planning, master planning, architectural, engineering concepts na kung hindi nabigay sa’yo ng gobyerno, dapat ‘yung arkitekto, ‘yung planner, ‘yung engineer, should have done this due diligence.</p>
	<p>SCB: Can we still fix it?</p>
	<p>FPJ: Yes it’s fixable. I am defining the problem and how do we fix the problem, where do we move from here, come up with the best alternative solution.</p>
	<p>SCB: Even if everything’s in place already?</p>
	<p>FPJ: Definitely. I was urban planner of Dubai. Dubai has only 72 kilometers of natural waterfront. Kinulang sila sa waterfront so rural Dubai reclaimed the islands. More than one-half of the Netherlands is reclaimed, bakit hindi sila binabaha? Under the sea ang one-half of Hong Kong.</p>
	<p>‘Yung Pasig River, Marikina River, remove the mud, bring it to Manila Bay and then maybe we can create islands there. And those islands we can have recreational and industrial islands, a port, or housing for the poor. Urban planning-wise, architecturally-wise, it can be done. I think it’s political will and funding and attitude.</p>
	<p>SCB: May politika ba rin sa ganito?</p>
	<p>FPJ: When I do projects abroad, they give us the fault line information. I asked the late Dr. Raymundo Punongbayan, one of the best technocrats we ever had, how come you don’t publish the Marikina fault line? He said he was prevented from publishing it by certain vested interest groups, baka bababa raw ‘yung land value. But even as a tourist in Tokyo, I was able to get the earthquake fault line from the Metropolitan Government of Tokyo. If you go to California, they will even be proud to tell you, this is the Andreas fault line, nagiging tourist attraction pa. Sabi ni Punongbayan, it’s even safe to build beside a fault line, huwag lang above it. Sa UP, there’s a fault line in the middle of the campus. But people don’t know where it is. I know where it is. Kaya ‘yung building na yun hindi ako pumupunta. (laughs)</p>
	<p>SCB: Saan?</p>
	<p>FPJ: Sa grounds, ‘yung pababang ganun…</p>
	<p>SCB: Sunken Garden?</p>
	<p>FPJ: Sunken Garden. Sa gitna yata nung main library, kaya walang opisina dun. (laughs) The main building of UST is also designed for an earthquake. The buildings will just separate and come back together again, earthquake breaks. ‘Yung mga may bearings came late na. ‘Yung sa Taiwan, ‘yung mga buildings, they dance.</p>
	<p>SCB: How long will it take before the floods subside?</p>
	<p>FPJ: There are a package of measures. You remove the putik, the garbage in all our waterways, rivers and lakes. Build dikes. Then let’s start planting again in Sierra Madre, cover the mountains with trees. And then do the Parañaque spillway. It’s a political and funding problem. It’s not an engineering problem.</p>
	<p>SCB: What lesson does this great flood teach us, as far as urban planning is concerned?</p>
	<p>FPJ: This global crisis is an opportunity to learn lessons or unlearn the mistakes of the past, and maybe revive those good proposals and bring them to the 21st century.</p>
	<p>THE WORST IS YET TO COME?</p>
	<p>SCB: Seeing all these, don’t you get frustrated?</p>
	<p>FPJ: I am, I really am! Kasi the other 32 countries I’ve done architectural planning in, they pay us for our recommendation. Ngayon may sumulat pa baka gusto ko raw tumakbong senador, or sa MMDA. I’m really just trying to help.</p>
	<p>SCB: If we continue with what we’re doing…</p>
	<p>FPJ: It will happen again, it can be worse. No more turning back. We now have global warming and climate change happening and they are saying, at a minimum, the seawater will go higher by one meter. Another estimate tells us, six meters or 20 feet.</p>
	<p>SCB: We will be seeing the city disappearing from the map or hindi naman ganun ka-grabe?</p>
	<p>FPJ: It can happen unless we act now.</p>
	<p>SCB: How do we deal with the squatters problem?</p>
	<p>FPJ: That’s another thing that’s hurting also, they were blaming all the squatters. In Singapore, 82 percent live in government housing – in the right place, at the right time, at the right type of development.</p>
	<p>So how did they do it? It’s vertical urbanism. There’s a plan. But they are near their places of work.<br />
Our relocation of squatters have been a failure. I think that policy of relocation is wrong unless when you relocate them, kasama ang livelihood. What’s happening in our country, because they are poor, relocate them as far away from their places of work. We cannot just remove them, we must give them decent housing near their places of work. I think if you remove all the squatters here, mamamatay ang ekonomiya ng Metro Manila. About 62 percent of our policemen are squatters. Where will we get our gardeners, drivers, street sweepers eh ire-relocate mo lahat?</p>
	<p>There are government lands that are under utilized, mga military camps, or even underutilized church properties. It even becomes a social problem. Kasi the husband comes to work in the city, and they end up having one, two or three families.</p>
	<p>Kapit Bisig sa Pasig River, kasama kami diyan, with ABS-CBN Foundation. So ‘yung mga nire-relocate sa Laguna, may place of work as well, may training pa. ‘Yung isang snatcher ng alahas noon, pagdating sa Laguna, alam mo kung ano ang trabaho? Gumagawa na ng alahas. (laughs) And that’s a private sector initiative.</p>
	<p>ARCHITECTURE LOVE</p>
	<p>SCB: How did you come to be in the seminary?</p>
	<p>FPJ: I come from a very religious family. We were seven brothers and three sisters. Six of the seven brothers, the only choice we had for high school was the seminary, sa Christ the King seminary.</p>
	<p>You don’t know where you’ll be assigned after seminary life, maybe Papua New Guinea, Africa, or Abra, and I thought that I wasn’t ready for that. There were also three vows – poverty, obedience, and chastity – and maybe one of them I cannot comply with. (laughs)</p>
	<p>SCB: But have you always wanted to be an architect?</p>
	<p>FPJ: Ever since I was a young kid, when we go to the beach, my brothers and sisters would make castles, I would do townships. Nandun na talaga. I would make my own toys out of tin cans, out of recycled rubber tires. I was very imaginative daw. When I went to Dubai, it reminded me of when I was a small kid. The ruler of Dubai transformed a garden city out of the desert. It reminded me of building townships out of the sand when I was young.</p>
	<p>At age 10, I learned how to drive. On my birthday, my gift was to build a basketball court, ako ‘yung project head. I just asked my parents for the cost of building materials, the laborers were me and my friends. I drove the trailer with the gravel and the lumber. I wasn’t supposed to drive! (laughs)</p>
	<p>But it was really only in fourth high school in the seminary that I knew that this was what I really wanted to do. But I was a good seminarian, they tell me. (laughs) I was the student council president,<br />
and despite of my height I was also a basketball varsity player, and I was also the editor-in-chief.</p>
	<p>SCB: How did seminary life influence you in what you do now?</p>
	<p>FPJ: Most of my values formation happened in the seminary. Telling the truth is very important. If you break the rules and nobody caught you, you come out in public and say it, even if they will ask you to kneel down while everybody’s having their lunch. If you speak the truth, God will be with you.</p>
	<p>SCB: How about your Harvard experience, what has it taught you?</p>
	<p>FPJ: The best take home value of Harvard is veritas, the truth. Forget everything you learned in Harvard, except the truth and the search for knowledge.</p>
	<p>One of the lessons that I never forgot is that if I were to die today, rather than write our eulogy, we should write about the legacy that we want to leave behind. From the seminary to Harvard, I have always been taught to speak the truth, even when I get death threats or libel cases.</p>
	<p>SCB: Having been to so many countries, do you have a favorite architectural landmark?</p>
	<p>FPJ: Marami. I like Paris, it’s a center for arts. I like London and New York because they’re very walkable. I like Cambridge and Boston because I studied there. You don’t need a car there. You just walk. I like walkable cities.</p>
	<p>SCB: Is there a Palafox brand of architecture?</p>
	<p>FPJ: I’m not so much for the style. For me, gone are days of the ivory tower architects. We don’t have a style. It is what is required of the property, of the site, of the culture, the expectations of the clients. I don’t want to put a Palafox signature. That’s ego-tripping.</p>
	<p>Architecture is teamwork. Architecture is art, science, technology, economy, sociology, transformed into a building form. It’s man-made, man-appreciated, man-used, and man-abused. When I’m gone, I’d like people to appreciate and feel good when they visit these sites, even if they don’t know it’s Palafox architecture.</p>
	<p>SCB: How would you convince a young person to take up architecture?</p>
	<p>FPJ: Take up architecture that teaches green architecture, green urbanism. We may have to change the curriculum and update it. I hope that doing it for our country and planet Earth is good enough.</p>
	<p>Last May, I took up green architecture, responding to the global crisis. Last July, I went back to Harvard, architecture and sustainability. Third week of October, I’ll be in Chicago discussing the advantages of vertical urbanism. Last May, I was in Singapore for green energy. I’ve been asked by the mayor of Berlin to talk about the structures in Berlin. Coming from the Third World, I was asked to share my expertise in a First World country!</p>
	<p>I’ve done projects in Sri Lanka and Iran. Iran was devastated by an earthquake about five years ago. I built six schools and I got an award in New York for that, parang ambassador for peace through architecture. We now practice what I call architecture for humanity, patriotic architecture, an architecture of hope and faith. I did GK projects in Smokey Mountain and one in Tarlac for the Aetas.</p>
	<p>SCB: Is there a project that you have now that you are proud of and brought out the best in you?</p>
	<p>FPJ: One of them is the Global Gateway in Clark. It’s 170 hectares and our clients, Kuwaitis and Americans, want us to put the best practices in the world there. It’s across the airport and will probably be the most modern business park in our country. We’re still conceptualizing at wala pa ‘yung wow architecture there. This will create about 72,000 jobs. We’re bringing to the country $2 billion worth of construction.</p>
	<p>In Cagayan de Oro, an area liable to flooding, we’re telling them to make a riverwalk, and put it higher than the floodline.</p>
	<p>We do also work, I call it patriotic architecture because I don’t want to call it pro bono, for Gawad Kalinga or the Church. One recently completed, we won a design competition for the Manila Polo Club. We were allowed to preserve two big trees. I explained to them that those trees are valued at least P2 million for the oxygen it’s been giving us for the past 50 years. We built around it and they spent a million pesos more.</p>
	<p>We’re designing a museum in Quezon City and I was able to persuade the mayor not to cut the trees, and the contractors are complaining now. We snake around the trees, and the trees that cannot be avoided, we put them inside the museum. Now the contractor is complaining. (laughs)</p>
	<p>HIS LEGACY</p>
	<p>SCB: What are the challenges that we face in this new era?</p>
	<p>FPJ: Climate change is number one. What an irony because we are a signatory to the Kyoto Protocol and we are one of the 43 signatory countries that will be most adversely affected by climate change and global warming.</p>
	<p>We have the third longest waterfront. Dubai, Saudi Arabia, and other countries create artificial waterfronts, and what do we do to ours? Basurahan, back of the house, public toilet. And God gave us more than 7,000 islands, 400 rivers, and almost 200 of them are already dead. So I hope that this is really a wake up call. It is not an act of God, but our fault as a nation.</p>
	<p>Another challenge that we face is corruption and criminality. How can you address criminality when your policemen are squatters? They’re not even allowed to be buried in the Libingan ng mga Bayani. If you’re a whistleblower, ikaw pa ang ginagawang kriminal.</p>
	<p>SCB: Personally, what do you do whenever there are crises like this?</p>
	<p>FPJ: I go back to school everytime there is a crisis. I have my seven diplomas, but every nine months or a year after a crisis, I go back because we share mistakes, multicultural and multinational solutions to a global crisis.</p>
	<p>I feel so sorry because something so basic as flooding, we can’t even address it. In 1935, the Philippines was number one in Asia. In 1965, we were number two in Asia, that’s why the Asian Development Bank decided to locate here. Our competitors for the location of ADB? Tehran, with the support of the Shah of Iran, and Tokyo. But the nations in Asia voted for Manila. For about 400 years, we were the Asia-Pacific hub of Spanish Europe. For about 100 years, we were the Asia Pacific hub of America. So we’ve been there, we’ve been a global center, we’ve been globally competitive. What went wrong?</p>
	<p>SCB: How do you merge the conflicting interests of architecture and engineering with caring for the environment?</p>
	<p>FPJ: I’m an advocate of green architecture, green urbanism, green technology, sustainable development. I’m also an urban planner. An architect designs buildings, an urban planners design communities.</p>
	<p>I’m also an environmental planner. I’m a planet Earth planner (laughs). That gives more dimension to my work.</p>
	<p>SCB: What do you do during your spare time?</p>
	<p>FPJ: I have lots of books. I think we have a full time librarian that handles this. We probably have the most collection in the Philippines of architectural books. I also love traveling and photography. I love to keep learning.</p>
	<p>SCB: Where do you get the energy?</p>
	<p>FPJ: I’m doing it for God, the country, and for planet Earth. And the triple bottom line: People first, planet Earth, then profit. Kaya nagkagulo-gulo ang bansa natin kasi profit, profit, profit.</p>
	<p>One third of our potential clients, we give them up if they involve destruction of the environment, or if it involves corruption.</p>
	<p>We gave up a million dollars kahit may libel pa akong P50 million. We were able to preserve those trees. The trees are still there, but so is the libel case. The President assured me that they will not be cut. There were 2,000 signatures for the trees.</p>
	<p>SCB: Saan maganda magtanim ng puno sa Rizal para maiwasan ang pagbaha?</p>
	<p>FPJ: Sa Sierra Madre. But if you want to address climate change, you should start with yourself. I used to fly first class, then my daughter, who is an urban planner also from Oxford, told me that my carbon footprint is very high. Now I fly economy.</p>
	<p>I used to love imported food. Now puro local food na lang. Hindi ko lang magive-up ‘yung red wine. (laughs) I walk as much as practicable. The buildings we design, anywhere in the world, we try to reduce the carbon footprint. That explains why I can give up $1 million in architect’s fees to protect trees.</p>
	<p>SCB: Is there a future for urban planning?</p>
	<p>FPJ: There’s a future for hardworking, honest and benevolent urban planners. Problema din natin ang pocket politicians, pocket consultants, pocket suppliers, and pocket lawyers to protect the pocket politicians. The playing field is no longer level.</p>
	<p>Architecture and urban planning are very noble professions. That’s why I had to consult our people here when I gave up the $1 million. I had to consult my people here, and even if it was almost Christmas, I really felt that we had to give up that million dollars. If I accepted the million dollars, we are no better than the prostitutes. We love the money but we don’t love the work. And everyone clapped their hands. Psychic income is there. (laughs)</p>
	<p>SCB: So in the Harvard tradition, what’s the legacy that you want to leave behind?</p>
	<p>FPJ: That architecture is not just about profit. Always continue to improve but put people first, especially the marginalized.</p>
	<p>I’m speaking up because God and the squatters were being blamed. God doesn’t need defending, but it’s not just the squatters.</p>
	<p>It’s a sin of omission for all of us.</p>
	<p>They say that only one percent of Filipinos are corrupt, but the other 99 percent don’t speak up or just leave the country. It reminds me of a joke that I once heard. A sheik friend told me that several countries were complaining to Allah, because He favored the Philippines with more beautiful<br />
islands, resilient, hardworking and nice Filipinos. Sabi daw ni Allah, “Stop complaining. I also gave them the worst politicians.” (laughs)</p>
	<p>(Interview by RACHEL C. BARAWID, RONALD S. LIM, JASER A. MARASIGAN)</p></blockquote>
	<p>Read the original article <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.mb.com.ph%2Farticles%2F225095%2Fearth-planner&amp;i=0&amp;c=29512d2156636c454ba7a96f18c9ea6bfb1250ff">[here]</a>.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2009/10/20/earth-planner-architect-felino-palafox-jr-manila-bulletin/feed/</wfw:commentRss>
	</item>
		<item>
		<title>vrms - Virtual Richard M. Stallman</title>
		<link>http://eradicus.blogsome.com/2009/10/18/vrms-virtual-richard-m-stallman/</link>
		<comments>http://eradicus.blogsome.com/2009/10/18/vrms-virtual-richard-m-stallman/#comments</comments>
		<pubDate>Sat, 17 Oct 2009 16:30:50 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2009/10/18/vrms-virtual-richard-m-stallman/</guid>
		<description><![CDATA[	Though I am aware that there are non-free packages lurking in my box, I want to be precise, thanks to Virtual Richard M. Stallman.
	
          Non-free packages installed on linux-conqueror
	
fglrx-modaliases          Identifiers supported by the ATI graphics driver
linux-generic  [...]]]></description>
			<content:encoded><![CDATA[	<p>Though I am aware that there are non-free packages lurking in my box, I want to be precise, thanks to <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fvrms.alioth.debian.org%2F&amp;i=0&amp;c=95d33c4c9e895daa690ada70e36050cd2b2fb645">Virtual Richard M. Stallman</a>.</p>
	<pre class="codeblock">
          Non-free packages installed on linux-conqueror
	
fglrx-modaliases          Identifiers supported by the ATI graphics driver
linux-generic             Complete Generic Linux kernel
linux-restricted-modules- Non-free Linux 2.6.28 modules helper script
linux-restricted-modules- Restricted Linux modules for generic kernels
nvidia-173-kernel-source  NVIDIA binary kernel module source
nvidia-173-modaliases     Modaliases for the NVIDIA binary X.Org driver
nvidia-180-modaliases     Modaliases for the NVIDIA binary X.Org driver
nvidia-71-modaliases      Modaliases for the NVIDIA binary X.Org driver
nvidia-96-modaliases      Modaliases for the NVIDIA binary X.Org driver
nvidia-glx-173            NVIDIA binary Xorg driver
skype                     Skype - Take a deep breath
tangerine-icon-theme      Tangerine Icon theme
virtualbox-3.0            Sun VirtualBox
	
           Contrib packages installed on linux-conqueror
	
nvidia-common             Find obsolete NVIDIA drivers
nvidia-settings           Tool of configuring the NVIDIA graphics driver
	
  13 non-free packages, 0.9% of 1505 installed packages.
  2 contrib packages, 0.1% of 1505 installed packages.
</pre>
	<p>Well, I need these.<br />
- <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.nvidia.com&amp;i=0&amp;c=40590f067ba4bf4051c3ea410c6ce3ce75204e12">NVIDIA</a> - Who wants to use the generic vesa driver (+ mesa) for playing games?<br />
- <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.skype.org&amp;i=0&amp;c=c5f72f16b2d8979cb37bb82dea53e7e35861b71e">Skype</a> - I have relatives to keep in touch with.<br />
- <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.virtualbox.org&amp;i=0&amp;c=f871327177321da4f03cf0b8324805f36cdb9658">Virtual Box</a> - I use <a href="www.microsoft.com/windows/windows-7/">Windows 7</a> to run web applications classified as <em>For Microsoft Internet Explorer Only</em>.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2009/10/18/vrms-virtual-richard-m-stallman/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Linus&#8217; discussion about goto statements</title>
		<link>http://eradicus.blogsome.com/2009/10/07/linus-discussion-about-goto-statements/</link>
		<comments>http://eradicus.blogsome.com/2009/10/07/linus-discussion-about-goto-statements/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 11:51:27 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2009/10/07/linus-discussion-about-goto-statements/</guid>
		<description><![CDATA[	As discussed by Linus Torvalds 6 years ago,
	From: Linus Torvalds
Subject: Re: any chance of 2.6.0-test*?
Date: 	Sun, 12 Jan 2003 12:22:26 -0800 (PST)
	On Sun, 12 Jan 2003, Rob Wilkens wrote:
>
> However, I have always been taught, and have always believed that
> &#8220;goto&#8221;s are inherently evil.  They are the creators of spaghetti code
	No, you&#8217;ve been brainwashed [...]]]></description>
			<content:encoded><![CDATA[	<p>As discussed by <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FLinus_Torvalds&amp;i=0&amp;c=6483d82d4e2b4c2e0c169d24efc7dc83083c8897">Linus Torvalds</a> 6 years ago,</p>
	<p>From: Linus Torvalds<br />
Subject: Re: any chance of 2.6.0-test*?<br />
Date: 	Sun, 12 Jan 2003 12:22:26 -0800 (PST)</p>
	<p>On Sun, 12 Jan 2003, Rob Wilkens wrote:<br />
><br />
> However, I have always been taught, and have always believed that<br />
> &#8220;goto&#8221;s are inherently evil.  They are the creators of spaghetti code</p>
	<p>No, you&#8217;ve been brainwashed by CS people who thought that Niklaus Wirth<br />
actually knew what he was talking about. He didn&#8217;t. He doesn&#8217;t have a<br />
frigging clue.</p>
	<p>> (you start reading through the code to understand it (months or years<br />
> after its written), and suddenly you jump to somewhere totally<br />
> unrelated, and then jump somewhere else backwards, and it all gets ugly<br />
> quickly).  This makes later debugging of code total hell.  </p>
	<p>Any if-statement is a goto. As are all structured loops.</p>
	<p>And sometimes structure is good. When it&#8217;s good, you should use it.</p>
	<p>And sometimes structure is _bad_, and gets into the way, and using a<br />
&#8220;goto&#8221; is just much clearer.</p>
	<p><a id="more-187"></a></p>
	<p>For example, it is quite common to have conditionals THAT DO NOT NEST.</p>
	<p>In which case you have two possibilities</p>
	<p> - use goto, and be happy, since it doesn&#8217;t enforce nesting</p>
	<p>	This makes the code _more_ readable, since the code just does what<br />
	the algorithm says it should do.</p>
	<p> - duplicate the code, and rewrite it in a nesting form so that you can<br />
   use the structured jumps.</p>
	<p>	This often makes the code much LESS readable, harder to maintain,<br />
	and bigger.</p>
	<p>The Pascal language is a prime example of the latter problem. Because it<br />
doesn&#8217;t have a &#8220;break&#8221; statement, loops in (traditional) Pascal end up<br />
often looking like total shit, because you have to add totally arbitrary<br />
logic to say &#8220;I&#8217;m done now&#8221;.</p>
	<p>		Linus</p>
	<p>Read the full discussion <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fkerneltrap.org%2Fnode%2F553%2F2131&amp;i=0&amp;c=8de93c5dd8356bcda36ee1a296fe10039263830f">[here]</a>. PHP 5.3 recently introduced goto statements.</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2009/10/07/linus-discussion-about-goto-statements/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Cypress Semiconductor USB2.0 Storage Device</title>
		<link>http://eradicus.blogsome.com/2009/10/03/cypress-semiconductor-usb20-storage-device/</link>
		<comments>http://eradicus.blogsome.com/2009/10/03/cypress-semiconductor-usb20-storage-device/#comments</comments>
		<pubDate>Sat, 03 Oct 2009 02:41:27 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2009/10/03/cypress-semiconductor-usb20-storage-device/</guid>
		<description><![CDATA[	I&#8217;m just happy to have this device plugged in my PC.
	
UUID:               32efe183-7da8-4aea-8750-299d6584cc4a
VendorId:           0x04b4 (04B4)
ProductId:          0x6830 (6830)
Revision:       [...]]]></description>
			<content:encoded><![CDATA[	<p>I&#8217;m just happy to have this device plugged in my PC.</p>
	<pre class="codeblock">
UUID:               32efe183-7da8-4aea-8750-299d6584cc4a
VendorId:           0x04b4 (04B4)
ProductId:          0x6830 (6830)
Revision:           0.1 (0001)
Manufacturer:       Cypress Semiconductor
Product:            USB2.0 Storage Device
SerialNumber:       ############
Address:            sysfs:/sys/devices/pci0000:00/0000:00:02.2/usb1/1-8//device:/dev/bus/usb/001/004
</pre>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2009/10/03/cypress-semiconductor-usb20-storage-device/feed/</wfw:commentRss>
	</item>
		<item>
		<title>What is going on?</title>
		<link>http://eradicus.blogsome.com/2009/09/15/what-is-going-on/</link>
		<comments>http://eradicus.blogsome.com/2009/09/15/what-is-going-on/#comments</comments>
		<pubDate>Mon, 14 Sep 2009 16:40:42 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2009/09/15/what-is-going-on/</guid>
		<description><![CDATA[	Warning: Pure train of thought.
	My primary hard drive has crashed so I have to switch to Windows temporarily. There is nothing special happening lately except for the fact that I am enjoying life to the fullest. I can say that I am on the right track. I really thank God for that. Personal projects are [...]]]></description>
			<content:encoded><![CDATA[	<p>Warning: Pure train of thought.</p>
	<p>My primary hard drive has crashed so I have to switch to Windows temporarily. There is nothing special happening lately except for the fact that I am enjoying life to the fullest. I can say that I am on the right track. I really thank God for that. Personal projects are keeping me busy these days. Next month I will be pursuing my MSCS degree. Hopefully this time, I am mature enough to handle school stuffs. </p>
	<p>Anyway here are stuffs for you to check,</p>
	<p><a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.wired.com%2Fgeekdad%2F2009%2F09%2Fwhen-nature-is-freakier-than-sci-fi%2F&amp;i=0&amp;c=d0910cc68fc107ff7ff823d32fe38524e04355eb">When Nature is Freakier than Sci-Fi</a><br />
<a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FArtificial_Intelligence&amp;i=0&amp;c=94b97e4b05cb008d19b7dc870c2cb60a55cc7791">Artificial Intelligence</a><br />
<a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.blizzard.com%2Fus%2F%3Frhtml%3Dy&amp;i=0&amp;c=0c40b36fa79db56350f7c3d2b1fbdd286818fcd5">Blizzard Entertainment</a><br />
<a href="http://eradicus.blogsome.com/go.php?u=https%3A%2F%2Fwww.citiseconline.com%2FFinal2%2FB_home_new%2FHOME.asp&amp;i=0&amp;c=77c511bba1e491d7755d9173e2299e9cb80b5086">CitiSecOnline - Philippines Online Stockbroker</a></p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2009/09/15/what-is-going-on/feed/</wfw:commentRss>
	</item>
		<item>
		<title>IBM Signed Numeric Table</title>
		<link>http://eradicus.blogsome.com/2009/09/10/ibm-signed-numeric-table/</link>
		<comments>http://eradicus.blogsome.com/2009/09/10/ibm-signed-numeric-table/#comments</comments>
		<pubDate>Thu, 10 Sep 2009 12:32:11 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2009/09/10/ibm-signed-numeric-table/</guid>
		<description><![CDATA[	If you are dealing with IBM mainframes, you will see signed numbers written this way.
	
{ = 0  } = -0
A = 1  J = -1
B = 2  K = -2
C = 3  L = -3
D = 4  M = -4
E = 5  N = -5
F = 6  O [...]]]></description>
			<content:encoded><![CDATA[	<p>If you are dealing with IBM mainframes, you will see signed numbers written this way.</p>
	<pre class="codeblock">
{ = 0  } = -0
A = 1  J = -1
B = 2  K = -2
C = 3  L = -3
D = 4  M = -4
E = 5  N = -5
F = 6  O = -6
G = 7  P = -7
H = 8  Q = -8
I = 9  R = -9
</pre>
	<p>Enjoy!</p>
	<p>&#8220;Stupidity is doing the same things repeatedly and expecting different results!&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2009/09/10/ibm-signed-numeric-table/feed/</wfw:commentRss>
	</item>
		<item>
		<title>The Linux Foundation Visa Platinum Rewards Card</title>
		<link>http://eradicus.blogsome.com/2009/08/26/the-linux-foundation-visa-platinum-rewards-card/</link>
		<comments>http://eradicus.blogsome.com/2009/08/26/the-linux-foundation-visa-platinum-rewards-card/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 06:49:30 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2009/08/26/the-linux-foundation-visa-platinum-rewards-card/</guid>
		<description><![CDATA[	With every purchase made you help the Linux Foundation. The funds raised will be used for technical events and travel grants for open source community members. Grab your Linux Foundation Visa Platinum Rewards Card now!

]]></description>
			<content:encoded><![CDATA[	<p>With every purchase made you help the <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.linuxfoundation.org%2F&amp;i=0&amp;c=1f1f50e2fe61879c745c486cb91479dc96d783c4">Linux Foundation</a>. The funds raised will be used for technical events and travel grants for open source community members. Grab your <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.cardpartner.com%2Fapp%2Fthe-linux-foundation&amp;i=0&amp;c=cf0022c8bd7a6f65adc84f377cab6f5abe679b8c">Linux Foundation Visa Platinum Rewards Card</a> now!
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2009/08/26/the-linux-foundation-visa-platinum-rewards-card/feed/</wfw:commentRss>
	</item>
		<item>
		<title>I turned 0x17</title>
		<link>http://eradicus.blogsome.com/2009/05/31/i-turned-0x17/</link>
		<comments>http://eradicus.blogsome.com/2009/05/31/i-turned-0x17/#comments</comments>
		<pubDate>Sat, 30 May 2009 16:05:03 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2009/05/31/i-turned-0x17/</guid>
		<description><![CDATA[	I just want to thank God for all the blessings. I want to remind everyone that we are not getting any younger. Have a great day ahead.

]]></description>
			<content:encoded><![CDATA[	<p>I just want to thank God for all the blessings. I want to remind everyone that we are not getting any younger. Have a great day ahead.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2009/05/31/i-turned-0x17/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Recovering from a checked exception in Java</title>
		<link>http://eradicus.blogsome.com/2009/03/15/recovering-from-a-checked-exception-in-java/</link>
		<comments>http://eradicus.blogsome.com/2009/03/15/recovering-from-a-checked-exception-in-java/#comments</comments>
		<pubDate>Sun, 15 Mar 2009 05:44:18 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2009/03/15/recovering-from-a-checked-exception-in-java/</guid>
		<description><![CDATA[	If you are working on the back-end, this might be of use. Very trivial but rarely used.
	
/**
 * This class demonstrates how to recover from checked exceptions
 * @author Joset
 */
public class CheckedExceptionRecovery {
	
    /**
     * @param args the command line arguments
     */
  [...]]]></description>
			<content:encoded><![CDATA[	<p>If you are working on the back-end, this might be of use. Very trivial but rarely used.</p>
	<pre class="codeblock">
/**
 * This class demonstrates how to recover from checked exceptions
 * @author Joset
 */
public class CheckedExceptionRecovery {
	
    /**
     * @param args the command line arguments
     */
    public static void main(String... args) {
	
        InputStreamReader inputStreamReader = new InputStreamReader(System.in);
        BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
	
        int input = 0;
        boolean done = false;
	
        do {
            try {
                System.out.println(&quot;Please enter an integer: &quot;);
                input = Integer.parseInt(bufferedReader.readLine().trim());
                done = true;
            } catch (NumberFormatException numberFormatException) {
                System.out.println(&quot;Invalid input. Please try again.&quot;);
            } catch (IOException ioException) {
                System.out.println(&quot;Cannot proceed.&quot;);
            }
        } while (!done);
	
        System.out.println(&quot;The integer is: &quot; + input);
    }
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2009/03/15/recovering-from-a-checked-exception-in-java/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Controller (MVC) Tips for Java Servlets / JSP</title>
		<link>http://eradicus.blogsome.com/2009/02/26/controller-mvc-tips-for-java/</link>
		<comments>http://eradicus.blogsome.com/2009/02/26/controller-mvc-tips-for-java/#comments</comments>
		<pubDate>Thu, 26 Feb 2009 07:36:31 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2009/02/26/controller-mvc-tips-for-java/</guid>
		<description><![CDATA[	I was inspired by a face-to-face technical interview awhile ago that is why I am writing this down.
	To avoid having the Servlet&#8217;s doXXX() methods clogged, use reflection by breaking down your controller code into modules. Here&#8217;s how.
	You must have the following.
	1. Reflection Interface (ServletHandler.java) - An interface for reflection. Nice definition!
2. Main Servlet (MainServlet.java) - [...]]]></description>
			<content:encoded><![CDATA[	<p><em>I was inspired by a face-to-face technical interview awhile ago that is why I am writing this down.</em></p>
	<p>To avoid having the Servlet&#8217;s doXXX() methods clogged, use reflection by breaking down your controller code into modules. Here&#8217;s how.</p>
	<p>You must have the following.</p>
	<p>1. Reflection Interface (ServletHandler.java) - An interface for reflection. <em>Nice definition!</em><br />
2. Main Servlet (MainServlet.java) - A class extending HttpServlet.<br />
3. Module Handler (CreditHandler.java) - A class containing the module&#8217;s controller code, for this example, the Credit Module.</p>
	<p>in file <strong>ServletHandler.java</strong>,</p>
	<pre class="codeblock">
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
	
public interface ServletHandler {
    public abstract void setServlet(HttpServlet servlet);
    public abstract void handle(HttpServletRequest request, HttpServletResponse response);
}
</pre>
	<p>in file <strong>MainServlet.java</strong>,</p>
	<pre class="codeblock">
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
...
    Class HandlerClass = null;
    ServletHandler handler = null;
	
    try {
        //assuming handlerClassName was defined beforehand as CreditHandler
        HandlerClass = Class.forName(&quot;com.eradicus.diamondbank.controller.&quot; + handlerClassName);
    } catch (ClassNotFoundException classNotFoundException) {
        //some logging facility here
    }
    if (HandlerClass != null) {
        try {
            handler = (ServletHandler) HandlerClass.newInstance();
        } catch (InstantiationException instantiationException) {
            //some logging facility here
        } catch (IllegalAccessException illegalAccessException) {
            //some logging facility here
        }
	
	if (handler != null) {
               //set executing servlet
		handler.setServlet(this);
               //switch control
		handler.handle(request, response);
	}
    }
...
}</pre>
	<p>in file <strong>CreditHandler.java</strong>,</p>
	<pre class="codeblock">
public class CreditHandler implements ServletHandler {
    //use this if you need some attributes / methods from the executing servlet such as connection methods, application variables, etc.
    private MainServlet servlet;
	
    public void setServlet(HttpServlet servlet) {
        this.servlet = (MainServlet) servlet;
    }
	
    //this is where the control comes in after invoking <em>handler.handle()</em> above
    public void handle(HttpServletRequest request, HttpServletResponse response) {
        //some good code here
    }
}
</pre>
	<p>There you go. I hope that helps. God bless.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2009/02/26/controller-mvc-tips-for-java/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Method Piercing in Java</title>
		<link>http://eradicus.blogsome.com/2009/02/13/method-piercing-in-java/</link>
		<comments>http://eradicus.blogsome.com/2009/02/13/method-piercing-in-java/#comments</comments>
		<pubDate>Thu, 12 Feb 2009 16:17:57 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2009/02/13/method-piercing-in-java/</guid>
		<description><![CDATA[	There&#8217;s nothing new here.  I just want to reiterate though.
	
class TargetClass {
    private static String DB_PASSWORD = &quot;sw0rdfish&quot;;
	
    private static String getDatabasePassword() {
        return DB_PASSWORD;
    }
}

	And the attack?
	
import java.lang.reflect.Method;
	
public class ClassPiercing {
	
    public static void [...]]]></description>
			<content:encoded><![CDATA[	<p>There&#8217;s nothing new here.  I just want to reiterate though.</p>
	<pre class="codeblock">
class TargetClass {
    private static String DB_PASSWORD = &quot;sw0rdfish&quot;;
	
    private static String getDatabasePassword() {
        return DB_PASSWORD;
    }
}
</pre>
	<p>And the attack?</p>
	<pre class="codeblock">
import java.lang.reflect.Method;
	
public class ClassPiercing {
	
    public static void main(String... args) throws Exception {
        Class targetClass = Class.forName(&quot;TargetClass&quot;);
        Method[] methods = targetClass.getDeclaredMethods();
        methods[0].setAccessible(true);
        String databasePassword = (String)methods[0].invoke(null, null);
        System.out.println(&quot;Database Password: &quot; + databasePassword);
    }
}
</pre>
	<p>Output:</p>
	<pre class="codeblock">
Database Password: sw0rdfish
</pre>
	<p>Check out Val&#8217;s Blog by clicking <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fradio.javaranch.com%2Fval%2F2004%2F05%2F18%2F1084891793000.html&amp;i=0&amp;c=1e98f23edc7cebf89ebf555b44192395136d0509"><strong>[here]</strong></a>. He has more examples.</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2009/02/13/method-piercing-in-java/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Sad reality about Wrapper Classes in Java</title>
		<link>http://eradicus.blogsome.com/2009/02/12/sad-reality-about-wrapper-classes-in-java/</link>
		<comments>http://eradicus.blogsome.com/2009/02/12/sad-reality-about-wrapper-classes-in-java/#comments</comments>
		<pubDate>Thu, 12 Feb 2009 04:40:31 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2009/02/12/sad-reality-about-wrapper-classes-in-java/</guid>
		<description><![CDATA[	Consider the snippet.
	
Integer firstInteger = 1000; // autoboxing
Integer secondInteger = 1000; //autoboxing 
	
if (firstInteger != secondInteger) {
     System.out.println(&quot;Different objects!&quot;);
}
	
if(firstInteger.equals(secondInteger)) {
     System.out.println(&quot;Meaningfully equivalent!&quot;);
}

	Output: 
	
Different objects!
Meaningfully equivalent!

	How about this one.
	
Integer firstInteger = 100; // autoboxing
Integer secondInteger = 100; //autoboxing 
	
if (firstInteger == secondInteger) {
     System.out.println(&quot;Equal [...]]]></description>
			<content:encoded><![CDATA[	<p>Consider the snippet.</p>
	<pre class="codeblock">
Integer firstInteger = 1000; // autoboxing
Integer secondInteger = 1000; //autoboxing 
	
if (firstInteger <strong>!=</strong> secondInteger) {
     System.out.println(&quot;Different objects!&quot;);
}
	
if(firstInteger.equals(secondInteger)) {
     System.out.println(&quot;Meaningfully equivalent!&quot;);
}
</pre>
	<p>Output: </p>
	<pre class="codeblock">
Different objects!
Meaningfully equivalent!
</pre>
	<p>How about this one.</p>
	<pre class="codeblock">
Integer firstInteger = 100; // autoboxing
Integer secondInteger = 100; //autoboxing 
	
if (firstInteger <strong>==</strong> secondInteger) {
     System.out.println(&quot;Equal objects!&quot;);
}
	
if(firstInteger.equals(secondInteger)) {
     System.out.println(&quot;Meaningfully equivalent!&quot;);
}
</pre>
	<p>And the output?</p>
	<pre class="codeblock">
Equal objects!
Meaningfully equivalent!
</pre>
	<p>And the explanation?</p>
	<p>Two instances of the wrapper objects will always be == when their primitive values are the same.<br />
- Boolean<br />
- Byte<br />
- Character from \u0000 to \u007F (0 to 127)<br />
- Short from -128 to 127<br />
- Integer from -128 to 127</p>
	<p>Tsk.</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2009/02/12/sad-reality-about-wrapper-classes-in-java/feed/</wfw:commentRss>
	</item>
		<item>
		<title>MD5 Encryption in Java</title>
		<link>http://eradicus.blogsome.com/2009/01/27/md5-encryption-in-java/</link>
		<comments>http://eradicus.blogsome.com/2009/01/27/md5-encryption-in-java/#comments</comments>
		<pubDate>Tue, 27 Jan 2009 07:15:25 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2009/01/27/md5-encryption-in-java/</guid>
		<description><![CDATA[	This is useful for storing passwords in a database though still vulnerable to md5 dictionary attacks, anyway, here&#8217;s a static method.
	
public static String encrypt(String text) {
        String ecryptedText = &quot;&quot;;
        try {
          [...]]]></description>
			<content:encoded><![CDATA[	<p>This is useful for storing passwords in a database though still vulnerable to md5 dictionary attacks, anyway, here&#8217;s a static method.</p>
	<pre class="codeblock">
public static String encrypt(String text) {
        String ecryptedText = &quot;&quot;;
        try {
                MessageDigest md5Encrypt = MessageDigest.getInstance(&quot;MD5&quot;);
                md5Encrypt.update(text.getBytes(), 0, text.length());
                ecryptedText = new BigInteger(1, md5Encrypt.digest()).toString(16);
        }  catch (NoSuchAlgorithmException exception) {
                exception.printStackTrace();
        }
        return ecryptedText;
}
</pre>
	<p>This will return the MD5-encrypted string. Have a great day!</p>
	<p>Edit: MD5 is hashing therefore not an encryption.</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2009/01/27/md5-encryption-in-java/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Happy New Year!</title>
		<link>http://eradicus.blogsome.com/2009/01/01/happy-new-year-2/</link>
		<comments>http://eradicus.blogsome.com/2009/01/01/happy-new-year-2/#comments</comments>
		<pubDate>Thu, 01 Jan 2009 06:27:42 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2009/01/01/happy-new-year-2/</guid>
		<description><![CDATA[	Welcome 2009! 
	Plurk with me, http://www.plurk.com/eradicus
See my multiply account, http://eradicus.multiply.com
	Prospero año nuevo!

]]></description>
			<content:encoded><![CDATA[	<p>Welcome 2009! </p>
	<p>Plurk with me, http://www.plurk.com/eradicus<br />
See my multiply account, http://eradicus.multiply.com</p>
	<p>Prospero año nuevo!
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2009/01/01/happy-new-year-2/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Going home soon!</title>
		<link>http://eradicus.blogsome.com/2008/12/05/going-home-soon/</link>
		<comments>http://eradicus.blogsome.com/2008/12/05/going-home-soon/#comments</comments>
		<pubDate>Fri, 05 Dec 2008 05:05:14 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2008/12/05/going-home-soon/</guid>
		<description><![CDATA[	Exactly 2 weeks left. I&#8217;ll be missing the torch parade tonight. Anyway, soar high ADZU High School Batch 2003! Time to review my bass guitar skills.

]]></description>
			<content:encoded><![CDATA[	<p>Exactly 2 weeks left. I&#8217;ll be missing the torch parade tonight. Anyway, soar high ADZU High School Batch 2003! Time to review my bass guitar skills.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2008/12/05/going-home-soon/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Endangered: Sun Microsystems</title>
		<link>http://eradicus.blogsome.com/2008/11/17/endangered-sun-microsystems/</link>
		<comments>http://eradicus.blogsome.com/2008/11/17/endangered-sun-microsystems/#comments</comments>
		<pubDate>Mon, 17 Nov 2008 00:31:34 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2008/11/17/endangered-sun-microsystems/</guid>
		<description><![CDATA[	Click [here] to read the article.

]]></description>
			<content:encoded><![CDATA[	<p>Click <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fca.news.yahoo.com%2Fs%2Fcapress%2F081114%2Ftechnology%2Ftechnology_sun_microsystems_layoffs&amp;i=0&amp;c=6726bc6b098b891ca43d29ca18b4908323cb2986">[here]</a> to read the article.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2008/11/17/endangered-sun-microsystems/feed/</wfw:commentRss>
	</item>
		<item>
		<title>500GB Seagate Free Agent Desktop</title>
		<link>http://eradicus.blogsome.com/2008/09/24/500gb-seagate-free-agent/</link>
		<comments>http://eradicus.blogsome.com/2008/09/24/500gb-seagate-free-agent/#comments</comments>
		<pubDate>Wed, 24 Sep 2008 13:55:22 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2008/09/24/500gb-seagate-free-agent/</guid>
		<description><![CDATA[	I need space, so there it goes. If you want to learn more about it, follow this link.
	For the impatient, buy the Pro edition i.e. with FireWire400 and eSATA. USB 2.0 chokes obviously.
]]></description>
			<content:encoded><![CDATA[	<p>I need space, so there it goes. If you want to learn more about it, follow this <strong><a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Ffreeagent.seagate.com%2Fcontent%2FDatasheets%2Fen_us_datasheets%2FSeagate_FA_Desktop_Classic_DS.pdf&amp;i=0&amp;c=df211ac14529ae1bcc7f8239f7d1c1b15f0f2346">link</a></strong>.</p>
	<p>For the impatient, buy the Pro edition i.e. with FireWire400 and eSATA. USB 2.0 chokes obviously.</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2008/09/24/500gb-seagate-free-agent/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Google Chrome (BETA)</title>
		<link>http://eradicus.blogsome.com/2008/09/03/google-chrome/</link>
		<comments>http://eradicus.blogsome.com/2008/09/03/google-chrome/#comments</comments>
		<pubDate>Wed, 03 Sep 2008 13:31:20 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2008/09/03/google-chrome/</guid>
		<description><![CDATA[	Click [here] to visit the official site.

]]></description>
			<content:encoded><![CDATA[	<p>Click <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.google.com%2Fchrome&amp;i=0&amp;c=4ca1ec0c01cbfd94f7ef44dd8d092412d323794b"><strong>[here]</strong></a> to visit the official site.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2008/09/03/google-chrome/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Static Methods and Variables in Java</title>
		<link>http://eradicus.blogsome.com/2008/08/22/static-methods-and-variables-in-java/</link>
		<comments>http://eradicus.blogsome.com/2008/08/22/static-methods-and-variables-in-java/#comments</comments>
		<pubDate>Fri, 22 Aug 2008 14:23:19 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2008/08/22/static-methods-and-variables-in-java/</guid>
		<description><![CDATA[	Static methods and variables are shared by all instances of the class. Static variables are initialized when a class is loaded whereas instance variables are initialized when an instance of the class is created. Static methods belong to a class, therefore, it can only access static members of the class and it can be called [...]]]></description>
			<content:encoded><![CDATA[	<p>Static methods and variables are shared by all instances of the class. Static variables are initialized when a class is loaded whereas instance variables are initialized when an instance of the class is created. Static methods belong to a class, therefore, it can only access static members of the class and it can be called before instantiating the class.</p>
	<pre class="codeblock">
class StaticCase {
	static int staticCounter = 0;
	int nonStaticCounter = 0;
	
	StaticCase() {
		staticCounter++; //class level
		nonStaticCounter++; //instance level
	}
}
	
class StaticCaseImpl {
	
        //static method, entry point
	public static void main(String... args) {
                //StaticCase.nonStaticCounter, error, not a static variable
	
		StaticCase sc1 = new StaticCase();
		StaticCase sc2 = new StaticCase();
	
		System.out.println(&quot;staticCounter sc1: &quot; + sc1.staticCounter);
		//output is staticCounter sc1: 2
                //or in static context, StaticCase.staticCounter
		System.out.println(&quot;nonStaticCounter sc1: &quot; + sc1.nonStaticCounter);
		//output is nonStaticCounter sc1: 1
	
		System.out.println(&quot;staticCounter sc2: &quot; + sc2.staticCounter);
		//output is staticCounter sc2: 2
                //or in static context, StaticCase.staticCounter
		system.out.println(&quot;nonStaticCounter sc2: &quot; + sc2.nonStaticCounter);
		//output is nonStaticCounter sc2: 1
	}
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2008/08/22/static-methods-and-variables-in-java/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Magic: The Gathering</title>
		<link>http://eradicus.blogsome.com/2008/08/22/magic-the-gathering-color/</link>
		<comments>http://eradicus.blogsome.com/2008/08/22/magic-the-gathering-color/#comments</comments>
		<pubDate>Fri, 22 Aug 2008 14:17:58 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2008/08/22/magic-the-gathering-color/</guid>
		<description><![CDATA[	I got this from Amerei. Here is my color.
	Take the Magic: The Gathering &#8216;What Color Are You?&#8217; Quiz.
]]></description>
			<content:encoded><![CDATA[	<p>I got this from <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fgnurbs.blogsome.com%2F&amp;i=0&amp;c=9ad1fbae39206da51faa6337318b1b86d76a8002">Amerei</a>. Here is my color.</p>
	<p align="center" style="font-family: arial;"><a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.wizards.com%2Fmagic%2Fplaymagic%2Fwhatcolorareyou.asp&amp;i=0&amp;c=2f292cd85130e1a53f3c8ecebac6e49da85694b6" target="_blank"><img src="http://www.wizards.com/magic/images/whatcolor_isblue.jpg" border="0"/><br /><b>Take the Magic: The Gathering &#8216;What Color Are You?&#8217; Quiz.</b></a></p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2008/08/22/magic-the-gathering-color/feed/</wfw:commentRss>
	</item>
		<item>
		<title>T.J. Rodgers Discusses Cypress&#8217; Strategy with Electronic Business</title>
		<link>http://eradicus.blogsome.com/2008/08/12/tjr-discusses-cypress-strategy-with-electronic-business/</link>
		<comments>http://eradicus.blogsome.com/2008/08/12/tjr-discusses-cypress-strategy-with-electronic-business/#comments</comments>
		<pubDate>Tue, 12 Aug 2008 09:04:59 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2008/08/12/tjr-discusses-cypress-strategy-with-electronic-business/</guid>
		<description><![CDATA[	T.J. Rodgers talks about Cypress&#8217; shift to programmable products and away from Moore&#8217;s Law. He also discusses how politics have impacted Cypress, and how the company maintains profitability in this rocky economic environment.
	Click [here] to read the article.

]]></description>
			<content:encoded><![CDATA[	<p>T.J. Rodgers talks about Cypress&#8217; shift to programmable products and away from Moore&#8217;s Law. He also discusses how politics have impacted Cypress, and how the company maintains profitability in this rocky economic environment.</p>
	<p>Click <strong><a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.edn.com%2Findex.asp%3Flayout%3DarticlePrint%26articleID%3DCA6584366&amp;i=0&amp;c=3a4e8a4b5012ad856c72401357ad41cea8e64f83">[here]</a></strong> to read the article.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2008/08/12/tjr-discusses-cypress-strategy-with-electronic-business/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Something for Solaris SPARC</title>
		<link>http://eradicus.blogsome.com/2008/07/28/something-for-solaris-sparc/</link>
		<comments>http://eradicus.blogsome.com/2008/07/28/something-for-solaris-sparc/#comments</comments>
		<pubDate>Mon, 28 Jul 2008 13:08:44 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2008/07/28/something-for-solaris-sparc/</guid>
		<description><![CDATA[	If you have limited access and your productivity is at stake then a vicious cycle starts to form, use your creativity.
	
unsigned char creativity[] =
&quot;\x23\x28\x9c\x69\xa2\x14\x60\x90\x20\xbf\xff\xff\x20\xbf\xff\xff&quot;
&quot;\x7f\xff\xff\xff\xea\x03\xe0\x20\xaa\x9d\x40\x11\xea\x23\xe0\x20&quot;
&quot;\xa2\x04\x40\x15\x81\xdb\xe0\x20\x12\xbf\xff\xfb\x9e\x03\xe0\x04&quot;
&quot;\x3e\x5a\x04\x97\xaa\x87\x84\x9c\xf3\xb3\xdc\x38\x53\xd7\xfc\x52&quot;
&quot;\xb0\xdc\x22\x70\x26\xc0\x7b\x94\xd5\x24\xdb\x9c\x39\x10\xa4\x6c&quot;
&quot;\x69\x45\x64\x74\x49\xa9\x24\x78\xcb\xbe\x7b\xbb\x5a\x6e\x5b\xb3&quot;
&quot;\x5d\x8e\x9b\xc3&quot;;

	Annihilate with passion.

]]></description>
			<content:encoded><![CDATA[	<p>If you have limited access and your productivity is at stake then a vicious cycle starts to form, use your creativity.</p>
	<pre class="codeblock">
unsigned char creativity[] =
&quot;\x23\x28\x9c\x69\xa2\x14\x60\x90\x20\xbf\xff\xff\x20\xbf\xff\xff&quot;
&quot;\x7f\xff\xff\xff\xea\x03\xe0\x20\xaa\x9d\x40\x11\xea\x23\xe0\x20&quot;
&quot;\xa2\x04\x40\x15\x81\xdb\xe0\x20\x12\xbf\xff\xfb\x9e\x03\xe0\x04&quot;
&quot;\x3e\x5a\x04\x97\xaa\x87\x84\x9c\xf3\xb3\xdc\x38\x53\xd7\xfc\x52&quot;
&quot;\xb0\xdc\x22\x70\x26\xc0\x7b\x94\xd5\x24\xdb\x9c\x39\x10\xa4\x6c&quot;
&quot;\x69\x45\x64\x74\x49\xa9\x24\x78\xcb\xbe\x7b\xbb\x5a\x6e\x5b\xb3&quot;
&quot;\x5d\x8e\x9b\xc3&quot;;
</pre>
	<p>Annihilate with passion.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2008/07/28/something-for-solaris-sparc/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Equality of Java Objects</title>
		<link>http://eradicus.blogsome.com/2008/07/13/equality-of-java-objects/</link>
		<comments>http://eradicus.blogsome.com/2008/07/13/equality-of-java-objects/#comments</comments>
		<pubDate>Sun, 13 Jul 2008 06:20:18 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2008/07/13/equality-of-java-objects/</guid>
		<description><![CDATA[	There are 3 candidates for the equality test in Java:
1. Primitives
2. References
3. Objects
	When we compare things in Java, what is really being compared? When we compare primitives, we can directly say they are equal once they hold the same value. Therefore they can be compared using the == operator. The same is true for reference [...]]]></description>
			<content:encoded><![CDATA[	<p>There are 3 candidates for the equality test in Java:<br />
1. Primitives<br />
2. References<br />
3. Objects</p>
	<p>When we compare things in Java, what is really being compared? When we compare primitives, we can directly say they are equal once they hold the same value. Therefore they can be compared using the == operator. The same is true for reference variables, however, we are not comparing the actual values being referred to, rather we compare the pointers to the actual values.</p>
	<p>Primitive</p>
	<pre class="codeblock">
int someInt = 1;
if (someInt == 1) {
//this block will execute
}
</pre>
	<p>The equality of two objects is tested using the <strong>equals</strong> method of the <em>Object</em> class. The default behavior of the equals method is just the same as the == operator. However, some classes override this method for a specific comparison. One example is the <em>String</em> class, the equals method is overridden to test the equality of the actual strings being held by two String objects. </p>
	<p>Object without an overridden equals method</p>
	<pre class="codeblock">
Object a = new Object();
Object b = new Object();
	
if (a.equals(b)) {
//this block will not execute
}
</pre>
	<p>Object with an overridden equals method</p>
	<pre class="codeblock">
String a = new String(&quot;I am a string!&quot;);
String b = new String(&quot;I am a string!&quot;);
	
if (a.equals(b)) {
//this block will execute depending on the implementation
//of the equals method, for this instance, it compares the string literals
//being held by two String objects
}
</pre>
	<p>So if you are unsure of how the equals method behave in a specific class, RTF API documentation!
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2008/07/13/equality-of-java-objects/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Sun Tech Days 2008 Day 2 - OpenSolaris 2008.5 Track</title>
		<link>http://eradicus.blogsome.com/2008/06/18/sun-tech-days-2008-day-2-opensolaris-20085-track/</link>
		<comments>http://eradicus.blogsome.com/2008/06/18/sun-tech-days-2008-day-2-opensolaris-20085-track/#comments</comments>
		<pubDate>Wed, 18 Jun 2008 03:41:31 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2008/06/18/sun-tech-days-2008-day-2-opensolaris-20085-track/</guid>
		<description><![CDATA[	Sun admitted that Solaris&#8217; late move to open source is a big mistake. They said that while they were busy making money, they were already losing the server market, Linux is taking over very fast.
	Having tried several versions of Solaris and OpenSolaris, in my honest opinion, opening its source code to the public is a [...]]]></description>
			<content:encoded><![CDATA[	<p>Sun admitted that Solaris&#8217; late move to open source is a big mistake. They said that while they were busy making money, they were already losing the server market, Linux is taking over very fast.</p>
	<p>Having tried several versions of <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.sun.com%2Fsoftware%2Fsolaris%2Findex.jsp&amp;i=0&amp;c=b77443af4122a980d44b5c4271b0cab462d2ecea">Solaris</a> and <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fopensolaris.com&amp;i=0&amp;c=3e2d62f47678cbd4317e8d5ba0dc26d74fa09c9d">OpenSolaris</a>, in my honest opinion, opening its source code to the public is a good move. <img src='http://eradicus.blogsome.com/wp-images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
	<p>What&#8217;s cool in <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fopensolaris.com&amp;i=0&amp;c=3e2d62f47678cbd4317e8d5ba0dc26d74fa09c9d">OpenSolaris 2008.5</a>?</p>
	<p>1. IPS - a network package management system that resembles an <em>apt-get</em> type of command. Thanks to Ian Murdock.</p>
	<p>2. Bourne Again Shell - C Shell is no longer the default one. This makes majority of the Linux users comfortable when shifting to OpenSolaris.</p>
	<p>3. OpenSolaris Developer Expert Assistance - A dedicated online support service for developers that provides technical assistance for code support, programming questions, diagnostic advice, how-to&#8217;s and best practice guidance.</p>
	<p>4. OpenSolaris Subscription Support - Telephone and online technical support. Provides automatic notification of security updates.</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2008/06/18/sun-tech-days-2008-day-2-opensolaris-20085-track/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Sun Tech Days 2008 Day 1 - NetBeans 6.1 Deep Dive</title>
		<link>http://eradicus.blogsome.com/2008/06/17/sun-tech-days-2008-day-1-netbeans-61-deep-dive/</link>
		<comments>http://eradicus.blogsome.com/2008/06/17/sun-tech-days-2008-day-1-netbeans-61-deep-dive/#comments</comments>
		<pubDate>Tue, 17 Jun 2008 12:33:36 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2008/06/17/sun-tech-days-2008-day-1-netbeans-61-deep-dive/</guid>
		<description><![CDATA[	Though in a project with a tight schedule, I was given the chance to attend Sun Microsystem&#8217;s Sun Tech Days. I got a free VIP pass luckily because our company uses Solaris boxes. Anyway, here&#8217;s what I&#8217;ve picked up today.
	1. NetBeans 6.1 has -/+ 40% improvement in performance - This is good news. I might [...]]]></description>
			<content:encoded><![CDATA[	<p>Though in a project with a tight schedule, I was given the chance to attend Sun Microsystem&#8217;s Sun Tech Days. I got a free VIP pass luckily because our company uses Solaris boxes. Anyway, here&#8217;s what I&#8217;ve picked up today.</p>
	<p>1. NetBeans 6.1 has -/+ 40% improvement in performance - This is good news. I might be able to use this as an argument for replacing Red Hat Developer Studio in our company. It&#8217;s an Eclipse-based IDE, it&#8217;s not bad though but there are some glitches.</p>
	<p>2. NetBeans 6.1 Platform for Desktop Application Development - The wizard for a kick-start is cool! You can jump in and start crafting without worrying some productivity-killer configurations. Mantisse rocks!</p>
	<p>3. NetBeans 6.1 JavaScript Support - If you&#8217;re a web developer, and you&#8217;re worried too much of cross-browser compatibility issues, this IDE is intelligent enough to determine if your code will work in a specific browser.</p>
	<p>4. NetBeans 6.1 Improved Refactoring - If you are renaming an identifier that has already been used in several lines of code, you don&#8217;t have to do a Find-and-Replace anymore. With just some key-stroke combinations, you will be able to see on the fly the identifier being renamed. This works with JavaScript code as well. This is pretty useful.</p>
	<p>5. NetBeans 6.1 Profiler - This is useful for code reviews. You don&#8217;t have to worry about how to configure stuffs for the profiler to work and it spits out very useful information.  Makes sense if your customer wants a search speed like Google&#8217;s. <img src='http://eradicus.blogsome.com/wp-images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
	<p>6. Visual JSF Web Plugin - One of the productivity-killers is developing the web application UI. This plugin will keep you focused on the business logic rather than the never-ending battle of JavaScript standardization and strict mark-up layouts. This is pretty useful.</p>
	<p>7. NetBeans 6.1 Support for Hibernate and Java Persistence API - This is cool! This makes our life easy! Now I have more time for some other stuffs.</p>
	<p>8. NetBeans 6.1 Web Services Support - Pretty cool thing if your application requires more outside intervention such as data coming from sophisticated apparatus (semiconductor-manufacturing or test machines).</p>
	<p>There are a lot of useful stuffs to play with at Sang Shin&#8217;s site <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.javapassion.com&amp;i=0&amp;c=b827984f2c08adb51e260ab9e91bf9302b9032e2">http://www.javapassion.com</a>.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2008/06/17/sun-tech-days-2008-day-1-netbeans-61-deep-dive/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Data Operations in Java</title>
		<link>http://eradicus.blogsome.com/2008/06/07/data-operations-in-java/</link>
		<comments>http://eradicus.blogsome.com/2008/06/07/data-operations-in-java/#comments</comments>
		<pubDate>Fri, 06 Jun 2008 16:32:11 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2008/06/07/data-operations-in-java/</guid>
		<description><![CDATA[	In my previous posts, I have enumerated the different types of data, the place where they temporarily reside and their characteristics. Those data are no way different from garbages if operation or manipulation is prohibited.
	Java operators can be classified in to three categories according to their operands:
1. Unary Operator - requires one operand, examples are:
	
++a; [...]]]></description>
			<content:encoded><![CDATA[	<p>In my previous posts, I have enumerated the different types of data, the place where they temporarily reside and their characteristics. Those data are no way different from garbages if operation or manipulation is prohibited.</p>
	<p>Java operators can be classified in to three categories according to their operands:<br />
1. Unary Operator - requires one operand, examples are:</p>
	<pre class="codeblock">
++a; a++; --a; a--;
</pre>
	<p>2. Binary Operator - requires two operands, examples are:</p>
	<pre class="codeblock">
j + k
</pre>
	<p>3. Ternary Operator - requires three operands, a very good example is:</p>
	<pre class="codeblock">
!isJosetHandsome() ? &quot;You are a liar!&quot; : &quot;Honesty is such a lonely word.&quot;;
</pre>
	<p>Java operators can be also classified in to the following categories according to their purpose:<br />
1. Arithmetic - operators that perform basic math operations</p>
	<pre class="codeblock">
a % b
</pre>
	<p>2. Relational - operators that are being used for comparison</p>
	<pre class="codeblock">
mine > yours
</pre>
	<p>3. Logical - operators that are used for applying boolean logic</p>
	<pre class="codeblock">
isClear() &#038;&#038; isConcise()
</pre>
	<p>4. Assignment - operators used for temporary assignment of values</p>
	<pre class="codeblock">
Double idealMonthlySavings = monthlySalary * 0.40;
</pre>
	<p>5. Advanced - all other operators such as parentheses, ternary if-else, brackets,  new, instanceof, etc. fall here</p>
	<pre class="codeblock">
float f = 8.8;
int i = (int) f;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2008/06/07/data-operations-in-java/feed/</wfw:commentRss>
	</item>
		<item>
		<title>I turned 0x16 last May 31</title>
		<link>http://eradicus.blogsome.com/2008/06/03/i-turned-0x16-last-may-31/</link>
		<comments>http://eradicus.blogsome.com/2008/06/03/i-turned-0x16-last-may-31/#comments</comments>
		<pubDate>Tue, 03 Jun 2008 14:54:38 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2008/06/03/i-turned-0x16-last-may-31/</guid>
		<description><![CDATA[	I almost forgot that I already reached the starting position of the Earth&#8217;s revolution 0x16 times last May 31, 2008. Thanks to all.

]]></description>
			<content:encoded><![CDATA[	<p>I almost forgot that I already reached the starting position of the Earth&#8217;s revolution 0x16 times last May 31, 2008. Thanks to all.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2008/06/03/i-turned-0x16-last-may-31/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Fixed SVN + SSH in Red Hat Developer Studio CR1</title>
		<link>http://eradicus.blogsome.com/2008/05/19/fixed-svn-ssh-in-red-hat-developer-studio-cr1/</link>
		<comments>http://eradicus.blogsome.com/2008/05/19/fixed-svn-ssh-in-red-hat-developer-studio-cr1/#comments</comments>
		<pubDate>Mon, 19 May 2008 06:19:40 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2008/05/19/fixed-svn-ssh-in-red-hat-developer-studio-cr1/</guid>
		<description><![CDATA[	If you get the following message during an svn+ssh transaction using Subclipse,
	
The system cannot find the file specified.
svn: Can't create tunnel: The system cannot find the file specified.

	You need to specify an ssh executable or equivalent. Modify the Subversion config file. On W!ndoz3 the file can be found in:
	
C:\Documents and Settings\[user]\Application Data\Subversion\config

	In the [tunnels] section, [...]]]></description>
			<content:encoded><![CDATA[	<p>If you get the following message during an svn+ssh transaction using Subclipse,</p>
	<pre class="codeblock">
The system cannot find the file specified.
svn: Can't create tunnel: The system cannot find the file specified.
</pre>
	<p>You need to specify an ssh executable or equivalent. Modify the Subversion <em>config</em> file. On W!ndoz3 the file can be found in:</p>
	<pre class="codeblock">
C:\Documents and Settings\[user]\Application Data\Subversion\config
</pre>
	<p>In the [tunnels] section, see to it that it is not commented. Add / modify the following line:</p>
	<pre class="codeblock">
ssh = C:/Program Files/TortoiseSVN/bin/TortoisePlink.exe
</pre>
	<p>If you have Pageant running, you need not to specify the ssh key explicitly.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2008/05/19/fixed-svn-ssh-in-red-hat-developer-studio-cr1/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Nonprimitive Data Types in Java</title>
		<link>http://eradicus.blogsome.com/2008/05/18/nonprimitive-data-types-in-java/</link>
		<comments>http://eradicus.blogsome.com/2008/05/18/nonprimitive-data-types-in-java/#comments</comments>
		<pubDate>Sat, 17 May 2008 23:09:50 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2008/05/18/nonprimitive-data-types-in-java/</guid>
		<description><![CDATA[	Nonprimitive data types in Java are reference variables (object references), arrays and enums. All nonprimitive data types are references to memory where the objects live.
	[objects]
	References provide access to objects. The declaration syntax is just the same as with primitives.
	
Decryptor decryptor;

	The above example shows that we are creating a reference to a Decryptor object. Take note [...]]]></description>
			<content:encoded><![CDATA[	<p>Nonprimitive data types in Java are reference variables (object references), arrays and enums. All nonprimitive data types are references to memory where the objects live.</p>
	<p>[objects]</p>
	<p>References provide access to objects. The declaration syntax is just the same as with primitives.</p>
	<pre class="codeblock">
Decryptor decryptor;
</pre>
	<p>The above example shows that we are creating a reference to a Decryptor object. Take note that no real object is created yet.</p>
	<p>The object is created through the <em>new</em> operator. </p>
	<pre class="codeblock">
decryptor = new Decryptor();
</pre>
	<p>The reference decryptor now points to a Decryptor object in the heap.</p>
	<p>[arrays]</p>
	<p>Arrays are objects used to hold a collection of primitive or nonprimitive data of the same type. Take note that even if an array holds primitive data, it is always an object.</p>
	<p>Steps for creating an array:</p>
	<p>1. Declaration of an array variable (reference)</p>
	<pre class="codeblock">
char[] charArray; //or
char charArray[];
</pre>
	<p>2. Instantiation of an array of a certain size</p>
	<pre class="codeblock">
charArray = new char[8];
</pre>
	<p>3. Initialization of each array element.</p>
	<pre class="codeblock">
charArray[0] = 'k';
charArray[1] = 'a';
charArray[2] = 'r';
charArray[3] = 'e';
charArray[4] = 'n';
charArray[5] = 'e';
charArray[6] = 'v';
charArray[7] = 'e';
</pre>
	<p>Once a size is given to an array, it cannot be changed later.</p>
	<p>[enums]</p>
	<p>The data type enum is used to store a predetermined set of values or constants. Examples are the months in a year, the days in a week, etc.</p>
	<p>Steps for creating an enum:</p>
	<p>1. Define the enum type with unique named values</p>
	<pre class="codeblock">
enum ShortWeek {MON, TUE, WED, THU, FRI, SAT, SUN};
</pre>
	<p>2. Assign a reference to the enum type</p>
	<pre class="codeblock">
ShortWeek monday = ShortWeek.MON;
</pre>
	<p>You can only create X instances of an enum type, where X is the number of elements that the enum type holds.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2008/05/18/nonprimitive-data-types-in-java/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Removing bar311 worm</title>
		<link>http://eradicus.blogsome.com/2008/05/16/removing-bar311-worm/</link>
		<comments>http://eradicus.blogsome.com/2008/05/16/removing-bar311-worm/#comments</comments>
		<pubDate>Fri, 16 May 2008 04:15:20 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2008/05/16/removing-bar311-worm/</guid>
		<description><![CDATA[	I got it from my sister&#8217;s digicam. Thanks to Leerz for the walkthrough. This worm is really annoying especially if you are more comfortable doing stuffs in the console.
	1. Check for any bar311.exe, Autorun.inf, pc-off.bat files in mounted drives.
2. Delete if found.
3. Edit the following entries in the registry.
	
HKCU\Software\Microsoft\Command Processor\&quot;Autorun&quot;
HKLM\Software\Microsoft\Command Processor\&quot;Autorun&quot;

	Alternatively, you can download Noob.Killer, [...]]]></description>
			<content:encoded><![CDATA[	<p>I got it from my sister&#8217;s digicam. Thanks to <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fleerz25.sitesled.com%2F&amp;i=0&amp;c=1d56ff5eeb3835d3dd3e1809a9aae641b234ca12">Leerz</a> for the walkthrough. This worm is really annoying especially if you are more comfortable doing stuffs in the console.</p>
	<p>1. Check for any bar311.exe, Autorun.inf, pc-off.bat files in mounted drives.<br />
2. Delete if found.<br />
3. Edit the following entries in the registry.</p>
	<pre class="codeblock">
HKCU\Software\Microsoft\Command Processor\&quot;Autorun&quot;
HKLM\Software\Microsoft\Command Processor\&quot;Autorun&quot;
</pre>
	<p>Alternatively, you can download <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fleerz25.sitesled.com%2F&amp;i=0&amp;c=1d56ff5eeb3835d3dd3e1809a9aae641b234ca12">Noob.Killer</a>, run it, then watch and learn.</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2008/05/16/removing-bar311-worm/feed/</wfw:commentRss>
	</item>
		<item>
		<title>First time in Baguio</title>
		<link>http://eradicus.blogsome.com/2008/05/10/first-time-in-baguio/</link>
		<comments>http://eradicus.blogsome.com/2008/05/10/first-time-in-baguio/#comments</comments>
		<pubDate>Sat, 10 May 2008 13:00:44 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2008/05/10/first-time-in-baguio/</guid>
		<description><![CDATA[	Forgetting all queued tasks&#8230;
Spending time with family, relatives and special someone&#8230;
	I bought some sundot kulangot,  in chabacano, kuut kugang.
	It&#8217;s so cold in here. Internet speed is tolerable.

]]></description>
			<content:encoded><![CDATA[	<p>Forgetting all queued tasks&#8230;<br />
Spending time with family, relatives and special someone&#8230;</p>
	<p>I bought some <em>sundot kulangot</em>,  in chabacano, <em>kuut kugang</em>.</p>
	<p>It&#8217;s so cold in here. Internet speed is tolerable.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2008/05/10/first-time-in-baguio/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Default Values of Primitives in Java</title>
		<link>http://eradicus.blogsome.com/2008/05/08/default-values-of-primitives-in-java/</link>
		<comments>http://eradicus.blogsome.com/2008/05/08/default-values-of-primitives-in-java/#comments</comments>
		<pubDate>Thu, 08 May 2008 13:07:04 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2008/05/08/default-values-of-primitives-in-java/</guid>
		<description><![CDATA[	Default values apply only to instance variables that are uninitialized. Local variables need to be initialized explicitly before use or else the compiler will yell at you.
	boolean - false
byte - 0
short - 0
char - &#8216;\u0000&#8242;
int - 0
long - 0L
float - 0.0F
double - 0.0D
]]></description>
			<content:encoded><![CDATA[	<p>Default values apply only to instance variables that are uninitialized. Local variables need to be initialized explicitly before use or else the compiler will yell at you.</p>
	<p>boolean - false<br />
byte - 0<br />
short - 0<br />
char - &#8216;\u0000&#8242;<br />
int - 0<br />
long - 0L<br />
float - 0.0F<br />
double - 0.0D</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2008/05/08/default-values-of-primitives-in-java/feed/</wfw:commentRss>
	</item>
		<item>
		<title>The power within</title>
		<link>http://eradicus.blogsome.com/2008/05/07/the-power-within/</link>
		<comments>http://eradicus.blogsome.com/2008/05/07/the-power-within/#comments</comments>
		<pubDate>Wed, 07 May 2008 02:24:39 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2008/05/07/the-power-within/</guid>
		<description><![CDATA[	How T.J. Rodgers grew Cypress Semiconductor by incubating innovative ideas - no matter the source.
	Click here to read the article.

]]></description>
			<content:encoded><![CDATA[	<p>How <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FT._J._Rodgers&amp;i=0&amp;c=63a64c143639d794668eade476c20f1d0a4cbcc3">T.J. Rodgers</a> grew <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.cypress.com&amp;i=0&amp;c=7df9a47f6bc0a059cd52dde2f380003eccb3c6c7">Cypress Semiconductor</a> by incubating innovative ideas - no matter the source.</p>
	<p>Click <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.sbnonline.com%2FLocal%2FArticle%2F14498%2F80%2F0%2FThe_power_within.aspx%3FCategory%3D124&amp;i=0&amp;c=ffb32bc2511b221ed10f0219bd3f94d61c4fa174"><strong>here</strong></a> to read the article.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2008/05/07/the-power-within/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Literals in Java</title>
		<link>http://eradicus.blogsome.com/2008/05/06/literals-in-java/</link>
		<comments>http://eradicus.blogsome.com/2008/05/06/literals-in-java/#comments</comments>
		<pubDate>Mon, 05 May 2008 23:02:40 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2008/05/06/literals-in-java/</guid>
		<description><![CDATA[	Literals are values found in the source code and are known at compile time.
	[boolean literals]
	Each boolean type can only hold a literal true or a literal false. Boolean types can not hold numbers unlike in C/C++.
	
true
false

	[char literals]
	A char literal can be represented by a single character enclosed in single quotes.
	
char netPacket = 'K';

	Another valid representation [...]]]></description>
			<content:encoded><![CDATA[	<p>Literals are values found in the source code and are known at compile time.</p>
	<p>[boolean literals]</p>
	<p>Each boolean type can only hold a literal true or a literal false. Boolean types can not hold numbers unlike in C/C++.</p>
	<pre class="codeblock">
true
false
</pre>
	<p>[char literals]</p>
	<p>A char literal can be represented by a single character enclosed in single quotes.</p>
	<pre class="codeblock">
char netPacket = 'K';
</pre>
	<p>Another valid representation is in the form of a Unicode.</p>
	<pre class="codeblock">
char netPacket = '\uCAFE';
</pre>
	<p>The following are also valid, these are special characters represented by using escape sequences.</p>
	<p>new line</p>
	<pre class="codeblock">
'\n'
</pre>
	<p>tab</p>
	<pre class="codeblock">
'\t'
</pre>
	<p>backspace</p>
	<pre class="codeblock">
'\b'
</pre>
	<p>form feed</p>
	<pre class="codeblock">
'\f'
</pre>
	<p>carriage return</p>
	<pre class="codeblock">
'\r'
</pre>
	<p>single quote</p>
	<pre class="codeblock">
'\''
</pre>
	<p>double quote</p>
	<pre class="codeblock">
'\&quot;'
</pre>
	<p>backslash</p>
	<pre class="codeblock">
'\\'
</pre>
	<p>[integral literals]</p>
	<p>Integral literals can be represented in 3 ways, octal, decimal, hexadecimal. Octal representations are preceded by a 0. Decimal representations contain no prefixes / suffixes. Hexadecimal representations are prefixed with 0x.</p>
	<p>decimal </p>
	<pre class="codeblock">
814
</pre>
	<p>octal </p>
	<pre class="codeblock">
031
</pre>
	<p>hexadecimal </p>
	<pre class="codeblock">
0xCAFEBED
</pre>
	<p>[floating-point literals]</p>
	<p>Floating-point literals are represented by floating-point numbers. A floating-point number must have one of the following:</p>
	<p>decimal point (.) </p>
	<pre class="codeblock">
8888.8888
</pre>
	<p>scientific notation (e / E) </p>
	<pre class="codeblock">
8.88E+8
</pre>
	<p>suffixes (d / D for double &#038; f / F for float) </p>
	<pre class="codeblock">
8F, 8.8D
</pre>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2008/05/06/literals-in-java/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Primitive Data Types in Java</title>
		<link>http://eradicus.blogsome.com/2008/05/05/primitive-data-types-in-java/</link>
		<comments>http://eradicus.blogsome.com/2008/05/05/primitive-data-types-in-java/#comments</comments>
		<pubDate>Mon, 05 May 2008 06:41:44 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2008/05/05/primitive-data-types-in-java/</guid>
		<description><![CDATA[	Java supports 8 built-in data types.
	boolean - This data type is 1 bit in size and is used to represent a binary
condition, true or false.
	byte - This data type is an 8-bit signed 2&#8217;s complement integer.
It can hold values ranging from -128 to 127.
	short - This data type is a 16-bit signed 2&#8217;s complement integer.
It [...]]]></description>
			<content:encoded><![CDATA[	<p>Java supports 8 built-in data types.</p>
	<p>boolean - This data type is 1 bit in size and is used to represent a binary<br />
condition, true or false.</p>
	<p>byte - This data type is an 8-bit signed 2&#8217;s complement integer.<br />
It can hold values ranging from -128 to 127.</p>
	<p>short - This data type is a 16-bit signed 2&#8217;s complement integer.<br />
It can hold values ranging from -32,768 to 32,767.</p>
	<p>char - This data type is a 16-bit unsigned integer used to represent unicode characters.<br />
It can hold values ranging from 0 to 65,535.</p>
	<p>int - This data type is a 32-bit signed 2&#8217;s complement integer.<br />
It can hold values ranging from -2,147,483,648 to 2,147,483,647.</p>
	<p>long - This data type is a 64-bit signed 2&#8217;s complement integer.<br />
It can hold values raging from -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807.</p>
	<p>float - This data type is a 32-bit signed floating-point number.<br />
The range of values it can hold is +/–3.40282347^38.</p>
	<p>double - This data type is a 64-bit signed floating-point number.<br />
The range of values it can hold is +/–1.79769313486231570^308.</p>
	<p>The syntax for declaring and initializing a primitive is:</p>
	<pre class="codeblock">
&lt;modifier> &lt;type> &lt;variableName> = &lt;initialvalue>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2008/05/05/primitive-data-types-in-java/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Variables in Java</title>
		<link>http://eradicus.blogsome.com/2008/05/03/variables-in-java/</link>
		<comments>http://eradicus.blogsome.com/2008/05/03/variables-in-java/#comments</comments>
		<pubDate>Fri, 02 May 2008 19:04:38 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2008/05/03/variables-in-java/</guid>
		<description><![CDATA[	There are 2 types of variables in Java, primitive and reference variables. A primitive variable holds the real value of the variable while a reference variable holds the memory address of where the real value of the variable is stored.
	Identifiers must be named according to the following rules:
1. The first character of an identifier must [...]]]></description>
			<content:encoded><![CDATA[	<p>There are 2 types of variables in Java, primitive and reference variables. A primitive variable holds the real value of the variable while a reference variable holds the memory address of where the real value of the variable is stored.</p>
	<p>Identifiers must be named according to the following rules:<br />
1. The first character of an identifier must be a letter, an (_) underscore or a ($) dollar sign.<br />
2. After rule number 1, the succeeding characters can be digits.<br />
3. Reserved words are not allowed.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2008/05/03/variables-in-java/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Memory Usage in Java</title>
		<link>http://eradicus.blogsome.com/2008/05/01/memory-usage-in-java/</link>
		<comments>http://eradicus.blogsome.com/2008/05/01/memory-usage-in-java/#comments</comments>
		<pubDate>Thu, 01 May 2008 11:25:13 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2008/05/01/memory-usage-in-java/</guid>
		<description><![CDATA[	Memory management in Java is not a thing to worry about, the Java Virtual Machine and the garbage collector handle it. However, when dealing with obfuscated codes, being aware of where things are stored in the memory is an advantage.
	There are two logical places in the memory, the stack and the heap. Local variables, local [...]]]></description>
			<content:encoded><![CDATA[	<p>Memory management in Java is not a thing to worry about, the Java Virtual Machine and the garbage collector handle it. However, when dealing with obfuscated codes, being aware of where things are stored in the memory is an advantage.</p>
	<p>There are two logical places in the memory, the stack and the heap. Local variables, local reference variables and method invocations reside in the stack while instance variables, instance reference variables and objects reside in the heap.</p>
	<p>Local variables as the name suggests are defined inside a method or as parameters of a method. Local reference variables on the other hand are those that refer to an object. These are defined inside a method or as parameters of a method. Method calls are pushed on to the stack.</p>
	<p>Instance variables are primitive variables defined inside a class but outside of any method. Instance reference variables are those that refer to objects and are defined inside a class but outside of any method. Objects are representations of real-world entities that the program is trying to solve.</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2008/05/01/memory-usage-in-java/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Restarting blog</title>
		<link>http://eradicus.blogsome.com/2008/05/01/restarting-blog/</link>
		<comments>http://eradicus.blogsome.com/2008/05/01/restarting-blog/#comments</comments>
		<pubDate>Thu, 01 May 2008 11:24:03 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2008/05/01/restarting-blog/</guid>
		<description><![CDATA[	Being able to document things is a sign of maturity. So in order to convince my self that I am growing somehow, I will dedicate a fraction of my precious time for documenting the things I burn-in each day as well as those that I have already burned.

]]></description>
			<content:encoded><![CDATA[	<p>Being able to document things is a sign of maturity. So in order to convince my self that I am growing somehow, I will dedicate a fraction of my precious time for documenting the things I burn-in each day as well as those that I have already burned.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2008/05/01/restarting-blog/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Legacy systems</title>
		<link>http://eradicus.blogsome.com/2008/04/02/legacy-systems/</link>
		<comments>http://eradicus.blogsome.com/2008/04/02/legacy-systems/#comments</comments>
		<pubDate>Wed, 02 Apr 2008 04:52:15 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2008/04/02/legacy-systems/</guid>
		<description><![CDATA[	When an identifier becomes a keyword in the later versions of the language, boom! It&#8217;s time to Find and Replace All!
	When a subprogram implements spaghetti, move your ass engineer!
	When a language becomes more strict in the later versions and the current code review metrics extends it, again, move your ass engineer!

]]></description>
			<content:encoded><![CDATA[	<p>When an identifier becomes a keyword in the later versions of the language, boom! It&#8217;s time to <em>Find and Replace All</em>!</p>
	<p>When a subprogram <em>implements</em> spaghetti, move your ass engineer!</p>
	<p>When a language becomes more strict in the later versions and the current code review metrics <em>extends</em> it, again, move your ass engineer!
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2008/04/02/legacy-systems/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Soundskool</title>
		<link>http://eradicus.blogsome.com/2008/03/25/soundskool/</link>
		<comments>http://eradicus.blogsome.com/2008/03/25/soundskool/#comments</comments>
		<pubDate>Tue, 25 Mar 2008 09:20:48 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2008/03/25/soundskool/</guid>
		<description><![CDATA[	Soundskool  - an inter-school battle of the band competition released teaser videos for this upcoming event, and the “announcement” of a link, going to this particular site (http://www.handakanabangsumikat.ph/).
	[Download MP4s] 
	[Download Reports]
	Fellow musicians, join now and help me spread the good news!

]]></description>
			<content:encoded><![CDATA[	<p>Soundskool  - an inter-school battle of the band competition released teaser videos for this upcoming event, and the “announcement” of a link, going to this particular site (<a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.handakanabangsumikat.ph%2F&amp;i=0&amp;c=bfd9f2b0ed11c63875a7e56664e6ea72fd79aa88"><strong>http://www.handakanabangsumikat.ph/</strong></a>).</p>
	<p><strong><a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.esnips.com%2Fdoc%2F3ddde08c-34ab-4268-a02f-e9f15525826f%2Fsoundskool-mp4&amp;i=0&amp;c=b20eb2fbb5fb7ce563ba53b5103e55281743b0b8">[Download MP4s]</a></strong> </p>
	<p><strong><a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.esnips.com%2Fdoc%2Fb14390eb-7e1c-4764-aed2-9c25faf62ccd%2Fsoundskool-viral-reports&amp;i=0&amp;c=15f54fdaff501eaac435a9f7ab9430e3438d5487">[Download Reports]</a></strong></p>
	<p>Fellow musicians, join now and help me spread the good news!
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2008/03/25/soundskool/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Happy Easter!</title>
		<link>http://eradicus.blogsome.com/2008/03/23/happy-easter/</link>
		<comments>http://eradicus.blogsome.com/2008/03/23/happy-easter/#comments</comments>
		<pubDate>Sun, 23 Mar 2008 00:27:38 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2008/03/23/happy-easter/</guid>
		<description><![CDATA[	It&#8217;s time for egg hunting.

]]></description>
			<content:encoded><![CDATA[	<p>It&#8217;s time for egg hunting.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2008/03/23/happy-easter/feed/</wfw:commentRss>
	</item>
		<item>
		<title>T.J. Rodgers on Solar, Politics and Capitalism</title>
		<link>http://eradicus.blogsome.com/2008/03/17/tj-rodgers-on-solar-politics-and-capitalism/</link>
		<comments>http://eradicus.blogsome.com/2008/03/17/tj-rodgers-on-solar-politics-and-capitalism/#comments</comments>
		<pubDate>Mon, 17 Mar 2008 13:09:49 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2008/03/17/tj-rodgers-on-solar-politics-and-capitalism/</guid>
		<description><![CDATA[	T.J. Rodgers is the founder and CEO of Cypress Semiconductor. He is known for his public relations acumen, his brash personality, and strong advocacy of laissez-faire capitalism.
	Click here to see where he stands on the issues regarding solar, politics and capitalism.

]]></description>
			<content:encoded><![CDATA[	<p><a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FT.J._Rodgers&amp;i=0&amp;c=ee1647307e2e3de1a14e1e3e654c9249fe6823ae">T.J. Rodgers</a> is the founder and CEO of <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.cypress.com&amp;i=0&amp;c=7df9a47f6bc0a059cd52dde2f380003eccb3c6c7">Cypress Semiconductor</a>. He is known for his public relations acumen, his brash personality, and strong advocacy of laissez-faire capitalism.</p>
	<p>Click <strong><a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.news.com%2F8301-13578_3-9887435-38.hmtl%3Ftag%3Dnefd.lede&amp;i=0&amp;c=7042b79e549a20489921a94b30ad6255be02ced1">here</a></strong> to see where he stands on the issues regarding solar, politics and capitalism.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2008/03/17/tj-rodgers-on-solar-politics-and-capitalism/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Focused Group Discussion on FOSS</title>
		<link>http://eradicus.blogsome.com/2008/03/03/focused-group-discussion-on-foss/</link>
		<comments>http://eradicus.blogsome.com/2008/03/03/focused-group-discussion-on-foss/#comments</comments>
		<pubDate>Mon, 03 Mar 2008 06:11:57 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2008/03/03/focused-group-discussion-on-foss/</guid>
		<description><![CDATA[	A research group from Ateneo de Manila University invited developers in a Focused Group Discussion(FGD) on FOSS development at BCD Pinpoint, 4th Floor Bloomingdale Building, 205 Salcedo Street, Legazpi Village, Makati. The FGD was divided into two, the first had it on Feb. 26 and the second on Feb. 28, which targeted freelancers and employees [...]]]></description>
			<content:encoded><![CDATA[	<p>A research group from Ateneo de Manila University invited developers in a Focused Group Discussion(FGD) on FOSS development at BCD Pinpoint, 4th Floor Bloomingdale Building, 205 Salcedo Street, Legazpi Village, Makati. The FGD was divided into two, the first had it on Feb. 26 and the second on Feb. 28, which targeted freelancers and employees respectively. </p>
	<p>The topics were:</p>
	<p>1. Software / Deployment stack usage<br />
2. FOSS advocacy<br />
3. FOSS community</p>
	<p>Technical discussions were already going on before the formal one started. Michael Cole, an I.T. Manager, who was one of the speakers during Software Freedom Day 2007, gave a lot of his insights regarding the use of FOSS on the desktop space. He also revealed some of FOSS&#8217;s limitations at its current state. Re Alvarez, a system administrator, laid out some of his plans for FOSS usage on the company that he is working with. He gave out a lot of tips for newbies. Archie Cortes, a FOSS advocate and a full-time user since 1998, clarified the edge of FOSS against proprietary software. </p>
	<p>I have learned a lot from these brilliant people and I have noted some of their FOSS marketing strategies.</p>
	<p>Many thanks to Rick Bahague Jr. for the invitation and the 1 GB Kingston DataTraveler give-away.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2008/03/03/focused-group-discussion-on-foss/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Removing virus services.exe and fservice.exe</title>
		<link>http://eradicus.blogsome.com/2008/01/07/removing-viruses-servicesexe-and-fserviceexe-2/</link>
		<comments>http://eradicus.blogsome.com/2008/01/07/removing-viruses-servicesexe-and-fserviceexe-2/#comments</comments>
		<pubDate>Mon, 07 Jan 2008 12:26:25 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2008/01/07/removing-viruses-servicesexe-and-fserviceexe-2/</guid>
		<description><![CDATA[	The virus consists of the following.
	
C:\Windows\system32\fservice.exe and
C:\Windows\services.exe

	The virus is a key logger. It sends an email message every time a connection to the internet is made. It blocks the Windows XP Protect Shield and System Restore services.
	Removing the virus:
	1. Kill fservice.exe
- Use TASKKILL /F /IM fservice.exe
- If it doesn&#8217;t work on the first attempt, use [...]]]></description>
			<content:encoded><![CDATA[	<p>The virus consists of the following.</p>
	<pre class="codeblock">
C:\Windows\system32\fservice.exe and
C:\Windows\services.exe
</pre>
	<p>The virus is a key logger. It sends an email message every time a connection to the internet is made. It blocks the Windows XP Protect Shield and System Restore services.</p>
	<p>Removing the virus:</p>
	<p>1. Kill fservice.exe<br />
- Use TASKKILL /F /IM fservice.exe<br />
- If it doesn&#8217;t work on the first attempt, use NTSD -P [PID of fservice.exe] then quit the debugger to kill the task.</p>
	<p>2. Kill services.exe<br />
- Kill the bogus one not the genuine services.exe<br />
- Follow procedure in number 1.</p>
	<p>3. Delete all occurrences of fservice.exe and the fake services.exe<br />
- Do not delete the real services.exe found in C:\Windows\system32</p>
	<p>4. Clean the registry for entries containing fservice.exe and the fake services.exe
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2008/01/07/removing-viruses-servicesexe-and-fserviceexe-2/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Happy New Year!</title>
		<link>http://eradicus.blogsome.com/2008/01/01/happy-new-year/</link>
		<comments>http://eradicus.blogsome.com/2008/01/01/happy-new-year/#comments</comments>
		<pubDate>Mon, 31 Dec 2007 22:48:09 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2008/01/01/happy-new-year/</guid>
		<description><![CDATA[	Felices Pascua Y Prospero Año Nuevo!

]]></description>
			<content:encoded><![CDATA[	<p>Felices Pascua Y Prospero Año Nuevo!
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2008/01/01/happy-new-year/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Removing jaymyka worm</title>
		<link>http://eradicus.blogsome.com/2007/11/30/removing-jaymyka-worm/</link>
		<comments>http://eradicus.blogsome.com/2007/11/30/removing-jaymyka-worm/#comments</comments>
		<pubDate>Fri, 30 Nov 2007 11:51:38 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2007/11/30/removing-jaymyka-worm/</guid>
		<description><![CDATA[	Today is Gat Andres Bonifacio&#8217;s day. No work, no pressure, so I took the advantage of going to my aunt&#8217;s workplace to remove the so-called Jaymyka worm. All the computers were infected.
	Worm: Jaymyka
Threat Level: Low
Target Victims: Users viewing adult sites (Geez! Who did that in the office?)
	Description:
	It creates an autorun.inf file per drive with the [...]]]></description>
			<content:encoded><![CDATA[	<p>Today is Gat Andres Bonifacio&#8217;s day. No work, no pressure, so I took the advantage of going to my aunt&#8217;s workplace to remove the so-called Jaymyka worm. All the computers were infected.</p>
	<p>Worm: Jaymyka<br />
Threat Level: Low<br />
Target Victims: Users viewing adult sites (Geez! Who did that in the office?)</p>
	<p>Description:</p>
	<p>It creates an autorun.inf file per drive with the following contents,</p>
	<pre class="codeblock">
[autorun]
open=jay.exe
;shell\open=Open(&#038;O)
shell\open\Command=jay.exe
shell\open\Default=1
;shell\explore=Manager(&#038;X)
shell\explore\Command=jay.exe
</pre>
	<p>The autorun.inf file is paired with jay.exe. The jay.exe file handles the annoying duplication of files and some resource-hogging tasks leading to DoS attack. If this worm is able to infect the target device successfully, it attaches a file named mveo.exe at startup. This mveo.exe is responsible for the worm&#8217;s capability of regeneration.</p>
	<p><strong>[Diagnosis]</strong></p>
	<p>1. Kill mveo.exe and jay.exe</p>
	<pre class="codeblock">
TASKKILL /F /IM mveo.exe /IM jay.exe
</pre>
	<p>2. Delete all files named jay.exe and mveo.exe<br />
3. Remove mveo.exe in msconfig&#8217;s startup tab<br />
4. Clean the registry of entries containing jay.exe, jaymyka, mveo.exe<br />
5. Reboot</p>
	<p>Christmas is near! It&#8217;s been a while since I blogged. Nothing special.</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2007/11/30/removing-jaymyka-worm/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Turn off error-causing ads from Yahoo! Messenger 8</title>
		<link>http://eradicus.blogsome.com/2007/09/26/turn-off-error-causing-ads-from-yahoo-messenger-8/</link>
		<comments>http://eradicus.blogsome.com/2007/09/26/turn-off-error-causing-ads-from-yahoo-messenger-8/#comments</comments>
		<pubDate>Wed, 26 Sep 2007 14:32:50 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2007/09/26/turn-off-error-causing-ads-from-yahoo-messenger-8/</guid>
		<description><![CDATA[	Most users complain about the error pop-ups rooted from the ads attached to their Yahoo! IM clients. Turning off from the registry is the best way shun them.
	In the registry,
	
[HKEY_CURRENT_USER\Software\Yahoo\Pager\YUrl]

	Set or add these values,
	
Messenger Ad = *
Webcam Upload Ad = *
Webcam Viewer Ad = *
Webcam Viewer Ad Medium = *
Webcam Viewer Ad Big = *
Change [...]]]></description>
			<content:encoded><![CDATA[	<p>Most users complain about the error pop-ups rooted from the ads attached to their Yahoo! IM clients. Turning off from the registry is the best way shun them.</p>
	<p>In the registry,</p>
	<pre class="codeblock">
[HKEY_CURRENT_USER\Software\Yahoo\Pager\YUrl]
</pre>
	<p>Set or add these values,</p>
	<pre class="codeblock">
Messenger Ad = *
Webcam Upload Ad = *
Webcam Viewer Ad = *
Webcam Viewer Ad Medium = *
Webcam Viewer Ad Big = *
Change Room Banner = *
Conf Adurl = *
Chat Adurl = *
</pre>
	<p>Edit the file \Program Files\Yahoo!\Messenger\Cache\urls.xml, erase all the contents and leave 2 double quotes (&#8221; &#8220;), save it then mark as read-only.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2007/09/26/turn-off-error-causing-ads-from-yahoo-messenger-8/feed/</wfw:commentRss>
	</item>
		<item>
		<title>CLI &#038; Registry User Administration in Windows XP</title>
		<link>http://eradicus.blogsome.com/2007/07/30/cli-registry-user-administration-in-windows-xp/</link>
		<comments>http://eradicus.blogsome.com/2007/07/30/cli-registry-user-administration-in-windows-xp/#comments</comments>
		<pubDate>Mon, 30 Jul 2007 10:47:13 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2007/07/30/cli-registry-user-administration-in-windows-xp/</guid>
		<description><![CDATA[	This is a simple user administration in Windows XP. There are lots of hidden gems here.
	Adding a new user,
	
net user somename somepassword /add

	Deleting a user,
	
net user somename somepassword /delete

	Making a user an administrator,
	
net localgroup Administrators somename /add

	Removing user administrator rights,
	
net localgroup Administrators somename /delete

	Hiding a user from the login screen,
	
REG ADD \\"HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\
SpecialAccounts\\UserList\\" /f /v [...]]]></description>
			<content:encoded><![CDATA[	<p>This is a simple user administration in Windows XP. There are lots of hidden gems here.</p>
	<p>Adding a new user,</p>
	<pre class="codeblock">
net user <em>somename</em> <em>somepassword</em> /add
</pre>
	<p>Deleting a user,</p>
	<pre class="codeblock">
net user <em>somename</em> <em>somepassword</em> /delete
</pre>
	<p>Making a user an administrator,</p>
	<pre class="codeblock">
net localgroup Administrators <em>somename</em> /add
</pre>
	<p>Removing user administrator rights,</p>
	<pre class="codeblock">
net localgroup Administrators <em>somename</em> /delete
</pre>
	<p>Hiding a user from the login screen,</p>
	<pre class="codeblock">
REG ADD \\"HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\
SpecialAccounts\\UserList\\" /f /v <em>somename</em> /t REG_DWORD /d 0
</pre>
	<p>Showing a user on the login screen,</p>
	<pre class="codeblock">
REG ADD \\"HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\
SpecialAccounts\\UserList\\" /f /v <em>somename</em> /t REG_DWORD /d 1
</pre>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2007/07/30/cli-registry-user-administration-in-windows-xp/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Java bytecode disassembly</title>
		<link>http://eradicus.blogsome.com/2007/06/16/java-byte-code-disassembly/</link>
		<comments>http://eradicus.blogsome.com/2007/06/16/java-byte-code-disassembly/#comments</comments>
		<pubDate>Fri, 15 Jun 2007 23:13:33 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2007/06/16/java-byte-code-disassembly/</guid>
		<description><![CDATA[	In every programmer&#8217;s journey, the legendary &#8220;Hello World!&#8221; program excuses no one. So I wrote, compiled, then disassembled it.
	
public class Hello {
	
	public static void main(String[] args) {
		System.out.println(&quot;Hello World!&quot;);
	}
	
}

	I fired up a hex editor to analyze the bytecode&#8217;s disassembly. This part contains the headers, class name and the superclass being extended. This is how a JDK [...]]]></description>
			<content:encoded><![CDATA[	<p>In every programmer&#8217;s journey, the legendary &#8220;Hello World!&#8221; program excuses no one. So I wrote, compiled, then disassembled it.</p>
	<pre class="codeblock">
public class Hello {
	
	public static void main(String[] args) {
		System.out.println(&quot;Hello World!&quot;);
	}
	
}
</pre>
	<p>I fired up a hex editor to analyze the bytecode&#8217;s disassembly. This part contains the headers, class name and the superclass being <em>extended</em>. This is how a JDK 1.5-compiled bytecode looks.</p>
	<pre class="codeblock">
.bytecode 49.0
.source &quot;Hello.java&quot;
	
.class public Hello
.super java/lang/Object
</pre>
	<p>By default, a constructor is generated. Check that it constructs itself as an object of type &#8216;Object&#8217; naturally because Java classes <em>extend</em> the &#8216;Object&#8217; class. Here we have shown that a constructor is just a method.</p>
	<pre class="codeblock">
.method public <init>()V
  .limit stack 1
  .limit locals 1
  .line 1
    aload_0 ; met001_slot000
    invokespecial java/lang/Object.</init><init>()V
    return
.end method
</init></pre>
	<p>Here&#8217;s the main method.</p>
	<pre class="codeblock">
.method public static main([Ljava/lang/String;)V
  .limit stack 2
  .limit locals 1
  .line 4
    getstatic java/lang/System.out Ljava/io/PrintStream;
    ldc &quot;Hello World!&quot;
    invokevirtual java/io/PrintStream.println(Ljava/lang/String;)V
  .line 5
    return
.end method
</pre>
	<p>Easy isn&#8217;t it?
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2007/06/16/java-byte-code-disassembly/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Today I turned 0x15</title>
		<link>http://eradicus.blogsome.com/2007/05/31/today-i-turned-0x15/</link>
		<comments>http://eradicus.blogsome.com/2007/05/31/today-i-turned-0x15/#comments</comments>
		<pubDate>Thu, 31 May 2007 01:40:59 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2007/05/31/today-i-turned-0x15/</guid>
		<description><![CDATA[	31st of May 2007 minus 0x15, marked the day of Eradicus&#8217; existence. It was with divine intervention that fate has chosen Santa Maria Health Center as his birthplace. 
	
                          .-----------------TTTT_-----_______
 [...]]]></description>
			<content:encoded><![CDATA[	<p>31st of May 2007 minus 0x15, marked the day of Eradicus&#8217; existence. It was with divine intervention that fate has chosen Santa Maria Health Center as his birthplace. </p>
	<pre class="codeblock">
                          .-----------------TTTT_-----_______
                        /''''''''''(______O] ----------____  \______/]_
     __...---'\"\"\"\_ --''   Q                               ___________@
 |'''                   ._   _______________=---------\"\"\"\"\"\"\"
 |                ..--''|   l L |_l   |
 |          ..--''      .  /-___j '   '
 |    ..--''           /  ,       '   '
 |--''                /           `    \
                      L__'         \    -
                                    -    '-.
                                     '.    /
                                       '-./
</pre>
	<p>Automatic Kalashnikov 47, can someone surprise me with a gift like this? <img src='http://eradicus.blogsome.com/wp-images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  I&#8217;m not a terrorist, I just want to experience dismantling this rifle and assembling it back beating the best time.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2007/05/31/today-i-turned-0x15/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Evading Yahoo! Messenger worms</title>
		<link>http://eradicus.blogsome.com/2007/04/06/evading-yahoo-messenger-worms/</link>
		<comments>http://eradicus.blogsome.com/2007/04/06/evading-yahoo-messenger-worms/#comments</comments>
		<pubDate>Fri, 06 Apr 2007 15:18:35 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2007/04/06/evading-yahoo-messenger-worms/</guid>
		<description><![CDATA[	Dealing with worm-infected Yahoo! Messengers in Windows XP is fun. Just apply the fix. Do not reformat because it is the lazy way of fixing things!
	In file fix.reg
	
REGEDIT4
	
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]
&quot;DisableTaskMgr&quot;=dword:00000000 
	
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System]
&quot;DisableTaskMgr&quot;=dword:00000000 
	
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]
&quot;DisableRegistryTools&quot;=dword:00000000
	
[HKEY_CURRENT_USER\Software\Yahoo\pager\View\YMSGR_buzz]
&quot;content url&quot;=-
	
[HKEY_CURRENT_USER\Software\Yahoo\pager\View\YMSGR_Launchcast]
&quot;content url&quot;=-
	
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main]
&quot;Start Page&quot; = &quot;http://eradicus.blogsome.com&quot; 
	
[-HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Control Panel\Homepage]
	
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
&quot;Task Manager&quot;=-
	
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
&quot;Svchost&quot;=-

	If the worm disabled the Registry, Task Manager,  and Run command, fire up a command [...]]]></description>
			<content:encoded><![CDATA[	<p>Dealing with worm-infected Yahoo! Messengers in Windows XP is fun. Just apply the fix. Do not reformat because it is the lazy way of fixing things!</p>
	<p>In file <strong>fix.reg</strong></p>
	<pre class="codeblock">
REGEDIT4
	
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]
&quot;DisableTaskMgr&quot;=dword:00000000 
	
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System]
&quot;DisableTaskMgr&quot;=dword:00000000 
	
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]
&quot;DisableRegistryTools&quot;=dword:00000000
	
[HKEY_CURRENT_USER\Software\Yahoo\pager\View\YMSGR_buzz]
&quot;content url&quot;=-
	
[HKEY_CURRENT_USER\Software\Yahoo\pager\View\YMSGR_Launchcast]
&quot;content url&quot;=-
	
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main]
&quot;Start Page&quot; = &quot;http://eradicus.blogsome.com&quot; 
	
[-HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Control Panel\Homepage]
	
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
&quot;Task Manager&quot;=-
	
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
&quot;Svchost&quot;=-
</pre>
	<p>If the worm disabled the Registry, Task Manager,  and Run command, fire up a command prompt and do the following.</p>
	<p>1. To reactivate the Registry</p>
	<pre class="codeblock">
REG add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System
/v DisableRegistryTools /t REG_DWORD /d 0 /f
</pre>
	<p>2. To reactivate the Task Manager</p>
	<pre class="codeblock">
REG add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System
/v DisableTaskMgr /t REG_DWORD /d 0 /f
</pre>
	<p>Search for svchost.exe and delete the macro equivalent. Be careful! Make sure that it is the macro equivalent, not the system file!
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2007/04/06/evading-yahoo-messenger-worms/feed/</wfw:commentRss>
	</item>
		<item>
		<title>MOSS: 1st Hands-on Power Training</title>
		<link>http://eradicus.blogsome.com/2007/02/10/moss-1st-hands-on-power-training/</link>
		<comments>http://eradicus.blogsome.com/2007/02/10/moss-1st-hands-on-power-training/#comments</comments>
		<pubDate>Sat, 10 Feb 2007 14:19:19 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2007/02/10/moss-1st-hands-on-power-training/</guid>
		<description><![CDATA[	Mindanao Open Source Society (MOSS) held its 1st Hands-on Power Training at the ADZU Open Source Laboratory. It was totally a new experience for me since I really do not know how to organize events. There is always a first time as they say. I really thank God for making this event a success though [...]]]></description>
			<content:encoded><![CDATA[	<p><a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fmoss.orgz.ph&amp;i=0&amp;c=ea36912ac8c3833d6e92854bd300475e82287d1a">Mindanao Open Source Society (MOSS)</a> held its 1st Hands-on Power Training at the <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.adzu.edu.ph&amp;i=0&amp;c=0ddbb9c735a0a9a0e3369823b26c857f4a107f8b">ADZU</a> Open Source Laboratory. It was totally a new experience for me since I really do not know how to organize events. There is always a first time as they say. I really thank God for making this event a success though not yet perfect but hopefully the next will be planned and organized well. This event is so memorable for me since I have learned a lot of things that are not just technically related to Free and Open Source Software.</p>
	<p>To <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2F&amp;i=0&amp;c=7a0fc9a9d70ea625e5ccacffb8dcce1fe380b3fe">Sir Fhics</a>, thank you so much and I salute you sir! Sir Fhics is the head of CISCO Zamboanga. He is so down-to-earth, very kind, open-minded and a skilled man yet so humble. He is one of those skilled persons who never sets a gap between himself and those who are just starting up (newbies). He even considers himself a &#8220;droplet of water in the ocean of knowledge.&#8221; Again, thank you sir! I have learned not just pure networking stuffs from you but also values that are applicable to life as well.</p>
	<p>To <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fyolynne.wordpress.com&amp;i=0&amp;c=d5ac4566b03de23021bd05efa55e4f623f57f222">Ma&#8217;am Yolynne</a>, you are one of a kind, you never let us down. Especially during those times when we were almost losing hope and our morale was almost negative 30,000 feet below sea level. You&#8217;ve shown us an understanding and a caring heart. Thank you so much. There should be more people like you in this world. Thank you for not just being part of my journey to the open source world but also to my life&#8217;s journey.</p>
	<p>To <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Frjian.blogspot.com&amp;i=0&amp;c=f10a6baebd67e0fe51b7d2698f777836e290bada">Rj Ian Sevilla,</a> <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fsykes.blogsome.com&amp;i=0&amp;c=1ed921f5fb58edd6f9a0a7db58b4f55a0374098a">Jay Manligas</a>, <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fmack0y.multiply.com&amp;i=0&amp;c=6649b814de63911cb6d4666bbe71a67cc74ab7e1">Macky Alger</a>, thanks bros! I know we can make it better the next time around. We have some mistakes but I know that from those we&#8217;ve grown as a person. Let&#8217;s congratulate ourselves for a successful event. </p>
	<p>To the <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.adzu.edu.ph%2Facc%2F&amp;i=0&amp;c=8242c431204b32590e0fb222c645490591a3f072">ADZU Computer Center</a> staff, thanks a lot for helping us! <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fmau.i.ph&amp;i=0&amp;c=99cd9d83d863fc1188139bd3c581660f15216c8d">Ma&#8217;am Maureen Bello</a>, <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Femxsi.blogspot.com&amp;i=0&amp;c=ef9d2e77c06af740982765fc2908414e57bc8cdd">Sir Greg</a>! Sir Genner Cerna, Sir Richter Vecina, Ma&#8217;am Girlie, Ma&#8217;am Cathy. Pro Deo et Patria!</p>
	<p>To the new MOSS members, this event wouldn&#8217;t be a success if it weren&#8217;t because of you. Welcome to the open source world. Always stay interested. <img src='http://eradicus.blogsome.com/wp-images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  God bless us all.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2007/02/10/moss-1st-hands-on-power-training/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Processor upgraded</title>
		<link>http://eradicus.blogsome.com/2007/01/31/processor-upgraded/</link>
		<comments>http://eradicus.blogsome.com/2007/01/31/processor-upgraded/#comments</comments>
		<pubDate>Wed, 31 Jan 2007 14:45:49 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2007/01/31/processor-upgraded/</guid>
		<description><![CDATA[	Nothing special really, I have just upgraded the processor from 1.7GHz to 3.0GHz with HT technology. The 1.7GHz (1.9GHz overclocked) processor is now for sale. Too bad I&#8217;m still using Intel processors. Hopefully after graduation I&#8217;ll be able to make my switch to the dark side of the force, AMD.
	
CPU : Intel Pentium 4 (*1)
CPU [...]]]></description>
			<content:encoded><![CDATA[	<p>Nothing special really, I have just upgraded the processor from 1.7GHz to 3.0GHz with HT technology. The 1.7GHz (1.9GHz overclocked) processor is now for sale. Too bad I&#8217;m still using Intel processors. Hopefully after graduation I&#8217;ll be able to make my switch to the dark side of the force, AMD.</p>
	<pre class="codeblock">
CPU : Intel Pentium 4 (*1)
CPU Arch : 1 Cores - 2 Threads
CPU PSN : Intel(R) Pentium(R) 4 CPU 3.00GHz
CPU EXT : MMX SSE SSE2
CPU Cache : L1 : 12/8 KB - L2 : 512 KB
Core : Northwood (0.130) / Revision : M0
CPUID : F.2.5 / Extended : F.2
Freq : 3006.76 MHz (200.45 * 15)
</pre>
	<p>Click <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fvalid.x86-secret.com%2Fshow_oc%3Fid%3D162980&amp;i=0&amp;c=6498cde921a0fbb9f3893084ff5cea947a611bb9"><strong>here</strong></a> for more details.</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2007/01/31/processor-upgraded/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Web application development framework</title>
		<link>http://eradicus.blogsome.com/2007/01/28/web-application-development-framework/</link>
		<comments>http://eradicus.blogsome.com/2007/01/28/web-application-development-framework/#comments</comments>
		<pubDate>Sun, 28 Jan 2007 06:07:18 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2007/01/28/web-application-development-framework/</guid>
		<description><![CDATA[	Web application development can be time consuming and complex. The development process can be simplified by using frameworks. A web application development framework contains a set of tools and libraries for easier development. 
	Frameworks are preferred by enterprise developers since it simplify development process, reduce development time, improve readability of code, organize development and emphasize [...]]]></description>
			<content:encoded><![CDATA[	<p>Web application development can be time consuming and complex. The development process can be simplified by using frameworks. A web application development framework contains a set of tools and libraries for easier development. </p>
	<p>Frameworks are preferred by enterprise developers since it simplify development process, reduce development time, improve readability of code, organize development and emphasize modularity. Using frameworks for enterprise development will surely make a team productive.</p>
	<p>Most frameworks use the Model-View-Controller design paradigm. The MVC design paradigm separates the data and user interface. Changes to the user interface will not affect the handling of data and the data can be restructured without changing the user interface. The MVC handles this by decoupling the data access layer (DAL) and business logic layer (BLL) from data presentation and user interaction through the controller.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2007/01/28/web-application-development-framework/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Wireless connection restored</title>
		<link>http://eradicus.blogsome.com/2007/01/19/wireless-connection-restored/</link>
		<comments>http://eradicus.blogsome.com/2007/01/19/wireless-connection-restored/#comments</comments>
		<pubDate>Fri, 19 Jan 2007 04:21:14 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2007/01/19/wireless-connection-restored/</guid>
		<description><![CDATA[	I had my canopy replaced. All systems operational. Average bandwidth has increased a bit. I guess my time is running out. I have to accelerate, deadline&#8217;s fast approaching. Judgment day is never scripted. 
	[Thesis Update]
	Development phase is doing great! Coding spree. Signing off through Robert Collier&#8217;s words of wisdom:
	&#8220;We can only do what we think [...]]]></description>
			<content:encoded><![CDATA[	<p>I had my canopy replaced. All systems operational. Average bandwidth has increased a bit. I guess my time is running out. I have to accelerate, deadline&#8217;s fast approaching. Judgment day is never scripted. </p>
	<p><strong>[Thesis Update]</strong></p>
	<p>Development phase is doing great! Coding spree. Signing off through Robert Collier&#8217;s words of wisdom:</p>
	<p>&#8220;We can only do what we think we can do. We can only be what we think we can be. We can only have what we think we can have. What we do, who we are, what we have, all depends upon what we think.&#8221; </p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2007/01/19/wireless-connection-restored/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Overclocked for Netbeans 5.5</title>
		<link>http://eradicus.blogsome.com/2007/01/06/overclocked-for-netbeans-55/</link>
		<comments>http://eradicus.blogsome.com/2007/01/06/overclocked-for-netbeans-55/#comments</comments>
		<pubDate>Sat, 06 Jan 2007 02:03:15 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2007/01/06/overclocked-for-netbeans-55/</guid>
		<description><![CDATA[	With a processor clock of 1.70GHz and a pair of 256MB DDR PC3200 (200MHz), Netbeans 5.5 will never be an IDE of your choice especially if productivity concerns you. It runs on top of the Java Virtual Machine using the Swing Tool Kit which is a bit heavier compared to what Eclipse is using.
	Since I [...]]]></description>
			<content:encoded><![CDATA[	<p>With a processor clock of 1.70GHz and a pair of 256MB DDR PC3200 (200MHz), <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.netbeans.org&amp;i=0&amp;c=0942ed7b526ba385ce4da391016c9316e92a8304">Netbeans 5.5</a> will never be an IDE of your choice especially if productivity concerns you. It runs on top of the Java Virtual Machine using the Swing Tool Kit which is a bit heavier compared to what <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.eclipse.org&amp;i=0&amp;c=e5734a3c81051b482242872a7cc9630d7a032fc4">Eclipse</a> is using.</p>
	<p>Since I prefer using <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.netbeans.org&amp;i=0&amp;c=0942ed7b526ba385ce4da391016c9316e92a8304">Netbeans 5.5</a>, a desperate move would be maximizing the use of the CPU&#8217;s core speed.</p>
	<p>Here&#8217;s a validation from <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.cpuid.com&amp;i=0&amp;c=8fba31ccf3b99b9d746832ed75c4da30297a0d1e">CPU-Z</a>:</p>
	<pre class="codeblock">
CPU : Intel Pentium 4 (*1)
CPU Arch : 1 Cores - 1 Threads
CPU PSN : Intel(R) Pentium(R) 4 CPU 1.70GHz
CPU EXT : MMX SSE SSE2
CPU Cache : L1 : 12/8 KB - L2 : 256 KB
Core : Willamette (0.180) / Revision : D0
CPUID : F.1.2 / Extended : F.1
Freq : 1953.28 MHz (114.9 * 17)
</pre>
	<p>Click <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fvalid.x86-secret.com%2Fshow_oc%3Fid%3D153511&amp;i=0&amp;c=c42fe9a27d6e45e6d9772c186567b207c6ddbeed"><strong>here</strong></a> for more info.</p>
	<p>My CPU runs at 1.9GHz now. I just increased its Front-Side Bus clock to 114MHz and there&#8217;s a big impact on Netbeans&#8217; performance.</p>
	<p>P.S.: Thanks to Betelgeuse for the correction <img src='http://eradicus.blogsome.com/wp-images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2007/01/06/overclocked-for-netbeans-55/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Crack: Some javascript</title>
		<link>http://eradicus.blogsome.com/2007/01/04/crack-some-javascript/</link>
		<comments>http://eradicus.blogsome.com/2007/01/04/crack-some-javascript/#comments</comments>
		<pubDate>Thu, 04 Jan 2007 15:41:20 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2007/01/04/crack-some-javascript/</guid>
		<description><![CDATA[	This can be found in a RAD tool for generating DHTML menus. The name of the tool will remain secret from here. It&#8217;s up to you to find out. Take note that the original developer of this tool wrote the entire code in one line. Well, to add confusion?
	in file tdqm_loader.js
	
...
function q28(){ca=new Array(97,108,101,114,116,40,110,101,116,115,99,97,112,101,49,41);
ct=new Array(69,114,114,111,114,32,45,32,85,110,114,101,103,105,115,116,101,114,101,100,32,79,112,
101,110,67,117,98,101,32,68,72,84,77,76,32,69,102,102,101,99,116,32,45,32,40,119,119,119,46,111,
112,101,110,99,117,98,101,46,99,111,109,41);
...

	To remove [...]]]></description>
			<content:encoded><![CDATA[	<p>This can be found in a RAD tool for generating DHTML menus. The name of the tool will remain secret from here. It&#8217;s up to you to find out. Take note that the original developer of this tool wrote the entire code in one line. Well, to add confusion?</p>
	<p>in file <strong>tdqm_loader.js</strong></p>
	<pre class="codeblock">
...
function q28(){ca=new Array(97,108,101,114,116,40,110,101,116,115,99,97,112,101,49,41);
ct=new Array(69,114,114,111,114,32,45,32,85,110,114,101,103,105,115,116,101,114,101,100,32,79,112,
101,110,67,117,98,101,32,68,72,84,77,76,32,69,102,102,101,99,116,32,45,32,40,119,119,119,46,111,
112,101,110,99,117,98,101,46,99,111,109,41);
...
</pre>
	<p>To remove the annoying alert box, you have to apply diff and patch. The function above should be replaced by something like this:</p>
	<pre class="codeblock">
function q28(){
	ca=new Array('CRACKED');
	ct=new Array('CRACKED');
	netscape1=&quot;&quot;;
	ie1=&quot;&quot;;
	
	for(i=0;i&lt;ct .length;i++)
		netscape1+=String.fromCharCode(ct[i]);
	for(i=0;i&lt;ca.length;i++)
		ie1+=String.fromCharCode(ca[i]);
	
	eval(ie1);
};
</pre>
	<p>Your generated DHTML menu now will no longer be bothered by the annoying alert box. The code is self-explanatory.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2007/01/04/crack-some-javascript/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Firefox &#038; Internet Explorer 7</title>
		<link>http://eradicus.blogsome.com/2006/12/22/firefox-internet-explorer-7/</link>
		<comments>http://eradicus.blogsome.com/2006/12/22/firefox-internet-explorer-7/#comments</comments>
		<pubDate>Fri, 22 Dec 2006 15:02:38 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/12/22/firefox-internet-explorer-7/</guid>
		<description><![CDATA[	I just found out that there are issues regarding CSS and JavaScript in Firefox. I have to switch to IE7 as of the moment. 
	Nothing special, I&#8217;m gearing up anyway.

]]></description>
			<content:encoded><![CDATA[	<p>I just found out that there are issues regarding CSS and JavaScript in Firefox. I have to switch to IE7 as of the moment. </p>
	<p>Nothing special, I&#8217;m gearing up anyway.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/12/22/firefox-internet-explorer-7/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Protected: Happy Birthday!</title>
		<link>http://eradicus.blogsome.com/2006/12/19/happy-birthday/</link>
		<comments>http://eradicus.blogsome.com/2006/12/19/happy-birthday/#comments</comments>
		<pubDate>Tue, 19 Dec 2006 12:57:33 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/12/19/happy-birthday/</guid>
		<description><![CDATA[There is no excerpt because this is a protected post.]]></description>
			<content:encoded><![CDATA[	<form action="http://eradicus.blogsome.com/wp-pass.php" method="post">
	<p>This post is password protected. To view it please enter your password below:</p>
	<p><label>Password: <input name="post_password" type="password" size="20" /></label> <input type="submit" name="Submit" value="Submit" /></p>
	</form>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/12/19/happy-birthday/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Added new memory module</title>
		<link>http://eradicus.blogsome.com/2006/12/18/added-new-memory-module/</link>
		<comments>http://eradicus.blogsome.com/2006/12/18/added-new-memory-module/#comments</comments>
		<pubDate>Mon, 18 Dec 2006 11:57:08 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/12/18/added-new-memory-module/</guid>
		<description><![CDATA[	Just extended my RAM to 512mb with heat spreaders attached.
	
DDR400
Module Size: 512 MBytes
Max. Bandwidth: PC3200 (200MHz)
Part Number: M2G9IAKATT9F0839SD
Manufacturing Date: Week 46, Year 03
	Timings Table
Frequency: 200MHz
CAS# Latency: 2.5
RAS# to CAS#: 3
RAS# Precharge: 3
Tras: 8
]]></description>
			<content:encoded><![CDATA[	<p>Just extended my RAM to 512mb with heat spreaders attached.</p>
	<div class="codeblock">
DDR400<br />
Module Size: 512 MBytes<br />
Max. Bandwidth: PC3200 (200MHz)<br />
Part Number: M2G9IAKATT9F0839SD<br />
Manufacturing Date: Week 46, Year 03</p>
	<p>Timings Table<br />
Frequency: 200MHz<br />
CAS# Latency: 2.5<br />
RAS# to CAS#: 3<br />
RAS# Precharge: 3<br />
Tras: 8</div>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/12/18/added-new-memory-module/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Protected: For someone</title>
		<link>http://eradicus.blogsome.com/2006/12/01/for-someone/</link>
		<comments>http://eradicus.blogsome.com/2006/12/01/for-someone/#comments</comments>
		<pubDate>Thu, 30 Nov 2006 16:03:23 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/12/01/for-someone/</guid>
		<description><![CDATA[There is no excerpt because this is a protected post.]]></description>
			<content:encoded><![CDATA[	<form action="http://eradicus.blogsome.com/wp-pass.php" method="post">
	<p>This post is password protected. To view it please enter your password below:</p>
	<p><label>Password: <input name="post_password" type="password" size="20" /></label> <input type="submit" name="Submit" value="Submit" /></p>
	</form>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/12/01/for-someone/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Blog suspended</title>
		<link>http://eradicus.blogsome.com/2006/11/27/blog-suspended/</link>
		<comments>http://eradicus.blogsome.com/2006/11/27/blog-suspended/#comments</comments>
		<pubDate>Mon, 27 Nov 2006 08:21:25 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/11/27/blog-suspended/</guid>
		<description><![CDATA[	It has been a long time since I blogged. As for now, I am filing a blog leave. I just want to enjoy the Ateneo Fiesta week. To be honest, I want to savor every moment here in my school where I studied for almost 16 years. At the same time, I should not forget [...]]]></description>
			<content:encoded><![CDATA[	<p>It has been a long time since I blogged. As for now, I am filing a blog leave. I just want to enjoy the Ateneo Fiesta week. To be honest, I want to savor every moment here in my school where I studied for almost 16 years. At the same time, I should not forget the tasks reflected in the gantt chart of activities of our thesis.</p>
	<p>If you want to track down the Ateneo Fiesta event, click <strong><a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.ateneofiesta.com&amp;i=0&amp;c=4aabebdfe5c55316c5322ba70d3e844901011569">here</a></strong>.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/11/27/blog-suspended/feed/</wfw:commentRss>
	</item>
		<item>
		<title>nVidia &#038; Xorg issues</title>
		<link>http://eradicus.blogsome.com/2006/11/07/nvidia-xorg-issues/</link>
		<comments>http://eradicus.blogsome.com/2006/11/07/nvidia-xorg-issues/#comments</comments>
		<pubDate>Tue, 07 Nov 2006 11:25:05 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/11/07/nvidia-xorg-issues/</guid>
		<description><![CDATA[	This entry should have been posted some time ago. Well, I hope this would still serve as a valuable reference.  
	The most annoying part in making your OS work is the X server especially if you are using decade-old displays that can only handle a maximum of 1024x768 @ 60Hz. Worse if its EDID [...]]]></description>
			<content:encoded><![CDATA[	<p>This entry should have been posted some time ago. Well, I hope this would still serve as a valuable reference. <img src='http://eradicus.blogsome.com/wp-images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
	<p>The most annoying part in making your OS work is the X server especially if you are using decade-old displays that can only handle a maximum of 1024x768 @ 60Hz. Worse if its <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FEDID&amp;i=0&amp;c=ea593b2dc18186b190c86db45a040fec1d072b0e">EDID</a> is not being read correctly by the driver. I guess driver writers from nVidia should pay much attention to this issue.</p>
	<p>Video Card: GeForce FX5700 128-bit 256mb<br />
Display: DTS CM-14D (Made in China)<br />
Xorg Version: xorg-x11-7.1<br />
nVidia Driver Version: nvidia-drivers-1.0.8776</p>
	<p>Setting things for Xorg and nVidia proprietary drivers may not be of much pain for Ubuntites but it is the other way around for Gentooligans. </p>
	<p><a id="more-105"></a></p>
	<p>In Section &quot;Monitor&quot; this line should be appended.</p>
	<pre class="codeblock">
Modeline &quot;1024x768@60&quot; 65.0 1024 1048 1184 1344 768 771 777 806 -vsync -hsync
</pre>
	<p>In Section &quot;Device&quot; Identifier &quot;nVidia GeForce FX5700&quot; this line should be appended as well.</p>
	<pre class="codeblock">
Option &quot;UseEDID&quot; &quot;false&quot;
</pre>
	<p>In Section &quot;Screen&quot; Subsection &quot;Display&quot; this line is needed.</p>
	<pre class="codeblock">
Modes &quot;1024x768@60&quot;
</pre>
	<p>Other options are pretty straightforward. In case you do not have any idea where these things should be, it&#8217;s in <strong>/etc/X11/xorg.conf</strong>.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/11/07/nvidia-xorg-issues/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Ebuilds: media-gfx/f4l</title>
		<link>http://eradicus.blogsome.com/2006/11/01/ebuilds-flash-for-linux-f4l/</link>
		<comments>http://eradicus.blogsome.com/2006/11/01/ebuilds-flash-for-linux-f4l/#comments</comments>
		<pubDate>Wed, 01 Nov 2006 03:25:40 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/11/01/ebuilds-flash-for-linux-f4l/</guid>
		<description><![CDATA[	F4L is an open source development environment for Macromedia Flash, a multi-platform format(swf/svg) widely used for web applications and vector animation.
	I have found out that there is no existing ebuild yet for this cool project. It is not included in the official Gentoo Portage yet.
	Here is the ebuild. Use at your own risk. I assume [...]]]></description>
			<content:encoded><![CDATA[	<p><em><a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Ff4l.sourceforge.net&amp;i=0&amp;c=6468e66cadcaffe9ae24d404644cab8f1c796325">F4L</a> is an open source development environment for Macromedia Flash, a multi-platform format(swf/svg) widely used for web applications and vector animation.</em></p>
	<p>I have found out that there is no existing ebuild yet for this cool project. It is not included in the official <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fgentoo-portage.com&amp;i=0&amp;c=304878bc23ee99224e18f4930504abd6bb0ff239">Gentoo Portage</a> yet.</p>
	<p>Here is the ebuild. Use at your own risk. I assume you already have a working overlay of your local portage.</p>
	<p>in file <strong>f4l-0.2.1.ebuild</strong></p>
	<pre class="codeblock">
# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
	
inherit qt3 eutils
	
DESCRIPTION=&quot;F4L is an open source development environment for Macromedia Flash&quot;
HOMEPAGE=&quot;http://f4l.sourceforge.net/&quot;
SRC_URI=&quot;mirror://sourceforge/f4l/${P}.tar.bz2&quot;
	
LICENSE=&quot;GPL-2&quot;
SLOT=&quot;0&quot;
KEYWORDS=&quot;~x86&quot;
	
DEPEND=&quot;=x11-libs/qt-3.3*&quot;
RDEPEND=&quot;${DEPEND}&quot;
	
src_compile() {
	&quot;${QTDIR}&quot;/bin/qmake -o Makefile ${PN}.pro || die &quot;qmake failed&quot;
	emake || die &quot;emake failed&quot;
}
	
src_install() {
	dobin bin/${PN}
	newicon src/cursor/main_ico1.xpm ${PN}.xpm
	make_desktop_entry ${PN} \"Flash for Linux\" ${PN}.xpm Graphics
}
</pre>
	<p>Enjoy!
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/11/01/ebuilds-flash-for-linux-f4l/feed/</wfw:commentRss>
	</item>
		<item>
		<title>MS Firefox 2007</title>
		<link>http://eradicus.blogsome.com/2006/10/31/ms-firefox-2007/</link>
		<comments>http://eradicus.blogsome.com/2006/10/31/ms-firefox-2007/#comments</comments>
		<pubDate>Tue, 31 Oct 2006 07:55:23 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/10/31/ms-firefox-2007/</guid>
		<description><![CDATA[	I find this funny, click here.

]]></description>
			<content:encoded><![CDATA[	<p>I find this funny, click <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.msfirefox.com%2F&amp;i=0&amp;c=d14751133e01d80041b758fb3604150a33026a6b"><strong>here</strong></a>.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/10/31/ms-firefox-2007/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Halloween</title>
		<link>http://eradicus.blogsome.com/2006/10/31/halloween/</link>
		<comments>http://eradicus.blogsome.com/2006/10/31/halloween/#comments</comments>
		<pubDate>Tue, 31 Oct 2006 06:03:34 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/10/31/halloween/</guid>
		<description><![CDATA[	It is a season when children enjoy collecting candles, jumping around sarcophagi, wearing dirty masks, and scaring other children(smaller/younger). TV shows are fun to watch. In the United States, children usually play snowballs during winter. Well, it is totally a different story here since children play waxballs during Halloween. Not forgetting adults, it is a [...]]]></description>
			<content:encoded><![CDATA[	<p>It is a season when children enjoy collecting candles, jumping around sarcophagi, wearing dirty masks, and scaring other children(smaller/younger). TV shows are fun to watch. In the United States, children usually play snowballs during winter. Well, it is totally a different story here since children play waxballs during Halloween. Not forgetting adults, it is a season for filling stomachs with barrels of beer, bottles of wine, and gallons of coconut-fermented drinks otherwise known as <em>tuba</em>.</p>
	<p>I really do not enjoy roaming around burial grounds especially during Halloween for the reasons that, you will see people shouting at each other, throwing punches, showing knives, and trying to boast their clan&#8217;s supremacy among others. The fear of ghosts is not a thing to consider here, it is the fear of being unable to withstand adults looking for troubles no matter how hard you try ignoring their fun. This is true to cheap cemeteries that are maintained by the local government unit. Company-owned cemeteries are at least safe.</p>
	<p>It would be wise for me to stay at home and offer a prayer for my departed friends and relatives. I do not see myself behind bars in the future. Prevention is better. </p>
	<p>Happy Halloween!
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/10/31/halloween/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Some updates on my Gentoo box</title>
		<link>http://eradicus.blogsome.com/2006/10/29/some-updates-on-my-gentoo-box/</link>
		<comments>http://eradicus.blogsome.com/2006/10/29/some-updates-on-my-gentoo-box/#comments</comments>
		<pubDate>Sat, 28 Oct 2006 16:38:29 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/10/29/some-updates-on-my-gentoo-box/</guid>
		<description><![CDATA[	Get in position and wait for my go. I recompiled the kernel applying Con Kolivas&#8216; kernel patchset for linux-2.6.18. Accordingly, his patchsets are designed to improve system responsiveness with specific emphasis on the desktop, but suitable to any workload. Feedbacks show that it scales well for a typical desktop use. If you want to try [...]]]></description>
			<content:encoded><![CDATA[	<p>Get in position and wait for my go. I recompiled the kernel applying <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fmembers.optusnet.com.au%2Fckolivas%2Fkernel%2F&amp;i=0&amp;c=916efbfc9acbf8fe5ba52ff07490c2b707da99c2">Con Kolivas</a>&#8216; kernel patchset for linux-2.6.18. Accordingly, his patchsets are designed to improve system responsiveness with specific emphasis on the desktop, but suitable to any workload. Feedbacks show that it scales well for a typical desktop use. If you want to try this out, <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fck.kolivas.org%2Ffaqs%2Fwalkthrough.txt&amp;i=0&amp;c=58f756d589460e8c99af51170827e20063fb5863"><strong>here</strong></a> is a comprehensive walkthrough that will get you on your feet along the way.</p>
	<p>I also felt the need of updating my Xorg. I had a smooth shift from Xorg 6.9 to Xorg 7.1. So far so good. </p>
	<p>Firefox 2.0 rocks as well! There are obvious improvements so grab yourself one. Currently, it is masked by x86 keyword in the <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.gentoo-portage.com&amp;i=0&amp;c=1f5bdbbeb715961fe217d6fc679a5fb4341cc648">Gentoo Official Portage</a> so just deal with it.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/10/29/some-updates-on-my-gentoo-box/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Crackmes: cyrex&#8217;s Linux CrackMe</title>
		<link>http://eradicus.blogsome.com/2006/10/27/crackmes-cyrexs-linux-crackme/</link>
		<comments>http://eradicus.blogsome.com/2006/10/27/crackmes-cyrexs-linux-crackme/#comments</comments>
		<pubDate>Fri, 27 Oct 2006 14:15:23 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/10/27/crackmes-cyrexs-linux-crackme/</guid>
		<description><![CDATA[	Find the correct password to get the good boy message   it would be great for an solution how you solve this , and with what i solve this
with the standard GNU Debugger (gdb)
	Difficulty: 1 - Very easy, for newbies
Platform: Unix/Linux, etc.
Language: C/C++
	[Solving the Crackme]
	Solving crackmes is fun but if you screwed up, it [...]]]></description>
			<content:encoded><![CDATA[	<p><em>Find the correct password to get the good boy message <img src='http://eradicus.blogsome.com/wp-images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  it would be great for an solution how you solve this , and with what i solve this<br />
with the standard GNU Debugger (gdb)</em></p>
	<p>Difficulty: 1 - Very easy, for newbies<br />
Platform: Unix/Linux, etc.<br />
Language: C/C++</p>
	<p><strong>[Solving the Crackme]</strong></p>
	<p>Solving crackmes is fun but if you screwed up, it sucks big time. Thank goodness, heavy tasks are over. Anyway, let us see what we can do with this.</p>
	<pre class="codeblock">
joset@kee:~/src/crackmes/crackme_01$ ./crackme
-[ Linux CrackMe (Level:2) by cyrex ]-
-[ TODO: You have to get the valid Password ]-
Enter Password: 0x7d7
-[ Ohhhh, your skills are bad try again later ]-
joset@kee:~/src/crackmes/crackme_01$
</pre>
	<p>Do we have to use the debugger first? How about this?<br />
<a id="more-98"></a></p>
	<pre class="codeblock">
joset@kee:~/src/crackmes/crackme_01$ strings crackme
/lib/ld-linux.so.2
libc.so.6
printf
__deregister_frame_info
strcmp
scanf
_IO_stdin_used
__libc_start_main
__register_frame_info
__gmon_start__
GLIBC_2.0
PTRhP
QVhP
[^_]
-[ Linux CrackMe (Level:2) by cyrex ]-
-[ TODO: You have to get the valid Password ]-
Enter Password:
<strong>47ghf6fh37fbgbgj</strong>
-[ Good, You&#8217;re ready to begin linux reversing ]-
-[ Ohhhh, your skills are bad try again later ]-
joset@kee:~/src/crackmes/crackme_01$
</pre>
	<p>Do you see what I see? What if we will try using that as the password?</p>
	<pre class="codeblock">
joset@kee:~/src/crackmes/crackme_01$ ./crackme
-[ Linux CrackMe (Level:2) by cyrex ]-
-[ TODO: You have to get the valid Password ]-
Enter Password: 47ghf6fh37fbgbgj
-[ Good, You're ready to begin linux reversing ]-
joset@kee:~/src/crackmes/crackme_01$
</pre>
	<p>There&#8217;s no protection at all just use the <strong>strings</strong> command. Trivial.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/10/27/crackmes-cyrexs-linux-crackme/feed/</wfw:commentRss>
	</item>
		<item>
		<title>ISP lock-ins</title>
		<link>http://eradicus.blogsome.com/2006/10/25/isp-lock-ins/</link>
		<comments>http://eradicus.blogsome.com/2006/10/25/isp-lock-ins/#comments</comments>
		<pubDate>Wed, 25 Oct 2006 01:20:13 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/10/25/isp-lock-ins/</guid>
		<description><![CDATA[	Globe Broadband and Bayantel please invest here as soon as possible. We need the quality of services that you offer. Majority of the broadband subscribers here are not that satisfied. One year contract is not worth it. I have received the first bill already. Does it mean that I will be suffering 11 months more? [...]]]></description>
			<content:encoded><![CDATA[	<p>Globe Broadband and Bayantel please invest here as soon as possible. We need the quality of services that you offer. Majority of the broadband subscribers here are not that satisfied. One year contract is not worth it. I have received the first bill already. Does it mean that I will be suffering 11 months more? Geez!</p>
	<blockquote><p>pldc ka kasi tol! ang hina ng broadband mo! ano yan pentium poor? sm*rt broken ata yan eh! [bayantel only] join now! tol, ipconfig /release tapos ipconfig /renew lol!</p></blockquote>
	<p>I can&#8217;t even access the website of <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fmoss.orgz.ph&amp;i=0&amp;c=ea36912ac8c3833d6e92854bd300475e82287d1a">Mindanao Open Source Society</a>. Damn it.</p>
	<p>Hoping for better days.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/10/25/isp-lock-ins/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Bad luck</title>
		<link>http://eradicus.blogsome.com/2006/10/18/bad-luck/</link>
		<comments>http://eradicus.blogsome.com/2006/10/18/bad-luck/#comments</comments>
		<pubDate>Wed, 18 Oct 2006 11:57:55 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/10/18/bad-luck/</guid>
		<description><![CDATA[	This is a program that simply extracts numbers from buffered input. I do not have any idea why this didn&#8217;t work. I got a zero.
	
input:
        mov ah, 0ah		; buffered input sys call
        lea dx, strptr		; load effective address
    [...]]]></description>
			<content:encoded><![CDATA[	<p>This is a program that simply extracts numbers from buffered input. I do not have any idea why this didn&#8217;t work. I got a zero.</p>
	<pre class="codeblock">
input:
        mov ah, 0ah		; buffered input sys call
        lea dx, strptr		; load effective address
        int 21h			; call kernel
	
        mov ah, 02h		; write character to stdout sys call
        mov dl, 0ah		; issue carriage-return
        int 21h			; call kernel
	
        lea si, string		; set source index to start of string
        mov cl, [strlen]	; set loop counter
	
here:
        mov dl, [si]		; place current character in dl
        cmp dl, '0'		; compare if below '0'
        jb traverse
        cmp dl, '9'		; compare if above '9'
        ja traverse
	
        mov ah, 02h		; write character to stdout sys call
        int 21h			; call kernel
        cmp dl, '$'		; check end-of-string sentinel
        je exit			
	
traverse:
        inc si			; increment source index pointer
	
loop here
	
exit:
        int 20h			; terminate
	
strptr  label byte
maxlen  db 49
strlen  db ?
string  db 50 dup ('$')
</pre>
	<p>It runs smoothly on my machine. Damn it.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/10/18/bad-luck/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Happy Fiesta Zamboanga!</title>
		<link>http://eradicus.blogsome.com/2006/10/12/happy-fiesta-zamboanga/</link>
		<comments>http://eradicus.blogsome.com/2006/10/12/happy-fiesta-zamboanga/#comments</comments>
		<pubDate>Thu, 12 Oct 2006 00:09:28 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/10/12/happy-fiesta-zamboanga/</guid>
		<description><![CDATA[	Viva! Nuestra Senora del Pilar. Today is the feast of Our Lady of the Pilar, our city&#8217;s patron saint.
	Here is a description of the city where I live in. A very peaceful place that is.
	I guess I won&#8217;t be enjoying the feast today since I&#8217;ll be finishing our OpenGL project. In my list, it also [...]]]></description>
			<content:encoded><![CDATA[	<p>Viva! Nuestra Senora del Pilar. Today is the feast of Our Lady of the Pilar, our city&#8217;s patron saint.</p>
	<p><a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FZamboanga_City&amp;i=0&amp;c=41b8c6e62723c6ab757dbb712e1dc6cbf2c476a2">Here</a> is a description of the city where I live in. A very peaceful place that is.</p>
	<p>I guess I won&#8217;t be enjoying the feast today since I&#8217;ll be finishing our <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.opengl.org&amp;i=0&amp;c=87882bb473425102edfb9189abb8fce6d870ae35">OpenGL</a> project. In my list, it also says that I&#8217;ll be writing a simple C program today incorporating <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FB-tree&amp;i=0&amp;c=08844ac71e84bab9ff00acafefd44a4bef3f7371">Balanced Trees</a>. Well, it&#8217;s my own approach to file system writing.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/10/12/happy-fiesta-zamboanga/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Joke?</title>
		<link>http://eradicus.blogsome.com/2006/10/10/joke/</link>
		<comments>http://eradicus.blogsome.com/2006/10/10/joke/#comments</comments>
		<pubDate>Tue, 10 Oct 2006 14:18:23 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/10/10/joke/</guid>
		<description><![CDATA[	Now tell me is there something really funny about this?
	I did not  find a single bit of humor in this video. This man is with his glasses for Pete&#8217;s sake!

]]></description>
			<content:encoded><![CDATA[	<p>Now tell me is there something really funny about <strong><a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DNpCMJ2xlLfo&amp;i=0&amp;c=2590a33710e6e6a3f1b8719217ced1c05bb55113">this</a></strong>?</p>
	<p>I did not  find a single bit of humor in this video. This man is with his glasses for Pete&#8217;s sake!
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/10/10/joke/feed/</wfw:commentRss>
	</item>
		<item>
		<title>RX Band Breakout conquered!</title>
		<link>http://eradicus.blogsome.com/2006/10/10/rx-band-breakout-conquered/</link>
		<comments>http://eradicus.blogsome.com/2006/10/10/rx-band-breakout-conquered/#comments</comments>
		<pubDate>Mon, 09 Oct 2006 16:49:18 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/10/10/rx-band-breakout-conquered/</guid>
		<description><![CDATA[	We did our best! We burned the stage! A video of our performance will be uploaded in youtube soon. I will post the notification here.
	We got the most awards. It was indeed a blessing!
	1) Best Bassist - Joset Zamora
2) Best Vocalist/s - Bon Padayhag, Macky Alger
3) Best Drummer - Daryll De Leon
4) 2nd Place - [...]]]></description>
			<content:encoded><![CDATA[	<p>We did our best! We burned the stage! A video of our performance will be uploaded in <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fyoutube.com&amp;i=0&amp;c=3434bd473b692272ab4fb39820396e0b0d2d63a6">youtube</a> soon. I will post the notification here.</p>
	<p>We got the most awards. It was indeed a blessing!</p>
	<p>1) Best Bassist - <strong>Joset Zamora</strong><br />
2) Best Vocalist/s - Bon Padayhag, Macky Alger<br />
3) Best Drummer - Daryll De Leon<br />
4) 2nd Place - Junkyard</p>
	<p>Congratulations to the winners as well. You did great! Thank you <strong>Dream Radio RX 93.1</strong>!</p>
	<p><strong>[Resolution]</strong></p>
	<p>No gigs before graduation day. Now it&#8217;s time to get the <em>Reiser4 File System Driver for Windoze XP</em> done. Yeah, that&#8217;s our thesis. God bless us all.</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/10/10/rx-band-breakout-conquered/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Binary Trees</title>
		<link>http://eradicus.blogsome.com/2006/10/07/binary-trees/</link>
		<comments>http://eradicus.blogsome.com/2006/10/07/binary-trees/#comments</comments>
		<pubDate>Fri, 06 Oct 2006 23:56:57 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/10/07/binary-trees/</guid>
		<description><![CDATA[	A tree has a finite set of elements called nodes. It has a unique node called the root node, where the remaining nodes are a disjoint collection of subtrees. A binary tree is  a tree whose elements have two children at maximum. It is considered as a data structure composed of elements that are [...]]]></description>
			<content:encoded><![CDATA[	<p>A tree has a finite set of elements called nodes. It has a unique node called the root node, where the remaining nodes are a disjoint collection of subtrees. A binary tree is  a tree whose elements have two children at maximum. It is considered as a data structure composed of elements that are characterized by two link fields, left and right children. A leaf node contains 0 children meaning both children point to a NULL value.</p>
	<p>A <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FBinary_search_tree&amp;i=0&amp;c=ac0699c54208362afe544bdf7e5242a42a0f711a">binary search tree</a> is a special type of a <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FBinary_tree&amp;i=0&amp;c=54a2c82125ebf4c86b7d0a03105067b26c6df39f">binary tree</a>. These terms are sometimes used interchangeably in some articles, so do not be confused. For this purpose, I&#8217;ll limit my article to binary trees in general. </p>
	<p>First let&#8217;s define the structure to be used.</p>
	<pre class="codeblock">
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
	
typedef char DATA;
	
struct node {
        DATA d;
        struct node *left;
        struct node *right;
};
	
typedef struct node NODE;
typedef struct NODE *BINTREE;</pre>
	<p><strong>[Creating a Binary Tree]</strong></p>
	<p>Dynamic allocation.</p>
	<pre class="codeblock">
BINTREE new_node()
{
        return (malloc(sizeof(NODE)));
}</pre>
	<p>Of course we have to initialize the node.</p>
	<pre class="codeblock">
BINTREE init_node(DATA d1, BINTREE p1, BINTREE p2)
{
        BINTREE t;
	
        t = new_node();
        t -&gt; d = d1;
        t -&gt; left = p1;
        t -&gt; right = p2;
        return t;
}</pre>
	<p>We will generate a tree from an array recursively.</p>
	<pre class="codeblock">
BINTREE create_tree(DATA a[], int i, int size)
{
        if (i >= size)
                return NULL;
        else
                return (init_node(a[i],
                        create_tree(a, 2 * i + 1, size),
                        create_tree(a, 2 * i + 2, size)));
}</pre>
	<p><strong>[Binary Tree Traversals]</strong></p>
	<p>There are several ways to traverse in a binary tree. Luckily, I have leared something during our CS 213 Data Structures class. Thanks to <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Femxsi.blogspot.com&amp;i=0&amp;c=ef9d2e77c06af740982765fc2908414e57bc8cdd">Sir Greg</a>. Here are three ways presented:</p>
	<p>Inorder Traversal: Left Node Right (LNR)<br />
Preorder Traversal: Node Left Right (NLR)<br />
Postorder Traversal: Left Right Node (LRN)</p>
	<p>The standard way of implementing this of course is again by recursion.</p>
	<p>Inorder Traversal</p>
	<pre class="codeblock">
void inorder(BINTREE root)
{
        if (root != NULL) {
                inorder(root -> left);
                printf(&quot;%c &quot;, root -> d);
                inorder(root -> right);
        }
}</pre>
	<p>Preorder Traversal</p>
	<pre class="codeblock">
void preorder(BINTREE root)
{
        if (root != NULL) {
                printf(&quot;%c &quot;, root -> d);
                preorder(root -> left);
                preorder(root -> right);
        }
}</pre>
	<p>Postorder Traversal</p>
	<pre class="codeblock">
void postorder(BINTREE root)
{
        if (root != NULL) {
                postorder(root -> left);
                postorder(root -> right);
                printf(&quot;%c &quot;, root -> d);
        }
}</pre>
	<p>Hope this article will be useful to students taking up Data Structures and Algorithms.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/10/07/binary-trees/feed/</wfw:commentRss>
	</item>
		<item>
		<title>RX Band Breakout</title>
		<link>http://eradicus.blogsome.com/2006/10/05/rx-band-breakout/</link>
		<comments>http://eradicus.blogsome.com/2006/10/05/rx-band-breakout/#comments</comments>
		<pubDate>Thu, 05 Oct 2006 08:05:47 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/10/05/rx-band-breakout/</guid>
		<description><![CDATA[	RX Band Breakout will be on October 9, 2006. It is going to be a tough competition though. Most competing bands are extremely good! So acting like a duck on stage would surely drive you down. We want to burn on stage and fire them up with our solos. 
	Sad thing is that, I do [...]]]></description>
			<content:encoded><![CDATA[	<p>RX Band Breakout will be on October 9, 2006. It is going to be a tough competition though. Most competing bands are extremely good! So acting like a duck on stage would surely drive you down. We want to burn on stage and fire them up with our solos. </p>
	<p>Sad thing is that, I do not have enough time for practice so I searched for bass solo stuffs. I found a lot of cool Brazilian scales incorporated in a bass solo and all that. Which also lead me to rank bassists who happened to be my influences. I wish could play well like them. Here&#8217;s my ranking.</p>
	<p>1) Victor Wooten - Versatile<br />
2) Bill Dickens - Versatile<br />
3) John Myung (Dream Theatre) - Progressive Rock<br />
4) Romel (Barbie&#8217;s Cradle, Freestyle) - Progressive Folk<br />
5) - name - (P.O.T.) - Funk Rock<br />
6) Flea (Red Hot Chili Peppers) - Funk Rock<br />
7) Nathan (Rivermaya, Kapatid, Bamboo) - Rock<br />
8) - name - (Wolfgang) - Rock<br />
9) - name - (Razorback) - Rock<br />
10) Stuart Ham - Jazz</p>
	<p>For as long as we&#8217;ll be able to burn the stage, it doesn&#8217;t really matter whether we&#8217;ll bring home the trophy or not.</p>
	<p>By the way, thanks to Kamikazee and APO Hiking Society! We&#8217;ll be playing one of your songs, Doobidoo. I&#8217;m really excited about this!</p>
	<p>I hope the weather as well as the power lines would cooperate on that day.</p>
	<p>Cheers.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/10/05/rx-band-breakout/feed/</wfw:commentRss>
	</item>
		<item>
		<title>SFD: FOSS @ Claret College of Isabela</title>
		<link>http://eradicus.blogsome.com/2006/09/16/sfd-foss-claret-college-of-isabela/</link>
		<comments>http://eradicus.blogsome.com/2006/09/16/sfd-foss-claret-college-of-isabela/#comments</comments>
		<pubDate>Sat, 16 Sep 2006 00:36:12 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/09/16/sfd-foss-claret-college-of-isabela/</guid>
		<description><![CDATA[	First of all, thank you God for giving me the gift of life and the countless blessings. Many thanks to Ma&#8217;am Yolynne Medina for choosing me as a speaker. I am so grateful. As well as RJ Ian Sevilla, thanks man! You did a great job! For the audience, muchas gracias for fighting boredom during [...]]]></description>
			<content:encoded><![CDATA[	<p>First of all, thank you God for giving me the gift of life and the countless blessings. Many thanks to Ma&#8217;am Yolynne Medina for choosing me as a speaker. I am so grateful. As well as RJ Ian Sevilla, thanks man! You did a great job! For the audience, <em>muchas gracias</em> for fighting boredom during my presentation. </p>
	<p>Click <strong><a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Ffossatcci.cyberhiveweb.com%2F&amp;i=0&amp;c=b79cfcb81d5c404620f9f5aeeaf626cd598b6cea">here</a></strong> to view the FOSS@CCI website.</p>
	<p>We left Zamboanga City around 0700H aboard on a fastcraft. It&#8217;s a fast craft! I did not take any anti-vertigo tabs. It&#8217;s not Rialto anyway. We took the last trip around 1730H on our way back. I will never forget this event. My first time to step on Isabela City, Basilan, will never be an ordinary day for me.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/09/16/sfd-foss-claret-college-of-isabela/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Bubble sort in C</title>
		<link>http://eradicus.blogsome.com/2006/09/14/bubble-sort-in-c/</link>
		<comments>http://eradicus.blogsome.com/2006/09/14/bubble-sort-in-c/#comments</comments>
		<pubDate>Thu, 14 Sep 2006 14:46:42 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/09/14/bubble-sort-in-c/</guid>
		<description><![CDATA[	I&#8217;m writing this for someone special. Hope this would help. This is at the same time a review of my past lessons. Assuming i,j and tmp are defined as integers, num[] as an array of integers, and SIZE as a constant.
	
for (i = 0; i &lt; SIZE - 1; ++i)
      [...]]]></description>
			<content:encoded><![CDATA[	<p>I&#8217;m writing this for someone special. Hope this would help. This is at the same time a review of my past lessons. Assuming <strong>i,j</strong> and <strong>tmp</strong> are defined as integers, <strong>num[]</strong> as an array of integers, and <strong>SIZE</strong> as a constant.</p>
	<pre class="codeblock">
for (i = 0; i &lt; SIZE - 1; ++i)
        for (j = SIZE - 1; j &lt; i; --j)
                if (num[j-1] &gt; num[j]) {
                        tmp = num[j-1];
                        num[j-1] = num[j];
                        num[j] = tmp;
                }
</pre>
	<p>Here is another way of doing it. This is a demo on how the function works on a particular array of integers. <strong>a[]</strong> is the array of integers while <strong>n</strong> is the size of the array.</p>
	<pre class="codeblock">
void swap(int *, int *);
	
void bubble(int a[], int n)
{
        int i, j;
	
        for (i = 0; i &lt; n - 1; ++i)
                for (j = n - 1; j &gt; i; --j)
                        if (a[j-1] &gt; a[j])
                                swap(&#038;a[j-1], &#038;a[j]);
}
	
void swap(int *p, int *q)
{
        int tmp;
	
        tmp = *p;
        *p = *q;
        *q = tmp;
}
</pre>
	<p>If you are keen enough to observe, check that we can use the swap arguments presented below.</p>
	<pre class="codeblock">
swap(a + i, a + j);
</pre>
	<p>Getting the idea? Pointer arithmetic! God bless and good day.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/09/14/bubble-sort-in-c/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Recognizing unknown partitions in Windoze</title>
		<link>http://eradicus.blogsome.com/2006/09/13/recognizing-unknown-partitions-in-windoze/</link>
		<comments>http://eradicus.blogsome.com/2006/09/13/recognizing-unknown-partitions-in-windoze/#comments</comments>
		<pubDate>Wed, 13 Sep 2006 00:10:18 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/09/13/recognizing-unknown-partitions-in-windoze/</guid>
		<description><![CDATA[	This is the starting point if you are planning to develop an Installable File System Driver (IFSD) for Windoze. You can also use this if you want to format partitions that aren&#8217;t visible inside your Windoze box.
	First thing&#8217;s first, fire up a registry editor. Use regedit or any third party editors. Search for the entry:
	
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session [...]]]></description>
			<content:encoded><![CDATA[	<p>This is the starting point if you are planning to develop an Installable File System Driver (IFSD) for Windoze. You can also use this if you want to format partitions that aren&#8217;t visible inside your Windoze box.</p>
	<p>First thing&#8217;s first, fire up a registry editor. Use regedit or any third party editors. Search for the entry:</p>
	<pre class="codeblock">
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices
</pre>
	<p>If you&#8217;re in the right place then, add a new string value. The name should be the drive letter you wish to associate and should be a drive letter that currently isn&#8217;t used by your box. The name along with its value should be of the form:</p>
	<pre class="codeblock">
K:
\Device\Harddisk0\Partition1
</pre>
	<p>In Windoze, hard drive numbers start at 0 and partition numbers start at 1. The above example is equivalent to /dev/hda1. You can also verify your partition table without any third party applications such as Partition Magic, GParted, etc. by running <strong>diskmgmt.msc</strong> on the command line. The drive K: can be replaced with any free drive letter.</p>
	<p>Done! No, not yet. Forgetting the Windoze protocol? <strong>Restart</strong> your machine for it to take effect.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/09/13/recognizing-unknown-partitions-in-windoze/feed/</wfw:commentRss>
	</item>
		<item>
		<title>&#8230;</title>
		<link>http://eradicus.blogsome.com/2006/09/08/83/</link>
		<comments>http://eradicus.blogsome.com/2006/09/08/83/#comments</comments>
		<pubDate>Fri, 08 Sep 2006 03:08:22 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/09/08/83/</guid>
		<description><![CDATA[	I am created in the image and likeness of God. I am divine. I am born of God. I am a child of God. Everything I have is God&#8217;s gift to me. I do not own anything. Everything comes from and returns to God. I am a child of God. Everyone is my brother. Everyone [...]]]></description>
			<content:encoded><![CDATA[	<blockquote><p>I am created in the image and likeness of God. I am divine. I am born of God. I am a child of God. Everything I have is God&#8217;s gift to me. I do not own anything. Everything comes from and returns to God. I am a child of God. Everyone is my brother. Everyone is my sister. I love each person the way I love myself. I am a child of God. God loves me. In Him alone, I place my faith.</p></blockquote>
	<p>This was distributed during our junior&#8217;s recollection. I have this posted in my room. I know most of you reading my blog are busied by your jobs and other concerns. I hope this would lighten up your day. Remember, someone out there is ready to back us up especially in times of troubles.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/09/08/83/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Random number generator in 16-bit DOS assembly</title>
		<link>http://eradicus.blogsome.com/2006/09/06/random-number-generator-in-16-bit-dos-assembly/</link>
		<comments>http://eradicus.blogsome.com/2006/09/06/random-number-generator-in-16-bit-dos-assembly/#comments</comments>
		<pubDate>Wed, 06 Sep 2006 00:40:54 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/09/06/random-number-generator-in-16-bit-dos-assembly/</guid>
		<description><![CDATA[	Most code for randomizing is not as short as this one. Try to incorporate this procedure in your code and see how it works!
	
randomize:
        in al, 40h	; read micro-clock for initial seed
        mov ah, al
       [...]]]></description>
			<content:encoded><![CDATA[	<p>Most code for randomizing is not as short as this one. Try to incorporate this procedure in your code and see how it works!</p>
	<pre class="codeblock">
randomize:
        in al, 40h	; read micro-clock for initial seed
        mov ah, al
        in al, 40h
        xchg al, ah
        or ax, 1
        mov rnum, ax
ret
</pre>
	<p>Random number will be stored in rnum. Fairly straightforward isn&#8217;t it?</p>
	<p><strong>[Edit]</strong></p>
	<p>Here&#8217;s another solution by sir Eugene Kanindot. This is a 3-digit random number generator.</p>
	<pre class="codeblock">
jmp start
	
xxx:
mov ah, 02ch
int 21h
and dl, 0fh
cmp dl, 9
ja xxx
add dl, 30h
mov [di], dl
ret
	
delay:
mov cx, 0
	
yyy:
mov dx, 0a00h
	
zzz:
xor ax, ax
dec dx
cmp dx, 0
jne zzz
	
loop yyy
ret
	
start:
lea di, numb
call xxx
inc di
call delay
call xxx
inc di
call delay
call xxx
mov ah, 09h
lea dx, numb
int 21h
int 20h
	
numb db 4 dup('$')
</pre>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/09/06/random-number-generator-in-16-bit-dos-assembly/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Coding therapy</title>
		<link>http://eradicus.blogsome.com/2006/09/05/coding-therapy/</link>
		<comments>http://eradicus.blogsome.com/2006/09/05/coding-therapy/#comments</comments>
		<pubDate>Tue, 05 Sep 2006 12:23:14 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/09/05/coding-therapy/</guid>
		<description><![CDATA[	This is what I usually do whenever I am tired and hungry. 
	
#include &lt;GL/glut.h&gt;
	
void disp(void)
{
	glClear(GL_COLOR_BUFFER_BIT);
	glColor3d(0.43, 0.12, 1.00);
	
	glBegin(GL_POLYGON);
		glVertex3f(-0.75, -0.75, 0.0);
		glVertex3f( 0.75, -0.75, 0.0);
		glVertex3f( 0.75,  0.75, 0.0);
		glVertex3f(-0.75,  0.75, 0.0);
	glEnd();
	glFlush();
}
	
void init(void)
{
	glClearColor(0.0, 0.0, 0.0, 0.0);
}
	
void main(int argc, char **argv)
{
	glutInit(&#038;argc, argv);
	glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
	glutInitWindowSize(300,300);
	glutInitWindowPosition(0, 0);
	glutCreateWindow(argv[0]);
	
	init();
	
	glutDisplayFunc(disp);
	glutMainLoop();
}

]]></description>
			<content:encoded><![CDATA[	<p>This is what I usually do whenever I am tired and hungry. </p>
	<pre class="codeblock">
#include &lt;GL/glut.h&gt;
	
void disp(void)
{
	glClear(GL_COLOR_BUFFER_BIT);
	glColor3d(0.43, 0.12, 1.00);
	
	glBegin(GL_POLYGON);
		glVertex3f(-0.75, -0.75, 0.0);
		glVertex3f( 0.75, -0.75, 0.0);
		glVertex3f( 0.75,  0.75, 0.0);
		glVertex3f(-0.75,  0.75, 0.0);
	glEnd();
	glFlush();
}
	
void init(void)
{
	glClearColor(0.0, 0.0, 0.0, 0.0);
}
	
void main(int argc, char **argv)
{
	glutInit(&#038;argc, argv);
	glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
	glutInitWindowSize(300,300);
	glutInitWindowPosition(0, 0);
	glutCreateWindow(argv[0]);
	
	init();
	
	glutDisplayFunc(disp);
	glutMainLoop();
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/09/05/coding-therapy/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Redesigned</title>
		<link>http://eradicus.blogsome.com/2006/09/05/redesigned/</link>
		<comments>http://eradicus.blogsome.com/2006/09/05/redesigned/#comments</comments>
		<pubDate>Mon, 04 Sep 2006 16:39:00 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/09/05/redesigned/</guid>
		<description><![CDATA[	[Thesis]
	Well, it was rejected as expected. Plan B was accepted. Do you know what Plan B is? Look for another project that is.
	[Redesigned]
	Got nothing to do right now. I tried redesigning my blog. I was executed in The Reincarnation. I failed to defend my country. I didn&#8217;t have any time for offensive moves. Opposing guilds [...]]]></description>
			<content:encoded><![CDATA[	<p><strong>[Thesis]</strong></p>
	<p>Well, it was rejected as expected. Plan B was accepted. Do you know what Plan B is? Look for another project that is.</p>
	<p><strong>[Redesigned]</strong></p>
	<p>Got nothing to do right now. I tried redesigning my blog. I was executed in <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fthe-reincarnation.com&amp;i=0&amp;c=81b3089a48cce1e32d559b1d1b4825bf2e95ecf3">The Reincarnation</a>. I failed to defend my country. I didn&#8217;t have any time for offensive moves. Opposing guilds were a step ahead. I had 5 fortresses left and 5 attacks went in. I had no choice. I guess it&#8217;s time to quit playing. Redesigning the blog as well as the attitude for a big blow.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/09/05/redesigned/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Protected: Again, for someone special</title>
		<link>http://eradicus.blogsome.com/2006/09/01/again-for-someone-special/</link>
		<comments>http://eradicus.blogsome.com/2006/09/01/again-for-someone-special/#comments</comments>
		<pubDate>Thu, 31 Aug 2006 22:28:30 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/09/01/again-for-someone-special/</guid>
		<description><![CDATA[There is no excerpt because this is a protected post.]]></description>
			<content:encoded><![CDATA[	<form action="http://eradicus.blogsome.com/wp-pass.php" method="post">
	<p>This post is password protected. To view it please enter your password below:</p>
	<p><label>Password: <input name="post_password" type="password" size="20" /></label> <input type="submit" name="Submit" value="Submit" /></p>
	</form>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/09/01/again-for-someone-special/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Sad</title>
		<link>http://eradicus.blogsome.com/2006/08/31/sad/</link>
		<comments>http://eradicus.blogsome.com/2006/08/31/sad/#comments</comments>
		<pubDate>Thu, 31 Aug 2006 05:36:31 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/08/31/sad/</guid>
		<description><![CDATA[	Low grades. Time to say &#8220;good bye scholarship.&#8221; Anyway, I did my best but I failed. Now I don&#8217;t know how to explain this. I really do not want to add any more heartaches to my parents. They&#8217;ve spent so much already. I really want to help them. This is really sad. Now they would [...]]]></description>
			<content:encoded><![CDATA[	<p>Low grades. Time to say &#8220;good bye scholarship.&#8221; Anyway, I did my best but I failed. Now I don&#8217;t know how to explain this. I really do not want to add any more heartaches to my parents. They&#8217;ve spent so much already. I really want to help them. This is really sad. Now they would think again that I&#8217;m this irresponsible, careless, and mentally inefficient lad. It&#8217;s not too late though. Sad and painful because I did my best then I will just be tagged as irresponsible, careless, you name it.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/08/31/sad/feed/</wfw:commentRss>
	</item>
		<item>
		<title>A new air-soft rifle</title>
		<link>http://eradicus.blogsome.com/2006/08/27/a-new-soft-air-rifle/</link>
		<comments>http://eradicus.blogsome.com/2006/08/27/a-new-soft-air-rifle/#comments</comments>
		<pubDate>Sun, 27 Aug 2006 10:44:57 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/08/27/a-new-soft-air-rifle/</guid>
		<description><![CDATA[	So dad bought a new air-soft rifle. Weeee! Now I have two in my room. The new one can adapt a .22 caliber bullet with an improvised hammer. Its recoil kicks a little stronger than when fired with air. Now even if I will ran out of C02 gas tanks it will not stop the [...]]]></description>
			<content:encoded><![CDATA[	<p>So dad bought a new air-soft rifle. Weeee! Now I have two in my room. The new one can adapt a .22 caliber bullet with an improvised hammer. Its recoil kicks a little stronger than when fired with air. Now even if I will ran out of C02 gas tanks it will not stop the fun. Its far and near sights were calibrated perfectly. Unlike my 15-year old air-soft gun whose (0,0) sight lands at six o&#8217; clock.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/08/27/a-new-soft-air-rifle/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Flashback</title>
		<link>http://eradicus.blogsome.com/2006/08/26/flashback/</link>
		<comments>http://eradicus.blogsome.com/2006/08/26/flashback/#comments</comments>
		<pubDate>Sat, 26 Aug 2006 15:57:07 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/08/26/flashback/</guid>
		<description><![CDATA[	Now I can update my Gentoo box even on a daily basis. Using my 30GB USB mass storage device, I can do so even if my prepaid internet account runs zero. Here&#8217;s a short guide for those who haven&#8217;t tried this one yet.
	An emerge &#8211;sync alternative would be downloading the latest snapshot on any Gentoo [...]]]></description>
			<content:encoded><![CDATA[	<p>Now I can update my Gentoo box even on a daily basis. Using my 30GB USB mass storage device, I can do so even if my prepaid internet account runs zero. Here&#8217;s a short guide for those who haven&#8217;t tried this one yet.</p>
	<p>An <strong>emerge &#8211;sync</strong> alternative would be downloading the latest snapshot on any Gentoo mirror site using a machine with a high-speed connection. You might want to <strong>salvage the /usr/portage/distfiles of your machine first</strong> before proceeding. </p>
	<pre class="codeblock">
kee ~ # rm -r /usr/portage/
kee ~ # tar -xvjf portage-latest.tar.bz2 -C /usr/
...
kee ~ # update-eix
Reading Portage settings ..
Building database (/var/cache/eix) from scratch ..
[0] /usr/portage/ (cache: metadata)
     Reading 100%
[1] /usr/local/portage (cache: none)
     Reading 100%
Applying masks ..
Database contains 11268 packages in 149 categories.
kee ~ # env-update
>>> Regenerating /etc/ld.so.cache...
kee / #
</pre>
	<p>Now for downloading packages for emerge.</p>
	<pre class="codeblock">
kee ~ # emerge -fp package ... 2> somefilename.txt
</pre>
	<p>The links are now stored in the text file. Download &#8216;em on a machine with a high-speed connection. Place all the downloaded files inside /usr/portage/distfiles of your machine then.</p>
	<pre class="codeblock">
kee ~ # emerge package ...
</pre>
	<p>I&#8217;m bored. Cheers.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/08/26/flashback/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Bin to hex converter in 16-bit DOS assembly</title>
		<link>http://eradicus.blogsome.com/2006/08/25/bin-to-hex-converter-in-16-bit-dos-assembly/</link>
		<comments>http://eradicus.blogsome.com/2006/08/25/bin-to-hex-converter-in-16-bit-dos-assembly/#comments</comments>
		<pubDate>Thu, 24 Aug 2006 17:38:30 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/08/25/bin-to-hex-converter-in-16-bit-dos-assembly/</guid>
		<description><![CDATA[	Just a quick code like putting your keyboard where your brain is. There should be another way of doing this. I hate this code.
	
start:
        xor al, al
        xor bl, bl
        xor cl, cl
  [...]]]></description>
			<content:encoded><![CDATA[	<p>Just a quick code like putting your keyboard where your brain is. There should be another way of doing this. I hate this code.</p>
	<pre class="codeblock">
start:
        xor al, al
        xor bl, bl
        xor cl, cl
        mov dl, 4       ; use dl as counter
	
input:
        mov ah, 00
        int 16h
        cmp ah, 1ch
        je exit
        cmp al, '0'
        jb input
        cmp al, '1'
        ja input
	
convert:
        mov cl, dl
        dec cl          ; dl - 1
        sub al, 30h     ; get original value
        shl al, cl      ; place in the appropriate bit position
        or bl, al       ; save in bl
        dec dl          ; prepare for the next bit
        jnz input       ; must be 4 bits
        cmp bl, 9
        ja letter
        jbe number
	
letter:
        add bl, 37h     ; because 'A' - 37h is 0Ah
        jmp here
	
number:
        add bl, 30h     ; because '0' - 30h is 00h
	
here:
        call display
        jmp start
	
display:
        mov ah, 02h
        mov dl, bl
        int 21h
ret
	
exit:
        int 20h
</pre>
	<p>Try this out, get the assembler <strong><a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.skynet.ie%2F%7Edarkstar%2Fassembler%2Fa86.zip&amp;i=0&amp;c=9c4faa5ce04b30914f5f0b2bcf9d618df0ce36b1">here</a></strong>.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/08/25/bin-to-hex-converter-in-16-bit-dos-assembly/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Moving on</title>
		<link>http://eradicus.blogsome.com/2006/08/23/moving-on/</link>
		<comments>http://eradicus.blogsome.com/2006/08/23/moving-on/#comments</comments>
		<pubDate>Wed, 23 Aug 2006 15:27:31 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/08/23/moving-on/</guid>
		<description><![CDATA[	So I bought my self a 2.5&#8243; hard drive enclosure for about 750 bucks. I wish I have my own tools for constructing a device as such. Instead of going for a 2GB USB flash drive, I chose to salvage the 30GB hard drive of an incapacitated laptop. Cool isn&#8217;t it? Though relatively slower than [...]]]></description>
			<content:encoded><![CDATA[	<p>So I bought my self a 2.5&#8243; hard drive enclosure for about 750 bucks. I wish I have my own tools for constructing a device as such. Instead of going for a 2GB USB flash drive, I chose to salvage the 30GB hard drive of an incapacitated laptop. Cool isn&#8217;t it? Though relatively slower than a typical USB flash drive, the storage capacity outweighs it. </p>
	<p><strong>[To God]</strong></p>
	<p>Thanks for being there always.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/08/23/moving-on/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Hetero-stress experience</title>
		<link>http://eradicus.blogsome.com/2006/08/22/hetero-stress-experience/</link>
		<comments>http://eradicus.blogsome.com/2006/08/22/hetero-stress-experience/#comments</comments>
		<pubDate>Tue, 22 Aug 2006 07:27:25 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/08/22/hetero-stress-experience/</guid>
		<description><![CDATA[	I didn&#8217;t make the CS 315 (Elementary Computer Graphics w/ OpenGL) midterm examination. Sad, but I have to admit that I am mentally, emotionally and physically disturbed these days. It seems that I am carrying a magnet attracting bad luck. I have turned out restless and confused with almost eveything. From waking up to lying [...]]]></description>
			<content:encoded><![CDATA[	<p>I didn&#8217;t make the CS 315 (Elementary Computer Graphics w/ OpenGL) midterm examination. Sad, but I have to admit that I am mentally, emotionally and physically disturbed these days. It seems that I am carrying a magnet attracting bad luck. I have turned out restless and confused with almost eveything. From waking up to lying down, I don&#8217;t know what to do, I don&#8217;t know how to start my day. This is the dullest day of my life. </p>
	<blockquote><p>Stress, pressure. Some thrive on it, others find the spotlight and the responsibility to be too much for them. It distracts and scares them. The fear translates in to a physical stiffness. Mentally they become less focused and more self-conscious. Thus, their performance deteriorates.
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/08/22/hetero-stress-experience/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Motion for brain rejuvenation</title>
		<link>http://eradicus.blogsome.com/2006/08/20/motion-for-rejuvenation/</link>
		<comments>http://eradicus.blogsome.com/2006/08/20/motion-for-rejuvenation/#comments</comments>
		<pubDate>Sun, 20 Aug 2006 08:19:51 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/08/20/motion-for-rejuvenation/</guid>
		<description><![CDATA[	Confusion, defined by WordWeb as a mental state characterized by a lack of clear and orderly thought and behavior, is infesting my brain. Can someone help me? Is there a cure for that? If serenity is sold in the market then I would pack my self dozens of it. Being a computer science student demands [...]]]></description>
			<content:encoded><![CDATA[	<p>Confusion, defined by WordWeb as a mental state characterized by a lack of clear and orderly thought and behavior, is infesting my brain. Can someone help me? Is there a cure for that? If serenity is sold in the market then I would pack my self dozens of it. Being a computer science student demands a lot of concentration. I&#8217;m on a worst-case scenario. If anyone of you out there knows how to cast a spell for brain rejuvenation, count me as one of your targets.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/08/20/motion-for-rejuvenation/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Bit masking</title>
		<link>http://eradicus.blogsome.com/2006/08/17/bit-masking/</link>
		<comments>http://eradicus.blogsome.com/2006/08/17/bit-masking/#comments</comments>
		<pubDate>Thu, 17 Aug 2006 13:10:07 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/08/17/bit-masking/</guid>
		<description><![CDATA[	I was thinking of the hex to bin converter in the previous post. The fun part there was the extraction of the desired bit. With the knowledge in mind, it resulted me to devise a function in C that uses a mask to print out the bit representation of an integer.
	
void bitprint(int a)
{
   [...]]]></description>
			<content:encoded><![CDATA[	<p>I was thinking of the hex to bin converter in the previous post. The fun part there was the extraction of the desired bit. With the knowledge in mind, it resulted me to devise a function in C that uses a mask to print out the bit representation of an integer.</p>
	<pre class="codeblock">
void bitprint(int a)
{
        int i;
        int n = sizeof(int) * CHAR_BIT;
	int mask = 1 &lt;&lt; (n - 1);
	
	for (i = 1; i &lt;= n; ++i) {
		putchar(((a &#038; mask) == 0) ? '0' : '1');
		a &lt;&lt;= 1;
		if (i % CHAR_BIT == 0 &#038;&#038; i &lt; n)
			putchar(' ');
	}
}
</pre>
	<p><strong>CHAR_BIT</strong> is defined in <strong>limits.h</strong> and holding a value of 8. Try it, it&#8217;s fun. I&#8217;m bored, just extending my thanks to <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwonkabar.org&amp;i=0&amp;c=c825bd63b385c345bb1fe10de34414b320d21fae"><strong>beandog</strong></a> for enlisting me in <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Flarrythecow.org&amp;i=0&amp;c=97fd5dfabb5a15e679db2b00edc44e08911959bc">Planet Larry: Gentoo Users&#8217; Blogs</a>.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/08/17/bit-masking/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Hex to bin converter in 16-bit DOS assembly</title>
		<link>http://eradicus.blogsome.com/2006/08/13/hex-to-bin-converter-in-16-bit-dos-assembly/</link>
		<comments>http://eradicus.blogsome.com/2006/08/13/hex-to-bin-converter-in-16-bit-dos-assembly/#comments</comments>
		<pubDate>Sat, 12 Aug 2006 23:46:26 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/08/13/hex-to-bin-converter-in-16-bit-dos-assembly/</guid>
		<description><![CDATA[	You can try this out, get the assembler here. This is just a simple hexadecimal to binary converter, a CS217 exercise and not supposed to be pasted here but just for the sake of having a post. Here it is:
	
input:
	mov ah, 00h
	int 16h
	cmp ah, 1ch
	je exit
	
number:
	cmp al, '0'
	jb input
    	cmp al, '9'
	ja [...]]]></description>
			<content:encoded><![CDATA[	<p>You can try this out, get the assembler <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.skynet.ie%2F%7Edarkstar%2Fassembler%2Fa86.zip&amp;i=0&amp;c=9c4faa5ce04b30914f5f0b2bcf9d618df0ce36b1"><strong>here</strong></a>. This is just a simple hexadecimal to binary converter, a CS217 exercise and not supposed to be pasted here but just for the sake of having a post. Here it is:</p>
	<pre class="codeblock">
input:
	mov ah, 00h
	int 16h
	cmp ah, 1ch
	je exit
	
number:
	cmp al, '0'
	jb input
    	cmp al, '9'
	ja uppercase
    	sub al, 30h
	call process
	jmp input
	
uppercase:
	cmp al, 'A'
	jb input
	cmp al, 'F'
	ja lowercase
  	sub al, 37h
	call process
	jmp input
	
lowercase:
	cmp al, 'a'
	jb input
    	cmp al, 'f'
	ja input
    	sub al, 57h
	call process
	jmp input
	
loop input
	
process:
	mov ch, 4
	mov cl, 3
	mov bl, al
	
convert:
	mov al, bl
	ror al, cl
	and al, 01
    	add al, 30h
	
	mov ah, 02h
	mov dl, al
	int 21h
	
	dec cl
	dec ch
    	jnz convert
	
	mov dl, 20h
	int 21h
ret
	
exit:
	int 20h
</pre>
	<p><strong>&#8220;And my God will meet all your needs according to His glorious riches in Christ Jesus.&#8221;</strong> - Philip 4:19
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/08/13/hex-to-bin-converter-in-16-bit-dos-assembly/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Protected: For someone special</title>
		<link>http://eradicus.blogsome.com/2006/08/01/for-someone-special/</link>
		<comments>http://eradicus.blogsome.com/2006/08/01/for-someone-special/#comments</comments>
		<pubDate>Mon, 31 Jul 2006 19:33:48 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/08/01/for-someone-special/</guid>
		<description><![CDATA[There is no excerpt because this is a protected post.]]></description>
			<content:encoded><![CDATA[	<form action="http://eradicus.blogsome.com/wp-pass.php" method="post">
	<p>This post is password protected. To view it please enter your password below:</p>
	<p><label>Password: <input name="post_password" type="password" size="20" /></label> <input type="submit" name="Submit" value="Submit" /></p>
	</form>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/08/01/for-someone-special/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Crackmes: cli3nt&#8217;s mycrk</title>
		<link>http://eradicus.blogsome.com/2006/07/30/crackmes-cli3nts-mycrk/</link>
		<comments>http://eradicus.blogsome.com/2006/07/30/crackmes-cli3nts-mycrk/#comments</comments>
		<pubDate>Sun, 30 Jul 2006 01:09:29 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/07/30/crackmes-cli3nts-mycrk/</guid>
		<description><![CDATA[	Language C
Linux x86/ELF
	Difficulty: 1 - Very easy, for newbies
Platform: Unix/Linux, etc.
Language: C/C++
	[Solving the Crackme]
	As usual, we have to run the file first.
	
joset@kee:~/src/crackmes/mycrk$ ./mycrk
Type cd-key: eve
wrong!
joset@kee:~/src/crackmes/mycrk$

	From this point we already know what the file needs, a correct key. I immediately disassembled the file without even bothering about its characteristics.
	
joset@kee:~/src/crackmes/mycrk$ objdump -d mycrk > temp.txt
joset@kee:~/src/crackmes/mycrk$ less temp.txt

	The [...]]]></description>
			<content:encoded><![CDATA[	<p><em>Language C<br />
Linux x86/ELF</em></p>
	<p>Difficulty: 1 - Very easy, for newbies<br />
Platform: Unix/Linux, etc.<br />
Language: C/C++</p>
	<p><strong>[Solving the Crackme]</strong></p>
	<p>As usual, we have to run the file first.</p>
	<pre class="codeblock">
joset@kee:~/src/crackmes/mycrk$ ./mycrk
Type cd-key: eve
wrong!
joset@kee:~/src/crackmes/mycrk$
</pre>
	<p>From this point we already know what the file needs, a <strong>correct key</strong>. I immediately disassembled the file without even bothering about its characteristics.</p>
	<pre class="codeblock">
joset@kee:~/src/crackmes/mycrk$ objdump -d mycrk > temp.txt
joset@kee:~/src/crackmes/mycrk$ less temp.txt
</pre>
	<p>The first trick, is to look for the disassembly of the main function. Here&#8217;s a portion of it.</p>
	<pre class="codeblock">
...
 80483d4:       c7 45 fc 67 1e 01 00    movl   $0x11e67,0xfffffffc(%ebp)
 80483db:       c7 45 f8 70 12 5b 00    movl   $0x5b1270,0xfffffff8(%ebp)
 80483e2:       c7 45 f0 06 00 00 00    movl   $0x6,0xfffffff0(%ebp)
 80483e9:       83 ec 0c                sub    $0xc,%esp
 80483ec:       68 14 85 04 08          push   $0x8048514
 80483f1:       e8 ee fe ff ff          call   80482e4 &lt;printf @plt&gt;
 80483f6:       83 c4 10                add    $0x10,%esp
 80483f9:       83 ec 08                sub    $0x8,%esp
 80483fc:       8d 45 f4                lea    0xfffffff4(%ebp),%eax
 80483ff:       50                      push   %eax
 8048400:       68 22 85 04 08          push   $0x8048522
 8048405:       e8 ba fe ff ff          call   80482c4 &lt;scanf @plt&gt;
 804840a:       83 c4 10                add    $0x10,%esp
 804840d:       8b 45 f8                mov    0xfffffff8(%ebp),%eax
<strong> 8048410:       3b 45 f4                cmp    0xfffffff4(%ebp),%eax</strong>
 8048413:       75 1d                   jne    8048432 &lt;main +0x6e&gt;
 8048415:       8b 55 f0                mov    0xfffffff0(%ebp),%edx
 8048418:       8d 45 fc                lea    0xfffffffc(%ebp),%eax
 804841b:       31 10                   xor    %edx,(%eax)
 804841d:       83 ec 08                sub    $0x8,%esp
&#8230;
</pre>
	<p>I am not going to provide a detailed information about this. Let&#8217;s observe the line there with a cmp, since lines with cmps usually attract crackers&#8217; eyes at a first glance. <img src='http://eradicus.blogsome.com/wp-images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  It is very obvious that a value is being compared with the content of the eax register and is obtained through a buffered input because the line is preceded with a call 80482c4 &lt;scanf @plt&gt;. How do we get the value of the eax register? Getting the idea? Of course, we will use gdb by setting a breakpoint where the line resides and displaying the value being held by the eax register.</p>
	<pre class="codeblock">
joset@kee:~/src/crackmes/mycrk$ gdb ./mycrk
...
(gdb) b *0x8048410
Breakpoint 1 at 0x8048410
(gdb) r
Starting program: /home/joset/src/crackmes/mycrk/mycrk
warning: Unable to find dynamic linker breakpoint function.
GDB will be unable to debug shared library initializers
and track explicitly loaded dynamic code.
Type cd-key: eve
	
Breakpoint 1, 0x08048410 in main ()
(gdb) print $eax
<strong>$1 = 5968496</strong>
(gdb)
</pre>
	<p>Looking back, we can see that it would jump to 8048432 &lt;main +0x6e&gt; if the values didn&#8217;t satisfy each other. Let&#8217;s see what it does from there.</p>
	<pre class="codeblock">
...
 8048432:       83 ec 0c                sub    $0xc,%esp
 8048435:       68 29 85 04 08          push   $0x8048529
 804843a:       e8 a5 fe ff ff          call   80482e4 &lt;printf @plt&gt;
 804843f:       83 c4 10                add    $0x10,%esp
 8048442:       b8 00 00 00 00          mov    $0x0,%eax
 8048447:       c9                      leave
 8048448:       c3                      ret
...
</pre>
	<p>There&#8217;s the presence of a call 80482e4 &lt;printf @plt&gt;. We can come up with an assumption that it is the notification being printed if an invalid key is entered. <img src='http://eradicus.blogsome.com/wp-images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Therefore the key is the value being held by the eax register awhile ago. Let&#8217;s try it.</p>
	<pre class="codeblock">
joset@kee:~/src/crackmes/mycrk$ ./mycrk
Type cd-key: 5968496
73313
joset@kee:~/src/crackmes/mycrk$
</pre>
	<p>Done.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/07/30/crackmes-cli3nts-mycrk/feed/</wfw:commentRss>
	</item>
		<item>
		<title>A palindrome checker in 16-bit DOS assembly</title>
		<link>http://eradicus.blogsome.com/2006/07/29/a-palindrome-checker-in-16-bit-dos-assembly/</link>
		<comments>http://eradicus.blogsome.com/2006/07/29/a-palindrome-checker-in-16-bit-dos-assembly/#comments</comments>
		<pubDate>Sat, 29 Jul 2006 00:10:50 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/07/29/a-palindrome-checker-in-16-bit-dos-assembly/</guid>
		<description><![CDATA[	A good morning to start off is to get this simple program working. This is an improvement of the previous palindrome checker posted. What can we benefit from this anyway?   
	
; palindrome checker
	
start:
        mov ah, 0ah
        lea dx, strptr
 [...]]]></description>
			<content:encoded><![CDATA[	<p>A good morning to start off is to get this simple program working. This is an improvement of the previous palindrome checker posted. What can we benefit from this anyway? <img src='http://eradicus.blogsome.com/wp-images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  </p>
	<pre class="codeblock">
; palindrome checker
	
start:
        mov ah, 0ah
        lea dx, strptr
        int 21h
	
        lea di, string
        lea si, strlen
        mov cl, [si]
        xor ch, ch
        mov bx, cx
        lea si, string
        shr cl, 1	        
	
check:
        mov dl, [si]
        mov dh, [di+bx-1]
        cmp dl, dh
        jne notpal
        inc si
        dec di
	
loop check
	
        cmp dl, dh
        je pal
	
notpal:
        mov ah, 09h
        lea dx, msg2
        int 21h
        int 20h
	
pal:
        mov ah, 09h
        lea dx, msg1
        int 21h
        int 20h        
	
strptr  label byte
maxlen  db 49
strlen  db ?
string  db 50 dup ('$')
msg1    db '',10,'string is a palindrome!$'
msg2    db '',10,'string is not a palindrome!$'
</pre>
	<p><strong>&#8220;If God&#8217;s people which are called by His name, will humble themselves and pray, and seek His face, and turn from their wicked ways; then He will hear from heaven, and will forgive their sins, and will heal their land.&#8221;</strong> - 2 Chron 7:14
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/07/29/a-palindrome-checker-in-16-bit-dos-assembly/feed/</wfw:commentRss>
	</item>
		<item>
		<title>A case inverter in 16-bit DOS assembly</title>
		<link>http://eradicus.blogsome.com/2006/07/29/a-case-inverter/</link>
		<comments>http://eradicus.blogsome.com/2006/07/29/a-case-inverter/#comments</comments>
		<pubDate>Fri, 28 Jul 2006 17:01:54 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/07/29/a-case-inverter/</guid>
		<description><![CDATA[	This is a simple case inverter, if you want to try this out download the a86 assembler here. It works like a charm in dosemu-freedos.
	
; case inverter
	
start:
        mov ah, 0ah
        lea dx, strptr
        int [...]]]></description>
			<content:encoded><![CDATA[	<p>This is a simple case inverter, if you want to try this out download the a86 assembler <strong><a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.skynet.ie%2F%7Edarkstar%2Fassembler%2Fa86.zip&amp;i=0&amp;c=9c4faa5ce04b30914f5f0b2bcf9d618df0ce36b1">here</a></strong>. It works like a charm in <strong>dosemu-freedos</strong>.</p>
	<pre class="codeblock">
; case inverter
	
start:
        mov ah, 0ah
        lea dx, strptr
        int 21h
	
        lea si, string
        mov cl, [strlen]
	
check:
        mov al, [si]
        cmp al, 'Z'
        ja lowercase
        cmp al, 'a'
        jb uppercase
	
lowercase:
        cmp al, 'a'
        jb traverse
        cmp al, 'z'
        jbe toupper
	
uppercase:
        cmp al, 'Z'
        ja traverse
        cmp al, 'A'
        jae tolower
	
toupper:
        sub al, 32
        mov [si], al
        jmp traverse
	
tolower:
        add al, 32
        mov [si], al
	
traverse:
        inc si
	
loop check
	
        mov ah, 02h
        mov dl, 10
        int 21h
	
        mov ah, 09h
        lea dx, string
        int 21h
        int 20h
	
strptr  label byte
maxlen  db 49
strlen  db ?
string  db 50 dup ('$')
</pre>
	<p><strong>&#8220;Fortune favors the prepared mind.&#8221;</strong> - Louis Pasteur
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/07/29/a-case-inverter/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Crackmes: lord&#8217;s easy Linux crackme</title>
		<link>http://eradicus.blogsome.com/2006/07/25/crackmes-lords-easy-linux-crackme/</link>
		<comments>http://eradicus.blogsome.com/2006/07/25/crackmes-lords-easy-linux-crackme/#comments</comments>
		<pubDate>Tue, 25 Jul 2006 00:13:43 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/07/25/crackmes-lords-easy-linux-crackme/</guid>
		<description><![CDATA[	crackme will print text under certain conditions
what are the conditions?   sorry for my bad english - lord
	Difficulty: 1 - very easy, for newbies
Platform: Unix/Linux, etc.
Language: Assembler
	[Solving the Crackme]
	An initiative would be running the file:
	
joset@kee:~/src/crackmes$ ./blah
joset@kee:~/src/crackmes$

	It didn&#8217;t print anything at all. So the conditions aren&#8217;t met. I&#8217;ve been using gdb and objdump for quite [...]]]></description>
			<content:encoded><![CDATA[	<p><em>crackme will print text under certain conditions<br />
what are the conditions? <img src='http://eradicus.blogsome.com/wp-images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  sorry for my bad english</em> - lord</p>
	<p>Difficulty: 1 - very easy, for newbies<br />
Platform: Unix/Linux, etc.<br />
Language: Assembler</p>
	<p><strong>[Solving the Crackme]</strong></p>
	<p>An initiative would be running the file:</p>
	<pre class="codeblock">
joset@kee:~/src/crackmes$ ./blah
joset@kee:~/src/crackmes$
</pre>
	<p>It didn&#8217;t print anything at all. So the conditions aren&#8217;t met. I&#8217;ve been using gdb and objdump for quite some time now. Since there is no form of corruption in the file, these tools will be more than enough. Here&#8217;s the disassembly of the file in objdump:</p>
	<pre class="codeblock">
  blah:     file format elf32-i386
	
Disassembly of section .text:
	
08048094 < .text>:
 8048094:       31 c0                   xor    %eax,%eax
 8048096:       b8 2f 00 00 00          mov    $0x2f,%eax
 804809b:       cd 80                   int    $0x80
 804809d:       3d ad de 00 00          cmp    $0xdead,%eax
 80480a2:       75 16                   jne    0x80480ba
 80480a4:       b8 04 00 00 00          mov    $0x4,%eax
 80480a9:       bb 01 00 00 00          mov    $0x1,%ebx
 80480ae:       b9 c4 90 04 08          mov    $0x80490c4,%ecx
 80480b3:       ba 06 00 00 00          mov    $0x6,%edx
 80480b8:       cd 80                   int    $0x80
 80480ba:       31 c0                   xor    %eax,%eax
 80480bc:       40                      inc    %eax
 80480bd:       31 db                   xor    %ebx,%ebx
 80480bf:       cd 80                   int    $0x80
</pre>
	<p>The first 3 lines tell us that it will call <strong>getgid</strong> (47 in /usr/include/asm/unistd.h). The system call returns the group id of the user running the file. The next 2 lines are straightforward. The execution jumps to <strong>0x80480ba</strong> if eax is not equal to <strong>0xdead</strong>. Here&#8217;s what will happen from 0x80480ba onward:</p>
	<p>1. eax will be cleared out (eax = 0)<br />
2. eax will have a new value of 1 (exit system call)<br />
3. ebx will be cleared out (ebx = 0)</p>
	<p>For a clearer view, try echo $? after running the file and you&#8217;ll get a 0. Here&#8217;s how I did it. I patched the file. Take a loot at 0x80480a2, we can find the conditional jump there. I just changed the opcodes jne (75) 0x80480ba (16) to <strong>nop (90)</strong>.</p>
	<pre class="codeblock">
joset@kee:~/src/crackmes$ gdb --write -nx -q blah
(no debugging symbols found)
Using host libthread_db library &quot;/lib/libthread_db.so.1&quot;.
(gdb) x/x 0x80480a2
0x80480a2:      0x04b81675
(gdb) set {int} 0x80480a2 = 0x04b89090
(gdb) q
joset@kee:~/src/crackmes$
</pre>
	<p>There it is, 1675 to 9090. Now for the final shot,</p>
	<pre class="codeblock">
joset@kee:~/src/crackmes$ ./blah
Okej!
joset@kee:~/src/crackmes$
</pre>
	<p>Try running the file with a user under 0xdead perhaps it would also yield the same result. I haven&#8217;t tried it though.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/07/25/crackmes-lords-easy-linux-crackme/feed/</wfw:commentRss>
	</item>
		<item>
		<title>&#8230;</title>
		<link>http://eradicus.blogsome.com/2006/07/24/58/</link>
		<comments>http://eradicus.blogsome.com/2006/07/24/58/#comments</comments>
		<pubDate>Mon, 24 Jul 2006 14:10:13 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/07/24/58/</guid>
		<description><![CDATA[	Making you feel loved was the easiest thing I have ever done before. It&#8217;s just sad to think that things just changed. I wish I could turn back those days. The times when we sat down under a tree, observed the fading horizon, held hands and stared at the crimsoning sun. I know how destiny [...]]]></description>
			<content:encoded><![CDATA[	<p>Making you feel loved was the easiest thing I have ever done before. It&#8217;s just sad to think that things just changed. I wish I could turn back those days. The times when we sat down under a tree, observed the fading horizon, held hands and stared at the crimsoning sun. I know how destiny fools us. If destiny asserts that we are not for each other, then I would fight destiny just to have you in my arms forever. I love you my everdearest. </p>
	<p>I&#8217;m sorry for what had happened to the rose. It&#8217;s not too late though, I can still take care another bud for you.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/07/24/58/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Antidote for insanity</title>
		<link>http://eradicus.blogsome.com/2006/07/22/57/</link>
		<comments>http://eradicus.blogsome.com/2006/07/22/57/#comments</comments>
		<pubDate>Sat, 22 Jul 2006 13:20:48 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/07/22/57/</guid>
		<description><![CDATA[	Simple programming stuffs save me from insanity. This a86 assembly program tells if  str1 is a palindrome.
	
start:
        cld
        mov cx, 7
        lea si, str1
        lea di, [...]]]></description>
			<content:encoded><![CDATA[	<p>Simple programming stuffs save me from insanity. This a86 assembly program tells if  <strong>str1</strong> is a palindrome.</p>
	<pre class="codeblock">
start:
        cld
        mov cx, 7
        lea si, str1
        lea di, temp
	
reverse:
        mov al, [si+6]
        mov [di], al
        inc di
        dec si
        loop reverse
	
        mov ah, 09h
        lea dx, temp
        int 21h
	
        cld
        mov cx, 4
	
compare:
        lea di, temp
        lea si, str1
        repe cmpsb
        jne exit
	
        mov ah, 09h
        lea dx, yes
        int 21h
	
exit:
        mov ah, 4Ch
        mov al, 00
        int 21h
        int 20h
	
str1    db 'racecar$'
yes     db '',10,'string is a palindrome!$'
temp    db 8 dup ('$')
</pre>
	<p><strong>[Middle-East Crisis]</strong></p>
	<p>Israel, known as the chosen people of God called a thousand reservists in a possible prelude to a ground offensive against Lebanon. Accordingly, they have to clean up bunkers and tunnels that are invulnerable to air attacks. Isn&#8217;t it ironic for the Mossads to be called as the chosen people of God?
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/07/22/57/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Outdoorsman recall</title>
		<link>http://eradicus.blogsome.com/2006/07/09/outdoors-man-recall/</link>
		<comments>http://eradicus.blogsome.com/2006/07/09/outdoors-man-recall/#comments</comments>
		<pubDate>Sun, 09 Jul 2006 12:01:57 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/07/09/outdoors-man-recall/</guid>
		<description><![CDATA[	I can still remember way back then, I was five years old when I had my primary hobbies, hunting, fishing, and shooting-range. Today, we went to Sinubung, a semi-dangerous place located in the far west coast of Zamboanga City and is known for its shore having huge waves and numerous sea urchins. We have gone [...]]]></description>
			<content:encoded><![CDATA[	<p>I can still remember way back then, I was five years old when I had my primary hobbies, hunting, fishing, and shooting-range. Today, we went to Sinubung, a semi-dangerous place located in the far west coast of Zamboanga City and is known for its shore having huge waves and numerous sea urchins. We have gone fishing. It was fun riding my grandfather&#8217;s motor-operated vinta again though I am deeply saddened with what had happened today. The last time I set foot on that vinta was 15 years ago. I can still remember my grandfather pulling the nylon with a huge squid hooked up. Of course, the squid fired up a black tint. Because of that black tint, and the times when I threw up while riding the vinta, I have something now which I call memories worth remembering. </p>
	<p>Awhile ago, we did the same but no squid and from what I have observed fishes are already scarce! We spent almost three hours, changing position from time to time on the sea. I was the one throwing and pulling the anchor everytime we shift locations but damn no fishes! </p>
	<p>A very nice experience. The prize for the experience? Well, a swollen left foot, 5 thorns pierced from black sea urchins. It&#8217;s not a big deal though. The prize does not outweigh the experience. Waves were really strong awhile ago. I was a little nervous. </p>
	<p>The truth is, I am sad today. It could be that I&#8217;ve lost someone very special.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/07/09/outdoors-man-recall/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Preparing for Muziklaban</title>
		<link>http://eradicus.blogsome.com/2006/07/07/preparing-for-muziklaban/</link>
		<comments>http://eradicus.blogsome.com/2006/07/07/preparing-for-muziklaban/#comments</comments>
		<pubDate>Fri, 07 Jul 2006 08:15:10 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/07/07/preparing-for-muziklaban/</guid>
		<description><![CDATA[	Red Horse Muziklaban is fast approaching. Tomorrow will be the qualification or shall I say audition. One composition down. I am still trying to come up with a nice riff for the adlib. Hoping to impress the judges tomorrow.
	[Programming]
	I am just messing up with DOS Assembly. I started out programming in 32-bit protected mode, now [...]]]></description>
			<content:encoded><![CDATA[	<p>Red Horse Muziklaban is fast approaching. Tomorrow will be the qualification or shall I say audition. One composition down. I am still trying to come up with a nice riff for the adlib. Hoping to impress the judges tomorrow.</p>
	<p><strong>[Programming]</strong></p>
	<p>I am just messing up with DOS Assembly. I started out programming in 32-bit protected mode, now broadening my knowledge by diving into 16-bit real mode. I have nothing new these days, just reviewing C++.</p>
	<p>Signing off through a quote by Albert Einstein</p>
	<p><strong>&#8220;Information is not knowledge.&#8221;</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/07/07/preparing-for-muziklaban/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Victory!</title>
		<link>http://eradicus.blogsome.com/2006/07/02/victory/</link>
		<comments>http://eradicus.blogsome.com/2006/07/02/victory/#comments</comments>
		<pubDate>Sun, 02 Jul 2006 13:28:30 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/07/02/victory/</guid>
		<description><![CDATA[	Congratulations Manny Pacquiao!
	He was once a singer of a local band in Gen. Santos City. Look at him now, he is the most influential person in our nation and probably one of the most influential persons around the globe. I was really fascinated by his fight with Oscar Larios. He has become faster than ever. [...]]]></description>
			<content:encoded><![CDATA[	<p><strong>Congratulations Manny Pacquiao!</strong></p>
	<p>He was once a singer of a local band in Gen. Santos City. Look at him now, he is the most influential person in our nation and probably one of the most influential persons around the globe. I was really fascinated by his fight with Oscar Larios. He has become faster than ever. Incomparable vigor that is! Raise it up Manny. More power and advertisements ahead.</p>
	<p>On the other hand, I pity Oscar Larios, he was a great fighter. I admire his sportsmanship and humility. He is one of the cheerful and honest boxers I&#8217;ve ever seen. His courage is a deadly weapon that one shouldn&#8217;t take advantage of. Maintaining his mind in equilibrium state could have driven Manny on the floor. </p>
	<p><strong>[Globe Telecom]</strong></p>
	<p>What is happening? I couldn&#8217;t send and receive SMSs. Calling does not solve the issue either. Hoping for better services in the future.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/07/02/victory/feed/</wfw:commentRss>
	</item>
		<item>
		<title>GDT Explained</title>
		<link>http://eradicus.blogsome.com/2006/06/19/gdt-explained/</link>
		<comments>http://eradicus.blogsome.com/2006/06/19/gdt-explained/#comments</comments>
		<pubDate>Mon, 19 Jun 2006 14:34:04 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/06/19/gdt-explained/</guid>
		<description><![CDATA[	GDT contains a number of entries, Segment Descriptors. Usually each is 8 bytes long and marks the starting point, length, and access rights of the segment. It is stored in memory of course. The address is stored in a special 48-bit CPU register called Global Descriptor Table Register (GDTR). The lower 16 bits inform the [...]]]></description>
			<content:encoded><![CDATA[	<p>GDT contains a number of entries, <strong>Segment Descriptors</strong>. Usually each is 8 bytes long and marks the starting point, length, and access rights of the segment. It is stored in memory of course. The address is stored in a special 48-bit CPU register called Global Descriptor Table Register (GDTR). The lower 16 bits inform the size of the GDT while the upper 32 bits inform the location of the GDT in memory. </p>
	<p>The GDT itself is a 64-bit long entries. These entries define whether the current segment that the processor is running is for Ring 0 or Ring 3. Ring levels are restrictions, Ring 0 is for system use while Ring 3 is for application use. Such protection exists to prevent applications from causing the kernel to crash and to tell the processor which instructions are valid.</p>
	<p>&#8211;snipped&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/06/19/gdt-explained/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Orders received!</title>
		<link>http://eradicus.blogsome.com/2006/06/15/orders-received/</link>
		<comments>http://eradicus.blogsome.com/2006/06/15/orders-received/#comments</comments>
		<pubDate>Thu, 15 Jun 2006 03:21:11 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/06/15/orders-received/</guid>
		<description><![CDATA[	ADZU Open Lab will be switching to Edubuntu 6.06 Dapper Drake! Wee! Expecting Ubuntu sovereignty in the University! More power Ubuntu Linux Development Team.
	A Freedom Toaster empowered by Shuttleworth Foundation is badly needed in our University. 
	The network administrator, Sir Greg, also suggested Xubuntu 6.06 in the College Internet Access Area (CIAA). Well, it&#8217;s easy [...]]]></description>
			<content:encoded><![CDATA[	<p>ADZU Open Lab will be switching to Edubuntu 6.06 Dapper Drake! Wee! Expecting Ubuntu sovereignty in the University! More power Ubuntu Linux Development Team.</p>
	<p>A <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwww.freedomtoaster.org%2F&amp;i=0&amp;c=4124cf0661f0f82b4ab69a11ae293b6dc33abd68">Freedom Toaster</a> empowered by Shuttleworth Foundation is badly needed in our University. </p>
	<p>The network administrator, Sir Greg, also suggested Xubuntu 6.06 in the College Internet Access Area (CIAA). Well, it&#8217;s easy as one-two-three.</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/06/15/orders-received/feed/</wfw:commentRss>
	</item>
		<item>
		<title>I&#8217;m back!</title>
		<link>http://eradicus.blogsome.com/2006/06/13/im-back/</link>
		<comments>http://eradicus.blogsome.com/2006/06/13/im-back/#comments</comments>
		<pubDate>Tue, 13 Jun 2006 06:23:39 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/06/13/im-back/</guid>
		<description><![CDATA[	It&#8217;s good to be back to one&#8217;s abode. I haven&#8217;t been blogging lately for the reason that my dad was confined and there were no other who could watch over him except me. Good thing that my dad&#8217;s okay now. Got to go, have to finish the enrollment process.
	God bless.

]]></description>
			<content:encoded><![CDATA[	<p>It&#8217;s good to be back to one&#8217;s abode. I haven&#8217;t been blogging lately for the reason that my dad was confined and there were no other who could watch over him except me. Good thing that my dad&#8217;s okay now. Got to go, have to finish the enrollment process.</p>
	<p>God bless.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/06/13/im-back/feed/</wfw:commentRss>
	</item>
		<item>
		<title>20!</title>
		<link>http://eradicus.blogsome.com/2006/05/31/im-20/</link>
		<comments>http://eradicus.blogsome.com/2006/05/31/im-20/#comments</comments>
		<pubDate>Tue, 30 May 2006 16:36:37 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/05/31/im-20/</guid>
		<description><![CDATA[	Twenty factorial?
	Thank God for all the blessings especially the gift of life. Thank you mom and dad for taking care of me. Thank you everyone! Happy birthday to me! I am no longer a teenage lad. I could not believe it. Time flies so fast.

]]></description>
			<content:encoded><![CDATA[	<p>Twenty factorial?</p>
	<p>Thank God for all the blessings especially the gift of life. Thank you mom and dad for taking care of me. Thank you everyone! Happy birthday to me! I am no longer a teenage lad. I could not believe it. Time flies so fast.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/05/31/im-20/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Revamp, an apology</title>
		<link>http://eradicus.blogsome.com/2006/05/27/revamp-an-apology/</link>
		<comments>http://eradicus.blogsome.com/2006/05/27/revamp-an-apology/#comments</comments>
		<pubDate>Sat, 27 May 2006 12:02:36 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/05/27/revamp-an-apology/</guid>
		<description><![CDATA[	[Previous Post]
Sorry I forgot the private flag because I was in a hurry awhile ago. I hope it didn&#8217;t deface Planet Ubuntu-PH.
	[OS Development]
Global Descriptor Table conquered! Nothing special, more tasks ahead. So far so good. Linux 0.01 is cool and MiniOS (Minix) too! Hail to you Linus Torvalds and Andrew Tanenbaum.
]]></description>
			<content:encoded><![CDATA[	<p><strong>[Previous Post]</strong><br />
Sorry I forgot the private flag because I was in a hurry awhile ago. I hope it didn&#8217;t deface Planet Ubuntu-PH.</p>
	<p><strong>[OS Development]</strong><br />
Global Descriptor Table conquered! Nothing special, more tasks ahead. So far so good. Linux 0.01 is cool and MiniOS (Minix) too! Hail to you Linus Torvalds and Andrew Tanenbaum.</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/05/27/revamp-an-apology/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Jeepney, today - 2</title>
		<link>http://eradicus.blogsome.com/2006/05/26/jeepney-today-2/</link>
		<comments>http://eradicus.blogsome.com/2006/05/26/jeepney-today-2/#comments</comments>
		<pubDate>Fri, 26 May 2006 23:38:00 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/05/26/jeepney-today-2/</guid>
		<description><![CDATA[	Thinking of the song? No, definitely not Kala&#8217;s hit in the Myx Daily Top 10. 
	It was 31 down 7 o&#8217;clock in the evening, the last day of our training. The sky was darkening and the wind blew softly as I walked toward the terminal. Going home later than 6 o&#8217;clock in the evening is [...]]]></description>
			<content:encoded><![CDATA[	<p>Thinking of the song? No, definitely not Kala&#8217;s hit in the Myx Daily Top 10. </p>
	<p>It was 31 down 7 o&#8217;clock in the evening, the last day of our training. The sky was darkening and the wind blew softly as I walked toward the terminal. Going home later than 6 o&#8217;clock in the evening is such a waste of time I heard myself whisper. Before taking the jeepney in line, I have decided to sit down and buy a bottle of coke in a bakery situated near the end of the terminal. While taking a sip, I observed people passing by. Definitely not Manila, whispering to myself and reminiscing the events a year ago. 5 minutes would be long enough for me to begin sipping air so I took a jeepney. I have waited for the jeepney to be filled up. Not exceeding 10 minutes, the wheels started rolling as expected. </p>
	<p>This year is going to be the hardest school year ever. Again, talking to myself. Anticipating sleepless nights, hardworks, additional duties or obligations, etc. Then suddenly while thinking of these, my sight landed on the driver. He looked so tired and problematic. What if I am on his shoes? Is he happy with his life? Then I began asking myself, what would be my life a year after wherein I will not be calling myself a student anymore? Will I be able to work in prestigious firms such as NEC, Orange and Bronze, Accenture, etc.? Well, so much for that. </p>
	<p>It was time to pay for my fare and step down. </p>
	<p>Please hand my fare over, I handed PhP 6.00 (discounted fare for students and senior citizens). Not far from the jeepney, I was wondering why it was not moving and all the passengers were looking at me. It seems that there was a problem. I approached the driver with an idea that he wasn&#8217;t happy with my fare. He shouted, how much do you pay to this far?! I replied, PhP 6.00, student. Student?! it&#8217;s summer break, no classes these days! My reply, I have summer classes and it does not mean that if it&#8217;s summer break then we should follow regular fare. The reasons why students and senior citizens follow the discounted fare are, </p>
	<p><strong>[Students]</strong></p>
	<p>They are still studying and do not have a job yet. </p>
	<p><strong>[Senior Citizens]</strong></p>
	<p>Most of them were retired and have no other means of income, some are just depending on their pension plans. </p>
	<p>Even if we&#8217;ll see face to face in the court you will never triumph. What is the use of having that fare rate there posted on your windshield? Consider Manila, the food is more expensive compared here but the drivers there are disciplined in following the fare matrix provided by the LTFRB. Then with loud voice he began uttering a lot of things like, it should be PhP 6.50! Currently, I do not even have the fee for this jeepney! While he was throwing a lot of harsh words, at the back of my mind, I was already thinking of giving all extra coins in my bag. I was reflecting during that moment and have realized that I have relatives who survive through the same profession, driving, I know how hard it is to suffice the needs of one&#8217;s family especially if one does not own a jeepney. I slowly opened my bag and got all the coins there, then with smile I gave all those to the driver. We understand your situation, here take these coins, you might be needing it badly for your family. He replied in low tone, thank you child, please do understand us. Then with smile I replied, okay sir, no problem about that. Then the jeepney started rolling. While walking down the street to our house, I have felt an extraordinary happiness. </p>
	<p>Being happy is a choice that we make. Never forget this. Everytime we wake up in the morning, it is us who chooses whether to be happy or not. Being happy is not being rich, it is being content with what we have. </p>
	<p>Pro Deo et Patria
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/05/26/jeepney-today-2/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Kernel head</title>
		<link>http://eradicus.blogsome.com/2006/05/22/a-boot-signature/</link>
		<comments>http://eradicus.blogsome.com/2006/05/22/a-boot-signature/#comments</comments>
		<pubDate>Mon, 22 May 2006 12:38:09 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/05/22/a-boot-signature/</guid>
		<description><![CDATA[	This is a late post. Simply explains how the kernel sits in after grub.
	
[BITS 32]
	
global _start
extern kernel_entry
	
PAGEALIGN	equ 1&lt;&lt;0
MEMORYINFO	equ 1&lt;&lt;1
HEADERFLAGS	equ PAGEALIGN | MEMORYINFO ; 0x3 that is
HEADERMAGIC	equ 0x1BADB002
CHECKSUM	equ -(HEADERMAGIC + HEADERFLAGS)
STACKSIZE	equ 0x4000
	
section .text
ALIGN 4 	; section must be 4 byte-aligned
multibootheader	;
	dd HEADERMAGIC
	dd HEADERFLAGS
	dd CHECKSUM
	
_start:
	mov esp, stack+STACKSIZE
	push eax
	push ebx
	call kernel_entry
	jmp $
	
; GDT here
	
; ISRs here
	
section .bss
ALIGN 4
stack	resb STACKSIZE	; [...]]]></description>
			<content:encoded><![CDATA[	<p>This is a late post. Simply explains how the kernel sits in after grub.</p>
	<pre class="codeblock">
[BITS 32]
	
global _start
extern kernel_entry
	
PAGEALIGN	equ 1&lt;&lt;0
MEMORYINFO	equ 1&lt;&lt;1
HEADERFLAGS	equ PAGEALIGN | MEMORYINFO ; 0x3 that is
HEADERMAGIC	equ 0x1BADB002
CHECKSUM	equ -(HEADERMAGIC + HEADERFLAGS)
STACKSIZE	equ 0x4000
	
section .text
ALIGN 4 	; section must be 4 byte-aligned
multibootheader	;
	dd HEADERMAGIC
	dd HEADERFLAGS
	dd CHECKSUM
	
_start:
	mov esp, stack+STACKSIZE
	push eax
	push ebx
	call kernel_entry
	jmp $
	
; GDT here
	
; ISRs here
	
section .bss
ALIGN 4
stack	resb STACKSIZE	; 16KB of memory
</pre>
	<p>I&#8217;m just sad tonight, that&#8217;s why I decided to post this out of nothing. Well I guess keeping myself busy would be wise enough.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/05/22/a-boot-signature/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Sunday, sad discovery</title>
		<link>http://eradicus.blogsome.com/2006/05/21/sunday-sad-discovery/</link>
		<comments>http://eradicus.blogsome.com/2006/05/21/sunday-sad-discovery/#comments</comments>
		<pubDate>Sun, 21 May 2006 14:44:03 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/05/21/sunday-sad-discovery/</guid>
		<description><![CDATA[	[Da Vinci Code]
	I have been to the movie house recently and watched this controversial film. The book, despite its ever-growing popularity, did not interest me that much since I equate my faith with a sword mightier than Tireal&#8217;s Azurewrath. I was saddened deeply when I reached the movie house and saw numerous people there oozing [...]]]></description>
			<content:encoded><![CDATA[	<p><strong>[Da Vinci Code]</strong></p>
	<p>I have been to the movie house recently and watched this controversial film. The book, despite its ever-growing popularity, did not interest me that much since I equate my faith with a sword mightier than Tireal&#8217;s Azurewrath. I was saddened deeply when I reached the movie house and saw numerous people there oozing with their teenage curiosity. First of all, have they been to church? It&#8217;s Sunday for pete&#8217;s sake. Why would they prioritize watching a film that is against their religion without even thinking that they have their obligations? Dan Brown&#8217;s manuscript is really a work of art and no question about that but people should remember it as a fiction book and nothing beyond. </p>
	<p>To all those who have read the book or have watched the film, try reading <em>The Da Vinci Code Decoded</em> written by a Jesuit priest. </p>
	<p><strong>[OS Development]</strong></p>
	<p>Do not write your own operating system. An information available globally that could be considered as a blackhole where operating system developers might fall. I am one of those enlightened hobbyists who fell into that hole while searching for a supplementary reading about the <em>Global Descriptor Table</em>. Developing your own OS is just reinventing the wheel. Straightforward as it may sound. Yeah right. We want to learn here and reinventing the wheel does not only mean to reinvent. Go grab your processor&#8217;s fan, detach it, and power on for a decent devastation.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/05/21/sunday-sad-discovery/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Early take-off</title>
		<link>http://eradicus.blogsome.com/2006/05/16/early-take-off/</link>
		<comments>http://eradicus.blogsome.com/2006/05/16/early-take-off/#comments</comments>
		<pubDate>Tue, 16 May 2006 22:48:20 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/05/16/early-take-off/</guid>
		<description><![CDATA[	I have emerged vim-7.0-r2 just recently. 
	Preparing a lot for our college thesis. Not excluding the amount of food intake. Reading the intel manuals from hell. Heavy bondings with bochs, vim, nasm, gcc, ld, strace, objdump, hexedit, as, etc.
	Requesting a divine intervention for strength.

]]></description>
			<content:encoded><![CDATA[	<p>I have emerged vim-7.0-r2 just recently. </p>
	<p>Preparing a lot for our college thesis. Not excluding the amount of food intake. Reading the intel manuals from hell. Heavy bondings with bochs, vim, nasm, gcc, ld, strace, objdump, hexedit, as, etc.</p>
	<p>Requesting a divine intervention for strength.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/05/16/early-take-off/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Making C++ behave like Java</title>
		<link>http://eradicus.blogsome.com/2006/05/10/making-c-behave-like-java/</link>
		<comments>http://eradicus.blogsome.com/2006/05/10/making-c-behave-like-java/#comments</comments>
		<pubDate>Wed, 10 May 2006 03:50:08 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/05/10/making-c-behave-like-java/</guid>
		<description><![CDATA[	I was sidetracked from my C++ programming (Battle for Wesnoth) by the school&#8217;s Senior Summer Trainings 2006. After MySQL and PHP, and a week OJT at Zamboanga Freeport (OMED IT Solutions), the dark side of the force has arrived, Java Programming. We are currently being trained by Ma&#8217;am Ebony Domingo and some CS upperclasses who [...]]]></description>
			<content:encoded><![CDATA[	<p>I was sidetracked from my C++ programming (<a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fwesnoth.org%2F&amp;i=0&amp;c=654fbdd7a959a1fbdce25272ceab00b5c438ff14">Battle for Wesnoth</a>) by the school&#8217;s Senior Summer Trainings 2006. After MySQL and PHP, and a week OJT at Zamboanga Freeport (OMED IT Solutions), the dark side of the force has arrived, Java Programming. We are currently being trained by Ma&#8217;am Ebony Domingo and some CS upperclasses who already received their respective diplomas last March of this year. Their spirits of magis uplift my morale and drive me to be more optimistic especially in dealing with a language that I&#8217;m not quite familiar with. </p>
	<p>Java is known for its being a platform independent language, equipped with an auto garbage collection mechanism,  etc.  (I don&#8217;t want to elaborate more on these).</p>
	<p>What I am trying to point here out is that, one of Java&#8217;s assets, which is the auto garbage collection, is also possible in C++ using an <strong>auto pointer</strong>. Now, how is this possible?</p>
	<p>What an auto pointer does is, it owns a dynamically created object and automatically performs a cleanup when the object is no longer needed.</p>
	<p>First, we have to consider how they normally do it  (without auto pointer).</p>
	<pre class="codeblock">
void function()
{
        sophie *s(new sophie);
        /* do something here */
        delete s;
}
</pre>
	<p>A classic memory leak would occur if there&#8217;s no delete.</p>
	<p>Here&#8217;s how it&#8217;s being done using an auto pointer.</p>
	<pre class="codeblock">
void function()
{
        auto_ptr&lt;sophie&gt; s(new sophie);
        /* do something here */
}
</pre>
	<p>Beyond this scope, the object frees automatically.</p>
	<p>God bless us all!
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/05/10/making-c-behave-like-java/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Unanticipated</title>
		<link>http://eradicus.blogsome.com/2006/04/24/unanticipated/</link>
		<comments>http://eradicus.blogsome.com/2006/04/24/unanticipated/#comments</comments>
		<pubDate>Mon, 24 Apr 2006 23:39:33 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/04/24/unanticipated/</guid>
		<description><![CDATA[	Summer vacation days are even more tiring than the usual school days! I have thought of decreased loads in my TO-DO list but I was wrong. Good day.

]]></description>
			<content:encoded><![CDATA[	<p>Summer vacation days are even more tiring than the usual school days! I have thought of decreased loads in my TO-DO list but I was wrong. Good day.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/04/24/unanticipated/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Locked and loaded</title>
		<link>http://eradicus.blogsome.com/2006/04/18/locked-and-loaded/</link>
		<comments>http://eradicus.blogsome.com/2006/04/18/locked-and-loaded/#comments</comments>
		<pubDate>Tue, 18 Apr 2006 23:19:20 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/04/18/locked-and-loaded/</guid>
		<description><![CDATA[	Today is the second day of the Senior Summer Trainings 2006. Yesterday, we have started off MySQL running on Ubuntu. We did just simple exercises but very worth-doing even if I had previous experiences with the subject.
	To Ma&#8217;am Flisha Fernandez, thanks a lot. The Ateneo Spirit of Magis has a way of rewarding people like [...]]]></description>
			<content:encoded><![CDATA[	<p>Today is the second day of the <strong>Senior Summer Trainings 2006</strong>. Yesterday, we have started off MySQL running on Ubuntu. We did just simple exercises but very worth-doing even if I had previous experiences with the subject.</p>
	<p><em>To Ma&#8217;am Flisha Fernandez, thanks a lot. The Ateneo Spirit of Magis has a way of rewarding people like you.</em></p>
	<p><strong>[Kernel]</strong></p>
	<p>Please welcome &#8220;The Instrument of Doom&#8221; <strong>linux-2.6.14-kee-innovative</strong> with nVidia support. I have purchased a second-hand graphics card (GeForce FX 5700 256mb 128bit) from a friend. Good to go!</p>
	<p><strong>[Gig]</strong></p>
	<p>I hope the training will end up earlier than the usual time. I have to warm up for the gig tonight at Park 88.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/04/18/locked-and-loaded/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Getting the feel of the groove</title>
		<link>http://eradicus.blogsome.com/2006/03/27/getting-the-feel-of-the-groove/</link>
		<comments>http://eradicus.blogsome.com/2006/03/27/getting-the-feel-of-the-groove/#comments</comments>
		<pubDate>Mon, 27 Mar 2006 02:58:42 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/03/27/getting-the-feel-of-the-groove/</guid>
		<description><![CDATA[	Junior year&#8217;s over. New daily schedule has emerged. In a day there must be at least 2 hours of bass exercises which include music bass theory, scales, funky bass lines, and jamming sessions. 6 hours of programming (right after this sissy FoxPro RDBMS project). In weekends, there must be at least 2 jamming sessions with [...]]]></description>
			<content:encoded><![CDATA[	<p>Junior year&#8217;s over. New daily schedule has emerged. In a day there must be at least 2 hours of bass exercises which include music bass theory, scales, funky bass lines, and jamming sessions. 6 hours of programming (right after this sissy FoxPro RDBMS project). In weekends, there must be at least 2 jamming sessions with my band for compositions and reviews. Play at different bars at night, for pleasure and income. My top priority for this summer break is to code some modules for our final project ahead. Of course, schedule is subject to change due to unpredictable and uncontrollable forces such as heavy household chores, family affairs, family business, or anything that concerns morality.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/03/27/getting-the-feel-of-the-groove/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Palindrome syndrome</title>
		<link>http://eradicus.blogsome.com/2006/03/25/palindrome-syndrome/</link>
		<comments>http://eradicus.blogsome.com/2006/03/25/palindrome-syndrome/#comments</comments>
		<pubDate>Sat, 25 Mar 2006 23:08:57 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/03/25/palindrome-syndrome/</guid>
		<description><![CDATA[	I really do not enjoy coding in MS Visual FoxPro but I have no choice. Damn! I swear not to use it any longer after this RDBMS project. 
	I was asked by a friend to code a simple program to check if a string is a palindrome. I miss coding in C and assembly a [...]]]></description>
			<content:encoded><![CDATA[	<p>I really do not enjoy coding in MS Visual FoxPro but I have no choice. Damn! I swear not to use it any longer after this RDBMS project. </p>
	<p>I was asked by a friend to code a simple program to check if a string is a palindrome. I miss coding in C and assembly a lot! So to satisfy my urge, I tried to do it in a different manner. A timed coding session!</p>
	<pre class="codeblock">
#include&lt;stdio.h&gt;
#include&lt;string.h&gt;
	
#define MAXSTRING 50
	
int main(void)
{
	int i;
	int ctr = 0;
	char c;
	char string[MAXSTRING] = &quot;\0&quot;;
	char temp[MAXSTRING] = &quot;\0&quot;;
	
	printf(&quot;Enter a string: &quot;);
	for (i = 0; (c = getchar()) != '\n'; ++i)
		string[i] = c;
	string[i] = '\0';
	
	for (--i; i >= 0; --i){
		temp[ctr] = putchar(string[i]);
		++ctr;
	}
	if (!strcmp(string, temp))
		printf(&quot;\nString is a palindrome!\n&quot;);
	else
		printf(&quot;\nNot a palindrome!\n&quot;);
	return 0;
}
</pre>
	<p>I finished coding in 4 minutes and 37 seconds. Not a good record though. So sad.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/03/25/palindrome-syndrome/feed/</wfw:commentRss>
	</item>
		<item>
		<title>LPT1 stepper motor control</title>
		<link>http://eradicus.blogsome.com/2006/03/13/lpt1-stepper-motor-control/</link>
		<comments>http://eradicus.blogsome.com/2006/03/13/lpt1-stepper-motor-control/#comments</comments>
		<pubDate>Mon, 13 Mar 2006 23:50:42 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/03/13/lpt1-stepper-motor-control/</guid>
		<description><![CDATA[	Last Sunday, I was coding some modules for our RDBMS project and playing Dungeon Siege: Legend of Aranna (quite old but it would be a waste of time if I did not)  in parallel. I received a phone call asking a favor to write a program for sending signals through the parallel port. It [...]]]></description>
			<content:encoded><![CDATA[	<p>Last Sunday, I was coding some modules for our RDBMS project and playing Dungeon Siege: Legend of Aranna (quite old but it would be a waste of time if I did not)  in parallel. I received a phone call asking a favor to write a program for sending signals through the parallel port. It sounds a little scary at first because I did not have any idea on parallel port interfacing. </p>
	<p>Let me explain the project.</p>
	<p>The project is a Car Control System. They have 2 bipolar stepper motors. One is responsible for the forward-reverse function and the other one is for the left-right function.</p>
	<p>Signals recognized by the floppy drive stepper motor:</p>
	<p>Clockwise 18-degree turn</p>
	<pre class="codeblock">1001      or      0x9
0110      or      0x6
</pre>
	<p>Counterclockwise 18-degree turn</p>
	<pre class="codeblock">0110      or      0x6
1001      or      0x9
</pre>
	<p>Now, how is it possible to send these signals using the parallel port? Not all 25 pins are needed. For this project, only the data pins are needed.</p>
	<pre class="codeblock">Pin         Function
 2             D0
 3             D1
 4             D2
 5             D3
 6             D4
 7             D5
 8             D6</pre>
	<p>LPT1 is usually 0x378; having this knowledge, everything comes in trivial.</p>
	<p>In file <strong>lptcontrol.c</strong></p>
	<pre class="codeblock">#include &lt;conio.h&gt;
#include &lt;stdio.h&gt;
#include &lt;string.h&gt;
#include &lt;stdlib.h&gt;
	
int main(int argc, char* argv[])
{
	short data;
	
	if(argc&lt;2) {
		printf(&quot;Usage\n\n&quot;);
		printf(&quot;lptcontrol.exe [option] [data]\n\n&quot;);
		return 0;
	}
	
/* a read function is not necessary for this project
   included for additional info */
	
	if(!strcmp(argv[1],&quot;read&quot;)) {
		data = _inp(0x378);
		printf(&quot;Data from parallel port:  &quot;);
		printf(&quot;%d&quot;,data);
	}
	
	if(!strcmp(argv[1],&quot;write&quot;)) {
		_outp(0x378,atoi(argv[2]));
		printf(&quot;Data written to parallel port:  &quot;);
		printf(&quot;%s&quot;,argv[2]);
	}
	return 0;
}
</pre>
	<p>If you want a constant turn you can achieve it through a loop.</p>
	<pre class="codeblock">
while(1) {
        _outp(0x378, 0x9);
        _outp(0x378, 0x6);
}
</pre>
	<p>This will result to a motor spinning clockwise. C program above is written for Windows OS.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/03/13/lpt1-stepper-motor-control/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Ethical hacking, a glimpse of my Philo paper</title>
		<link>http://eradicus.blogsome.com/2006/03/07/ethical-hacking-a-glimpse-of-my-philo-paper/</link>
		<comments>http://eradicus.blogsome.com/2006/03/07/ethical-hacking-a-glimpse-of-my-philo-paper/#comments</comments>
		<pubDate>Tue, 07 Mar 2006 22:03:32 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/03/07/ethical-hacking-a-glimpse-of-my-philo-paper/</guid>
		<description><![CDATA[	Is hacking ethical? It is if viewed within the context of the three definitions offered: hacktivist, hobbyist and researcher. We have the right in this country to protest, and if our activism takes a digital or electronic form, we have the right to do so. But don&#8217;t take my word for it.
	Who are ethical hackers? [...]]]></description>
			<content:encoded><![CDATA[	<p>Is hacking ethical? It is if viewed within the context of the three definitions offered: hacktivist, hobbyist and researcher. We have the right in this country to protest, and if our activism takes a digital or electronic form, we have the right to do so. But don&#8217;t take my word for it.</p>
	<p>Who are ethical hackers? These early efforts provide good examples of ethical hackers. Successful ethical hackers possess a variety of skills. First and foremost, they must be completely trustworthy. While testing the security of a client&#8217;s systems, the ethical hacker may discover information about the client that should remain secret. In many cases, this information, if publicized, could lead to real intruders breaking into the systems, possibly leading to financial losses. During an evaluation, the ethical hacker often holds the “keys to the company,” and therefore must be trusted to exercise tight control over any information about a target that could be misused. The sensitivity of the information gathered during an evaluation requires that strong measures be taken to ensure the security of the systems being employed by the ethical hackers themselves: limited-access labs with physical security protection and full ceiling-to-floor walls, multiple secure Internet connections, a safe to hold paper documentation from clients, strong cryptography to protect electronic results, and isolated networks for testing.</p>
	<p>Ethical hackers typically have very strong programming and computer networking skills and have been in the computer and networking business for several years. They are also adept at installing and maintaining systems that use the more popular operating systems (e.g., GNU Linux, BSD Unix or Windows NT) used on target systems. These base skills are augmented with detailed knowledge of the hardware and software provided by the more popular computer and networking hardware vendors. It should be noted that an additional specialization in security is not always necessary, as strong skills in the other areas imply a very good understanding of how the security on various systems is maintained. These systems management skills are necessary for the actual vulnerability testing, but are equally important when preparing the report for the client after the test. </p>
	<p>Finally, good candidates for ethical hacking have more drive and patience than most people. Unlike the way someone breaks into a computer in the movies, the work that ethical hackers do demands a lot of time and persistence. This is a critical trait, since criminal hackers are known to be extremely patient and willing to monitor systems for days or weeks while waiting for an opportunity. A typical evaluation may require several days of tedious work that is difficult to automate. Some portions of the evaluations must be done outside of normal working hours to avoid interfering with production at “live” targets or to simulate the timing of a real attack. When they encounter a system with which they are unfamiliar, ethical hackers will spend the time to learn about the system and try to find its weaknesses. Finally, keeping up with the ever-changing world of computer and network security requires continuous education and review. </p>
	<p>One might observe that the skills we have described could just as easily belong to a criminal hacker as to an ethical hacker. Just as in sports or warfare, knowledge of the skills and techniques of your opponent is vital to your success. In the computer security realm, the ethical hacker&#8217;s task is the harder one. With traditional crime anyone can become a shoplifter, graffiti artist, or a mugger. Their potential targets are usually easy to identify and tend to be localized. The local law enforcement agents must know how the criminals ply their trade and how to stop them. On the Internet anyone can download criminal hacker tools and use them to attempt to break into computers anywhere in the world. Ethical hackers have to know the techniques of the criminal hackers, how their activities might be detected, and how to stop them. </p>
	<p>Given these qualifications, how does one go about finding such individuals? </p>
	<p><em>The best ethical hacker candidates will have successfully published research papers or released popular open-source security software. The computer security community is strongly self-policing, given the importance of its work. Most ethical hackers, and many of the better computer and network security experts, did not set out to focus on these issues. Most of them were computer users from various disciplines, such as astronomy and physics, mathematics, computer science, philosophy, or liberal arts, who took it personally when someone disrupted their work with a hack. </p>
	<p>One rule that IBM&#8217;s ethical hacking effort had from the very beginning was that we would not hire ex-hackers. While some will argue that only a “real hacker” would have the skill to actually do the work, we feel that the requirement for absolute trust eliminated such candidates. We likened the decision to that of hiring a fire marshal for a school district: while a gifted ex-arsonist might indeed know everything about setting and putting out fires, would the parents of the students really feel comfortable with such a choice? This decision was further justified when the service was initially offered: the customers themselves asked that such a restriction be observed. Since IBM&#8217;s ethical hacking group was formed, there have been numerous ex-hackers who have become security consultants and spokespersons for the news media. While they may very well have turned away from the “dark side,” there will always be a doubt.<br />
</em></p>
	<p>I believe hackers have a lot to offer. They provide a balance of power by virtue of their creativity and technical skills. I think we need to protect and recognize them and find ways of working together. </p>
	<p>Yes, I do believe that hacking &#8212; when properly defined &#8212; is an ethical activity. And yes, I do believe that understanding our freedom and rights and protecting all that&#8217;s good in our society while preventing all that&#8217;s bad is the right approach. </p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/03/07/ethical-hacking-a-glimpse-of-my-philo-paper/feed/</wfw:commentRss>
	</item>
		<item>
		<title>A change-gas</title>
		<link>http://eradicus.blogsome.com/2006/02/25/gas-powered-brain/</link>
		<comments>http://eradicus.blogsome.com/2006/02/25/gas-powered-brain/#comments</comments>
		<pubDate>Sat, 25 Feb 2006 23:28:01 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/02/25/gas-powered-brain/</guid>
		<description><![CDATA[	The danger of reading Randall Hyde&#8217;s book, The Art of Assembly is that it contains addictive substances. Yesterday, I have decided to
	
joset@kee $ su -c &quot;emerge -C nasm&quot;

	After cleaning up, a tune-up followed
	
.data
	
msg:
        .ascii  &quot;A small step for me is a big leap for... me!\n&quot;
   [...]]]></description>
			<content:encoded><![CDATA[	<p>The danger of reading Randall Hyde&#8217;s book, The Art of Assembly is that it contains addictive substances. Yesterday, I have decided to</p>
	<pre class="codeblock">
joset@kee $ su -c &quot;emerge -C nasm&quot;
</pre>
	<p>After cleaning up, a tune-up followed</p>
	<pre class="codeblock">
.data
	
msg:
        .ascii  &quot;A small step for me is a big leap for... me!\n&quot;
        len = . - msg
	
.text
	
        .global _start
	
_start:
	
# write string to stdout
	
        movl    $len, %edx
        movl    $msg, %ecx
        movl    $1, %ebx
        movl    $4, %eax
        int     $0x80
	
# exit
	
        movl    $0, %ebx
        movl    $1, %eax
        int     $0x80
</pre>
	<p>Now I have finally made a change-gas. Expecting a lot of maintenance work to follow.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/02/25/gas-powered-brain/feed/</wfw:commentRss>
	</item>
		<item>
		<title>ADZU openlab scutworks</title>
		<link>http://eradicus.blogsome.com/2006/02/23/adzu-openlab-scutworks/</link>
		<comments>http://eradicus.blogsome.com/2006/02/23/adzu-openlab-scutworks/#comments</comments>
		<pubDate>Thu, 23 Feb 2006 15:53:40 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/02/23/adzu-openlab-scutworks/</guid>
		<description><![CDATA[	I really do not enjoy network administration a lot but the tasks listed below are rewarding. Let optimism light the path.
	0] Tweak and secure box
1] Video screen capture
2] ADZU Debian repository
3] OpenAFS and Kerberos
4] IPv6
5] Honeypot
6] SETI
	Expect postponement of blog posts. Everything will be documented here upon completion.
	Signing off through a quote by Mr. Oscar [...]]]></description>
			<content:encoded><![CDATA[	<p>I really do not enjoy network administration a lot but the tasks listed below are rewarding. Let optimism light the path.</p>
	<p>0] Tweak and secure box<br />
1] Video screen capture<br />
2] ADZU Debian repository<br />
3] OpenAFS and Kerberos<br />
4] IPv6<br />
5] Honeypot<br />
6] SETI</p>
	<p>Expect postponement of blog posts. Everything will be documented here upon completion.</p>
	<p>Signing off through a quote by Mr. Oscar Wilde</p>
	<p><strong>Experience is one thing you can&#8217;t get for nothing.</strong>
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/02/23/adzu-openlab-scutworks/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Verify user in /etc/passwd</title>
		<link>http://eradicus.blogsome.com/2006/02/19/verify-user-in-etcpasswd/</link>
		<comments>http://eradicus.blogsome.com/2006/02/19/verify-user-in-etcpasswd/#comments</comments>
		<pubDate>Sun, 19 Feb 2006 03:56:43 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/02/19/verify-user-in-etcpasswd/</guid>
		<description><![CDATA[	This is a product of wonder.
	In file verify.c
	
#include &lt;stdio.h&gt;
#include &lt;string.h&gt;
	
#define MAX_LENGTH	1024
	
int is_local(char *user)
{
        FILE *fd;
        char line[MAX_LENGTH];
        int local = 0;
	
        if(!(fd = fopen(&quot;/etc/passwd&quot;, &quot;r&quot;))) {
  [...]]]></description>
			<content:encoded><![CDATA[	<p>This is a product of wonder.</p>
	<p>In file <strong>verify.c</strong></p>
	<pre class="codeblock">
#include &lt;stdio.h&gt;
#include &lt;string.h&gt;
	
#define MAX_LENGTH	1024
	
int is_local(char *user)
{
        FILE *fd;
        char line[MAX_LENGTH];
        int local = 0;
	
        if(!(fd = fopen(&quot;/etc/passwd&quot;, &quot;r&quot;))) {
                puts(&quot;Can't read /etc/passwd, exiting.&quot;);
                exit(1);
        }
	
        while(fgets(line, MAX_LENGTH, fd) > 0) {
                if(!strncmp(line, user, strlen(user))) {
			local = 1;
			break;
                }
	}
	fclose(fd);
	return local;
}
</pre>
	<p>Use at your own risk.</p>
	<p><strong>Disclaimer:</strong> Please refer to my first post &#8216;General notice&#8217; </p>
	<p>Posted using Scott Yang&#8217;s mtsend.py python script. Thanks to Niel for his cool vim mappings.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/02/19/verify-user-in-etcpasswd/feed/</wfw:commentRss>
	</item>
		<item>
		<title>A hidden post made visible</title>
		<link>http://eradicus.blogsome.com/2006/02/17/a-hidden-post-made-visible/</link>
		<comments>http://eradicus.blogsome.com/2006/02/17/a-hidden-post-made-visible/#comments</comments>
		<pubDate>Fri, 17 Feb 2006 23:28:08 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/02/17/a-hidden-post-made-visible/</guid>
		<description><![CDATA[	I was afraid to make this available in public. When I tried to browse some counterpart of it in other distros, I have realized that there are a lot of similar topics found even in the official forums of major distros. There are many people doing this already. So for people ranging from lowerclass to [...]]]></description>
			<content:encoded><![CDATA[	<p>I was afraid to make this available in public. When I tried to browse some counterpart of it in other distros, I have realized that there are a lot of similar topics found even in the official forums of major distros. There are many people doing this already. So for people ranging from lowerclass to middleclass, who can not afford a digital subscriber line, here is a wiser alternative.</p>
	<p>If you have a Smartlink chipset winmodem in possession, then you are a bit luckier than those who own a Conexant chipset winmodem. Smartlink drivers are available for free eversince. Conexant drivers (lin*xant) were freely distributed during the 2.4 series era. This means, 2.4 kernels can still abuse the driver&#8217;s full-functionality. </p>
	<p>Bad news for 2.6 starters, 2.4-2.6 shifters, and 2.4 starters who hold Conexant chipset winmodems. Why?</p>
	<p>1. Free drivers for 2.4 series are no longer available in the official repository.<br />
2. Drivers for 2.6 are free but limit your bandwidth to 14.4kbps. Free isn&#8217;t it?</p>
	<p>So keep your 2.4 kernels, move to 2.6, and enjoy the modem&#8217;s irregulated downstreams and upstreams. Here is how:</p>
	<p>Whip up a hexeditor and do stuffs below the belt.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/02/17/a-hidden-post-made-visible/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Test mtsend</title>
		<link>http://eradicus.blogsome.com/2006/02/14/test-mtsend/</link>
		<comments>http://eradicus.blogsome.com/2006/02/14/test-mtsend/#comments</comments>
		<pubDate>Tue, 14 Feb 2006 02:03:06 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/02/14/test-mtsend/</guid>
		<description><![CDATA[	mtsend.py is a command line tool written in python. It uses Movable Type&#8217;s XML-RPC interface. It appears that it also works with WordPress&#8217; XML-RPC interface. So I have decided to give it a try.
	In file ~/.mtsendrc
	
[global]
default=eradicus
	
[site-blogsome]
url=http://eradicus.blogsome.com/xmlrpc.php
username=*****
password=*****
encoding=UTF-8
	
[blog-eradicus]
site=blogsome
blogid=1

	It works!
	
joset@kee$ ./mtsend.py -B blogsome
+----+-----------+-------------------------------+
| ID | Blog Name | URL          [...]]]></description>
			<content:encoded><![CDATA[	<p>mtsend.py is a command line tool written in python. It uses Movable Type&#8217;s XML-RPC interface. It appears that it also works with WordPress&#8217; XML-RPC interface. So I have decided to give it a try.</p>
	<p>In file <strong>~/.mtsendrc</strong></p>
	<pre class="codeblock">
[global]
default=eradicus
	
[site-blogsome]
url=http://eradicus.blogsome.com/xmlrpc.php
username=*****
password=*****
encoding=UTF-8
	
[blog-eradicus]
site=blogsome
blogid=1
</pre>
	<p>It works!</p>
	<pre class="codeblock">
joset@kee$ ./mtsend.py -B blogsome
+----+-----------+-------------------------------+
| ID | Blog Name | URL                           |
+----+-----------+-------------------------------+
| 1  | Sophie    | http://eradicus.blogsome.com/ |
+----+-----------+-------------------------------+
	
joset@kee$ ./mtsend.py -C
+----+----------------------+
| ID | Category Name        |
+----+----------------------+
| 5  | Healthy Vices        |
| 2  | Of Love and Romance  |
| 1  | Progressive Studies  |
| 3  | Uncategorized        |
| 6  | Unsolicited Opinions |
+----+----------------------+
	
joset@kee$ ./mtsend.py -V
Version 1.1</pre>
	<p>Massive blogging ahead!
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/02/14/test-mtsend/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Queued tasks</title>
		<link>http://eradicus.blogsome.com/2006/02/04/queued-tasks/</link>
		<comments>http://eradicus.blogsome.com/2006/02/04/queued-tasks/#comments</comments>
		<pubDate>Sat, 04 Feb 2006 23:06:51 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/02/04/queued-tasks/</guid>
		<description><![CDATA[	Hopefully these features would be added on the game soon.
	1. Nick completion
2. Default turn time limit 300/150
3. Display number of players
4. Notify if a player leaves
5. Sortable columns in lobby
	The root of all evil in programming starts at early optimization in coding. 
- Donald E. Knuth

]]></description>
			<content:encoded><![CDATA[	<p>Hopefully these features would be added on the game soon.</p>
	<p>1. Nick completion<br />
2. Default turn time limit 300/150<br />
3. Display number of players<br />
4. Notify if a player leaves<br />
5. Sortable columns in lobby</p>
	<p><strong>The root of all evil in programming starts at early optimization in coding. </strong><br />
- Donald E. Knuth
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/02/04/queued-tasks/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Wesnoth terrain</title>
		<link>http://eradicus.blogsome.com/2006/02/01/wesnoth-terrain/</link>
		<comments>http://eradicus.blogsome.com/2006/02/01/wesnoth-terrain/#comments</comments>
		<pubDate>Wed, 01 Feb 2006 23:25:42 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/02/01/wesnoth-terrain/</guid>
		<description><![CDATA[	How are maps created? How are terrains organized? These questions are no way different from asking how GNU/Linux works. The brief explanation is, it is very complicated! 
	Conceptually it works like this:
	Terrains are defined in terrain.cfg. They get assigned ID, name, char, etc.
	A snippet of terrain.cfg
	
# Terrain configuration file. Defines how the terrain _work_ in [...]]]></description>
			<content:encoded><![CDATA[	<p>How are maps created? How are terrains organized? These questions are no way different from asking how GNU/Linux works. The brief explanation is, it is very complicated! </p>
	<p>Conceptually it works like this:</p>
	<p>Terrains are defined in <strong>terrain.cfg</strong>. They get assigned ID, name, char, etc.</p>
	<p>A snippet of terrain.cfg</p>
	<pre class="codeblock">
# Terrain configuration file. Defines how the terrain _work_ in the game. How
# the terrains _look_ is defined in terrain_graphics.cfg .
	
# NOTE: terrain id's are used implicitly by the in-game help:
# each &quot;[terrain] id=some_id&quot; corresponds to &quot;[section] id=terrain_some_id&quot;
# or &quot;[topic] id=terrain_some_id&quot; identifying its description in [help]
	
[terrain]
symbol_image=void
id=shroud
name= _ &quot;Shroud&quot;
char=&quot; &quot;
[/terrain]
	
[terrain]
symbol_image=fog
id=fog
name= _ &quot;Fog&quot;
char=&quot;~&quot;
[/terrain]
	
[terrain]
symbol_image=ocean
id=deep_water
name= _ &quot;Deep Water&quot;
char=s
submerge=0.5
unit_height_adjust=-3
[/terrain]
	
[terrain]
symbol_image=coast
id=shallow_water
name= _ &quot;Shallow Water&quot;
char=c
submerge=0.4
unit_height_adjust=-4
[/terrain]
	
--snip--
</pre>
	<p>In <strong>terrain-graphics.cfg</strong> the char gets assigned to the actual gfx files and given rules for how it is to be placed, layered, transitioned, etc. A normal type terrain gets a base image assigned  and optionally several alternative tiles which will be distributed according to a given percentage. Then, it will be fed into the macro responsible for layering and transitioning against other terrains. Multihex terrains use their own custom macros to be assembled and placed (either on top of other terrains or with no background). Castles have their own macros, some terrains are also drawn using the castle macro. </p>
	<p>A snippet of terrain-graphics.cfg</p>
	<pre class="codeblock">
# The following flags are defined to have a meaning
#
# * base : the corresponding tile has already graphics for the terrain
# base. No other one should be added.
# * transition-$direction : the corresponding tile already has the transition
# in the given direction (or should not have one). No other one should be
# added.
# * keep-of-$castle : castle being a tile letter. The corresponding tile is the
# keep correspoding to the given castle tile
	
# The following should be kept on top of the file {terrain-graphics}
#-----------------------------------------------------------------
# Forest&lt; -&gt;Castle|Encampment special cases
#-----------------------------------------------------------------
	
#define FORESTADJCASTLEA FID ID PROB TILE
[terrain_graphics]
      map=&quot;
  1
*   1
  2
*   *
  *&quot;
	
         [tile]
                 pos=1
                 type={ID}
         [/tile]
	
         [tile]
                 pos=2
                 type={FID}
                 no_flag=&quot;overlay&quot;
                 set_flag=&quot;overlay&quot;
         [/tile]
	
         probability={PROB}
         rotations=n,ne,se,s,sw,nw
	
         [image]
                 name={TILE}
                 position=vertical
                 base=90,144
         [/image]
	
[/terrain_graphics]
#enddef
	
--snip--
</pre>
	<p>All sorts of stuff like rotation, precedence, mutual-exclusiveness, ordering, layering, positioning, etc. are the macro&#8217;s area of responsibility. You have total control of the game&#8217;s interface using the right macro. Ayin made a very powerfull and flexible system, but very complex indeed!</p>
	<p>Thanks to <strong>freim</strong> for the help.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/02/01/wesnoth-terrain/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Unix half-duplex pipes</title>
		<link>http://eradicus.blogsome.com/2006/01/23/half-duplex-pipes/</link>
		<comments>http://eradicus.blogsome.com/2006/01/23/half-duplex-pipes/#comments</comments>
		<pubDate>Mon, 23 Jan 2006 23:51:32 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/01/23/half-duplex-pipes/</guid>
		<description><![CDATA[	The pipe &#8216;|&#8217; is a type of inter-process communication. Its facilities provide a method for multiple processes to communicate with one another.
	Simply putting a pipe in between is a method of connecting the standard output of one process to the standard input of another.
	
joset@kee$ ls -l | grep -i foo

	In the example above, the output [...]]]></description>
			<content:encoded><![CDATA[	<p>The pipe &#8216;|&#8217; is a type of inter-process communication. Its facilities provide a method for multiple processes to communicate with one another.</p>
	<p>Simply putting a pipe in between is a method of connecting the standard output of one process to the standard input of another.</p>
	<pre class="codeblock">
joset@kee$ ls -l | grep -i foo
</pre>
	<p>In the example above, the output of ls is written to the input of grep. Obviously, the output of grep is written to the standard output of the shell, the screen.</p>
	<p>Here is how a pipe works.</p>
	<pre class="codeblock">
#include&lt;stdio.h&gt;
#include&lt;unistd.h&gt;
#include&lt;sys/types.h&gt;
	
int main(void)
{
	int	fd[2], n_bytes;
	pid_t	child;
	char	string[] = &quot;Hello, world!\n&quot;;
	char	readbuf[80];
	
	pipe(fd);
	
	if ((child = fork()) == -1){
		perror(&quot;fork&quot;);
		exit(1);
	}
	
	if ((child == 0)){
		/* child process closes up input side of pipe */
		close(fd[0]);
	
		/* send &quot;string&quot; through the output side of pipe */
		write(fd[1], string, strlen(string));
		exit(0);
	}
	
	else{
		/* parent process closes up output side of pipe */
		close(fd[1]);
	
		/* read in a string from the pipe */
		n_bytes = read(fd[0], readbuf, sizeof(readbuf));
		printf(&quot;Received string: %s&quot;, readbuf);
	}
	return 0;
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/01/23/half-duplex-pipes/feed/</wfw:commentRss>
	</item>
		<item>
		<title>GNU recursive naming convention</title>
		<link>http://eradicus.blogsome.com/2006/01/22/gnu-recursive-naming-convention/</link>
		<comments>http://eradicus.blogsome.com/2006/01/22/gnu-recursive-naming-convention/#comments</comments>
		<pubDate>Sun, 22 Jan 2006 21:04:05 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/01/22/gnu-recursive-naming-convention/</guid>
		<description><![CDATA[	Eradicus Redefines All Deprecated Information Creatively Upon Scanning (ERADICUS).

]]></description>
			<content:encoded><![CDATA[	<p>Eradicus Redefines All Deprecated Information Creatively Upon Scanning (ERADICUS).
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/01/22/gnu-recursive-naming-convention/feed/</wfw:commentRss>
	</item>
		<item>
		<title>A legal alien?</title>
		<link>http://eradicus.blogsome.com/2006/01/22/an-illegal-alien/</link>
		<comments>http://eradicus.blogsome.com/2006/01/22/an-illegal-alien/#comments</comments>
		<pubDate>Sun, 22 Jan 2006 13:34:18 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/01/22/an-illegal-alien/</guid>
		<description><![CDATA[	Yesterday, I was triggered by my ego to attend a session of WMSU&#8217;s review for the incoming ICT proficiency exam. Each student spent a total of Php 460.00 for the review and  test fee. It started last week. Passers of the said exam are guaranteed to be certified ICT professionals as noted by NCC. [...]]]></description>
			<content:encoded><![CDATA[	<p>Yesterday, I was triggered by my ego to attend a session of WMSU&#8217;s review for the incoming ICT proficiency exam. Each student spent a total of Php 460.00 for the review and  test fee. It started last week. Passers of the said exam are guaranteed to be certified ICT professionals as noted by NCC. I was curious about how the review was being held. I was able to set myself in the classroom without catching much of the professor&#8217;s attention. It was my first attempt. I was somehow excited at first, but as the review went on, the professor did not talk that much and started filling up the chalkboard. The topic was about data structures. I was surprised with what I have found out. I bet you have the idea.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/01/22/an-illegal-alien/feed/</wfw:commentRss>
	</item>
		<item>
		<title>A sticky lesson</title>
		<link>http://eradicus.blogsome.com/2006/01/09/a-sticky-lesson/</link>
		<comments>http://eradicus.blogsome.com/2006/01/09/a-sticky-lesson/#comments</comments>
		<pubDate>Mon, 09 Jan 2006 22:43:32 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/01/09/a-sticky-lesson/</guid>
		<description><![CDATA[	With a dial-up connection reaching 14kbps at max, an &#8216;emerge-delta-webrsync&#8217; consuming only 5 minutes of your uptime, a free access from 0000H - 0800H, and a script that does nasty things like disconnect after &#8216;emerge -f foo&#8217; and switch to &#8216;init 0&#8242;, You will not be able to resist the clamor for an up-to-date box.
	The [...]]]></description>
			<content:encoded><![CDATA[	<p>With a dial-up connection reaching 14kbps at max, an &#8216;emerge-delta-webrsync&#8217; consuming only 5 minutes of your uptime, a free access from 0000H - 0800H, and a script that does nasty things like disconnect after &#8216;emerge -f foo&#8217; and switch to &#8216;init 0&#8242;, You will not be able to resist the clamor for an up-to-date box.</p>
	<p>The lesson began here:</p>
	<pre class="codeblock">
root@kee# emerge =sys-devel/gcc-3.4.4
</pre>
	<p>This does not mean dirty!</p>
	<pre class="codeblock">
joset@kee$ eix -e gcc
	
* sys-devel/gcc
     ...
     Installed:  3.3.6 3.4.4-r1
     Homepage:   http://www.gnu.org/software/gcc/gcc.html
     ...
	
Found 1 matches
joset@kee$
</pre>
	<p>Not realizing that having multiple GCCs installed is normal, and without following the upgrading-gcc-guide, a stupid action followed.</p>
	<pre class="codeblock">
root@kee# emerge -C =sys-devel/gcc-3.3.6
</pre>
	<p>Bang! libstdc++.so.5.0.6, where the hell are you? All programs linked dynamically to this library were paralized! My intention was to clean up gcc-3.3.6 since I have emerged gcc-3.4.4 recently.</p>
	<p>After abusing /dev/ppp0&#8217;s abnormal upstream and downstream rates, I have finally learned my lessons.<br />
<strong><br />
Luckily, my box was revived!</strong> The solution found in <a href="http://eradicus.blogsome.com/go.php?u=http%3A%2F%2Fgentoo-wiki.org&amp;i=0&amp;c=925dd8f78003c4a6ef6f9c57a33f615f5b882482">http://gentoo-wiki.org</a> proved its worth.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/01/09/a-sticky-lesson/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Love is an essential inspiration</title>
		<link>http://eradicus.blogsome.com/2006/01/01/love-is-an-essential-inspiration/</link>
		<comments>http://eradicus.blogsome.com/2006/01/01/love-is-an-essential-inspiration/#comments</comments>
		<pubDate>Sun, 01 Jan 2006 12:13:30 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2006/01/01/love-is-an-essential-inspiration/</guid>
		<description><![CDATA[	Unrequited love, is, something that you should not take away from the person offering you. It is willing to stay to you forever. It will grow on every assault. The longer it takes, the stronger it gets. Unrequited love finds justice if not being deprived of it having expressed.

]]></description>
			<content:encoded><![CDATA[	<p>Unrequited love, is, something that you should not take away from the person offering you. It is willing to stay to you forever. It will grow on every assault. The longer it takes, the stronger it gets. Unrequited love finds justice if not being deprived of it having expressed.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2006/01/01/love-is-an-essential-inspiration/feed/</wfw:commentRss>
	</item>
		<item>
		<title>The true emptiness</title>
		<link>http://eradicus.blogsome.com/2005/12/12/the-true-emptiness/</link>
		<comments>http://eradicus.blogsome.com/2005/12/12/the-true-emptiness/#comments</comments>
		<pubDate>Mon, 12 Dec 2005 14:45:10 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2005/12/12/the-true-emptiness/</guid>
		<description><![CDATA[	It is very important for me to express to you how much you really mean to me.  I wish I could do this in person exquisitely.  But since we are physically separated by miles of emptiness, this expression must come in the form of letters such as this. 
	Life seems to be full [...]]]></description>
			<content:encoded><![CDATA[	<p>It is very important for me to express to you how much you really mean to me.  I wish I could do this in person exquisitely.  But since we are physically separated by miles of emptiness, this expression must come in the form of letters such as this. </p>
	<p>Life seems to be full of trials of this type which test my inner strength, and more importantly, my devotion and love for you. After all, it is said that &#8220;True Love&#8221; is boundless and immeasurable and overcomes all forms of adversity.  In truth, if it is genuine, it will grow stronger with each assault upon its existence. </p>
	<p>I am happy this way. Life is so kind for giving someone like you as my sole inspiration. My love has been assaulted many times, and I am convinced that it is true because the longer I am away from you, the greater is my yearning to see you again. </p>
	<p>Across the miles, I send to you my tender love and my warm embrace. Thank you for being one of my life&#8217;s sweetest blessings.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2005/12/12/the-true-emptiness/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Mystery program</title>
		<link>http://eradicus.blogsome.com/2005/11/29/mystery-program/</link>
		<comments>http://eradicus.blogsome.com/2005/11/29/mystery-program/#comments</comments>
		<pubDate>Tue, 29 Nov 2005 06:47:59 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2005/11/29/mystery-program/</guid>
		<description><![CDATA[	This program is system-dependent, it will run correctly on many different systems. Try it on your machine.
	
#if (VAX || PC)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#define HEX0 0x6c6c6548
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#define HEX1 0x77202c6f
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#define HEX2 0x646c726f
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#define HEX3 0x00000a21
#else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#define HEX0 0x48656c6c
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#define HEX1 0x6f2c2077
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#define HEX2 0x6f726c64
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#define HEX3 0x210a0000
#endif
	
typedef union {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;char what[16];
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;long cipher[4];
} mystery;
	
int main(void)
{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mystery x;
	
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x.cipher[0] = HEX0;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x.cipher[1] = HEX1;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x.cipher[2] = HEX2;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x.cipher[3] = HEX3;
	
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&quot;%s&quot;, x.what);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 0;
}

	Isn&#8217;t it a [...]]]></description>
			<content:encoded><![CDATA[	<p>This program is system-dependent, it will run correctly on many different systems. Try it on your machine.</p>
	<pre class="codeblock">
#if (VAX || PC)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#define HEX0 0x6c6c6548
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#define HEX1 0x77202c6f
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#define HEX2 0x646c726f
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#define HEX3 0x00000a21
#else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#define HEX0 0x48656c6c
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#define HEX1 0x6f2c2077
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#define HEX2 0x6f726c64
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#define HEX3 0x210a0000
#endif
	
typedef union {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;char what[16];
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;long cipher[4];
} mystery;
	
int main(void)
{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mystery x;
	
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x.cipher[0] = HEX0;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x.cipher[1] = HEX1;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x.cipher[2] = HEX2;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x.cipher[3] = HEX3;
	
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&quot;%s&quot;, x.what);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 0;
}
</pre>
	<p>Isn&#8217;t it a wonder?
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2005/11/29/mystery-program/feed/</wfw:commentRss>
	</item>
		<item>
		<title>List application</title>
		<link>http://eradicus.blogsome.com/2005/11/27/list-application/</link>
		<comments>http://eradicus.blogsome.com/2005/11/27/list-application/#comments</comments>
		<pubDate>Sun, 27 Nov 2005 23:50:56 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2005/11/27/list-application/</guid>
		<description><![CDATA[	To illustrate the use of those functions, here is an example.
	
#include&nbsp;&lt;stdio.h&gt;
#include&nbsp;&lt;stdlib.h&gt;
#include&nbsp;&quot;list.h&quot;
	
LINK string_to_list(char []);
void print_list(LINK);
int count_rec(LINK);
	
int main(void)
{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LINK h;
	
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h = string_to_list(&quot;ABC&quot;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&quot;The resulting list is\n&quot;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print_list(h);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&quot;\nThis list has %d elements.\n&quot;, count_rec(h));
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 0;
}

	The output of the program is
	
The resulting list is
A --> B --> C --> NULL
This list has 3 elements.

]]></description>
			<content:encoded><![CDATA[	<p>To illustrate the use of those functions, here is an example.</p>
	<pre class="codeblock">
#include&nbsp;&lt;stdio.h&gt;
#include&nbsp;&lt;stdlib.h&gt;
#include&nbsp;&quot;list.h&quot;
	
LINK string_to_list(char []);
void print_list(LINK);
int count_rec(LINK);
	
int main(void)
{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LINK h;
	
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h = string_to_list(&quot;ABC&quot;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&quot;The resulting list is\n&quot;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print_list(h);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&quot;\nThis list has %d elements.\n&quot;, count_rec(h));
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 0;
}
</pre>
	<p>The output of the program is</p>
	<pre class="codeblock">
The resulting list is
A --> B --> C --> NULL
This list has 3 elements.
</pre>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2005/11/27/list-application/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Printing a list using recursion</title>
		<link>http://eradicus.blogsome.com/2005/11/23/printing-a-list-using-recursion/</link>
		<comments>http://eradicus.blogsome.com/2005/11/23/printing-a-list-using-recursion/#comments</comments>
		<pubDate>Wed, 23 Nov 2005 23:00:00 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2005/11/23/printing-a-list-using-recursion/</guid>
		<description><![CDATA[	This is a function for displaying a list. Oh I just love recursion.
	
void print_list(LINK head)
{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (head == NULL)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&quot;NULL&quot;);
	
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&quot;%c --> &quot;, head -> d;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print_list(head -> next);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
}

]]></description>
			<content:encoded><![CDATA[	<p>This is a function for displaying a list. Oh I just love recursion.</p>
	<pre class="codeblock">
void print_list(LINK head)
{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (head == NULL)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&quot;NULL&quot;);
	
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&quot;%c --> &quot;, head -> d;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print_list(head -> next);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2005/11/23/printing-a-list-using-recursion/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Pro guns</title>
		<link>http://eradicus.blogsome.com/2005/11/21/pro-guns/</link>
		<comments>http://eradicus.blogsome.com/2005/11/21/pro-guns/#comments</comments>
		<pubDate>Mon, 21 Nov 2005 19:10:03 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2005/11/21/pro-guns/</guid>
		<description><![CDATA[	It is indeed true that my passion for guns already existed long before I came to this chaotic world. Guns are the most outstanding weaponry ever in the history of man. Let me give you some facts about my preferred gun as of the moment.
	Avtomat Kalashnikov 47 (AK-47)
	Country:        [...]]]></description>
			<content:encoded><![CDATA[	<p>It is indeed true that my passion for guns already existed long before I came to this chaotic world. Guns are the most outstanding weaponry ever in the history of man. Let me give you some facts about my preferred gun as of the moment.</p>
	<p>Avtomat Kalashnikov 47 (AK-47)</p>
	<p>Country:                 Soviet Union/Russian Federation<br />
Type:                      Assault Rifle<br />
Inventor:                Mikhail Kalashnikov<br />
Year of design:      1947<br />
Service duration:   1951-Present<br />
Cartridge:              7.62 mm X 39<br />
Action:                   Gas-Operated rotating bolt<br />
Rate of fire:           600 rpm<br />
Muzzle velocity:    710 m/s<br />
Effective rage:       300 m<br />
Weight:                  4.3 kg (unloaded)<br />
Length:                   870 mm<br />
Barrel:                    415 mm<br />
Magazine Cap.:      30<br />
Viewing sights:     Adjustable iron sights, optional mount required for optical scope<br />
Variants:                AK-47, AKS, AKM, AKMS, AK-74, AK-101, AK-103<br />
Number built:        More than 1 million excluding unlicensed (paltik)</p>
	<p>Do not confuse yourself with its figure since it resembles a <em>Dragunov</em> sniper rifle when mounted with an optical scope.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2005/11/21/pro-guns/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Counting a list recursively</title>
		<link>http://eradicus.blogsome.com/2005/11/20/count-a-list-recursively/</link>
		<comments>http://eradicus.blogsome.com/2005/11/20/count-a-list-recursively/#comments</comments>
		<pubDate>Sun, 20 Nov 2005 23:00:49 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2005/11/20/count-a-list-recursively/</guid>
		<description><![CDATA[	If there is an iterative way, there must be a recursive way. 
	
int count_rec(LINK head)
{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (head == NULL)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 0;
	
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return (1 + count_rec(head -> next));
}

]]></description>
			<content:encoded><![CDATA[	<p>If there is an iterative way, there must be a recursive way. </p>
	<pre class="codeblock">
int count_rec(LINK head)
{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (head == NULL)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 0;
	
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return (1 + count_rec(head -> next));
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2005/11/20/count-a-list-recursively/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Counting a list iteratively</title>
		<link>http://eradicus.blogsome.com/2005/11/19/counting-a-list-iteratively/</link>
		<comments>http://eradicus.blogsome.com/2005/11/19/counting-a-list-iteratively/#comments</comments>
		<pubDate>Sat, 19 Nov 2005 23:37:45 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2005/11/19/counting-a-list-iteratively/</guid>
		<description><![CDATA[	This is a simple way of counting elements in a list. For some, they would prefer to embed this operation upon list creation and insertion or deletion.
	
int count_it(LINK head)
{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;cnt = 0;
	
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for ( ; head != NULL; head = head -> next)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;++cnt;
	
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return cnt;
}
]]></description>
			<content:encoded><![CDATA[	<p>This is a simple way of counting elements in a list. For some, they would prefer to embed this operation upon list creation and insertion or deletion.</p>
	<pre class="codeblock">
int count_it(LINK head)
{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;cnt = 0;
	
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for ( ; head != NULL; head = head -> next)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;++cnt;
	
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return cnt;
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2005/11/19/counting-a-list-iteratively/feed/</wfw:commentRss>
	</item>
		<item>
		<title>What lies inside</title>
		<link>http://eradicus.blogsome.com/2005/11/19/what-lies-inside/</link>
		<comments>http://eradicus.blogsome.com/2005/11/19/what-lies-inside/#comments</comments>
		<pubDate>Sat, 19 Nov 2005 23:15:34 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2005/11/19/what-lies-inside/</guid>
		<description><![CDATA[	There are things in life that are inevitable and I am powerless to control them. The sun will rise and set, the tide will come in and go out, the seasons will change, friends walk in and out, and the caterpillar will soon turn into a beautiful butterfly. Somehow, I feel reassured by this because [...]]]></description>
			<content:encoded><![CDATA[	<p>There are things in life that are inevitable and I am powerless to control them. The sun will rise and set, the tide will come in and go out, the seasons will change, friends walk in and out, and the caterpillar will soon turn into a beautiful butterfly. Somehow, I feel reassured by this because many other things in life are so transient - so momentary.</p>
	<p>I can&#8217;t imagine life without knowing you. For without you, my life would be empty of all inspiration. There will be no work of art for me to gaze at; no person of greatness before me; no timeless melody to listen to. My life will exist in shades of gray instead of vibrant colors, and I will be less than whole.</p>
	<p>The proper words have escaped me, and my innermost feelings have been locked away in the depths of my heart. I wish I could say these to you in person while gazing into your eyes. I cherish any thought of you, prize any memory of you that rises from the depths of my mind, and live for the day when our eyes meet.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2005/11/19/what-lies-inside/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Creating a list by iteration</title>
		<link>http://eradicus.blogsome.com/2005/11/09/iterative-way-of-creating-a-linked-list/</link>
		<comments>http://eradicus.blogsome.com/2005/11/09/iterative-way-of-creating-a-linked-list/#comments</comments>
		<pubDate>Wed, 09 Nov 2005 23:05:16 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2005/11/09/iterative-way-of-creating-a-linked-list/</guid>
		<description><![CDATA[	The previous post is quite a bit confusing because it is by recursion. Well, nothing special. Here is the code in all its glory.
	
#include&nbsp;&quot;list.h&quot;
	
LINK s_to_l(char s[])
{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LINK head = NULL, tail;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int i;
	
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (s[0] != '\0') {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;head = malloc(sizeof(ELEMENT));
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;head -> d = s[0];
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tail = head;
	
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (i = 1; s[i] != '\0'; ++i) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tail -> next = malloc(sizeof(ELEMENT));
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tail [...]]]></description>
			<content:encoded><![CDATA[	<p>The previous post is quite a bit confusing because it is by recursion. Well, nothing special. Here is the code in all its glory.</p>
	<pre class="codeblock">
#include&nbsp;&quot;list.h&quot;
	
LINK s_to_l(char s[])
{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LINK head = NULL, tail;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int i;
	
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (s[0] != '\0') {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;head = malloc(sizeof(ELEMENT));
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;head -> d = s[0];
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tail = head;
	
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (i = 1; s[i] != '\0'; ++i) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tail -> next = malloc(sizeof(ELEMENT));
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tail = tail -> next;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tail -> d = s[i];
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tail -> next = NULL;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
	
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return head;
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2005/11/09/iterative-way-of-creating-a-linked-list/feed/</wfw:commentRss>
	</item>
		<item>
		<title>A note higher for musicians</title>
		<link>http://eradicus.blogsome.com/2005/11/08/another-step-as-a-musician-2/</link>
		<comments>http://eradicus.blogsome.com/2005/11/08/another-step-as-a-musician-2/#comments</comments>
		<pubDate>Tue, 08 Nov 2005 22:58:28 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2005/11/08/another-step-as-a-musician-2/</guid>
		<description><![CDATA[	On the 25th of November 2005, Parokya ni Edgar, Bamboo, Joey Ayala and Noel Cabangon will be performing live at the Zamboanga City Sports Complex. It will be another big event for us all. Junkyard will be performing too. My bass guitar must serve a purpose of the mirror starting today.

]]></description>
			<content:encoded><![CDATA[	<p>On the 25th of November 2005, Parokya ni Edgar, Bamboo, Joey Ayala and Noel Cabangon will be performing live at the Zamboanga City Sports Complex. It will be another big event for us all. Junkyard will be performing too. My bass guitar must serve a purpose of the mirror starting today.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2005/11/08/another-step-as-a-musician-2/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Window bomb</title>
		<link>http://eradicus.blogsome.com/2005/11/07/window-bomb/</link>
		<comments>http://eradicus.blogsome.com/2005/11/07/window-bomb/#comments</comments>
		<pubDate>Mon, 07 Nov 2005 22:49:57 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2005/11/07/window-bomb/</guid>
		<description><![CDATA[	Whip up your favorite text editor and start doing this.
	
&lt;html&gt;
&lt;title&gt;Window Bomb!&lt;/title&gt;
&lt;script language=&quot;javascript&quot;&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while (true) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;window.open()
}
&lt;/script&gt;
&lt;/html&gt;

	Expecting browsers to ignore this in the future.

]]></description>
			<content:encoded><![CDATA[	<p>Whip up your favorite text editor and start doing this.</p>
	<pre class="codeblock">
&lt;html&gt;
&lt;title&gt;Window Bomb!&lt;/title&gt;
&lt;script language=&quot;javascript&quot;&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while (true) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;window.open()
}
&lt;/script&gt;
&lt;/html&gt;
</pre>
	<p>Expecting browsers to ignore this in the future.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2005/11/07/window-bomb/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Linear linked list</title>
		<link>http://eradicus.blogsome.com/2005/11/07/linear-linked-list/</link>
		<comments>http://eradicus.blogsome.com/2005/11/07/linear-linked-list/#comments</comments>
		<pubDate>Mon, 07 Nov 2005 17:15:50 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2005/11/07/linear-linked-list/</guid>
		<description><![CDATA[	This is how I implement linear linked lists in C. The structure must be defined in a header file.
	In file list.h
	
#include&nbsp;&lt;stdio.h&gt;
#include&nbsp;&lt;stdlib.h&gt;
	
typedef char DATA;     /* an element of type character */
	
struct linked_list{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DATA d;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct linked_list *next;
);
	
typedef struct linked_list ELEMENT;
typedef ELEMENT *LINK;

	Linear linked list includes some of the basic operations:
	1. Create list
2. Count elements
3. [...]]]></description>
			<content:encoded><![CDATA[	<p>This is how I implement linear linked lists in C. The structure must be defined in a header file.</p>
	<p>In file list.h</p>
	<pre class="codeblock">
#include&nbsp;&lt;stdio.h&gt;
#include&nbsp;&lt;stdlib.h&gt;
	
typedef char DATA;     /* an element of type character */
	
struct linked_list{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DATA d;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct linked_list *next;
);
	
typedef struct linked_list ELEMENT;
typedef ELEMENT *LINK;
</pre>
	<p>Linear linked list includes some of the basic operations:</p>
	<p>1. Create list<br />
2. Count elements<br />
3. Look up an element<br />
4. Concatenate lists<br />
5. Insert an element<br />
5. Delete an element</p>
	<p>Here is how I create a list by recursion.</p>
	<pre class="codeblock">
#include&nbsp;&quot;list.h&quot;
	
LINK string_to_list(char s[])
{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LINK head;
	
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (s[0] == '\0') /* base case */
	
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return NULL;
	
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;head = malloc(sizeof(ELEMENT));
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;head -> d = s[0];
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;head -> next = string_to_list(s+1);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return head;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2005/11/07/linear-linked-list/feed/</wfw:commentRss>
	</item>
		<item>
		<title>General notice</title>
		<link>http://eradicus.blogsome.com/2005/11/06/general-notice/</link>
		<comments>http://eradicus.blogsome.com/2005/11/06/general-notice/#comments</comments>
		<pubDate>Sun, 06 Nov 2005 23:38:55 +0000</pubDate>
		<dc:creator>Joset Anthony Zamora</dc:creator>
		
	<category>Blog Post</category>
		<guid>http://eradicus.blogsome.com/2005/11/06/general-notice/</guid>
		<description><![CDATA[	Eradicus provides these entries for educational use. While every reasonable effort is made to ensure that these entries do what is claimed, Eradicus will not be held accountable for any damage or distress caused by the proper or improper usage of these materials, and makes no guarantee in regards to their operation or suitability for [...]]]></description>
			<content:encoded><![CDATA[	<p>Eradicus provides these entries for educational use. While every reasonable effort is made to ensure that these entries do what is claimed, Eradicus will not be held accountable for any damage or distress caused by the proper or improper usage of these materials, and makes no guarantee in regards to their operation or suitability for any specific purpose.</p>
	<p>Digital Stronghold is for research and educational purposes only. The primary intent of this category is to provide the reader with hard to find content for research or self education relevant to all computer science aspects, network security and various protection methods and their intrinsic flaws by demonstrating exploit methods and techniques used to circumvent them. I hope that you are better aware of the danger that lurk out in society today and learn how to protect yourself with the knowledge you need. In continuing you must remember that you are going to use this information only for educational and research purposes.</p>
	<p>While possession of information shown on this blog violates no laws, actually using or implementing some of the contents on this blog may violate some laws.
</p>
]]></content:encoded>
			<wfw:commentRss>http://eradicus.blogsome.com/2005/11/06/general-notice/feed/</wfw:commentRss>
	</item>
	</channel>
</rss>

