<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>FLIXEY.COM</title>
	<atom:link href="http://flixey.com/feed" rel="self" type="application/rss+xml" />
	<link>http://flixey.com</link>
	<description>Randomizing the web</description>
	<pubDate>Sun, 11 May 2008 10:13:27 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Browser-based Games</title>
		<link>http://flixey.com/2008/05/07/browser-based-game</link>
		<comments>http://flixey.com/2008/05/07/browser-based-game#comments</comments>
		<pubDate>Wed, 07 May 2008 22:59:38 +0000</pubDate>
		<dc:creator>Kay Park</dc:creator>
		
		<category><![CDATA[Games]]></category>

		<category><![CDATA[Internet]]></category>

		<guid isPermaLink="false">http://flixey.com/?p=28</guid>
		<description><![CDATA[Sorry I haven&#8217;t been posting (if anyone actually reads my posts.) I&#8217;ve been plain busy and I have to admit lazy. My AP Calculus exam just ended today and before that I had a lot of work to finish. I&#8217;m still being bombarded with work but decided to post after doing nothing for a straight [...]]]></description>
			<content:encoded><![CDATA[<p>Sorry I haven&#8217;t been posting (if anyone actually reads my posts.) I&#8217;ve been plain busy and I have to admit lazy. My AP Calculus exam just ended today and before that I had a lot of work to finish. I&#8217;m still being bombarded with work but decided to post after doing nothing for a straight month.</p>
<p>There are many browser-based game, which are most of the time strategic simulation games. These kind of games don&#8217;t have too many graphics and consists of mostly static images, but they&#8217;re addictive beyond normal games. I&#8217;ve recently started one called <a href="http://tribalwars.net">Tribal Wars</a>, and I&#8217;m already addicted to it (before this, I was addicted to <a href="http://www.ogame.org/">o-game</a>) They&#8217;re both similar games where you attack, farm, get resources, build stuff, and so on; but their settings are very different. The reason these so-called browser-based games are so addictive is because you don&#8217;t play them for hours in a row, but you just access your page for a few minutes whenever you find time. The game lasts for a LONG time: until you get tired of it, or your village gets demolished.</p>
<p>Some people might call these games pointless and an absolute waste of time, but it&#8217;s actually fun. You have to have strategy and think a bit. You engage wars with other players and learn to work together with other people. Communication also becomes an important factor once you start engaging wars in groups such as tribes or clans.</p>
<p>The joy of getting resources, gaining points, constructing buildings, attacking, and taking over are felt when playing these games. It&#8217;s like warcraft or other simulation games except you play for days, months, or even years. These games are also updated consistantly, and your neighbors develop as well. It might depend on who you are, but these games are so addictive you won&#8217;t be able to stop playing and will be attached to your village/planet or whatever you own on the game you play.</p>
]]></content:encoded>
			<wfw:commentRss>http://flixey.com/2008/05/07/browser-based-game/feed</wfw:commentRss>
		</item>
		<item>
		<title>Korean Social Security Number Brute-forcer</title>
		<link>http://flixey.com/2008/04/14/korean-social-security-number-brute-forcer</link>
		<comments>http://flixey.com/2008/04/14/korean-social-security-number-brute-forcer#comments</comments>
		<pubDate>Mon, 14 Apr 2008 15:58:35 +0000</pubDate>
		<dc:creator>Kay Park</dc:creator>
		
		<category><![CDATA[Hardware]]></category>

		<category><![CDATA[Internet]]></category>

		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Programming]]></category>

		<category><![CDATA[Reviews]]></category>

		<category><![CDATA[Security]]></category>

		<category><![CDATA[Web Development]]></category>

		<category><![CDATA[code]]></category>

		<category><![CDATA[secuirity]]></category>

		<category><![CDATA[social security number]]></category>

		<guid isPermaLink="false">http://flixey.com/?p=27</guid>
		<description><![CDATA[(preview)
This is another one of the scripts I wrote quite a while ago. It just wrote it out of pure boredom and actually got somewhere. Korean social securyity numbers have a pattern, consisting of 13 digits segmented into 2 parts of 6 and 7 digits. The first part is like this.
[Birth Year] [Birth Month] [Birth [...]]]></description>
			<content:encoded><![CDATA[<p>(<a href="http://flixey.com/stuff/kor-ssn-bruteforcer/" target="_blank">preview</a>)</p>
<p>This is another one of the scripts I wrote quite a while ago. It just wrote it out of pure boredom and actually got somewhere. Korean social securyity numbers have a pattern, consisting of 13 digits segmented into 2 parts of 6 and 7 digits. The first part is like this.</p>
<div style="text-align: center;">[Birth Year] [Birth Month] [Birth Day]<br />
e.g. 930217</div>
<p>The second part is a bit complicated. It hold information on your gender and which region of Korea you were registered from. The gender codes are 9 for male 0 for female if you were born in the 1800s, 1 and 2 for the 1900s and 3 and 4 for the 2000s. The regional codes are complicated so I&#8217;ll pass on that.</p>
<div style="text-align: center;">[Gender Code] [Regional Code] [Check Number]<br />
e.g. 2004155</div>
<p>The check number is generated by a pattern. The following PHP code calculates it.</p>
<blockquote><p><code>function get_check_no($s_no){<br />
　unset($total);<br />
　　<br />
　for($i=0; $i<13; $i++){<br />
　　$s_no[$i] = intval($s_no[$i]); // convert to integer<br />
　}<br />
　<br />
　// calculate social security number<br />
　$total = $s_no[0]*2 + $s_no[1]*3 + $s_no[2]*4 + $s_no[3]*5 + $s_no[4]*6 + $s_no[5]*7 + $s_no[6]*8 + $s_no[7]*9 + $s_no[8]*2 + $s_no[9]*3 + $s_no[10]*4 + $s_no[11]*5;<br />
　$total = $total%11;<br />
　$check_no = 11-$total;<br />
　<br />
　// if the value of the check number exceeds 9, divide by 10 and return remainder<br />
　if($check_no>9){<br />
　　$check_no = $check_no % 10;<br />
　}<br />
　<br />
　return $check_no; // return result<br />
}</code></p></blockquote>
<p>So I created the bruteforcer by simply letting someone enter a hash, birthdate, and gender to get a general idea of what the SSN will look like. Then I simply incremented the leftover digits and calcultated the check numbers. I then hashed them and checked them with the entered hash value.</p>
<blockquote><p><code>&lt;?php<br />
$b_year = $_POST['b_year'];<br />
$b_month = $_POST['b_month'];<br />
$b_day = $_POST['b_day'];<br />
$gender = $_POST['gender'];<br />
$s_no_hash_str = $_POST['s_no_hash_str'];<br />
$hash_type = $_POST['hash_type'];<br />
// error messages<br />
if(!$b_year){<br />
　echo &#8220;* Enter birth year&lt;br /&gt;&#8221;;<br />
}<br />
if(!$b_month){<br />
　echo &#8220;* Enter birth month&lt;br /&gt;&#8221;;<br />
}<br />
if(!$b_day){<br />
　echo &#8220;* Enter birth day&lt;br /&gt;&#8221;;<br />
}<br />
if(!$gender){<br />
　echo &#8220;* Select gender&lt;br /&gt;&#8221;;<br />
}<br />
if(!$s_no_hash_str){<br />
　echo &#8220;* Enter hashed SSN.&lt;br /&gt;&#8221;;<br />
}<br />
if(!$hash_type){<br />
　echo &#8220;* Select hash type&lt;br /&gt;&#8221;;<br />
}<br />
// if everything is entered, start processing.<br />
if($b_year &amp;&amp; $b_month &amp;&amp; $b_day &amp;&amp; $gender &amp;&amp; $hash_type &amp;&amp; $s_no_hash_str){<br />
// pad valued with 0<br />
$b_year = str_pad($b_year, 4, &#8216;19&#8242;, STR_PAD_LEFT);<br />
$b_month = str_pad($b_month, 2, &#8216;0&#8242;, STR_PAD_LEFT);<br />
$b_day = str_pad($b_day, 2, &#8216;0&#8242;, STR_PAD_LEFT);<br />
$b_year_det = substr($b_year,0,2);<br />
$b_year = substr($b_year,2,2);<br />
if($b_year_det == &#8220;18&#8243;){<br />
　if($gender == &#8220;1&#8243;){<br />
　　$gender = &#8220;9&#8243;;<br />
　}<br />
　else{<br />
　　$gender = &#8220;0&#8243;;<br />
　}<br />
}<br />
else if($b_year_det == &#8220;19&#8243;){<br />
　if($gender == &#8220;1&#8243;){<br />
　　$gender = &#8220;1&#8243;;<br />
　}<br />
　else{<br />
　　$gender = &#8220;2&#8243;;<br />
　}<br />
}<br />
else if($b_year_det == &#8220;20&#8243;){<br />
　if($gender == &#8220;1&#8243;){<br />
　　$gender = &#8220;3&#8243;;<br />
　}<br />
　else{<br />
　　$gender = &#8220;4&#8243;;<br />
　}<br />
}<br />
// loop misc<br />
for($misc=0;$misc&lt;=99999;$misc++){<br />
　// pad misc<br />
　$misc = str_pad($misc, 5, &#8216;0&#8242;, STR_PAD_LEFT); // pad left with 0&#8217;s<br />
　<br />
　// merge valued to form actual s s no<br />
　$s_no_1 = $b_year.$b_month.$b_day;<br />
　$s_no_2 = $gender.$misc;<br />
　<br />
　// get full number including check number<br />
　$s_no_string = $s_no_1.$s_no_2.get_check_no($s_no_1.$s_no_2);<br />
　<br />
　// select hash type and convert<br />
　if($hash_type == &#8220;md5&#8243;){<br />
　　$s_no_hash = md5($s_no_string);<br />
　}<br />
　else if($hash_type == &#8220;sha1&#8243;){<br />
　　$s_no_hash = sha1($s_no_string);<br />
　}<br />
　// if the hash matches the processed, return the value and break loop<br />
　if($s_no_hash == $s_no_hash_str){<br />
　　echo &#8221;<br />
　　Done: &#8220;.$s_no_string.&#8221;(&#8221;.$s_no_hash.&#8221;)<br />
　　&lt;script type=\&#8221;text/javascript\&#8221;&gt;<br />
　<br />
　　&lt;!&#8211;<br />
　　document.getElementById(&#8217;result&#8217;).innerHTML = &#8216;&#8221;.$s_no_string.&#8221;&#8216;;<br />
　　//&#8211;&gt;<br />
　　&lt;/script&gt;<br />
　　&#8221;;<br />
　　break;<br />
　}<br />
　// if not&#8230; just print current value and continue<br />
　else{<br />
　　echo &#8220;Processing: &#8220;.$s_no_string.&#8221;(&#8221;.$s_no_hash.&#8221;)&lt;br /&gt;&#8221;;<br />
　}<br />
}<br />
}<br />
?&gt;</code></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://flixey.com/2008/04/14/korean-social-security-number-brute-forcer/feed</wfw:commentRss>
		</item>
		<item>
		<title>Samsung Syncmaster 245B Arrives!</title>
		<link>http://flixey.com/2008/04/05/samsung-syncmaster-245b-arrives</link>
		<comments>http://flixey.com/2008/04/05/samsung-syncmaster-245b-arrives#comments</comments>
		<pubDate>Sat, 05 Apr 2008 22:01:15 +0000</pubDate>
		<dc:creator>Kay Park</dc:creator>
		
		<category><![CDATA[Computers]]></category>

		<category><![CDATA[Hardware]]></category>

		<category><![CDATA[Reviews]]></category>

		<category><![CDATA[computer]]></category>

		<category><![CDATA[hardware]]></category>

		<category><![CDATA[monitor]]></category>

		<category><![CDATA[samsung]]></category>

		<category><![CDATA[syncmaster]]></category>

		<guid isPermaLink="false">http://flixey.com/?p=25</guid>
		<description><![CDATA[After about a weeks planning, I have finally bought the Samsung Syncmaster 245B. It is a 24 inch TN TFT LCD monitor with VGA and DVI input. Its maximum resolution is 1920 x 1200 which gives quite a bit of workspace. Somereviews say the vewing angles aren&#8217;t too good, but I couldn&#8217;t really tell the [...]]]></description>
			<content:encoded><![CDATA[<p>After about a weeks planning, I have finally bought the Samsung Syncmaster 245B. It is a 24 inch TN TFT LCD monitor with VGA and DVI input. Its maximum resolution is 1920 x 1200 which gives quite a bit of workspace. Somereviews say the vewing angles aren&#8217;t too good, but I couldn&#8217;t really tell the difference. Because I hooked it up to a Dell D410 Latitude laptop which uses a graphics accelerator rather than a real graphics card, the pictures might be a bit lower in quality. But since I don&#8217;t really game or to any graphics intensive working, it hasn&#8217;t been a problem so far.<br />
When I first saw the box, my reaction was &#8220;whoa.&#8221; The monitor was bigger than I really expected and I had to move alot of things around in my room to make it fit properly. After strugglings with tons of cabling , I finally got to hook the monitor up and turn it on. But there was a problem! My computer was OS-less&#8230; The night before I had messed up the OS so I had to reinstall windows before I could check out the monitor. I waited whilst doing some homework and drinking some nice green tea.<br />
After waiting for ever, windows was ready, I installed all the drivers and programs and went through the basic routine when you format a computer. When finally everything was back to normal, I turned on the monitor, and voila, the screen appeared. I had to do adjust the resolution first to 1920 x 1200. The resolution and quality was just awesome. My laptop monitor wasn&#8217;t something you could even compare it with. I tried setting the brightness to maximum, but unlike my laptop, the thing got blinding so I had to set it down a bit.<br />
Overall, I am very satisfied with my monitor and am hoping I can get a computer with a proper graphics card so I can use it to its fullest potential.
<div class="ngg-galleryoverview" id="ngg-gallery-3">
<div class="slideshowlink"><a class="slideshowlink" href="/feed?show=slide">[Show as slideshow]</a></div>
<div id="ngg-image-3" class="ngg-gallery-thumbnail-box ">
<div class="ngg-gallery-thumbnail"  >
	<a href="http://flixey.com/wp-content/gallery/sm245b/IMG_5003.JPG" title="before" class="thickbox" rel="sm245b" ><img title="IMG_5003.JPG" alt="IMG_5003.JPG" src="http://flixey.com/wp-content/gallery/sm245b/thumbs/thumbs_IMG_5003.JPG" style="width:100px; height:75px;" /></a>
</div>
</div>
<div id="ngg-image-6" class="ngg-gallery-thumbnail-box ">
<div class="ngg-gallery-thumbnail"  >
	<a href="http://flixey.com/wp-content/gallery/sm245b/IMG_5006.JPG" title="Samsung Syncmaster 245B Box Side" class="thickbox" rel="sm245b" ><img title="IMG_5006.JPG" alt="IMG_5006.JPG" src="http://flixey.com/wp-content/gallery/sm245b/thumbs/thumbs_IMG_5006.JPG" style="width:100px; height:75px;" /></a>
</div>
</div>
<div id="ngg-image-7" class="ngg-gallery-thumbnail-box ">
<div class="ngg-gallery-thumbnail"  >
	<a href="http://flixey.com/wp-content/gallery/sm245b/IMG_5007.JPG" title="Samsung Syncmaster 245B Box Side" class="thickbox" rel="sm245b" ><img title="IMG_5007.JPG" alt="IMG_5007.JPG" src="http://flixey.com/wp-content/gallery/sm245b/thumbs/thumbs_IMG_5007.JPG" style="width:100px; height:75px;" /></a>
</div>
</div>
<div id="ngg-image-8" class="ngg-gallery-thumbnail-box ">
<div class="ngg-gallery-thumbnail"  >
	<a href="http://flixey.com/wp-content/gallery/sm245b/IMG_5008.JPG" title="Samsung Syncmaster 245B Box Top" class="thickbox" rel="sm245b" ><img title="IMG_5008.JPG" alt="IMG_5008.JPG" src="http://flixey.com/wp-content/gallery/sm245b/thumbs/thumbs_IMG_5008.JPG" style="width:100px; height:75px;" /></a>
</div>
</div>
<div id="ngg-image-9" class="ngg-gallery-thumbnail-box ">
<div class="ngg-gallery-thumbnail"  >
	<a href="http://flixey.com/wp-content/gallery/sm245b/IMG_5009.JPG" title="Samsung Syncmaster 245B Box Top" class="thickbox" rel="sm245b" ><img title="IMG_5009.JPG" alt="IMG_5009.JPG" src="http://flixey.com/wp-content/gallery/sm245b/thumbs/thumbs_IMG_5009.JPG" style="width:100px; height:75px;" /></a>
</div>
</div>
<div id="ngg-image-10" class="ngg-gallery-thumbnail-box ">
<div class="ngg-gallery-thumbnail"  >
	<a href="http://flixey.com/wp-content/gallery/sm245b/IMG_5011.JPG" title="Samsung Syncmaster 245B Box Inside" class="thickbox" rel="sm245b" ><img title="IMG_5011.JPG" alt="IMG_5011.JPG" src="http://flixey.com/wp-content/gallery/sm245b/thumbs/thumbs_IMG_5011.JPG" style="width:100px; height:75px;" /></a>
</div>
</div>
<div id="ngg-image-11" class="ngg-gallery-thumbnail-box ">
<div class="ngg-gallery-thumbnail"  >
	<a href="http://flixey.com/wp-content/gallery/sm245b/IMG_5012.JPG" title="Samsung Syncmaster 245B Box Cables 1" class="thickbox" rel="sm245b" ><img title="IMG_5012.JPG" alt="IMG_5012.JPG" src="http://flixey.com/wp-content/gallery/sm245b/thumbs/thumbs_IMG_5012.JPG" style="width:100px; height:75px;" /></a>
</div>
</div>
<div id="ngg-image-12" class="ngg-gallery-thumbnail-box ">
<div class="ngg-gallery-thumbnail"  >
	<a href="http://flixey.com/wp-content/gallery/sm245b/IMG_5013.JPG" title="Samsung Syncmaster 245B Box Cables 2" class="thickbox" rel="sm245b" ><img title="IMG_5013.JPG" alt="IMG_5013.JPG" src="http://flixey.com/wp-content/gallery/sm245b/thumbs/thumbs_IMG_5013.JPG" style="width:100px; height:75px;" /></a>
</div>
</div>
<div id="ngg-image-13" class="ngg-gallery-thumbnail-box ">
<div class="ngg-gallery-thumbnail"  >
	<a href="http://flixey.com/wp-content/gallery/sm245b/IMG_5015.JPG" title="Samsung Syncmaster 245B Box Instruction manual and CDs" class="thickbox" rel="sm245b" ><img title="IMG_5015.JPG" alt="IMG_5015.JPG" src="http://flixey.com/wp-content/gallery/sm245b/thumbs/thumbs_IMG_5015.JPG" style="width:100px; height:75px;" /></a>
</div>
</div>
<div id="ngg-image-14" class="ngg-gallery-thumbnail-box ">
<div class="ngg-gallery-thumbnail"  >
	<a href="http://flixey.com/wp-content/gallery/sm245b/IMG_5016.JPG" title="Samsung Syncmaster 245B Cables. Power cable, DVI cable, and VGA cable respectively" class="thickbox" rel="sm245b" ><img title="IMG_5016.JPG" alt="IMG_5016.JPG" src="http://flixey.com/wp-content/gallery/sm245b/thumbs/thumbs_IMG_5016.JPG" style="width:100px; height:75px;" /></a>
</div>
</div>
<div id="ngg-image-15" class="ngg-gallery-thumbnail-box ">
<div class="ngg-gallery-thumbnail"  >
	<a href="http://flixey.com/wp-content/gallery/sm245b/IMG_5017.JPG" title="Samsung Syncmaster 245B still in the box" class="thickbox" rel="sm245b" ><img title="IMG_5017.JPG" alt="IMG_5017.JPG" src="http://flixey.com/wp-content/gallery/sm245b/thumbs/thumbs_IMG_5017.JPG" style="width:100px; height:75px;" /></a>
</div>
</div>
<div id="ngg-image-16" class="ngg-gallery-thumbnail-box ">
<div class="ngg-gallery-thumbnail"  >
	<a href="http://flixey.com/wp-content/gallery/sm245b/IMG_5018.JPG" title="Samsung Syncmaster 245B" class="thickbox" rel="sm245b" ><img title="IMG_5018.JPG" alt="IMG_5018.JPG" src="http://flixey.com/wp-content/gallery/sm245b/thumbs/thumbs_IMG_5018.JPG" style="width:100px; height:75px;" /></a>
</div>
</div>
<div id="ngg-image-17" class="ngg-gallery-thumbnail-box ">
<div class="ngg-gallery-thumbnail"  >
	<a href="http://flixey.com/wp-content/gallery/sm245b/IMG_5019.JPG" title="Samsung Syncmaster 245B Control panel 1" class="thickbox" rel="sm245b" ><img title="IMG_5019.JPG" alt="IMG_5019.JPG" src="http://flixey.com/wp-content/gallery/sm245b/thumbs/thumbs_IMG_5019.JPG" style="width:100px; height:75px;" /></a>
</div>
</div>
<div id="ngg-image-18" class="ngg-gallery-thumbnail-box ">
<div class="ngg-gallery-thumbnail"  >
	<a href="http://flixey.com/wp-content/gallery/sm245b/IMG_5020.JPG" title="Samsung Syncmaster 245B Control panel 2" class="thickbox" rel="sm245b" ><img title="IMG_5020.JPG" alt="IMG_5020.JPG" src="http://flixey.com/wp-content/gallery/sm245b/thumbs/thumbs_IMG_5020.JPG" style="width:100px; height:75px;" /></a>
</div>
</div>
<div id="ngg-image-19" class="ngg-gallery-thumbnail-box ">
<div class="ngg-gallery-thumbnail"  >
	<a href="http://flixey.com/wp-content/gallery/sm245b/IMG_5021.JPG" title="Samsung Syncmaster 245B" class="thickbox" rel="sm245b" ><img title="IMG_5021.JPG" alt="IMG_5021.JPG" src="http://flixey.com/wp-content/gallery/sm245b/thumbs/thumbs_IMG_5021.JPG" style="width:100px; height:75px;" /></a>
</div>
</div>
<div id="ngg-image-20" class="ngg-gallery-thumbnail-box ">
<div class="ngg-gallery-thumbnail"  >
	<a href="http://flixey.com/wp-content/gallery/sm245b/IMG_5022.JPG" title="Samsung Syncmaster 245B Back 1" class="thickbox" rel="sm245b" ><img title="IMG_5022.JPG" alt="IMG_5022.JPG" src="http://flixey.com/wp-content/gallery/sm245b/thumbs/thumbs_IMG_5022.JPG" style="width:100px; height:75px;" /></a>
</div>
</div>
<div id="ngg-image-21" class="ngg-gallery-thumbnail-box ">
<div class="ngg-gallery-thumbnail"  >
	<a href="http://flixey.com/wp-content/gallery/sm245b/IMG_5023.JPG" title="Samsung Syncmaster 245B Back 2" class="thickbox" rel="sm245b" ><img title="IMG_5023.JPG" alt="IMG_5023.JPG" src="http://flixey.com/wp-content/gallery/sm245b/thumbs/thumbs_IMG_5023.JPG" style="width:100px; height:75px;" /></a>
</div>
</div>
<div id="ngg-image-22" class="ngg-gallery-thumbnail-box ">
<div class="ngg-gallery-thumbnail"  >
	<a href="http://flixey.com/wp-content/gallery/sm245b/IMG_5024.JPG" title="Samsung Syncmaster 245B Side" class="thickbox" rel="sm245b" ><img title="IMG_5024.JPG" alt="IMG_5024.JPG" src="http://flixey.com/wp-content/gallery/sm245b/thumbs/thumbs_IMG_5024.JPG" style="width:100px; height:75px;" /></a>
</div>
</div>
<div id="ngg-image-23" class="ngg-gallery-thumbnail-box ">
<div class="ngg-gallery-thumbnail"  >
	<a href="http://flixey.com/wp-content/gallery/sm245b/IMG_5025.JPG" title="Samsung Syncmaster 245B on with laptop" class="thickbox" rel="sm245b" ><img title="IMG_5025.JPG" alt="IMG_5025.JPG" src="http://flixey.com/wp-content/gallery/sm245b/thumbs/thumbs_IMG_5025.JPG" style="width:100px; height:75px;" /></a>
</div>
</div>
<div id="ngg-image-24" class="ngg-gallery-thumbnail-box ">
<div class="ngg-gallery-thumbnail"  >
	<a href="http://flixey.com/wp-content/gallery/sm245b/IMG_5026.JPG" title="Samsung Syncmaster 245B on with new wallpaper" class="thickbox" rel="sm245b" ><img title="IMG_5026.JPG" alt="IMG_5026.JPG" src="http://flixey.com/wp-content/gallery/sm245b/thumbs/thumbs_IMG_5026.JPG" style="width:100px; height:75px;" /></a>
</div>
</div>
</div>
<div class='ngg-navigation'><span>1</span><a class="page-numbers" href="/feed?nggpage=2">2</a><a class="next" href="/feed?nggpage=2">&#9658;</a></div>
]]></content:encoded>
			<wfw:commentRss>http://flixey.com/2008/04/05/samsung-syncmaster-245b-arrives/feed</wfw:commentRss>
		</item>
		<item>
		<title>Rapid Share Link Checker</title>
		<link>http://flixey.com/2008/04/05/rapid-share-link-checker</link>
		<comments>http://flixey.com/2008/04/05/rapid-share-link-checker#comments</comments>
		<pubDate>Sat, 05 Apr 2008 21:18:11 +0000</pubDate>
		<dc:creator>Kay Park</dc:creator>
		
		<category><![CDATA[Internet]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Programming]]></category>

		<category><![CDATA[Web Development]]></category>

		<category><![CDATA[RapidShare]]></category>

		<category><![CDATA[source]]></category>

		<guid isPermaLink="false">http://flixey.com/?p=24</guid>
		<description><![CDATA[I made another program under my friend&#8217;s request for it. It&#8217;s a RapidShare.com link checker. It checks if links are dead or not then adds up the filesizes. It&#8217;s a very simple PHP script. It basically works by opening each HTML document, searching for the string with the memory, storing them into an array, then [...]]]></description>
			<content:encoded><![CDATA[<p>I made another program under my friend&#8217;s request for it. It&#8217;s a <a href="../stuff/rs-link-checker/" target="_blank">RapidShare.com link checker</a>. It checks if links are dead or not then adds up the filesizes. It&#8217;s a very simple PHP script. It basically works by opening each HTML document, searching for the string with the memory, storing them into an array, then adding them up. If a filesize is not found, it classified the link as DEAD. It&#8217;s a very simple and could use more security like checking if the link is a rapidshare link before opening it and so forth.</p>
<p><span style="font-weight: bold;">Source Code</span>:</p>
<blockquote><p><code>&lt;?php<br />
$links = $_POST['links']; // get links from POST<br />
$links = explode(&#8221;\n&#8221;,$_POST['links']); // explode links<br />
$z = 0;<br />
$filesize = array(); // define array<br />
while($z &lt;= count($links) -1){ // while $z is smaller than the number of links<br />
　$html = $links[$z]; // store link into var<br />
　$html = @file_get_contents($html); // get contents of link<br />
　preg_match(&#8221;/\(&lt;b&gt;(.*)&lt;\/b&gt; KB\)/i&#8221;,$html,$matches); // pregmatch to get the filesize<br />
　$filesize[$z] = $matches[1]; // store filesize in array<br />
　if(!$filesize[$z]){ // if filesize doesn&#8217;t exist<br />
　　$filesize[$z] = 0; // define as zero<br />
　　$links[$z] = $links[$z].&#8221; DEAD&#8221;; // define as DEAD<br />
　}<br />
　$z++;<br />
}<br />
$filesize[total] = array_sum($filesize); // add all filesized<br />
$filesize[unit] = &#8220;KB&#8221;; // default unit is KB<br />
if($filesize[total] &gt;= 1024){ // If is more than 1024 KB<br />
　$filesize[total] /= 1024; // divide value with 1024<br />
　$filesize[unit] = &#8220;MB&#8221;; // define as MB<br />
　if($filesize[total] &gt;= 1024){ // if value it bigger than 1024 again<br />
　　$filesize[total] /= 1024; // divide by 1024 again<br />
　　$filesize[unit] = &#8220;GB&#8221;; // and define as GB<br />
　}<br />
}<br />
?&gt;<br />
&#8230;<br />
&lt;?php<br />
$i = 0;<br />
while($i &lt;= count($links) -1){ // while $i is smaller than the number of links<br />
　 echo $links[$i].&#8221; (&lt;b&gt;&#8221;.$filesize[$i].&#8221;&lt;/b&gt;)&lt;br /&gt;&#8221;; // print them<br />
　 $i++;<br />
}<br />
echo &#8220;&lt;b&gt;Total&lt;/b&gt;: &#8220;.round($filesize[total],2).$filesize[unit]; // print total filesize<br />
?&gt;</code></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://flixey.com/2008/04/05/rapid-share-link-checker/feed</wfw:commentRss>
		</item>
		<item>
		<title>The Importance of Escaping Characters</title>
		<link>http://flixey.com/2008/04/03/the-importance-of-escaping-characters</link>
		<comments>http://flixey.com/2008/04/03/the-importance-of-escaping-characters#comments</comments>
		<pubDate>Thu, 03 Apr 2008 00:35:23 +0000</pubDate>
		<dc:creator>Kay Park</dc:creator>
		
		<category><![CDATA[Internet]]></category>

		<category><![CDATA[Programming]]></category>

		<category><![CDATA[Security]]></category>

		<category><![CDATA[Web Development]]></category>

		<category><![CDATA[security]]></category>

		<category><![CDATA[sql injection]]></category>

		<guid isPermaLink="false">http://flixey.com/?p=20</guid>
		<description><![CDATA[SQL injection is a fun thing to do when you&#8217;re bored. Just try submitting a typical injection query into a login form, it&#8217;ll work some of the time. I was aware if this, but I am still surprised by the stupidity of many institutions and organization that leave their security compromised by simply not escaping [...]]]></description>
			<content:encoded><![CDATA[<p>SQL injection is a fun thing to do when you&#8217;re bored. Just try submitting a typical injection query into a login form, it&#8217;ll work some of the time. I was aware if this, but I am still surprised by the stupidity of many institutions and organization that leave their security compromised by simply not escaping meta characters.</p>
<p><img class="alignleft size-full wp-image-22" style="width:297px;height:117px;float:left;margin:5px;" title="admin_1" src="http://flixey.com/wp-content/uploads/2008/04/admin_1.png" alt="Login Form of School Admin Panel" /></p>
<p>The screen-shot on the left is the login form of an administrator panel of a school. I&#8217;ve entered a typical SQL injection expression. Let&#8217;s see what happens. (Simple SQL injection is explained <a href="http://flixey.com/2008/03/29/simple-sql-injection">here</a>)</p>
<p style="text-align: center;"><img class="size-full wp-image-23" style="width:450px;height:270px;" title="menu" src="http://flixey.com/wp-content/uploads/2008/04/menu.png" alt="Admin Panel" /></p>
<p>It actually let me login as admin! I mean, I know programmers can make mistakes and school don&#8217;t always hire good programmers, but they should at least try to keep their students&#8217; private data safe. Their whole school data could be erased by a malicious kid who just happened to try SQL injection on their site. A student of that school could even edit his or her own grades, change their own attendance, and lower the grades of someone they don&#8217;t like.</p>
<p>I&#8217;ve tried this with many other sites and a large portion of them failed to escape characters and allowed me to trick the script into logging me in, usually as an administrator. If you run a site with a custom-built script, you should check for this very simple but critical vulnerability. Who knows, maybe your own school&#8217;s administrator panel has this vulnerability.</p>
<p>Although this can turn out to be very chaotic, it actually takes less than a line of code to remedy it. In PHP, the <em>addslashes()</em> function can be used to escape all characters. One function, that&#8217;s all it takes to prevent people from viewing your administrative data and mess around with your site. Check some admin panel logins and try this method, a surprising number of them will fall for this trick and you&#8217;ll be granted administrator power and be granted to do whatever you want with that site (of course, if you&#8217;re caught you&#8217;d be sentenced to cyber crime and thus be screwed).</p>
<p>Go around and check. Tell your friend about a security hole in his site (or possible pull a prank first). Tell your school, organization, and just see their reaction. Just be careful not to bug the school administrator too much or you might get in trouble.</p>
<p><a href="http://xkcd.com/327/">A related and funny comic strip</a> (for those of you who know SQL)</p>
]]></content:encoded>
			<wfw:commentRss>http://flixey.com/2008/04/03/the-importance-of-escaping-characters/feed</wfw:commentRss>
		</item>
		<item>
		<title>FLV Downloader Source</title>
		<link>http://flixey.com/2008/03/31/flv-downloader-source</link>
		<comments>http://flixey.com/2008/03/31/flv-downloader-source#comments</comments>
		<pubDate>Mon, 31 Mar 2008 16:55:32 +0000</pubDate>
		<dc:creator>Kay Park</dc:creator>
		
		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Web Development]]></category>

		<category><![CDATA[flv]]></category>

		<category><![CDATA[source]]></category>

		<guid isPermaLink="false">http://flixey.com/?p=18</guid>
		<description><![CDATA[I&#8217;m releasing my old FLV downloader source. It&#8217;s pretty out-dated and doesn&#8217;t work at all, but you can look at it and make modifications so that it does. The source is really messy which is one of the reasons I decided to remake it into what I have up now (http://video.flixey.com)
The source is as it [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m releasing my old FLV downloader source. It&#8217;s pretty out-dated and doesn&#8217;t work at all, but you can look at it and make modifications so that it does. The source is really messy which is one of the reasons I decided to remake it into what I have up now (http://video.flixey.com)</p>
<p>The source is as it was when I used it except I removed my hosting details, adsense, and analytics sources. Don&#8217;t hesitate to ask or comment through the guestbook or by just commenting on this post.</p>
<p><span style="font-weight: bold;">Info</span></p>
<ul>
<li>Programming languages used: PHP, Javascript</li>
<li>PHP Classes used: PEAR HTTP</li>
<li>Languages available: Korean, Japanese, French, German, English, Polish, Chinese</li>
<li>Requirements</li>
<li>Server must support PHP</li>
<li>Server must support MySQL, or delete the DB related sources</li>
<li>Server must have URL fopen enabled</li>
<li>Once again: it won&#8217;t work out of the box</li>
</ul>
<p><a href="http://flixey.com/wp-content/uploads/2008/03/flv_downloader_flixeycom.zip">Download 1</a></p>
<p><a href="http://flixey.com/wp-content/uploads/2008/03/flv_downloader_flixeycom.zip"></a> <a href="http://www.gaenyeom.net/files/flv_downloader_flixey.com.zip">Download 2</a></p>
]]></content:encoded>
			<wfw:commentRss>http://flixey.com/2008/03/31/flv-downloader-source/feed</wfw:commentRss>
		</item>
		<item>
		<title>Web Standards</title>
		<link>http://flixey.com/2008/03/31/web-standards</link>
		<comments>http://flixey.com/2008/03/31/web-standards#comments</comments>
		<pubDate>Mon, 31 Mar 2008 12:49:56 +0000</pubDate>
		<dc:creator>Kay Park</dc:creator>
		
		<category><![CDATA[Programming]]></category>

		<category><![CDATA[Web Development]]></category>

		<category><![CDATA[cross-browser]]></category>

		<category><![CDATA[dtd]]></category>

		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[standards]]></category>

		<category><![CDATA[w3c]]></category>

		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://flixey.com/?p=16</guid>
		<description><![CDATA[It has been a while since I started to follow web standards and started cross-browser coding (not to be confused to cross-site scripting). I became aware of the importance when I saw the immense number of visitors using Firefox and IE Explorer along with other browsers like Safari and Opera. I even got visitor using [...]]]></description>
			<content:encoded><![CDATA[<p>It has been a while since I started to follow <a title="Web Standards" href="http://en.wikipedia.org/wiki/Web_standards">web standards</a> and started <a title="Cross Browser" href="http://en.wikipedia.org/wiki/Cross-browser">cross-browser</a> coding (not to be confused to <a title="Cross Site Scripting (XSS)" href="http://en.wikipedia.org/wiki/Cross-site_scripting">cross-site scripting</a>). I became aware of the importance when I saw the immense number of visitors using Firefox and IE Explorer along with other browsers like Safari and Opera. I even got visitor using the Play Station 3 browser. I figured I couldn&#8217;t just ignore people using browsers my site didn&#8217;t support, so I learned about the <a title="W3C Technical Reports" href="http://www.w3.org/TR/">W3C Recommendations</a> and basic cross-browser scripting. I stopped using IE specific functions and properties. A book that helped me is <em>SAMS Teach Yourself JavaScript in 24 Hours</em>. It&#8217;s up-to-date and includes information on cross-browser scripting and web standards.</p>
<p style="text-align: center;"><a href="http://flixey.com/wp-content/uploads/2008/03/browsers.gif"><img class="aligncenter size-full wp-image-17" title="browsers" src="http://flixey.com/wp-content/uploads/2008/03/browsers.gif" alt="Broswers" width="465" height="320" /></a></p>
<p>Internet Explorer is still the mainstream browser, but you can see that Firefox is also dominant. In addition, despite having a relatively smaller number of users, Opera and Safari are also a significant segment of the statistics. This table shows the importance of cross-browser coding and web standards.</p>
<p>The first step of following web standards is reading the W3C <a title="XHTML Basic Recommendations" href="http://www.w3.org/TR/2000/REC-xhtml-basic-20001219/">XHTML recommendations</a>. I suggest using the XHTML Transitional DTD since the Strict DTD is literally strict. A DTD is a <a title="Document Type Definition (DTD)" href="http://en.wikipedia.org/wiki/Document_Type_Definition">Document Type Definition</a> and it basically defines the regulations of web standards and is used to validate your <a title="Extensible Hyper Text Markup Language (XHTML)" href="http://en.wikipedia.org/wiki/XHTML">XHTML </a>code. Then you can start validation your websites using the <a title="W3C Validator" href="http://validator.w3.org/">W3C Validator</a> to check whether the document is valid in the DTD you chose.</p>
<p>The second step is to learn how to code your JavasScript to work in all browsers. JavaScript can be scripted to be cross-browser multiple ways, but the most widely used method is by using the <a title="JavaScript Try and Catch" href="http://www.w3schools.com/js/js_try_catch.asp">try and catch</a> method. The following is an example of a cross-browser AJAX object initialization.</p>
<blockquote><p><code>try{<br />
　　// Firefox, Opera 8.0+, Safari, IE7<br />
　　ajaxReq = new XMLHttpRequest();<br />
　　}catch(error){<br />
　　　　// IE5, IE6<br />
　　　　try{<br />
　　　　　　ajaxReq = new ActiveXObject("Msxml2.XMLHTTP");<br />
　　　　　　}catch(error){<br />
　　　　　　　　try{<br />
　　　　　　　　　　ajaxReq = new ActiveXObject("Microsoft.XMLHTTP");<br />
　　　　　　　　　　}catch(error){<br />
　　　　　　　　　　　　return false;<br />
　　　　　　　　　　}<br />
　　　　　　　　}<br />
　　　　　　}<br />
　　　　}<br />
　　}<br />
}</code></p></blockquote>
<p>This script tries a method and if an error occurs it detects it and executes the code within the catch expression. There can be a try expression within a catch expression and thus a cross-browser script can be coded this way.</p>
<p>To successfully code in cross-browser format, you should learn what functions or properties are IE or Firefox specific and avoid using them. Web standards are cross-browser coding are becoming more important by the second, so it&#8217;s to your benefit to get used to them as apply them when you&#8217;re coding.</p>
]]></content:encoded>
			<wfw:commentRss>http://flixey.com/2008/03/31/web-standards/feed</wfw:commentRss>
		</item>
		<item>
		<title>Hosting Update, HostICan Review</title>
		<link>http://flixey.com/2008/03/29/hosting-update-hostican-review</link>
		<comments>http://flixey.com/2008/03/29/hosting-update-hostican-review#comments</comments>
		<pubDate>Sat, 29 Mar 2008 21:16:21 +0000</pubDate>
		<dc:creator>Kay Park</dc:creator>
		
		<category><![CDATA[Internet]]></category>

		<category><![CDATA[Web Development]]></category>

		<category><![CDATA[hosting]]></category>

		<guid isPermaLink="false">http://flixey.com/?p=8</guid>
		<description><![CDATA[As some people might have noticed, the whole site including the video downloader were down for quite a bit yesterday. I was moving hosting and had to get used to the different environment. I switched from awardspace to hostican. So far I&#8217;m very pleased and think I&#8217;ve moved well. Awardspace was always slowing down and [...]]]></description>
			<content:encoded><![CDATA[<p>As some people might have noticed, the whole site including the video downloader were down for quite a bit yesterday. I was moving hosting and had to get used to the different environment. I switched from awardspace to <a href="http://secure.hostican.com/cgi-bin/affiliates/clickthru.cgi?id=kaypark" target="_blank">hostican</a>. So far I&#8217;m very pleased and think I&#8217;ve moved well. Awardspace was always slowing down and had alot of downtimes which frustrated me when i wanted to post or try something out online.</p>
<p>The most significant change is the customer service. Hostican is just absolutely good at handling their customers. They have a ticket system (which most hosting services do), but they reply very fast and send you emails that confirm that your ticket has been submitted. Their phone service is also nice, they pick up quickly and give you friendly replies that actually help. But one of the new things I see is their support over chat. They have a chat window on their website which you can use to gain support, Although the engine itself could use a bit more tweaking, I personally thought it was a great Idea.</p>
<p>The hosting plan I got was their tera-host plan. It has unlimited bandwidth and 1TB of storage. At $93.40 it was a bargain. I used a coupon which was &#8220;BestHosting-12&#8243; and that gave me a $50 discount. But before you barge in and try to host a relatively large site, you might want to consider that they are probably overselling. Hosting companies have thousands of customers and giving 1TB to each customer is one hard-drive per person. The following table is the sidebar on cPanel.</p>
<blockquote>
<table id="stats" border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td width="40%"><span>Main Domain</span></td>
<td align="left">flixey.com</td>
</tr>
<tr>
<td width="40%"><span>Home Directory</span></td>
<td align="left">-</td>
</tr>
<tr>
<td width="40%"><span>Last login from</span></td>
<td align="left">-</td>
</tr>
<tr id="statsbar-diskusage">
<td width="40%"><span>Disk Space Usage</span></td>
<td align="left">34.88/1000000 MB</td>
</tr>
<tr id="statsbar-bandwidthusage">
<td width="40%"><span>Monthly Bandwidth Transfer</span></td>
<td align="left">82.52/∞ MB</td>
</tr>
<tr>
<td width="40%"><span>Email Accounts</span></td>
<td align="left">1/∞</td>
</tr>
<tr>
<td width="40%"><span>Subdomains</span></td>
<td align="left">3/∞</td>
</tr>
<tr>
<td width="40%"><span>Parked Domains</span></td>
<td align="left">0/∞</td>
</tr>
<tr>
<td width="40%"><span>Addon Domains</span></td>
<td align="left">2/∞</td>
</tr>
<tr>
<td width="40%"><span>Ftp Accounts</span></td>
<td align="left">5/∞</td>
</tr>
<tr>
<td width="40%"><span>SQL Databases</span></td>
<td align="left">1/∞</td>
</tr>
<tr>
<td width="40%" align="left"><span>Hosting package</span></td>
<td align="left">Tera-Host</td>
</tr>
<tr>
<td width="40%" align="left"><span>Server Name</span></td>
<td align="left">esc12</td>
</tr>
<tr>
<td width="40%" align="left"><span>cPanel Version</span></td>
<td align="left">11.18.3-RELEASE</td>
</tr>
<tr>
<td width="40%" align="left"><span>cPanel Build</span></td>
<td align="left">21703</td>
</tr>
<tr>
<td width="40%" align="left"><span>Theme</span></td>
<td align="left">x3</td>
</tr>
<tr>
<td width="40%" align="left"><span>Apache version</span></td>
<td align="left">2.2.8 (Unix)</td>
</tr>
<tr>
<td width="40%" align="left"><span>PHP version</span></td>
<td align="left">5.2.5</td>
</tr>
<tr>
<td width="40%" align="left"><span>MySQL version</span></td>
<td align="left">5.0.45-community</td>
</tr>
<tr>
<td width="40%" align="left"><span>Architecture</span></td>
<td align="left">i686</td>
</tr>
<tr>
<td width="40%" align="left"><span>Operating system</span></td>
<td align="left">Linux</td>
</tr>
<tr>
<td width="40%" align="left"><span>Shared Ip Address</span></td>
<td align="left">-</td>
</tr>
<tr>
<td width="40%" align="left"><span>Path to sendmail</span></td>
<td align="left">/usr/sbin/sendmail</td>
</tr>
<tr>
<td width="40%" align="left"><span>Path to PERL</span></td>
<td align="left">/usr/bin/perl</td>
</tr>
<tr>
<td width="40%" align="left"><span>Kernel version</span></td>
<td align="left">2.6.9-67.0.4.ELsmp</td>
</tr>
<tr>
<td width="40%" align="left"><span>cPanel Pro</span></td>
<td align="left">1.0 (RC1)</td>
</tr>
</tbody>
</table>
</blockquote>
<p>The cPanel is good, but it doesn&#8217;t have the greated system for domain management. What is does is it creates a subdomain for each &#8220;add-on domain&#8221; and creates a folder within the root folder of your primary domain. Thus, you can access &#8220;domain2.com&#8221; from &#8220;http://domain.com/domain2.com.&#8221; I managed to prevent this by using .htaccess rules and a few tricks, but it is quite troublesome.</p>
<p>Another thing I like about this hosting is that it&#8217;s pretty flexible. The permissions aren&#8217;t totally locked and you can change it but not go above 755. The directory indexing is open at first so you have to close it with an .htaccess file (of course this isn&#8217;t too good).</p>
<p>Overall, I&#8217;m very pleased with what I have experienced with hostican so far. The strongest pro is their customer support which really helps when you need to know something or get something fixed. Of course I only bought it yesterday and have not experienced everything yet. But I still find it a great hosting and don&#8217;t think I&#8217;ll run into any huge problems. If you&#8217;re interested, you can visit <a href="http://secure.hostican.com/cgi-bin/affiliates/clickthru.cgi?id=kaypark" target="_blank">their website</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://flixey.com/2008/03/29/hosting-update-hostican-review/feed</wfw:commentRss>
		</item>
		<item>
		<title>Ubuntu 7.10 vs. Windows XP</title>
		<link>http://flixey.com/2008/03/29/ubuntu-710-vs-windows-xp</link>
		<comments>http://flixey.com/2008/03/29/ubuntu-710-vs-windows-xp#comments</comments>
		<pubDate>Sat, 29 Mar 2008 21:11:40 +0000</pubDate>
		<dc:creator>Kay Park</dc:creator>
		
		<category><![CDATA[Computers]]></category>

		<category><![CDATA[operating system]]></category>

		<category><![CDATA[ubuntu]]></category>

		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://flixey.com/?p=5</guid>
		<description><![CDATA[Ubuntu is an free and open source linux distribution. It can be installed by using their free ship-it service or by downloading. Ubuntu has many features and in some ways is better than windows. It has nice graphical effects using compiz, supports multiple desktop, and has a good design. It&#8217;s also very light weight so [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ubuntu.com/" target="_blank">Ubuntu</a> is an free and open source <a href="http://en.wikipedia.org/wiki/Linux" target="_blank">linux</a> distribution. It can be installed by using their free <a href="https://shipit.ubuntu.com/" target="_blank">ship-it</a> service or by downloading. Ubuntu has many features and in some ways is better than windows. It has nice graphical effects using compiz, supports multiple desktop, and has a good design. It&#8217;s also very light weight so very good for computers with low-end hardware. Despite these pros, Ubuntu takes forever to set up compared to windows. It took me a few hours just to get the multi-lingual input method working.</p>
<p>Windows is what you&#8217;re probably using now. It&#8217;s the world&#8217;s most renown operating system. Most people now are still using Windows XP but alot of people have already upgraded to Windows Vista. Everyone knows about it, so I&#8217;ll just pass here.</p>
<p>When you compare Ubuntu and Windows, Ubuntu is probably better. However, the most major problem is: Ubuntu doesn&#8217;t have much software! First of all, for those who have iPods, Ubuntu is nearly hell&#8211;especially if you have the new iPod Nano, Classic, or Touch. There are iPod management application for Ubuntu, but they&#8217;re not as good as iTunes for actually managing your iPod. It&#8217;s difficult to set up your libraries and play lists, videos don&#8217;t work most of the time, and Pod Casts aren&#8217;t sorted as Pod Casts. OK, if you have the skills, sure, you might get this to work. But it&#8217;s really time consuming and you need to know alot about computers before you can.</p>
<p>Another con about Ubuntu is it doesn&#8217;t suspend or hibernate properly on certain laptops. There are fixes for this but even those stop working sometimes.</p>
<p>Although Ubuntu might be a bit hard to set up and doesn&#8217;t have so much compatability, it&#8217;s generally a very good OS. It&#8217;s just that not many people use it as much as Windows XP and so there&#8217;s not much software for it.</p>
<p>When you use Ubuntu, you&#8217;ll feel like your flying&#8211;no blue screens of death, no unexpected freezes (ok, some), and generally it gives you a really smooth workspace.</p>
<p>If you want to use Ubuntu, but need to use Windows for certain tasks, you can try dual booting. Before you try this, search for partitioning and see if your motherboard/BIOS supports it.</p>
<p style="text-align: center;">
<div class="ngg-galleryoverview" id="ngg-gallery-1">
<div class="slideshowlink"><a class="slideshowlink" href="/feed?show=slide">[Show as slideshow]</a></div>
<div id="ngg-image-1" class="ngg-gallery-thumbnail-box ">
<div class="ngg-gallery-thumbnail"  >
	<a href="http://flixey.com/wp-content/gallery/posts/ubuntu.jpg" title="" class="thickbox" rel="posts" ><img title="ubuntu.jpg" alt="ubuntu.jpg" src="http://flixey.com/wp-content/gallery/posts/thumbs/thumbs_ubuntu.jpg" style="width:100px; height:75px;" /></a>
</div>
</div>
<div id="ngg-image-2" class="ngg-gallery-thumbnail-box ">
<div class="ngg-gallery-thumbnail"  >
	<a href="http://flixey.com/wp-content/gallery/posts/windows.jpg" title="" class="thickbox" rel="posts" ><img title="windows.jpg" alt="windows.jpg" src="http://flixey.com/wp-content/gallery/posts/thumbs/thumbs_windows.jpg" style="width:100px; height:75px;" /></a>
</div>
</div>
</div>
<div class='ngg-clear'></div>
]]></content:encoded>
			<wfw:commentRss>http://flixey.com/2008/03/29/ubuntu-710-vs-windows-xp/feed</wfw:commentRss>
		</item>
		<item>
		<title>Simple SQL Injection</title>
		<link>http://flixey.com/2008/03/29/simple-sql-injection</link>
		<comments>http://flixey.com/2008/03/29/simple-sql-injection#comments</comments>
		<pubDate>Sat, 29 Mar 2008 19:59:45 +0000</pubDate>
		<dc:creator>Kay Park</dc:creator>
		
		<category><![CDATA[Internet]]></category>

		<category><![CDATA[Programming]]></category>

		<category><![CDATA[security]]></category>

		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://flixey.com/?p=4</guid>
		<description><![CDATA[SQL Injection is a technique used to exploit security holes in a system using SQLs such as MySQL. This kind of security hole usually occurs when a programmer doesn&#8217;t filter quotes or other meta-characters properly. The following code is an example of a such a vulnerability.
if(mysql_query("SELECT * FROM member_tables WHERE id = '".$login_id."' and password [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/SQL_Injection">SQL Injection</a> is a technique used to exploit security holes in a system using SQLs such as MySQL. This kind of security hole usually occurs when a programmer doesn&#8217;t filter quotes or other meta-characters properly. The following code is an example of a such a vulnerability.</p>
<blockquote><p><code>if(mysql_query("SELECT * FROM member_tables WHERE id = '".$login_id."' and password = '".$password."'")){<br />
[...code for login...]<br />
<code>}</code></code></p></blockquote>
<p>If quotes aren&#8217;t stripped from the variables $login_id or $password, a malicious user can inject SQL functions. They could login as the first user, in most cases the administrator, by typing in something like this into either of the two variables:</p>
<blockquote><p><code>s' or 1=1 --</code></p></blockquote>
<p>The one line can be catastrophic to a website&#8217;s security. If the quote isn&#8217;t filtered, the script will read the code like this</p>
<blockquote><p><code>if(mysql_query("SELECT * FROM member_tables WHERE id = 's' or 1=1 --' and password = '[password]&#8216;)){<br />
[...code for login...]<br />
}</code></p></blockquote>
<p>The <em>or</em> statement makes it so even if only one condition matches, it will return a <em>true</em> value and execute the script. Since 1=1 is always true, the script will launch no matter what. The rest of the SQL statements are commented out by the two dashes (&#8211;). Is this the end? Nope.. If the security of the site is so weak, some one could easily delete all the members from the database. It&#8217;s just like the one above, but you add a bit of code and do a bit of guesswork.</p>
<blockquote><p><code>s' or 1=1;DROP TABLE member_table; --</code></p></blockquote>
<p>This would render this in the script</p>
<blockquote><p><code>if(mysql_query("SELECT * FROM member_tables WHERE id = 's' or 1=1;DROP TABLES member_table; -- --' and password = '[password]&#8216;)){<br />
[...code for login...]<br />
}</code></p></blockquote>
<p>That just deletes the table. End, unless you have backup.</p>
<p>As devastating as this can be, it&#8217;s also very simple to prevent. You simply escape or remove quotes from a query using a built in function. In the case of PHP, the <em>addslashes()</em> function does the trick. So, the script above should be fixed to</p>
<blockquote><p><code>$login_id = addslashes($login_id);<br />
$password = addslashes($password);<br />
if(mysql_query("SELECT * FROM member_tables WHERE id = '".$login_id."' and password = '".$password."'")){<br />
[...code for login...]<br />
}</code></p></blockquote>
<p>This function adds backslashes (\) before metacharacters which lets the character be treated as just a string and not a special one that affects the acting of the query.</p>
]]></content:encoded>
			<wfw:commentRss>http://flixey.com/2008/03/29/simple-sql-injection/feed</wfw:commentRss>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.637 seconds -->
