<?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>Anthony's Blog</title>
	<atom:link href="http://www.anthonyldechiaro.com/blog/feed" rel="self" type="application/rss+xml" />
	<link>http://www.anthonyldechiaro.com/blog</link>
	<description>Thoughts, ideas, and ramblings of a crazed mind</description>
	<lastBuildDate>Fri, 05 Jun 2009 00:01:13 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Interesting alternative to off-site backup</title>
		<link>http://www.anthonyldechiaro.com/blog/archives/329</link>
		<comments>http://www.anthonyldechiaro.com/blog/archives/329#comments</comments>
		<pubDate>Fri, 05 Jun 2009 00:01:13 +0000</pubDate>
		<dc:creator>Anthony</dc:creator>
				<category><![CDATA[blurb]]></category>

		<guid isPermaLink="false">http://www.anthonyldechiaro.com/blog/?p=329</guid>
		<description><![CDATA[Saw an interesting post over at Planet Sysadmin regarding a fire &#38; water proof external hard drive by ioSafe &#8211; http://blogs.techrepublic.com.com/security/?p=1719.  Rated up to 1,550 F for 30 minutes and starting only at $150 for the 500 GB model sounds very tempting in my book.
 ]]></description>
			<content:encoded><![CDATA[<p>Saw an interesting post over at Planet Sysadmin regarding a fire &amp; water proof external hard drive by ioSafe &#8211; <a href="http://blogs.techrepublic.com.com/security/?p=1719">http://blogs.techrepublic.com.com/security/?p=1719</a>.  Rated up to 1,550 F for 30 minutes and starting only at $150 for the 500 GB model sounds very tempting in my book.</p>
 <img src="http://www.anthonyldechiaro.com/blog/wp-content/plugins/feed-statistics.php?view=1&post_id=329" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.anthonyldechiaro.com/blog/archives/329/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wolfram&#124;Alpha</title>
		<link>http://www.anthonyldechiaro.com/blog/archives/326</link>
		<comments>http://www.anthonyldechiaro.com/blog/archives/326#comments</comments>
		<pubDate>Sat, 16 May 2009 14:26:03 +0000</pubDate>
		<dc:creator>Anthony</dc:creator>
				<category><![CDATA[knowledge]]></category>
		<category><![CDATA[science]]></category>
		<category><![CDATA[computing]]></category>
		<category><![CDATA[electronics]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[physics]]></category>

		<guid isPermaLink="false">http://www.anthonyldechiaro.com/blog/?p=326</guid>
		<description><![CDATA[I&#8217;ve been a fan of Wolfram&#8217;s A New Kind of Science when I first heard about it maybe 5 years ago.  The book was a very interesting read but I didn&#8217;t dive too much deeper into the material at the time.  CA (cellular automata) were interesting from the perspective of my CS background, and I [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">I&#8217;ve been a fan of Wolfram&#8217;s <a href="http://www.wolframscience.com/" target="_blank">A New Kind of Science</a> when I first heard about it maybe 5 years ago.  The book was a very interesting read but I didn&#8217;t dive too much deeper into the material at the time.  CA (cellular automata) were interesting from the perspective of my CS background, and I still find it fascinating that complex systems such as fluid flow can be modeled with a set of simple equations rather then beast that are the Navier-Stokes equations.  But if I was a physics major I probably would have played with Mathematica substancially more and studied the concepts further, rather then let them sit in the back of my mind as mere curiosity.  Regardless, I kept an ear open for any more projects Steven was working on and when I first saw an glimpse of Wolfram|Alpha, I was seriously impressed.  (<a href="http://www.wolframalpha.com/screencast/introducingwolframalpha.html" target="_blank">overview video</a>)</p>
<p style="text-align: justify;">Since then I&#8217;ve been patiently waiting for the public launch, and last night I spent watching the live webcast and finally playing around with the engine.  It is still very much in a beta stage as it can only understand certain branches of knowledge.  But for what it can do, wow.  I&#8217;m extremely interested to learn how Wolfram exactly accomlished all this, I understand it uses Mathematica as a backend but just the idea of expressing that depth and breath of data in a computing language is fascinating.  There were a few clips of the engineers talking about the infrastructure.  Hardware geeks would get their fill at the supercomputer they build to run this thing (44th largest @ 10,000 cores using Dell quad Xeon&#8217;s and nearly an exabyte of storage).  Oh, and they&#8217;ve opened up an <a href="http://www.wolframalpha.com/developers.html" target="_blank">API for developers</a>!</p>
<p>There are lots of example queries to browse through, but here are some simple ones:</p>
<p>Weather on a particular date &#8211; http://www.wolframalpha.com/input/?i=weather+november+5+1955</p>
<p>&#8230;no thunderstorms predicted that night at 45 F and overcast (uses your current location).</p>
<p>The natural-language parser is fairly flexible.  You can enter queries like &#8220;weather day obama was born&#8221;.  It&#8217;s far from perfect and chokes on more complicated strings but useful nonetheless.</p>
<p>Playing around with the knowledge engine for a few minutes, I&#8217;ve learned that:</p>
<ul>
<li>A 5 earth mass body orbiting a 10 solar mass star with a semi-major axis of 2.5 AU has a period of <a href="http://www.wolframalpha.com/input/?i=Kepler%27s+third+law%2C+10+solar+masses%2C+5+Earth+masses%2C+2.5+AU" target="_blank">1.251 years</a>.</li>
<li>A <a href="http://www.wolframalpha.com/input/?i=50+megatons&amp;a=UnitClash_*megatons.*MegatonsOfTNT--" target="_blank">50 megaton</a> explosion (TNT) is:
<ul>
<li> 1.2 times the total energy that hits earth every second from the sun</li>
<li>1.0 times the energy released the Krakatoa eruption and the amount of energy</li>
<li>Has the same energy as a relativistic mass of 2.3 kg</li>
</ul>
</li>
<li><a href="http://www.wolframalpha.com/input/?i=Hurricane+Katrina%2C+Hurricane+Andrew" target="_blank">Hurricane Andrew lasted 4 days longer then Katrina</a>, but had the same maximum wind speed of 150 mph (on dates 5 calendar days apart)</li>
</ul>
<p>You can also get nice <a href="http://www.wolframalpha.com/input/?i=c%23+minor" target="_blank">visual representations of chords</a>.  Or checkout the <a href="http://www.wolframalpha.com/input/?i=5500+C" target="_blank">blackbody spectrum at the temperature of the surface of the sun</a>.</p>
<p>Go <a href="http://www.wolframalpha.com/" target="_blank">give it</a> a shot!  You can also download W|A <a href="http://www.wolframalpha.com/downloads.html" target="_blank">toolbars, firefox search engine add-ons, gadgets, and more</a>.</p>
<p><script id="WolframAlphaScript" src="http://www.wolframalpha.com/input/embed/?type=medium" type="text/javascript"></script></p>
 <img src="http://www.anthonyldechiaro.com/blog/wp-content/plugins/feed-statistics.php?view=1&post_id=326" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.anthonyldechiaro.com/blog/archives/326/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Efficient file copying with pipeviewer and netcat</title>
		<link>http://www.anthonyldechiaro.com/blog/archives/323</link>
		<comments>http://www.anthonyldechiaro.com/blog/archives/323#comments</comments>
		<pubDate>Thu, 14 May 2009 18:17:32 +0000</pubDate>
		<dc:creator>Anthony</dc:creator>
				<category><![CDATA[admin]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[netcat]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[pv]]></category>
		<category><![CDATA[raid]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[tar]]></category>

		<guid isPermaLink="false">http://www.anthonyldechiaro.com/blog/?p=323</guid>
		<description><![CDATA[I couldn&#8217;t help myself anymore.  Newegg had 1 TB green drives on sale&#8230;  again, and my old ~1 TB storage array was nearly full.  Since my random computer parts are scattered about, I grabbed the only extra working machine I could find and threw the 4 drives into it.  Unfortunately for me the machine was [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">I couldn&#8217;t help myself anymore.  Newegg had 1 TB green drives on sale&#8230;  again, and my old ~1 TB storage array was nearly full.  Since my random computer parts are scattered about, I grabbed the only extra working machine I could find and threw the 4 drives into it.  Unfortunately for me the machine was an old Athlon 64 3200+ so the RAID-5 syncing took some time (10+ hours, it was maxing out CPU at ~25MB/s).</p>
<p style="text-align: justify;">Now came the process of migrating the data over from my file server to the new array.  I didn&#8217;t want to fiddle with NFS or anything of that nature since I was booting off a Jaunty live CD.  SSH was certainly possible but then there was the overhead.  Rsync was another solution.  But then I recalled a extremely fast way with tar &amp; netcat.  Combine that with pipeviewer and you&#8217;ll get a fast transfer complete with verbose information.</p>
<p style="text-align: justify;">It&#8217;s very simple.  With two computers, source and dest, you simply run the following:</p>
<p style="text-align: justify;">On source (with IP 192.168.0.10):</p>
<pre style="text-align: justify;">tar -cf - /path | pv | nc -l -p 8888 -q 5</pre>
<p style="text-align: justify;">This will tar up /path and pipe it to netcat, which is listening on port 8888 for an incoming connection.</p>
<p style="text-align: justify;">On dest:</p>
<pre style="text-align: justify;">nc 192.168.0.10 | pv | tar -xf -</pre>
<p>Connect to source and pipe the output to tar for extraction.</p>
<p>Credit to Peteris&#8217; wonderful <a href="http://www.catonmat.net/blog/unix-utilities-pipe-viewer/" target="_blank">blog entry on pv</a>.</p>
 <img src="http://www.anthonyldechiaro.com/blog/wp-content/plugins/feed-statistics.php?view=1&post_id=323" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.anthonyldechiaro.com/blog/archives/323/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Learning</title>
		<link>http://www.anthonyldechiaro.com/blog/archives/316</link>
		<comments>http://www.anthonyldechiaro.com/blog/archives/316#comments</comments>
		<pubDate>Fri, 08 May 2009 00:51:34 +0000</pubDate>
		<dc:creator>Anthony</dc:creator>
				<category><![CDATA[author]]></category>
		<category><![CDATA[knowledge]]></category>

		<guid isPermaLink="false">http://www.anthonyldechiaro.com/blog/?p=316</guid>
		<description><![CDATA[Learning.  A subject of much interest, for those who respect it&#8217;s power.  Something that can absorb you completely and spit you back out nearly a new person.  I&#8217;ve always loved the process of learning and strived to prioritize it above all things but have never put it so wonderfully as my friend Matt over at [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Learning.  A subject of much interest, for those who respect it&#8217;s power.  Something that can absorb you completely and spit you back out nearly a new person.  I&#8217;ve always loved the process of learning and strived to prioritize it above all things but have never put it so wonderfully as my friend Matt over at <a href="http://standalone-sysadmin.blogspot.com/">Standalone Sysadmin</a>.  A brief quote:</p>
<blockquote>
<p style="text-align: justify;">If you’re unfamiliar with the term “autodidact”, you’re not alone. An autodidact is an individual who takes the initiative to teach themselves, rather than go through the formal process of education and studying under a professor. Autodidactism, as it is known, has a long history and includes such luminaries as Socrates, Benjamin Franklin, and Thomas Edison. Even Samuel Clemens once famously wrote as Mark Twain, “I have never let my schooling interfere with my education”. Indeed.</p>
</blockquote>
<p style="text-align: justify;">I don&#8217;t believe autodidact sounds familiar, but definitely something I&#8217;m familiar with.  The way I see it, it&#8217;s the only way to truly know a subject.  Maybe you will catch some inspiraction reading the rest of <a href="http://standalone-sysadmin.blogspot.com/2009/05/learning.html">Matt&#8217;s posting</a>.</p>
 <img src="http://www.anthonyldechiaro.com/blog/wp-content/plugins/feed-statistics.php?view=1&post_id=316" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.anthonyldechiaro.com/blog/archives/316/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Repository Management</title>
		<link>http://www.anthonyldechiaro.com/blog/archives/311</link>
		<comments>http://www.anthonyldechiaro.com/blog/archives/311#comments</comments>
		<pubDate>Wed, 29 Apr 2009 01:19:38 +0000</pubDate>
		<dc:creator>Anthony</dc:creator>
				<category><![CDATA[admin]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[apt-mirror]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[jaunty]]></category>
		<category><![CDATA[repository]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[update]]></category>
		<category><![CDATA[upgrade]]></category>

		<guid isPermaLink="false">http://www.anthonyldechiaro.com/blog/?p=311</guid>
		<description><![CDATA[For those of you who are unaware, the latest Ubuntu release &#8211; Jaunty &#8211; was released several days ago.  Normally, the fastest way to get the latest version is to torrent an ISO&#8230;  the repositories are so overloaded attempting to do an upgrade is not even remotely possible.  However, there is an alternative I stumbled [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">For those of you who are unaware, the latest Ubuntu release &#8211; <a href="http://www.ubuntu.com/getubuntu/download" target="_blank">Jaunty</a> &#8211; was released several days ago.  Normally, the fastest way to get the latest version is to <a href="http://www.ubuntu.com/getubuntu/downloadmirrors#bt" target="_blank">torrent an ISO</a>&#8230;  the repositories are so overloaded attempting to do an upgrade is not even remotely possible.  However, there is an alternative I stumbled upon.  Instead of using the default Ubuntu repositories, <a href="http://blog.techfun.org/how-to-select-the-fastest-ubuntu-repository-mirror" target="_blank">select the fastest mirror</a>, apt-get update, then upgrade away!  I was getting sustained rates of 300 KB/s without any issue during my upgrade.</p>
<p style="text-align: justify;">On a related note, I&#8217;ve considered tinkering with creating my own local repository mirror.  Not that I have nearly enough machines to make it necessary, but it would be an entertaining exercise.  Even found a <a href="http://www.howtoforge.com/local_debian_ubuntu_mirror" target="_blank">basic HOW-TO</a> or <a href="http://odzangba.wordpress.com/2007/12/24/use-apt-mirror-to-create-your-own-ubuntu-mirror/" target="_blank">two</a>.  However I have heard of potential issues: it can take weeks to fully mirror several distributitions (several GB each) and with an incomplete repository it would be somewhat pointless to use.  Luckily there seems to be an <a href="http://www.softwarefreedom.org/blog/2008/jan/24/apt-mirror-2/" target="_blank">easy solution with mod_rewrite</a>.</p>
 <img src="http://www.anthonyldechiaro.com/blog/wp-content/plugins/feed-statistics.php?view=1&post_id=311" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.anthonyldechiaro.com/blog/archives/311/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SheevaPlug Basics + MultiBoot</title>
		<link>http://www.anthonyldechiaro.com/blog/archives/300</link>
		<comments>http://www.anthonyldechiaro.com/blog/archives/300#comments</comments>
		<pubDate>Wed, 15 Apr 2009 01:10:22 +0000</pubDate>
		<dc:creator>Anthony</dc:creator>
				<category><![CDATA[electronics]]></category>
		<category><![CDATA[embedded]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[shivaplug]]></category>

		<guid isPermaLink="false">http://www.anthonyldechiaro.com/blog/?p=300</guid>
		<description><![CDATA[I thought documenting my notes and what I&#8217;ve leared about the SheevaPlug so far may be useful so I&#8217;m putting together a basic HOW-TO.  The documentation from GlobalScale Technology is a great place to start.
Firstly, it will likely come pre-installed with Ubuntu Jaunty Beta, although possibly Gentoo.  Both can run on the plug in addition [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">I thought documenting my notes and what I&#8217;ve leared about the SheevaPlug so far may be useful so I&#8217;m putting together a basic HOW-TO.  The <a href="http://globalscaletechnologies.com/t-sheevaplugdetails.aspx#software" target="_blank">documentation</a> from GlobalScale Technology is a great place to start.</p>
<p style="text-align: justify;">Firstly, it will likely come pre-installed with Ubuntu Jaunty Beta, although possibly Gentoo.  Both can run on the plug in addition to FreeBSD.  <a href="http://www.openplug.org/plugwiki/index.php/Main_Page" target="_blank">Wiki</a> explains more.  It also has a good entry on configuring the plug to <a href="http://www.openplug.org/plugwiki/index.php/Frequently_Asked_Questions#Make_an_SD_card_be_the_root_filesystem" target="_blank">boot from an SD card</a> rather then the onboard NAND flash.</p>
<p style="text-align: justify;">The forums are a very useful resource as well:</p>
<p style="text-align: justify;"><a href="http://openplug.org/plugforum/index.php?topic=2.0" target="_blank">Configuring the USB serial console</a> (Linux &amp; Windows).  My Ubuntu desktop failed to create a <strong>/dev/ttyUSB1</strong> on it&#8217;s own when plugged in, a simple &#8216;modprobe ftdi_sio product=0&#215;9e8f vendor=0&#215;9e88&#8242; resolved that.</p>
<p style="text-align: justify;">Give care when flashing partitions or images and make sure you don&#8217;t overwrite /dev/mtd0 or /dev/mtdblock0 (1st MB of NAND), it holds the uBoot boot image, the plug cannot boot without it.  Next partition is the Linux kernel image (~1-4mb), and finally a root filesystem image (remainder of the 512MB).</p>
<p style="text-align: justify;">I somehow managed to brick mine at one point, after a fsck and reboot I got a &#8220;<strong>Verifying Checksum &#8230; Bad Data CRC</strong>&#8221; error and it would not boot.  Playing with it a bit, I managed to get it to boot by tftp&#8217;ing a kernel image and mount a root filesystem via NFS.  GST&#8217;s documentation and the wiki provide plenty of guidance.  I also had issues getting it to re-flash the kernel image to <strong>/dev/mtd1</strong> because the kernel image provided by GST was slightly too big for the default size of <strong>mtd1</strong>.  Since then I&#8217;ve read they have released a new kernel image that fits, but at the time I simply increased the size of <strong>mtd1</strong> (to 4mb rather then the default 1mb) by editing the <strong>mtdparts</strong> setting in uBoot.</p>
<p style="text-align: justify;">It also occured to me that coming up with a makeshift bootmenu might be useful for debugging:</p>
<pre>set console 'console=ttyS0,115200 mtdparts=nand_mtd:0x00100000@0x00000000(uBoot)ro,0x00400000@0x00100000(uImage),0x1fb00000@0x00500000(rootfs)'

set boottftp 'tftpboot 0x2000000 $(image_name)'
set bootargs_nfs 'root=/dev/nfs rw'
set boot_nfs 'run boottftp;setenv bootargs $(console) $(bootargs_nfs) nfsroot=$(serverip):$(rootpath) ip=$(ipaddr):$(serverip)$(bootargs_end);bootm 0x2000000'

set bootnand 'nand read.e 0x2000000 0x00100000 0x00500000'
set bootargs_nand 'root=/dev/mtdblock2 rw'
set boot_nand 'run bootnand;setenv bootargs $(console) $(bootargs_nand) ip=$(ipaddr):$(serverip)$(bootargs_end);bootm 0x2000000'

set bootargs_sd 'root=/dev/mmcblk0p1 rw'
set boot_sd 'run bootnand;setenv bootargs $(console) $(bootargs_sd) ip=$(ipaddr):$(serverip)$(bootargs_end);bootm 0x2000000'

set bootcmd 'run boot_sd;'</pre>
<p style="text-align: justify;">As I mentioned, the mtdparts I provided are configured for a 4mb <strong>mtd1</strong> partition, you may need to modify this.  This <a href="http://openplug.org/plugforum/index.php?topic=52.0" target="_blank">thread</a> explains mtdparts better.  All of the other variables such as IP, SERVERIP, etc need to be configured in addition to these listed here.  You will also see it&#8217;s set to boot from SD card by default, it can be changed to &#8216;run boot_nand&#8217; or &#8216;run boot_nfs&#8217; if you like.</p>
 <img src="http://www.anthonyldechiaro.com/blog/wp-content/plugins/feed-statistics.php?view=1&post_id=300" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.anthonyldechiaro.com/blog/archives/300/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DIY Radar &amp; SheevaPlug</title>
		<link>http://www.anthonyldechiaro.com/blog/archives/296</link>
		<comments>http://www.anthonyldechiaro.com/blog/archives/296#comments</comments>
		<pubDate>Tue, 14 Apr 2009 20:35:07 +0000</pubDate>
		<dc:creator>Anthony</dc:creator>
				<category><![CDATA[electronics]]></category>
		<category><![CDATA[embedded]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[science]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[radar]]></category>
		<category><![CDATA[sheevaplug]]></category>
		<category><![CDATA[weather]]></category>

		<guid isPermaLink="false">http://www.anthonyldechiaro.com/blog/?p=296</guid>
		<description><![CDATA[So I&#8217;ve decided to disable my weekly Twitter updates after seeing how annoying it would be to read.  I&#8217;ve been working on a few things lately, first is a &#8220;DIY radar&#8221; weather warning system with the help of NOAA WSR-88D radar data, libGD, and Perl.  I recall some very basic image processing algorithms and code [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">So I&#8217;ve decided to disable my weekly Twitter updates after seeing how annoying it would be to read.  I&#8217;ve been working on a few things lately, first is a <span class="status-body"><span class="entry-content">&#8220;DIY radar&#8221; weather warning system with the help of NOAA </span></span>WSR-88D radar data<span class="status-body"><span class="entry-content">, libGD, and Perl.  I recall some very basic image processing algorithms and code I tinkered with in BASIC when I was much younger, but it was very simplistic and this was ages ago.  It&#8217;s fun to catch up on some old programming interests.  I&#8217;ll throw a post about it together once the code is a bit more complete.<br />
</span></span></p>
<p style="text-align: justify;"><span class="status-body"><span class="entry-content">My Linux-based <a href="http://www.globalscaletechnologies.com/p-22-sheevaplug-dev-kit.aspx" target="_blank">SheevaPlug</a> (embedded Linux in a wall-wart) has been occupying some time as well, tinkering with the Jaunty install and NFS and SSH.  I&#8217;m pretty impressed with the capabilities of this so far, despite the fact I managed to partially brick it for awhile.</span><span class="entry-content"> I eventually want to build a <a href="http://www.adafruit.com/blog/category/tweetawatt/" target="_blank">Tweet-A-Watt</a> and use my plug for interfacing.  Wiring my 1-wire weather station to the plug makes sense as well.<br />
</span></span></p>
 <img src="http://www.anthonyldechiaro.com/blog/wp-content/plugins/feed-statistics.php?view=1&post_id=296" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.anthonyldechiaro.com/blog/archives/296/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Twitter! and Updates</title>
		<link>http://www.anthonyldechiaro.com/blog/archives/279</link>
		<comments>http://www.anthonyldechiaro.com/blog/archives/279#comments</comments>
		<pubDate>Mon, 16 Mar 2009 21:18:37 +0000</pubDate>
		<dc:creator>Anthony</dc:creator>
				<category><![CDATA[blurb]]></category>
		<category><![CDATA[ktux]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[update]]></category>

		<guid isPermaLink="false">http://www.anthonyldechiaro.com/blog/?p=279</guid>
		<description><![CDATA[New Ktux release.  Code is now somewhat more organized and committed into a Subversion repository.  Preparing to replace paging code with cleaner and more versatile implementation &#8211; this will allow for user-level (x86 ring 3) support.  I&#8217;ve also started to twit now about Ktux, Linux, and all things science.  Follow me here if you like!
 [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">New Ktux <a href="/ktux/ktux-rev-11.tar.gz">release</a>.  Code is now somewhat more organized and committed into a Subversion repository.  Preparing to replace paging code with cleaner and more versatile implementation &#8211; this will allow for user-level (x86 ring 3) support.  I&#8217;ve also started to twit now about Ktux, Linux, and all things science.  Follow me <a href="http://twitter.com/adechiaro" target="_blank">here</a> if you like!</p>
 <img src="http://www.anthonyldechiaro.com/blog/wp-content/plugins/feed-statistics.php?view=1&post_id=279" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.anthonyldechiaro.com/blog/archives/279/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Remote monitoring with apticron and logcheck</title>
		<link>http://www.anthonyldechiaro.com/blog/archives/272</link>
		<comments>http://www.anthonyldechiaro.com/blog/archives/272#comments</comments>
		<pubDate>Tue, 10 Mar 2009 19:27:13 +0000</pubDate>
		<dc:creator>Anthony</dc:creator>
				<category><![CDATA[admin]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[monitoring]]></category>
		<category><![CDATA[reporting]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[server]]></category>

		<guid isPermaLink="false">http://www.anthonyldechiaro.com/blog/?p=272</guid>
		<description><![CDATA[I wanted to write a brief posting on some basic ways to help remotely administer Ubuntu/Debian boxes.  Over the past few months I&#8217;ve been tinkering with various methods of handling this and what I&#8217;ve come up with seems to work fairly well.  It basically consists of two applications: apticron, which monitors repositories for package updates, [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">I wanted to write a brief posting on some basic ways to help remotely administer Ubuntu/Debian boxes.  Over the past few months I&#8217;ve been tinkering with various methods of handling this and what I&#8217;ve come up with seems to work fairly well.  It basically consists of two applications: apticron, which monitors repositories for package updates, and logcheck, which monitors logs in for any security or other noteworthy entries.</p>
<p style="text-align: justify;">Apticron is very easy to set up, it&#8217;s in the repositories and requires basically no configuration.  It will drop a script in /etc/cron.daily and that is about it, emailing any reports to root.  Of course this can be modified through a .forward or an entry in /etc/aliases.</p>
<p style="text-align: justify;">Logcheck is fairly simple to set up as well &#8211; it is also in the repositories.  Once installed, edit the /etc/logcheck/logcheck.conf file to configure.  The first thing you will want to set is the REPORTLEVEL setting, options are &#8220;workstation&#8221;, &#8220;server&#8221; (default value), or &#8220;paranoid&#8221;.  I use server on mine, which gives a good amount of detail. I would advise against using paranoid unless the server is extremely locked down and users do not typically login.  Workstation is good for a desktop environment.  The only other variable I edited was SENDMAILTO.  Logcheck works by basically comparing each  logentry against a set of regular expressions and generate a report if it does not match.  I had to modify one or two regex&#8217;s slightly to fix false positives, if you want my changes just ask and I&#8217;ll send them over.</p>
<p style="text-align: justify;">One other small gem I want to mention : <a href="http://members.dslextreme.com/users/billw/gkrellm/gkrellm.html" target="_blank">gkrellm</a>.  I use this on both my desktop and server, it is invaluable for providing real-time system performance metrics.  Sure, it does not have any logging capabilities and thus unsuitable in a large-scale environment but for keeping an eye on one or two boxes it fits the bill quite nicely.</p>
 <img src="http://www.anthonyldechiaro.com/blog/wp-content/plugins/feed-statistics.php?view=1&post_id=272" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.anthonyldechiaro.com/blog/archives/272/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ktux Multitasking &amp; Update</title>
		<link>http://www.anthonyldechiaro.com/blog/archives/260</link>
		<comments>http://www.anthonyldechiaro.com/blog/archives/260#comments</comments>
		<pubDate>Thu, 05 Mar 2009 20:35:12 +0000</pubDate>
		<dc:creator>Anthony</dc:creator>
				<category><![CDATA[ktux]]></category>

		<guid isPermaLink="false">http://www.anthonyldechiaro.com/blog/?p=260</guid>
		<description><![CDATA[
So it&#8217;s been some time since I posted, unfortunately life has kept me on the go these past several weeks and I&#8217;ve had limited time at my desk.  However, thankfully I was able to work on Ktux from my netbook and now I successfully have multitasking working!  I attempted several previous implementations of a scheduler [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">
<p style="text-align: justify;">So it&#8217;s been some time since I posted, unfortunately life has kept me on the go these past several weeks and I&#8217;ve had limited time at my desk.  However, thankfully I was able to work on Ktux from my netbook and now I successfully have multitasking working!  I attempted several previous implementations of a scheduler without success, this time I re-wrote mostly everything from scratch, minus a few lines of the timer ISR assembly code.  Currently, the scheduler supports thread creation/destruction and basic priority adjustment with nice() (just adjusts the process quantum timeslice).  Oh, and a simple yield() was implemented as well.  As of the moment, I have a pointer array to keep track of the threads, but in the process of replacing with linked lists (same implementation Linux kernel uses).</p>
<p style="text-align: justify;">The screenshot below demonstrates 4 threads of execution, 3 of them increment counters (with various priorities) and the final one just displays the values on the screen, then yields():</p>
<p style="text-align: center;"><a href="http://www.anthonyldechiaro.com/blog/wp-content/uploads/2009/03/screenshot1.png"></p>
<p style="text-align: center;"><a href="http://www.anthonyldechiaro.com/blog/wp-content/uploads/2009/03/screenshot1.png"><img class="size-medium wp-image-277 aligncenter" title="multitasking screenshot" src="http://www.anthonyldechiaro.com/blog/wp-content/uploads/2009/03/screenshot1-300x175.png" alt="I finally invented something that works!!" width="300" height="175" /></a></p>
<p></a></p>
<p style="text-align: justify;">Now, of course with with multitasking support comes a whole new array of synchronization issues.  I have intentionally followed the KISS principle thus far when developing the kernel framework, knowing that any substantial code would most likely need to be re-written with critical sections, locks, etc.  Due to the complexities and time involved, I am fairly certain I will not aim for full SMP support in Ktux.  A few basic atomic operations have been written, but for the moment I think I will just use something similar to the big kernel lock in Linux; performance is not my main concern here, getting something out the door that actually runs is.</p>
<p style="text-align: justify;">Not sure where I will go from here, I know the virtual memory needs a *LOT* of work, it&#8217;s pretty ugly right now.  From there, I think user-level thread support will be a logical next step.</p>
 <img src="http://www.anthonyldechiaro.com/blog/wp-content/plugins/feed-statistics.php?view=1&post_id=260" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.anthonyldechiaro.com/blog/archives/260/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
