<?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>11h Blog &#187; howto</title>
	<atom:link href="http://blog.11h.net/category/howto/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.11h.net</link>
	<description>The blog of 11h</description>
	<lastBuildDate>Sat, 11 Dec 2010 01:41:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Timestamp in Linux using ftime for millisecond timing</title>
		<link>http://blog.11h.net/erich/86</link>
		<comments>http://blog.11h.net/erich/86#comments</comments>
		<pubDate>Sat, 31 Jan 2009 02:26:47 +0000</pubDate>
		<dc:creator>erich</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.11h.net/erich/84</guid>
		<description><![CDATA[<p>I am working on an embedded project at the moment that prints debug messages to a serial console.Â  Interestingly, it seems that some of the prints are arriving out order from the actual flow of the software when they originate from the same thread.</p> <p>To debug the printing problem and to add another, better layer, <span style="color:#777"> . . . &#8594; Read More: <a href="http://blog.11h.net/erich/86">Timestamp in Linux using ftime for millisecond timing</a></span>]]></description>
			<content:encoded><![CDATA[<p>I am working on an embedded project at the moment that prints debug messages to a serial console.Â  Interestingly, it seems that some of the prints are arriving out order from the actual flow of the software when they originate from the same thread.</p>
<p>To debug the printing problem and to add another, better layer, of debugging to the project I added a time stamp to a preprocessor definition for the existing printf() macro.</p>
<p>Here is the existing print macro:</p>
<pre>
#define debug_print<font COLOR="BLUE" SIZE="+1"><b>(</b></font>fmt<font COLOR="BLUE" SIZE="+1"><b>,</b></font> arg<font COLOR="BLUE" SIZE="+1"><b>)</b></font>          printf <font COLOR="BLUE" SIZE="+1"><b>(</b></font>fmt<font COLOR="BLUE" SIZE="+1"><b>,</b></font> arg<font COLOR="BLUE" SIZE="+1"><b>)</b></font></pre>
<p>To add a time stamp we need to use the timeb struct from sys/timeb.h.Â  Since a struct is used, we need to give it a focus.  Otherwise we&#8217;ll get compile errors.  It will need to be put in a false do while loop.</p>
<pre>
#define debug_print<font COLOR="BLUE" SIZE="+1"><b>(</b></font>fmt<font COLOR="BLUE" SIZE="+1"><b>,</b></font> arg<font COLOR="BLUE" SIZE="+1"><b>)</b></font> &#92;
  <font COLOR="RED"><b>do</b></font> <font COLOR="BLUE" SIZE="+1"><b>{</b></font> &#92;
    struct timeb tp<font COLOR="BLUE" SIZE="+1"><b>;</b></font> &#92;
    ftime<font COLOR="BLUE" SIZE="+1"><b>(</b></font><font COLOR="BLUE" SIZE="+1">&amp;</font>tp<font COLOR="BLUE" SIZE="+1"><b>)</b></font><font COLOR="BLUE" SIZE="+1"><b>;</b></font> &#92;
    printf<font COLOR="BLUE" SIZE="+1"><b>(</b></font><font COLOR="PURPLE">"%ld.%d: "</font> fmt<font COLOR="BLUE" SIZE="+1"><b>,</b></font> tp<font COLOR="BLUE" SIZE="+1"><b>.</b></font>time<font COLOR="BLUE" SIZE="+1"><b>,</b></font> tp<font COLOR="BLUE" SIZE="+1"><b>.</b></font>millitm<font COLOR="BLUE" SIZE="+1"><b>,</b></font> arg<font COLOR="BLUE" SIZE="+1"><b>)</b></font><font COLOR="BLUE" SIZE="+1"><b>;</b></font> &#92;
  <font COLOR="BLUE" SIZE="+1"><b>}</b></font> <font COLOR="RED"><b>while</b></font> <font COLOR="BLUE" SIZE="+1"><b>(</b></font><font COLOR="BROWN">0</font><font COLOR="BLUE" SIZE="+1"><b>)</b></font>
</pre>
<p>Now, in your program you need to make sure sys/timeb.h is added and then use the new print macro.</p>
<pre>
#include <font COLOR="BLUE" SIZE="+1">&lt;</font>stdio<font COLOR="BLUE" SIZE="+1"><b>.</b></font>h<font COLOR="BLUE" SIZE="+1">&gt;</font>
#include <font COLOR="BLUE" SIZE="+1">&lt;</font>sys<font COLOR="BLUE" SIZE="+1">/</font>timeb<font COLOR="BLUE" SIZE="+1"><b>.</b></font>h<font COLOR="BLUE" SIZE="+1">&gt;</font>

#define debug_print<font COLOR="BLUE" SIZE="+1"><b>(</b></font>fmt<font COLOR="BLUE" SIZE="+1"><b>,</b></font> arg<font COLOR="BLUE" SIZE="+1"><b>)</b></font> &#92;
  <font COLOR="RED"><b>do</b></font> <font COLOR="BLUE" SIZE="+1"><b>{</b></font> &#92;
    struct timeb tp<font COLOR="BLUE" SIZE="+1"><b>;</b></font> &#92;
    ftime<font COLOR="BLUE" SIZE="+1"><b>(</b></font><font COLOR="BLUE" SIZE="+1">&amp;</font>tp<font COLOR="BLUE" SIZE="+1"><b>)</b></font><font COLOR="BLUE" SIZE="+1"><b>;</b></font> &#92;
    printf<font COLOR="BLUE" SIZE="+1"><b>(</b></font><font COLOR="PURPLE">"%ld.%d: "</font> fmt<font COLOR="BLUE" SIZE="+1"><b>,</b></font> tp<font COLOR="BLUE" SIZE="+1"><b>.</b></font>time<font COLOR="BLUE" SIZE="+1"><b>,</b></font> tp<font COLOR="BLUE" SIZE="+1"><b>.</b></font>millitm<font COLOR="BLUE" SIZE="+1"><b>,</b></font> arg<font COLOR="BLUE" SIZE="+1"><b>)</b></font><font COLOR="BLUE" SIZE="+1"><b>;</b></font> &#92;
  <font COLOR="BLUE" SIZE="+1"><b>}</b></font> <font COLOR="RED"><b>while</b></font> <font COLOR="BLUE" SIZE="+1"><b>(</b></font><font COLOR="BROWN">0</font><font COLOR="BLUE" SIZE="+1"><b>)</b></font>

<font COLOR="RED"><b>int</b></font> main<font COLOR="BLUE" SIZE="+1"><b>(</b></font><font COLOR="BLUE" SIZE="+1"><b>)</b></font> <font COLOR="BLUE" SIZE="+1"><b>{</b></font>
  <font COLOR="RED"><b>while</b></font><font COLOR="BLUE" SIZE="+1"><b>(</b></font><font COLOR="BROWN">1</font><font COLOR="BLUE" SIZE="+1"><b>)</b></font> <font COLOR="BLUE" SIZE="+1"><b>{</b></font>
    debug_print<font COLOR="BLUE" SIZE="+1"><b>(</b></font><font COLOR="PURPLE">"This is dbg print and a number: %d\n"</font><font COLOR="BLUE" SIZE="+1"><b>,</b></font> <font COLOR="BROWN">10</font><font COLOR="BLUE" SIZE="+1"><b>)</b></font><font COLOR="BLUE" SIZE="+1"><b>;</b></font>
    usleep<font COLOR="BLUE" SIZE="+1"><b>(</b></font><font COLOR="BROWN">10000</font><font COLOR="BLUE" SIZE="+1"><b>)</b></font><font COLOR="BLUE" SIZE="+1"><b>;</b></font>
  <font COLOR="BLUE" SIZE="+1"><b>}</b></font>
  <font COLOR="RED"><b>return</b></font> <font COLOR="BROWN">0</font><font COLOR="BLUE" SIZE="+1"><b>;</b></font>
<font COLOR="BLUE" SIZE="+1"><b>}</b></font></pre>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.11h.net/erich/86/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How to: Make a cheap monitor stand</title>
		<link>http://blog.11h.net/erich/72</link>
		<comments>http://blog.11h.net/erich/72#comments</comments>
		<pubDate>Mon, 14 Jan 2008 06:14:49 +0000</pubDate>
		<dc:creator>erich</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.11h.net/erich/72</guid>
		<description><![CDATA[<p>A while ago, I picked up a several 17&#8243; LCD monitors for pocket change. They were old monitors from a school district in the Seattle area that had upgraded their computers. The only problem with the screens was that they didn&#8217;t have any stands. I&#8217;ve had the screens for almost a year and I haven&#8217;t <span style="color:#777"> . . . &#8594; Read More: <a href="http://blog.11h.net/erich/72">How to: Make a cheap monitor stand</a></span>]]></description>
			<content:encoded><![CDATA[<p><a href="http://picasaweb.google.com/traitorous8/BlogPics/photo#5155205045251414418"><img align="right" src="http://lh6.google.com/traitorous8/R4r3rNqDGZI/AAAAAAAAAiE/WqPUebFOxks/s288/DSCN6453.JPG" /></a>A while ago, I picked up a several 17&#8243; LCD monitors for pocket change. They were old monitors from a school district in the Seattle area that had upgraded their computers.  The only problem with the screens was that they didn&#8217;t have any stands.  I&#8217;ve had the screens for almost a year and I haven&#8217;t used them solely because I haven&#8217;t found a stand for them.  Today, I finally gave up finding cheap stands and just made some.  The following is a quick how to make a LCD monitor stand.</p>
<p>Materials:<br />
acrylic sheet (anything larger than 32cm x 12cm and 0.23622 cm thickness)<br />
aluminum foil<br />
ruler<br />
drill<br />
drill bits<br />
screws<br />
heat source<br />
plastic cutting knife</p>
<p>First, cut a piece of acrylic about 1cm wider than the center of the mounting holes on each side on the mounting area on the screen and long enough to reach the bottom of the screen plus a little extra.  The extra is so that you can bend and create a base for the screen.   For my Dell screen I cut a 12cm x 32cm piece.  That leaves 1cm width of extra acrylic on each side and a lot on the bottom.</p>
<p>Next, mark on the acrylic where the mounting holes reside on the back of the screen.  The holes on my screen were 10cm apart in a square.  Drill the required number of holes in the diameter of the screws.  Make sure it mounts properly.</p>
<p>Measure or eye where the acrylic will need to bend to be effective to hold up the screen.Â  Cover the acrylic that you do not want to bend in aluminum foil.  Leave about a 1cm gap where the acrylic will bend.  The foil will help protect the acrylic from getting hot enough to be malleable.</p>
<p><a href="http://picasaweb.google.com/traitorous8/BlogPics/photo#5155205049546381730"><img align="absmiddle" src="http://lh3.google.com/traitorous8/R4r3rdqDGaI/AAAAAAAAAiM/SVB-dFR8KsM/s288/DSCN6455.JPG" /></a></p>
<p>Use a heat source to heat the acrylic.  I used my stove.  Hold the work piece over the heat source until it begins to bend on it&#8217;s own.  Why work when gravity will do it for you!</p>
<p><a href="http://picasaweb.google.com/traitorous8/BlogPics/photo#5155205053841349042"><img align="absmiddle" src="http://lh4.google.com/traitorous8/R4r3rtqDGbI/AAAAAAAAAiU/uFxybEF069w/s288/DSCN6466.JPG" /></a></p>
<p>Once the work piece is hot, bend to a 90 degree angle.  The weight of the screen will cause this thin acrylic to bend a bit.</p>
<p><a href="http://picasaweb.google.com/traitorous8/BlogPics/photo#5155205058136316370"><img align="absmiddle" src="http://lh5.google.com/traitorous8/R4r3r9qDGdI/AAAAAAAAAik/iPRU0cC3JYw/s288/DSCN6494.JPG" /></a></p>
<p>If you feel adventurous, you can repeat the heat bending process to make a neat base.</p>
<p><a href="http://picasaweb.google.com/traitorous8/BlogPics/photo#5155205053841349058"><img align="left" src="http://lh4.google.com/traitorous8/R4r3rtqDGcI/AAAAAAAAAic/O4pkJnEhk4M/s288/DSCN6499.JPG" /></a></p>
<p><a href="http://picasaweb.google.com/traitorous8/BlogPics/photo#5155205169805466082"><img align="absmiddle" src="http://lh3.google.com/traitorous8/R4r3ydqDGeI/AAAAAAAAAis/6A4m130eeyQ/s288/DSCN6505.JPG" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.11h.net/erich/72/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Eric&#039;s got new swag!</title>
		<link>http://blog.11h.net/erich/67</link>
		<comments>http://blog.11h.net/erich/67#comments</comments>
		<pubDate>Tue, 04 Sep 2007 20:38:42 +0000</pubDate>
		<dc:creator>erich</dc:creator>
				<category><![CDATA[howto]]></category>

		<guid isPermaLink="false">http://blog.11h.net/erich/67</guid>
		<description><![CDATA[<p>Although I cannot compete with Brian&#8217;s pinball repair, I do have some of my own that I should post one of these days. However, since I&#8217;m too busy playing my Night Rider it&#8217;ll be a rainy day when I do post something about it. Instead I&#8217;d like to offer a beginners guide to lighting an <span style="color:#777"> . . . &#8594; Read More: <a href="http://blog.11h.net/erich/67">Eric&#039;s got new swag!</a></span>]]></description>
			<content:encoded><![CDATA[<p>Although I cannot compete with Brian&#8217;s pinball repair, I do have some of my own that I should post one of these days.  However, since I&#8217;m too busy playing my <a title="Night Rider" href="http://picasaweb.google.com/traitorous8/Pinball">Night Rider</a> it&#8217;ll be a rainy day when I do post something about it.<br />
Instead I&#8217;d like to offer a beginners guide to lighting an <a title="MSR Whisperlite" href="http://www.msrcorp.com/stoves/whisper_shaker.asp">MSR Whisperlite</a> liquid gas stove.  For those of you who know me, yes I have all of my fingers and toes but an appropriate quote would be from Adam Savage &#8220;Am I missing an eyebrow?&#8221;<img align="right" alt="MSR Whisperlite" src="http://lh3.google.com/traitorous8/R4q0CdqDGYI/AAAAAAAAAh8/YOctUf0bfng/s400/msr.jpg" /></p>
<p>Back in the 20th century, when I was a boy scout, I recall going on back-packing trips and someone always had a funny looking miniature stove with a bottle and a pump.  I knew that the pump was used to pressurize a fuel that was in the bottle and then burned, what I didn&#8217;t know was how or why they worked.</p>
<p>REI had a big labor day sale.  One of the things that was on sale was a liquid gas stove.  I figured it was about time that I step-up and get a real backpacking stove versus the coleman LP gas stove [that I stole from my parents power outtage supply kit]. Most of the liquid fuel stoves use a variety of white gas (also known as <a href="http://en.wikipedia.org/wiki/Naphtha">Naphtha</a>), diesel, unleaded, alcohol, or oil but they are about twice as expensive.  A little research shows that the aperture of the fuel areator jet is larger for the more viscus fuels.  MSR states that in a pinch unleaded fuel could be used with the Whisperlite but it will require more cleaning.</p>
<p>So, There I was sitting outside my apartment with the stove assembled, filled with fuel, and pressurized.  I&#8217;m reading the manual (this way Brian won&#8217;t say <em>did you RTFM?</em>) and following each instruction <em>very</em> carefully.  The manual says to open the fuel valve 1.5 times to fill the &#8216;primer pan.&#8217;  The fuel that is in the primer pan is then lit.  Well, this step is much easier said than done.  After several failed attempts to &#8216;fill&#8217; the primer cup I finally let the valve stay open for a while.  Eventually I saw a nice little puddle of gas in the primer pan.  OK, I&#8217;m ready to light.</p>
<p>The reason the primer pan is filled with fuel is to get the metal and the fuel line hot.  This stove uses a what EE&#8217;s call a feedback loop.  Heat from the stove pre-heats and vaporizes the fuel in the fuel line which is then pressurized to spray out of the aerator jet and into flame ring.  It&#8217;s a bit odd to think that you have to heat the fuel line to get it to work.</p>
<p>I have a lighter in one hand and the stove in the other.  Pay no attention to the fact that the air was perfectly still, not a single breeze in sight, nor that I had been fiddling with the fuel for 10 or 15 minutes prior to this.  Funny thing about fuel vapors, they are much heavier than air and tend to be invisible until some sort of ignition system is used.</p>
<p>My thumb rolls down the BIC roller and the flint makes a marvelous spark which catches the lighters gas afire.  I bring the lighter close to the primer pan and in an instant it lights  up.  A <a href="http://worsethanfailure.com/Articles/The_Brillant_Paula_Bean.aspx">brillant</a> flame that only the crew aboard the international space station could enjoy engulfed the patio which included the sage and lavender plants and moi.  I jumped for cover &#8211; which I realized was futile as everywhere I looked was glowing.</p>
<p>A few seconds later and everything seemed to put itself out.  Now I had to contend with the fireball that is now my stove.  I followed the instruction to leave the valve open a little while the primer cup was burning, but I&#8217;d have to say that it&#8217;s much safer and easer to just turn the fuel off until the primer cup has burned all the fuel up.  If the stove is hot, it will easily re-light.</p>
<p>The next day I learned from a friend at work that the best thing to do is to carry fire paste or a small squeeze bottle of rubbing alcohol.  That night I tried rubbing alcohol.  It was much easier to use and it didn&#8217;t leave any soot residue on the stove like the white gas.</p>
<p>The best way that I have found to light the Whisperlite is to fill the primer cup with alcohol, light it, wait for the flames to go out or most of the way out, and then light the fire rings like a normal stove.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.11h.net/erich/67/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using cloop in FreeBSD</title>
		<link>http://blog.11h.net/erich/59</link>
		<comments>http://blog.11h.net/erich/59#comments</comments>
		<pubDate>Mon, 26 Mar 2007 04:54:50 +0000</pubDate>
		<dc:creator>erich</dc:creator>
				<category><![CDATA[howto]]></category>

		<guid isPermaLink="false">http://blog.11h.net/erich/59</guid>
		<description><![CDATA[<p>There are lots of Linux distributions that have a &#8216;Live CD&#8217; that allow you to rescue your system or try before you buâ€¦ install.</p> <p>Letâ€™s take a look at Knoppix. It is one of the most popular Live CDâ€™s. In the CD structure of Knoppix there is a file that contains the root file system <span style="color:#777"> . . . &#8594; Read More: <a href="http://blog.11h.net/erich/59">Using cloop in FreeBSD</a></span>]]></description>
			<content:encoded><![CDATA[<p>There are lots of Linux distributions that have a &#8216;Live CD&#8217; that allow you to rescue your system or try before you buâ€¦ install.</p>
<p>Letâ€™s take a look at <a title="Knoppix!" href="http://www.knoppix.net/">Knoppix</a>.  It is one of the most popular Live CDâ€™s.  In the CD structure of Knoppix there is a file that contains the root file system (rootfs).  That file is a <a title="Learn about cloop" href="http://en.wikipedia.org/wiki/Cloop">cloop</a> image file.  Each block is compressed individually which allows decompression on the fly or at a specific point in the file.</p>
<p>This allows a rootfs to be about 1 GB in actual size but compressed it will fit into about 700 MB.</p>
<p>When a system boots from this CD [image], a kernel loads the cloop device and then opens the rootfs cloop file.  Viola!   The root file system is loaded into a ramdisk and is accessible as if it was an installed distribution.</p>
<p>This is great for Linux â€“ not so great for FreeBSD.  There are many Linux only or FreeBSD only file types and differences that make using the two systems on the same network very difficult.</p>
<p>I prefer FreeBSD because of its sheer solidness.  Itâ€™s like comparing a car that uses a gasoline engine (Linux) versus a diesel engine (BSD).  Linux is the new hot-ness; fast, sleek, portable, adaptable, pump-n-go.  FreeBSD is like the 80s era of cars; cast aside because they arenâ€™t sexy, requires the right glow plugs, needs patience, but it will run on any thing that has enough compression and it will go forever.</p>
<p>By default, FreeBSD lacks the ability to mount cloop images.  Luckily, <a title="Read about the man behind Knoppix" href="http://en.wikipedia.org/wiki/Klaus_Knopper">Klaus Knopper</a> wrote a FreeBSD module that allows mounting of a cloop image.  This allows someone that uses FreeBSD to modify a cloop image with out needing a Linux box.</p>
<p>To install the cloop module for FreeBSD, build and install the cloop-utils.</p>
<blockquote><p># cd /usr/ports/sysutils/cloop-utils/<br />
# make &amp;&amp; make install</p></blockquote>
<p>Now to mount the cloop image.</p>
<p>In this example I am using Damn Small Linux tftpboot.</p>
<blockquote><p># unzip dsl-1.5-tftpboot.zip</p></blockquote>
<div>Unzips the PXE Damn Small Linux release</div>
<blockquote><p># gunzip minirt24.gz</p></blockquote>
<div>Gunzips the root file system</div>
<blockquote><p># mdconfig â€“a â€“t vnode â€“f minirt24</p></blockquote>
<div>Creates a virtual device from the minirt24</div>
<blockquote><p># mount â€“t ext2fs /dev/md0 /mnt/dsl</p></blockquote>
<div>Mounts the ext2 file system inside the minirt24 file that was created from mdconfig as /dev/md0</div>
<blockquote><p>#kldload geom_uzip</p></blockquote>
<div>Loads the cloop device so FreeBSD can rw cloop files</div>
<blockquote><p># mdconfig â€“a â€“t vnode â€“f /mnt/dsl/cdrom/KNOPPIX/KNOPPIX</p></blockquote>
<div>Creates a virtual device from the KNOPIX root file system inside minirt24</div>
<blockquote><p># mount â€“t cd9660 /dev/md1.uzip /dev/dslcdrom</p></blockquote>
<div>Mounts the cloop device from md1 using the geom._uzip device</div>
<p>Now you should have access to the cloop â€˜KNOPPIXâ€™ root file system in /mnt/dslcdrom.  Follow the steps in reverse to close and re-zip the files   I my case, it allows me to update any part of the rootfs from the PXE server which is not Linux.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.11h.net/erich/59/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dead iPod</title>
		<link>http://blog.11h.net/erich/56</link>
		<comments>http://blog.11h.net/erich/56#comments</comments>
		<pubDate>Sun, 18 Feb 2007 19:57:31 +0000</pubDate>
		<dc:creator>erich</dc:creator>
				<category><![CDATA[howto]]></category>

		<guid isPermaLink="false">http://blog.11h.net/erich/56</guid>
		<description><![CDATA[<p>It really sucks when all of a sudden your digital music player just goes belly up.</p> <p>My iPod mini did just that Friday evening. It had a good life from 8th June 2005 until 16th February 2007. Of course, I&#8217;m pretty sure that I was the direct cause of its demise.</p> <p>I had the mini <span style="color:#777"> . . . &#8594; Read More: <a href="http://blog.11h.net/erich/56">Dead iPod</a></span>]]></description>
			<content:encoded><![CDATA[<p>It really sucks when all of a sudden your digital music player just goes belly up.</p>
<p>My iPod mini did just that Friday evening.  It had a good life from 8th June 2005 until 16th February 2007.  Of course, I&#8217;m pretty sure that I was the direct cause of its demise.</p>
<p>I had the mini in my back pocket and I sat down.  The hold switch was activated so that the key press wouldn&#8217;t stop the music.  When I removed the mini from my pocket, the forward and play/pause buttons where stuck in the &#8216;pressed&#8217; position.  It seemed that the buttons were caught on the aluminum case.  I gently taped the mini on my desk to un-stick the buttons.  Worked great; the buttons returned to their normal position.</p>
<p>Shortly after, the mini began to skip through all the songs.  No problem I thought, I&#8217;ll just reboot it.  As soon as I pressed the select and menu button, the mini reset and displayed a &#8216;<a title="Apple sad iPod" href="http://docs.info.apple.com/article.html?artnum=61771">sad iPod</a>&#8216; icon.  And I could hear what sounded like hard drive heads clicking. All this time I have always though that my iPod mini was a flash based player.  Apparently, it&#8217;s has a Microdrive in it.</p>
<p><img src="http://lh5.google.com/image/traitorous8/RdimC2VNFjI/AAAAAAAAAAo/X2I2UHdSGH4/s288/DSC04153.small.JPG" /></p>
<p>After <a title="cNet iPod disassembly instructions" href="http://reviews.cnet.com/4520-11293_7-6378822-3.html">disassembling</a> my iPod mini, I removed the Microdrive(R) and replaced it with a 1 GB CF memory card that I was planning on using for another project.  The CF card was going to be used for <a href="http://www.zeroshell.net/eng/">ZeroShell</a>.  Oh well.</p>
<p>Once the Microdrive(R) was replaced with the CF memory card I had to put the mini into <a href="http://docs.info.apple.com/article.html?artnum=93651">disk mode</a> to reformat the &#8216;drive&#8217; using an <a href="http://www.apple.com/support/downloads/ipodupdater20060110.html">iPod Updater</a> (it was not the latest and greatest but it worked perfectly).  Once the update was complete, I reset the iPod again and started iTunes.  When iTunes finally loaded, it asked what I wanted to name the iPod and informed me that my entire music library wasn&#8217;t going to fit on the device (which was down to 1GB from 4GB).</p>
<p>Changing the mini from a Microdrive(R) to flash really increased the update speed.  After a few minutes, iTunes had loaded as much audio onto the mini as it could fit.</p>
<p>When I was disassembling the mini, I managed to scratch the select button on the touch pad and mauled the aluminum case.  Since it still works, I&#8217;m not that upset about it.<br />
<img src="http://lh5.google.com/image/traitorous8/RdimC2VNFkI/AAAAAAAAAAw/lPcrkO8JCQs/s288/DSC04156.small.JPG" /><img src="http://lh5.google.com/image/traitorous8/RdimC2VNFlI/AAAAAAAAAA4/oU3OtzPjPNU/s288/DSC04159.small.JPG" /></p>
<p>UPDATE:</p>
<p>30 June 2007 &#8211; I&#8217;ve updated my iPod with a <a title="pqi 8GB CF card" href="http://www.amazon.com/PQI-AC61-8030R0101-Hi-Speed-Compact-Flash/dp/B000M565KC/ref=sr_1_1/002-9584130-1228856?ie=UTF8&amp;s=electronics&amp;qid=1183266189&amp;sr=8-1">pqi 8GB CF</a>.  iTunes 7 will restore the firmware/format on the new disk which makes the iPod updater obsolete.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.11h.net/erich/56/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>X forwarding &#8211; my reminder</title>
		<link>http://blog.11h.net/erich/50</link>
		<comments>http://blog.11h.net/erich/50#comments</comments>
		<pubDate>Sun, 19 Nov 2006 10:06:14 +0000</pubDate>
		<dc:creator>erich</dc:creator>
				<category><![CDATA[howto]]></category>

		<guid isPermaLink="false">http://blog.11h.net/erich/50</guid>
		<description><![CDATA[<p>Every once and a while, I have a brain lapse.</p> <p>A long time ago, my father showed me how to forward X applications from another system to my localhost with Cygwin.</p> <p>Unfortunately, between that time and now, I had forgotten what he had showed me.</p> <p>So, as a reminder for myself, here&#8217;s how:</p> <p>The classic <span style="color:#777"> . . . &#8594; Read More: <a href="http://blog.11h.net/erich/50">X forwarding &#8211; my reminder</a></span>]]></description>
			<content:encoded><![CDATA[<p>Every once and a while, I have a brain lapse.</p>
<p>A long time ago, my father showed me how to forward X applications from another system to my localhost with Cygwin.</p>
<p>Unfortunately, between that time and now, I had forgotten what he had showed me.</p>
<p>So, as a reminder for myself, here&#8217;s how:</p>
<p>The classic is assumed here:</p>
<blockquote>
<ul>
<li>Cygwin is installed with X.</li>
<li>Putty</li>
<li>Remote system with X utilities</li>
</ul>
</blockquote>
<p>On the localhost:<br />
Start Cygwin then type</p>
<blockquote><p>$ X -multiwindow &amp;<br />
$ export DISPLAY=127.0.0.1:0.0</p></blockquote>
<p>Start putty:</p>
<blockquote><p>Under Connection -&gt; SSH -&gt; X11 -&gt; Forwarding<br />
Check the â€˜Enable X11 forwardingâ€™<br />
In the â€˜X display location&#8217;, enter:<br />
127.0.0.1:0.0</p></blockquote>
<p>Open the connection to the remote host as normal from this point.<br />
Once logged in, you can now open your X apps from the server</p>
<blockquote><p>$ gschem</p></blockquote>
<p><img align="middle" alt="gschem in Windows from FreeBSD system" src="http://gallery.11h.net/d/12165-2/gschem.PNG" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.11h.net/erich/50/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Making RAID array in Slackware (because it&#8217;s easy as pie!)</title>
		<link>http://blog.11h.net/erich/43</link>
		<comments>http://blog.11h.net/erich/43#comments</comments>
		<pubDate>Tue, 30 May 2006 03:00:43 +0000</pubDate>
		<dc:creator>erich</dc:creator>
				<category><![CDATA[howto]]></category>

		<guid isPermaLink="false">http://www.11h.net/blog/?p=43</guid>
		<description><![CDATA[<p>Let&#8217;s say that you needed to store a large amount of data in a central location (I.E. directory) but the largest drive that you can afford and find for a reasonable price is a 400GB Seagate SATA drive.</p> <p>Unlike other OSes that I have used, Slackware has an awesome â€˜autoraidâ€™ capability that is idiot proof. <span style="color:#777"> . . . &#8594; Read More: <a href="http://blog.11h.net/erich/43">Making RAID array in Slackware (because it&#8217;s easy as pie!)</a></span>]]></description>
			<content:encoded><![CDATA[<p>Let&#8217;s say that you needed to store a large amount of data in a central location (I.E. directory) but the largest drive that you can afford and find for a reasonable price is a 400GB Seagate SATA drive.</p>
<p>Unlike other OSes that I have used, Slackware has an awesome â€˜autoraidâ€™ capability that is idiot proof.  Believe me!  Iâ€™m not only the president, Iâ€™m also a client!</p>
<p>In four easy steps you too can have a RAID 0, 1, or 5 setup.</p>
<p><strong>Step 1</strong>:  Use fdisk to prepare the disk</p>
<blockquote><p><em># fdisk /dev/sda</em> # sd just happens to be the SCSI/SATA controller on my system</p>
<p>Disk /dev/sda: 400.0 GB, 400088457216 bytes</p>
<p>255 heads, 63 sectors/track, 48641 cylinders<br />
Units = cylinders of 16065 * 512 = 8225280 bytes<br />
Device Boot      Start         End      Blocks   Id  System<br />
Command (m for help): n</p>
<p>Command action</p>
<p>e   extended<br />
p   primary partition (1-4)<br />
p<br />
Partition number (1-4): 1<br />
First cylinder (1-48641, default 1):<br />
Using default value 1<br />
Last cylinder or +size or +sizeM or +sizeK (1-48641, default 48641):<br />
Using default value 48641</p>
<p>Command (m for help): t<br />
Selected partition 1<br />
Hex code (type L to list codes): fd                 #fd is â€œLinux raid autoï¿½?<br />
Changed system type of partition 1 to fd (Linux raid autodetect)</p>
<p>Repeat the same step for each drive.</p></blockquote>
<p><strong>Step 2</strong>:  Creating the configuration file</p>
<blockquote><p>Edit or create the file <em>/etc/raidtab</em> with the following content</p></blockquote>
<blockquote><p>raiddev /dev/md0<br />
raid-level 0<br />
nr-raid-disks 2<br />
nr-spare-disks 0<br />
persistent-superblock 1<br />
chunk-size 128<br />
device /dev/sda1<br />
raid-disk 0<br />
device /dev/sdb1<br />
raid-disk 1</p>
<p># repeat for each â€˜raidâ€™ disk:</p>
<p># device /dev/xdaz<br />
# raid-disk n</p></blockquote>
<p><strong>Step 3</strong>: Making the RAID</p>
<blockquote><p><em># mkraid /dev/md0</em></p></blockquote>
<p><strong>Step 4</strong>: Formatting the new RAID device</p>
<blockquote><p><em># mkfs.reiserfs /dev/md0</em></p></blockquote>
<p>Be sure to add the /dev/md0 device to your fstab so it will mount the next time the system reboots.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.11h.net/erich/43/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

