<?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>jeremykendall.net &#187; Linux</title>
	<atom:link href="http://www.jeremykendall.net/category/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jeremykendall.net</link>
	<description>{web developer, entrepreneur }</description>
	<lastBuildDate>Fri, 23 Jul 2010 19:18:30 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Two More Apache Tweaks Required After Ubuntu 10.04 Upgrade</title>
		<link>http://www.jeremykendall.net/2010/05/03/two-more-apache-tweaks-required-after-ubuntu-10-04-upgrade/</link>
		<comments>http://www.jeremykendall.net/2010/05/03/two-more-apache-tweaks-required-after-ubuntu-10-04-upgrade/#comments</comments>
		<pubDate>Mon, 03 May 2010 13:30:41 +0000</pubDate>
		<dc:creator>Jeremy Kendall</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[apache2]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.jeremykendall.net/?p=296</guid>
		<description><![CDATA[While I was troubleshooting why Apache stopped serving php apps from my home directory, I ran into two more annoyances that required attention.  I figured I&#8217;d share them as well in case you run into them yourself.
Here&#8217;s what I saw when I reloaded Apache:

jkendall@san-diego:/etc/apache2$ sudo /etc/init.d/apache2 reload
  * Reloading web server config apache2
apache2: [...]]]></description>
			<content:encoded><![CDATA[<p>While I was troubleshooting why <a href="http://www.jeremykendall.net/2010/04/30/upgrading-to-ubuntu-10-04-breaks-serving-php-from-home-directories/">Apache stopped serving php apps from my home directory</a>, I ran into two more annoyances that required attention.  I figured I&#8217;d share them as well in case you run into them yourself.</p>
<p>Here&#8217;s what I saw when I reloaded Apache:</p>

<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">jkendall@san-diego:/etc/apache2$ sudo /etc/init.d/apache2 reload
  * Reloading web server config apache2
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
[Fri Apr 30 13:47:38 2010] [warn] NameVirtualHost *:80 has no VirtualHosts
                                                                                    [ OK ]</pre></div></div>

<p>As you can see, Apache reloaded fine, but I don&#8217;t like seeing anything other than <code>[ OK ]</code> when I&#8217;m reloading my web server.  Let&#8217;s tackle these one at a time.</p>
<p><strong>Could not reliably determine the server&#8217;s fully qualified domain name</strong></p>
<p>Why is Apache all of a sudden complaining about what&#8217;s worked for so long?  I&#8217;m not sure exactly, but thankfully the fix was simple and easy.  Simply adding &#8220;<code>ServerName localhost</code>&#8221; to <code>/etc/apache2/httpd.conf</code> took care of the first complaint (Big thanks to Mohamed Aslam for <a href="http://mohamedaslam.com/how-to-fix-apache-could-not-reliably-determine-the-servers-fully-qualified-domain-name-using-127011-for-servername-error-on-ubuntu/">his clear instructions</a> on how to get this fixed.).</p>
<p><strong>NameVirtualHost *:80 has no VirtualHosts</strong></p>
<p>The problem boiled down to having <code>NameVirtualHost</code> defined in more than one place.  In my case, <code>NameVirtualHost</code> was defined both in <code>/ect/apache2/ports.conf</code> and <code>/etc/apache2/sites-available/default</code>.  Commenting out the <code>NameVirtualHost *:80</code> line in <code>/etc/apache2/sites-available/default</code> did the trick (Thanks to the guys in <a href="http://serverfault.com/questions/1405/apache2-startup-warning-namevirtualhost-80-has-no-virtualhosts">this Server Fault thread</a>, especially to <a href="http://serverfault.com/users/942/ivan">Ivan</a>, for providing the necessary clues to track this one down.).</p>
<p>After making the above changes, reloading Apache didn&#8217;t throw any more warnings. w00t!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jeremykendall.net/2010/05/03/two-more-apache-tweaks-required-after-ubuntu-10-04-upgrade/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Upgrading to Ubuntu 10.04 Breaks Serving php from Home Directories</title>
		<link>http://www.jeremykendall.net/2010/04/30/upgrading-to-ubuntu-10-04-breaks-serving-php-from-home-directories/</link>
		<comments>http://www.jeremykendall.net/2010/04/30/upgrading-to-ubuntu-10-04-breaks-serving-php-from-home-directories/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 16:45:31 +0000</pubDate>
		<dc:creator>Jeremy Kendall</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[apache2]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.jeremykendall.net/?p=288</guid>
		<description><![CDATA[I upgraded to Ubuntu 10.04 this morning and immediately noticed I could no longer serve php applications from my home directory.  When I tried to visit one of my projects, http://test.local for example, Firefox opened a download dialog with a message similar to &#8220;You have chosen to open index.phtml . . .&#8221;
After quite a [...]]]></description>
			<content:encoded><![CDATA[<p>I upgraded to <a href="http://ubuntu.com">Ubuntu 10.04</a> this morning and immediately noticed I could no longer serve php applications from my home directory.  When I tried to visit one of my projects, http://test.local for example, Firefox opened a download dialog with a message similar to &#8220;You have chosen to open index.phtml . . .&#8221;</p>
<p>After quite a bit of googling and forum searching, I went to Twitter asking for help.  Many thanks to <a href="http://twitter.com/sypherNL">@sypherNL</a> for helping me resolve this one.</p>
<p>It seems that something has changed in /etc/apache2/mods-enabled/php5.conf.  If you&#8217;re experiencing this same issue, check your php5.conf and see if it matches mine.</p>

<div class="wp_syntax"><div class="code"><pre class="apache" style="font-family:monospace;">&lt;<span style="color: #000000; font-weight:bold;">IfModule</span> mod_php5.c&gt;
    &lt;<span style="color: #000000; font-weight:bold;">FilesMatch</span> <span style="color: #7f007f;">&quot;<span style="color: #000099; font-weight: bold;">\.</span>ph(p3?|tml)$&quot;</span>&gt;
        <span style="color: #00007f;">SetHandler</span> application/x-httpd-php
    &lt;/<span style="color: #000000; font-weight:bold;">FilesMatch</span>&gt;
    &lt;<span style="color: #000000; font-weight:bold;">FilesMatch</span> <span style="color: #7f007f;">&quot;<span style="color: #000099; font-weight: bold;">\.</span>phps$&quot;</span>&gt;
        <span style="color: #00007f;">SetHandler</span> application/x-httpd-php-source
    &lt;/<span style="color: #000000; font-weight:bold;">FilesMatch</span>&gt;
    <span style="color: #adadad; font-style: italic;"># To re-enable php in user directories comment the following lines</span>
    <span style="color: #adadad; font-style: italic;"># (from &lt;IfModule ...&gt; to &lt;/IfModule&gt;.) Do NOT set it to On as it</span>
    <span style="color: #adadad; font-style: italic;"># prevents .htaccess files from disabling it.</span>
    &lt;<span style="color: #000000; font-weight:bold;">IfModule</span> mod_userdir.c&gt;
        &lt;<span style="color: #000000; font-weight:bold;">Directory</span> /home/*/public_html&gt;
            <span style="color: #00007f;">php_admin_value</span> engine <span style="color: #0000ff;">Off</span>
        &lt;/<span style="color: #000000; font-weight:bold;">Directory</span>&gt;
    &lt;/<span style="color: #000000; font-weight:bold;">IfModule</span>&gt;
&lt;/<span style="color: #000000; font-weight:bold;">IfModule</span>&gt;</pre></div></div>

<p>If your php5.conf file looks like the one above, simply comment out the</p>

<div class="wp_syntax"><div class="code"><pre class="apache" style="font-family:monospace;">&lt;<span style="color: #000000; font-weight:bold;">IfModule</span> mod_userdir.c&gt;</pre></div></div>

<p> lines as instructed.  Once that&#8217;s done, restart apache with the following command:</p>

<div class="wp_syntax"><div class="code"><pre class="code" style="font-family:monospace;">sudo /etc/init.d/apache2 reload</pre></div></div>

<p>Clear your browser&#8217;s cache and try to visit your site again.  I didn&#8217;t think the fix took at first, but after clearing cache everything worked just fine.</p>
<p><strong>Related Links</strong></p>
<ul>
<li>Thanks again to <a href="http://twitter.com/sypherNL">@sypherNL</a> for showing me how to resolve this one.</li>
<li>Also see Marco Rodrigues&#8217; post <a href="http://marco.tondela.org/2010/03/your-public_html-with-php5-isnt-working-in-ubuntu-lucid/">Your public_html with PHP5 isn’t working in Ubuntu 10.04 Lucid?</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.jeremykendall.net/2010/04/30/upgrading-to-ubuntu-10-04-breaks-serving-php-from-home-directories/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>DIY Network Monitoring and Logging with Perl</title>
		<link>http://www.jeremykendall.net/2009/10/27/network-monitoring-and-logging-with-perl/</link>
		<comments>http://www.jeremykendall.net/2009/10/27/network-monitoring-and-logging-with-perl/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 04:12:17 +0000</pubDate>
		<dc:creator>Jeremy Kendall</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[att]]></category>
		<category><![CDATA[dsl]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://www.jeremykendall.net/?p=223</guid>
		<description><![CDATA[The Problem
I&#8217;ve been having trouble with my AT&#038;T DSL installation here at the new place.  My internet connection will come and go, seemingly at random, and for random amounts of time.  I tweeted about it once already, hoping that sharing my frustration with the world might make me feel a little better.  [...]]]></description>
			<content:encoded><![CDATA[<p><strong>The Problem</strong></p>
<p>I&#8217;ve been having trouble with my AT&#038;T DSL installation here at the new place.  My internet connection will come and go, seemingly at random, and for random amounts of time.  I <a href="http://twitter.com/JeremyKendall/status/5193232511">tweeted about it</a> once already, hoping that sharing my frustration with the world might make me feel a little better.  Nope.  Didn&#8217;t work.</p>
<p>I&#8217;ve had this problem before with AT&#038;T, when I got DSL installed at my last place.  Things were rough for a while, and then somehow they seemed to straighten out on their own.  I&#8217;m not crossing my fingers that I&#8217;ll have such luck again.</p>
<p><strong>What&#8217;s Really Going On?</strong></p>
<p>I decided to try and log the bounces so that I could get a better feel for what was going on.  I couldn&#8217;t find exactly what I wanted online (and I couldn&#8217;t always get online), so I whipped up a <a href="http://en.wikipedia.org/wiki/Perl">Perl</a> script to keep an eye on my connection for me.</p>

<div class="wp_syntax"><div class="code"><pre class="perl" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/usr/bin/perl</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;"># Test AT&amp;T DSL connectivity. If network is down, log to file</span>
<span style="color: #666666; font-style: italic;"># Will use log info as ammo when I call tech support.</span>
<span style="color: #666666; font-style: italic;">#</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">use</span> warnings<span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">use</span> strict<span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">use</span> Log<span style="color: #339933;">::</span><span style="color: #006600;">Handler</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">use</span> Net<span style="color: #339933;">::</span><span style="color: #006600;">Ping</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">use</span> Sys<span style="color: #339933;">::</span><span style="color: #006600;">HostIP</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$log</span> <span style="color: #339933;">=</span> Log<span style="color: #339933;">::</span><span style="color: #006600;">Handler</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">new</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #0000ff;">$log</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">add</span><span style="color: #009900;">&#40;</span>
    file <span style="color: #339933;">=&gt;</span> <span style="color: #009900;">&#123;</span>
        filename <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">&quot;/var/log/testNetwork.log&quot;</span><span style="color: #339933;">,</span>
        mode     <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">&quot;append&quot;</span><span style="color: #339933;">,</span>
        maxlevel <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">&quot;info&quot;</span><span style="color: #339933;">,</span>
        minlevel <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">&quot;warning&quot;</span><span style="color: #339933;">,</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$ipAddress</span>          <span style="color: #339933;">=</span> Sys<span style="color: #339933;">::</span><span style="color: #006600;">HostIP</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">ip</span><span style="color: #339933;">;</span> 
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$matchHomeNetworkIp</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$ipAddress</span> <span style="color: #339933;">=~</span> <span style="color: #009966; font-style: italic;">/^192\.168\.10\.\d{1,3}$/</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #0000ff;">$matchHomeNetworkIp</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #0000ff;">$log</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">debug</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;Current IP $ipAddress does not appear to be on your home network. Exiting&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">exit</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$router</span> <span style="color: #339933;">=</span> <span style="color: #ff0000;">&quot;192.168.10.1&quot;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$modem</span>  <span style="color: #339933;">=</span> <span style="color: #ff0000;">&quot;192.168.1.254&quot;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$host</span>   <span style="color: #339933;">=</span> <span style="color: #ff0000;">&quot;www.yahoo.com&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$p</span> <span style="color: #339933;">=</span> Net<span style="color: #339933;">::</span><span style="color: #006600;">Ping</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">new</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;icmp&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #0000ff;">$p</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">ping</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$router</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #0000ff;">$log</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">warning</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;Router $router is unreachable. Exiting.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">exit</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #0000ff;">$p</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">ping</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$modem</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #0000ff;">$log</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">warning</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;Modem $modem is unreachable. Exiting.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">exit</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$p</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">ping</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$host</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #0000ff;">$log</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">info</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;$host is reachable&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #0000ff;">$log</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">warning</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;$host is NOT reachable&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">$p</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">close</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p><strong>Code Review</strong></p>
<p>While the code is simple, there are a couple of things to note.  First, you&#8217;ll notice I&#8217;ve baked my router&#8217;s IP range into a <a href="http://en.wikipedia.org/wiki/Regular_expressions">regex</a> that will tell me if I can even get that far.  If not, there&#8217;s no point in checking anything else, so I exit.</p>
<p>Next I fire up <a href="http://search.cpan.org/~smpeters/Net-Ping-2.36/lib/Net/Ping.pm">Net::Ping</a>.  While there are six different options for Net::Ping->new(), the only one that worked for me was icmp.  Icmp requires root privileges to run, so keep that in mind. </p>
<p>Next I <a href="http://en.wikipedia.org/wiki/Ping">ping</a> important parts of the home network.  I want to be sure that my wireless router and the DSL modem are both online before I try and ping an external site.</p>
<p>If everything looks good on the inside, I&#8217;ll ping an external site and see if I get anything back.  You&#8217;ll notice that I&#8217;ve added a second parameter to ping this time.  That&#8217;s the number of seconds I&#8217;ll wait for a response before failing (of course, it is possible that Yahoo! won&#8217;t respond to a ping request here and there, making it appear as if the network is down, but I&#8217;m not so worried about a false positive or two).</p>
<p><strong>Implementation</strong></p>
<p>Now that I&#8217;ve got this nifty script to tell me about the health of my network, I need a way to run it on a regular basis.  It&#8217;s important to run it as root because of the icmp ping.  <a href="http://en.wikipedia.org/wiki/Cron">Cron</a> was the obvious solution, as it&#8217;s purpose is to run commands on a predetermined schedule. As long as I add the script to root&#8217;s cron file, it&#8217;ll run with root permissions.  Sweet!</p>
<p>Adding my script to the root cron file was as easy as issuing</p>

<div class="wp_syntax"><div class="code"><pre class="code" style="font-family:monospace;">sudo crontab -e</pre></div></div>

<p> and adding the following line:</p>

<div class="wp_syntax"><div class="code"><pre class="code" style="font-family:monospace;">*/1 * * * * perl /home/jkendall/dev/perl/util/testNetwork.pl</pre></div></div>

<p>With my cron file in place, my script fires off every minute.  As long as I&#8217;m on my home network, I&#8217;ll get a log entry telling me whether or not the network is up.</p>
<p><strong>Keeping an Eye on the Results</strong></p>
<p>Now that my script is actually doing something, I need to be able to parse the results.  A quick</p>

<div class="wp_syntax"><div class="code"><pre class="code" style="font-family:monospace;">tail -f /var/log/testNetwork.log</pre></div></div>

<p> allows me to keep track of the results as they come in.  I&#8217;m also using grep to pull all of the &#8220;NOT reachable&#8221; lines out of the log file with</p>

<div class="wp_syntax"><div class="code"><pre class="code" style="font-family:monospace;">grep -n --color &quot;NOT reachable&quot; /var/log/testNetwork.log</pre></div></div>

<p>  I could always just open the log file and read through it from top to bottom, but what fun is that?  A decent tool to parse the fail log is going to be necessary, but I haven&#8217;t whipped it up yet. </p>
<p><strong>Teh Suck</strong></p>
<p>As I&#8217;ve been writing this blog post, I&#8217;ve been running this script in the background.  Here are the results of an hour or so of logging (all times are CDT):</p>

<div class="wp_syntax"><div class="code"><pre class="code" style="font-family:monospace;">Oct 27 21:03:33 [INFO] www.yahoo.com is reachable
Oct 27 21:04:03 [WARNING] Router 192.168.10.1 is unreachable. Exiting.
Oct 27 21:05:02 [INFO] www.yahoo.com is reachable
Oct 27 21:06:41 [WARNING] www.yahoo.com is NOT reachable
Oct 27 21:07:41 [WARNING] www.yahoo.com is NOT reachable
Oct 27 21:08:42 [WARNING] www.yahoo.com is NOT reachable
Oct 27 21:09:41 [WARNING] www.yahoo.com is NOT reachable
Oct 27 21:10:41 [WARNING] www.yahoo.com is NOT reachable
Oct 27 21:11:02 [INFO] www.yahoo.com is reachable
Oct 27 21:12:01 [INFO] www.yahoo.com is reachable
Oct 27 21:13:01 [INFO] www.yahoo.com is reachable
Oct 27 21:14:41 [WARNING] www.yahoo.com is NOT reachable
Oct 27 21:15:32 [INFO] www.yahoo.com is reachable
Oct 27 21:16:01 [INFO] www.yahoo.com is reachable
Oct 27 21:17:41 [WARNING] www.yahoo.com is NOT reachable
Oct 27 21:18:42 [WARNING] www.yahoo.com is NOT reachable
Oct 27 21:19:11 [INFO] www.yahoo.com is reachable
Oct 27 21:20:41 [WARNING] www.yahoo.com is NOT reachable
Oct 27 21:21:42 [WARNING] www.yahoo.com is NOT reachable
Oct 27 21:22:41 [WARNING] www.yahoo.com is NOT reachable
Oct 27 21:23:03 [WARNING] www.yahoo.com is NOT reachable
Oct 27 21:24:01 [INFO] www.yahoo.com is reachable
Oct 27 21:25:42 [WARNING] www.yahoo.com is NOT reachable
Oct 27 21:26:41 [WARNING] www.yahoo.com is NOT reachable
Oct 27 21:27:41 [WARNING] www.yahoo.com is NOT reachable
Oct 27 21:28:41 [WARNING] www.yahoo.com is NOT reachable
Oct 27 21:29:42 [WARNING] www.yahoo.com is NOT reachable
Oct 27 21:30:41 [WARNING] www.yahoo.com is NOT reachable
Oct 27 21:31:41 [WARNING] www.yahoo.com is NOT reachable
Oct 27 21:32:41 [WARNING] www.yahoo.com is NOT reachable
Oct 27 21:33:42 [WARNING] www.yahoo.com is NOT reachable
Oct 27 21:34:21 [INFO] www.yahoo.com is reachable
Oct 27 21:35:41 [WARNING] www.yahoo.com is NOT reachable
Oct 27 21:36:42 [WARNING] www.yahoo.com is NOT reachable
Oct 27 21:37:41 [WARNING] www.yahoo.com is NOT reachable
Oct 27 21:38:41 [WARNING] www.yahoo.com is NOT reachable
Oct 27 21:39:41 [WARNING] www.yahoo.com is NOT reachable
Oct 27 21:40:12 [INFO] www.yahoo.com is reachable
Oct 27 21:41:01 [INFO] www.yahoo.com is reachable
Oct 27 21:42:41 [WARNING] www.yahoo.com is NOT reachable
Oct 27 21:43:42 [WARNING] www.yahoo.com is NOT reachable
Oct 27 21:44:31 [INFO] www.yahoo.com is reachable
Oct 27 21:45:01 [INFO] www.yahoo.com is reachable
Oct 27 21:46:42 [WARNING] www.yahoo.com is NOT reachable
Oct 27 21:47:41 [WARNING] www.yahoo.com is NOT reachable
Oct 27 21:48:41 [WARNING] www.yahoo.com is NOT reachable
Oct 27 21:49:42 [WARNING] www.yahoo.com is NOT reachable
Oct 27 21:50:41 [WARNING] www.yahoo.com is NOT reachable
Oct 27 21:51:41 [WARNING] www.yahoo.com is NOT reachable
Oct 27 21:52:42 [WARNING] www.yahoo.com is NOT reachable
Oct 27 21:53:41 [WARNING] www.yahoo.com is NOT reachable
Oct 27 21:54:01 [INFO] www.yahoo.com is reachable</pre></div></div>

<p>Weak sauce, man.  Weak sauce.</p>
<p><strong>Wrapping Up</strong></p>
<p>Having this script handy doesn&#8217;t make the <a href="http://failblog.org/">fail</a> any better, but at least I know a little more about what&#8217;s happening.  I&#8217;d like to think it&#8217;ll give me some leverage when I try to get this worked out with AT&#038;T, but who knows.  I&#8217;ll let you know how it goes.</p>
<p>[<strong>Update</strong>: post title change to better reflect content]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jeremykendall.net/2009/10/27/network-monitoring-and-logging-with-perl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Contribution to the History Meme</title>
		<link>http://www.jeremykendall.net/2008/04/16/my-contribution-to-the-history-meme/</link>
		<comments>http://www.jeremykendall.net/2008/04/16/my-contribution-to-the-history-meme/#comments</comments>
		<pubDate>Wed, 16 Apr 2008 16:41:32 +0000</pubDate>
		<dc:creator>Jeremy Kendall</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[meme]]></category>

		<guid isPermaLink="false">http://dev.jeremykendall.net/wp/?p=23</guid>
		<description><![CDATA[From my work machine:

jkendall@ventura:~$ uname -a
Linux ventura 2.6.22-14-generic #1 SMP Tue Feb 12 07:42:25 UTC 2008 i686 GNU/Linux
jkendall@ventura:~$ history &#124; awk '{a[$2]++}END{for(i in a){print a[i] &#34; &#34; i}}' &#124; sort -rn &#124; head
83 exit
70 clear
58 cd
47 ls
44 ps
35 svn
32 tail
32 jgrep
23 kill
11 sshdev

jgrep is a bash alias for 'grep --color -r -n --exclude=\*.svn\*', while sshdev [...]]]></description>
			<content:encoded><![CDATA[<p>From my work machine:</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">jkendall@ventura:~$ uname -a
Linux ventura 2.6.22-14-generic #1 SMP Tue Feb 12 07:42:25 UTC 2008 i686 GNU/Linux
jkendall@ventura:~$ history | awk '{a[$2]++}END{for(i in a){print a[i] &quot; &quot; i}}' | sort -rn | head
83 exit
70 clear
58 cd
47 ls
44 ps
35 svn
32 tail
32 jgrep
23 kill
11 sshdev</pre></div></div>

<p>jgrep is a bash alias for <code>'grep --color -r -n --exclude=\*.svn\*'</code>, while sshdev is a bash alias that gets me to the dev box at work without having to type too much.</p>
<p>See more examples <a href="http://www.thelins.se/johan/2008/04/history-meme.html">here</a>, <a href="http://www.0xdeadbeef.com/weblog/?p=356">here</a>, <a href="http://www.j5live.com/2008/04/15/history-meme/">here</a>, and <a href="http://blogs.gnome.org/thos/2008/04/10/history-meme/">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jeremykendall.net/2008/04/16/my-contribution-to-the-history-meme/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dell 1420n Ubuntu Wireless Issue Resolved</title>
		<link>http://www.jeremykendall.net/2008/04/10/dell-1420n-ubuntu-wireless-issue-resolved/</link>
		<comments>http://www.jeremykendall.net/2008/04/10/dell-1420n-ubuntu-wireless-issue-resolved/#comments</comments>
		<pubDate>Thu, 10 Apr 2008 11:59:11 +0000</pubDate>
		<dc:creator>Jeremy Kendall</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[dell]]></category>
		<category><![CDATA[wireless]]></category>

		<guid isPermaLink="false">http://dev.jeremykendall.net/wp/?p=21</guid>
		<description><![CDATA[A few months ago I picked up a Dell 1420n loaded with Ubuntu 7.10.  I&#8217;ve really enjoyed the laptop, but I&#8217;ve experienced ongoing issues with my wireless connectivity.  The laptop will connect to my wireless router without any problems.  Staying connected to the wireless router was the problem.
After using the laptop for [...]]]></description>
			<content:encoded><![CDATA[<p>A few months ago I picked up a Dell 1420n loaded with Ubuntu 7.10.  I&#8217;ve really enjoyed the laptop, but I&#8217;ve experienced ongoing issues with my wireless connectivity.  The laptop will connect to my wireless router without any problems.  Staying connected to the wireless router was the problem.</p>
<p>After using the laptop for anywhere from 5 minutes to 36 hours, the wireless connection would drop.  The only way to reconnect was to reboot the laptop.  That got old <em>fast</em>, but being a new Linux user I had no idea how to troubleshoot the issue.  I finally Googled the problem and, via <a href="http://ubuntuforums.org/showthread.php?t=720683">this thread</a> on the excellent Ubuntu Forums, I found the DellLinuxWiki and the <a href="http://linux.dell.com/wiki/index.php/Ubuntu_7.10/Issues/ipw3945_Wireless_Network_Module_Issues">answer to my problem</a>.</p>
<p>The issue has something to do with the ipw3945 wireless module.  The <a href="http://linux.dell.com/wiki/index.php/Ubuntu_7.10/Issues/ipw3945_Wireless_Network_Module_Issues">DellLinuxWiki entry</a> suggests using the network module iwl3945 instead, and provides simple step-by-step instructions as to how to disable the ipw3945 module and how to enable the iwl3945 module.</p>
<p>The resolution works like a charm, and I haven&#8217;t had a wireless connectivity issue since.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jeremykendall.net/2008/04/10/dell-1420n-ubuntu-wireless-issue-resolved/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IEs4Linux Blank Screen Bug and Installation Issues</title>
		<link>http://www.jeremykendall.net/2008/02/16/ies4linux-blank-screen-bug-and-installation-issues/</link>
		<comments>http://www.jeremykendall.net/2008/02/16/ies4linux-blank-screen-bug-and-installation-issues/#comments</comments>
		<pubDate>Sat, 16 Feb 2008 15:38:37 +0000</pubDate>
		<dc:creator>Jeremy Kendall</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[ie]]></category>

		<guid isPermaLink="false">http://dev.jeremykendall.net/wp/?p=17</guid>
		<description><![CDATA[If you want / need to install Internet Explorer in Linux, I highly recommend IEs4Linux by S&#233;rgio Lopes.
IEs4Linux is the simpler way to have Microsoft Internet Explorer running on Linux (or any OS running Wine).
I recently purchased a new Dell 1420n with Ubuntu 7.10 pre-installed.  One of the first things I wanted to do [...]]]></description>
			<content:encoded><![CDATA[<p>If you want / need to install Internet Explorer in Linux, I highly recommend <a href="http://www.tatanka.com.br/ies4linux/page/Main_Page">IEs4Linux</a> by S&eacute;rgio Lopes.</p>
<blockquote><p>IEs4Linux is the simpler way to have Microsoft Internet Explorer running on Linux (or any OS running Wine).</p></blockquote>
<p>I recently purchased a new <a href="http://www.dell.com/ubuntu">Dell 1420n with Ubuntu 7.10 pre-installed</a>.  One of the first things I wanted to do was install all of my development tools, including IEs4Linux.  What should have been an easy installation turned into a nightmare.  I kept running into python errors that aborted the install.  Once I finally got the application to install it was unusable.  The IE toolbar was missing, including the address bar, the application would frequently crash, and I experienced maddening display bugs.</p>
<p>Apparently the blank screen bug has been a widespread issue.  S&eacute;rgio has <a href="http://www.tatanka.com.br/ies4linux/news/54">addressed it</a> on his blog and pushed an emergency release of IEs4Linux, version 2.99.0.1, to resolve this issue only.</p>
<p>That&#8217;s all well and good, but I still had the python issues to deal with.  What finally worked for me was to install IEs4Linux with the &#8211;no-gui flag, like so:</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">$ ./ies4linux --no-gui</pre></div></div>

<p>For more information on installing IEs4Linux, including IE versions 5 and 5.5, visit the <a href="http://www.tatanka.com.br/ies4linux/page/Installation">IEs4Linux installation page</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jeremykendall.net/2008/02/16/ies4linux-blank-screen-bug-and-installation-issues/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mail Notification 5.0 with SSL in Ubuntu</title>
		<link>http://www.jeremykendall.net/2008/02/14/mail-notification-50-with-ssl-in-ubuntu/</link>
		<comments>http://www.jeremykendall.net/2008/02/14/mail-notification-50-with-ssl-in-ubuntu/#comments</comments>
		<pubDate>Thu, 14 Feb 2008 22:24:22 +0000</pubDate>
		<dc:creator>Jeremy Kendall</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[ssl]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://dev.jeremykendall.net/wp/?p=8</guid>
		<description><![CDATA[The Problem
We recently began using SSL to connect to IMAP at work.  Prior to switching to SSL I had been using the excellent Mail Notification to let me know if I had any messages in my inbox.   As soon as we switched over to SSL, Mail Notification quit alerting me to the [...]]]></description>
			<content:encoded><![CDATA[<p><b>The Problem</b></p>
<p>We recently began using SSL to connect to IMAP at work.  Prior to switching to SSL I had been using the excellent <a href="http://www.nongnu.org/mailnotify/">Mail Notification</a> to let me know if I had any messages in my inbox.   As soon as we switched over to SSL, Mail Notification quit alerting me to the presence of new email.</p>
<p>I figured that all I had to do was change my preferences in Mail Notification and select SSL.  Turns out I was right, except I couldn&#8217;t select SSL &#8211; all of the &#8220;SSL/TSL&#8221; options were grayed out.  Why in the world would that be?  After some research I discovered that:</p>
<ul>
<li>SSL isn&#8217;t available if the package was built without SSL support (makes sense)</li>
<li>The OpenSSL license conflicts with the Debian license</li>
</ul>
<p>Mail Notification <i>is</i> available in the Ubuntu repository, but without SSL support.  Bummer.</p>
<p><b>Build it Yourself</b></p>
<p>The resolution is to build Mail Notification with SSL support enabled, but I quickly discovered that building Mail Notification was not as easy as I thought it would be.  Although the installation is well documented in the INSTALL file, I still ran into a lot of problems with dependencies.</p>
<p><b>Dependencies Required</b></p>
<p>After a lot of troubleshooting and not a little frustration, I came up with a list of dependencies that I needed installed in order to configure and make Mail Notification 5.0 on Ubuntu Gutsy:</p>
<ul>
<li>build-essential</li>
<li>gnome-core-devel</li>
<li>libnotify-dev</li>
<li>libgnome2-dev</li>
<li>libgmime-2.0-2-dev</li>
<li>libssl-dev</li>
</ul>
<p>I used the Synaptic Package Manager to install each of these dependencies.  Read on if you&#8217;re looking to troubleshoot a specific error that you&#8217;re running into.</p>
<p><b>Errors and Troubleshooting</b></p>
<p>The first time I ran</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">$ ./configure</pre></div></div>

<p> I got this error:</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">checking for C compiler default output file name... 
configure: error: C compiler cannot create executables
See `config.log' for more details.</pre></div></div>

<p>Installing <b>build-essential</b> took care of the C compiler issue, but I found a new one the next time I ran configure:</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">Error: checking for GNOME... no
configure: error: unable to find the GNOME libraries</pre></div></div>

<p>This one drove me a little batty.  What does it mean it can&#8217;t find the GNOME libraries?  I&#8217;m running GNOME for Pete&#8217;s sake!  After a decent amount of hair pulling and a seemingly endless amount of Googling, I finally found that <b>gnome-core-devel</b>, <b>libnotify-dev</b>, and <b>libgnome2-dev</b> resolved the</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">unable to find the GNOME libraries</pre></div></div>

<p> error.</p>
<p>Next up was the GMIME error:</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">checking for GMIME... configure: error: Package requirements (gmime-2.0 &gt;= 2.1.0) were not met:
&nbsp;
No package 'gmime-2.0' found</pre></div></div>

<p>At least by now I was making it most of the way through the</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">configure</pre></div></div>

<p> process.  I found that installing <b>libgmime-2.0-2-dev</b> resolved the issue, finally allowing me to complete the configuration.</p>
<p>Of course, the whole point was to build Mail Notify with SSL support.  What do you think I found when configure finally ran all of the way through?  Down at the bottom of the options list, I saw this:</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">--enable-ssl                 no (OpenSSL not found)</pre></div></div>

<p>By now, I had started seeing a pattern: look up the dependencies, find their dev libraries, install their dev libraries, and voila, on to the next issue.  With that in mind, I installed <b>libssl-dev</b> and ran</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">$ ./configure</pre></div></div>

<p> one last time.  Mail Notify configured without errors and with SSL support.  A quick</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">make</pre></div></div>

<p> and</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">make install</pre></div></div>

<p> later and I had a Mail Notify 5.0 installation complete with SSL support.</p>
<p><b>Other Options</b></p>
<p>There seem to be a lot of different ways to skin this particular cat.  The solution above is what worked for me, your mileage may vary.  You may find it useful to refer to the discussion in this <a href="https://bugs.launchpad.net/ubuntu/+source/mail-notification/+bug/44335">related bug report</a> for background.  </p>
<p>For another way to resolve this issue, you might try &#8220;<a href="http://www.howtoforge.com/repackage_deb_packages_debian_ubuntu">How to make a small change to a Debian tool and repackage it.</a>&#8221;  I didn&#8217;t find this article until after I had resolved the issue myself, but it looks like it might be a lot simpler.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jeremykendall.net/2008/02/14/mail-notification-50-with-ssl-in-ubuntu/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
