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

<channel>
	<title>dannyman.toldme.com &#187; Linux</title>
	<atom:link href="http://dannyman.toldme.com/category/technical/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://dannyman.toldme.com</link>
	<description>Interesting bits of information and editorial, evolving online since 1995.</description>
	<pubDate>Tue, 25 Nov 2008 04:58:22 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.5</generator>
	<language>en</language>
			<item>
		<title>Ubuntu: Turn off Periodic FSCK</title>
		<link>http://dannyman.toldme.com/2008/11/19/e2fsck-frog-off/</link>
		<comments>http://dannyman.toldme.com/2008/11/19/e2fsck-frog-off/#comments</comments>
		<pubDate>Wed, 19 Nov 2008 18:24:37 +0000</pubDate>
		<dc:creator>dannyman</dc:creator>
		
		<category><![CDATA[Linux]]></category>

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

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

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

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

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

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

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

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

		<guid isPermaLink="false">http://dannyman.toldme.com/?p=1902</guid>
		<description><![CDATA[I halt my computer at night, and boot it in the morning.  This reduces my carbon impact.  Alas, Ubuntu for whatever brain-dead reason doesn&#8217;t trust its filesystem.  As if we lived in the 1970s it insists on checking the filesystem consistency every thirtieth boot.  I sip my morning coffee, check my [...]]]></description>
			<content:encoded><![CDATA[<p>I halt my computer at night, and boot it in the morning.  This reduces my carbon impact.  Alas, Ubuntu for whatever brain-dead reason doesn&#8217;t trust its filesystem.  As if we lived in the 1970s it insists on checking the filesystem consistency every thirtieth boot.  I sip my morning coffee, check my workstation, and have to hit ESC . . .</p>
<p>So, I googled a bit, and found <a href="http://ubuntuforums.org/showthread.php?t=300477">a helpful forum thread</a>.  I thought I&#8217;d offer my own tiny variation:</p>
<pre>
0-09:57 dannhowa@T60p ~$ <b>sudo tune2fs -c 0 `mount | awk '$3 == "/" {print $1}'`</b>
tune2fs 1.40.8 (13-Mar-2008)
Setting maximal mount count to -1
</pre>
<p>Okay, that is a scary-looking command-line.  Let me break it down.  <span id="more-1902"></span>First, here are what filesystems we have mounted:</p>
<pre>
0-09:58 dannhowa@T60p ~$ <b>mount</b>
/dev/sda3 on / type ext3 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
/sys on /sys type sysfs (rw,noexec,nosuid,nodev)
varrun on /var/run type tmpfs (rw,noexec,nosuid,nodev,mode=0755)
varlock on /var/lock type tmpfs (rw,noexec,nosuid,nodev,mode=1777)
udev on /dev type tmpfs (rw,mode=0755)
devshm on /dev/shm type tmpfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
lrm on /lib/modules/2.6.24-21-generic/volatile type tmpfs (rw)
/dev/sda1 on /C type fuseblk (rw,nosuid,nodev,noatime,allow_other,default_permissions,blksize=4096)
securityfs on /sys/kernel/security type securityfs (rw)
</pre>
<p>The command we really want to run turn off checking of <code>/</code> is:<br />
<code>sudo tune2fs -c 0 /dev/sda3</code></p>
<p>But everyone&#8217;s <code>/</code> is mounted somewhere different, based on what sort of disks you have and how they are partitioned.  If you wanted to boil it down in to one command you have to pluck the name of the disk from the <code>mount</code> command, and for this, <code>awk</code> is the shizzle.  For example, you could print the third word followed by the first word of each line this way:</p>
<pre>
0-10:05 dannhowa@T60p ~$ <b>mount | awk '{print $3" "$1}'</b>
/ /dev/sda3
/proc proc
/sys /sys
/var/run varrun
/var/lock varlock
/dev udev
/dev/shm devshm
/dev/pts devpts
/lib/modules/2.6.24-21-generic/volatile lrm
/C /dev/sda1
/sys/kernel/security securityfs
</pre>
<p>And add a dash of logic, if the third word is &#8220;/&#8221; then print the first word:</p>
<pre>
0-10:06 dannhowa@T60p ~$ <b>mount | awk '$3 == "/" {print $1}'</b>
/dev/sda3
</pre>
<p>And through the miracle of back-ticks:</p>
<pre>
0-10:07 dannhowa@T60p ~$ <b>sudo tune2fs -c 0 `mount | awk '$3 == "/" {print $1}'`</b>
tune2fs 1.40.8 (13-Mar-2008)
Setting maximal mount count to -1
</pre>
<p>Now, I am cocky and I maintain backups of important files.  Before doing what dannyman dot told you dot com, you may wish to take a glance at the <code>tune2fs</code> man page:</p>
<pre>
<b>OPTIONS</b>
       <b>-c</b> max-mount-counts
              Adjust  the  number of mounts after which the filesystem will be
              checked by <b>e2fsck</b>(8).  If max-mount-counts is 0 or -1, the  num‐
              ber  of  times  the filesystem is mounted will be disregarded by
              <b>e2fsck</b>(8) and the kernel.

              Staggering the mount-counts at which  filesystems  are  forcibly
              checked  will  avoid  all  filesystems being checked at one time
              when using journaled filesystems.

              You should  strongly  consider  the  consequences  of  disabling
              mount-count-dependent   checking  entirely.   Bad  disk  drives,
              cables, memory, and kernel bugs could all corrupt  a  filesystem
              without  marking  the  filesystem dirty or in error.  If you are
              using journaling on your filesystem, your filesystem will  never
              be marked dirty, so it will not normally be checked.  A filesys‐
              tem error detected by the kernel will still force an fsck on the
              next reboot, but it may already be too late to prevent data loss
              at that point.

              See also the -i option for time-dependent checking.
</pre>
<p>You might also experiment with a modern filesystem, by running FreeBSD or Solaris.</p>
]]></content:encoded>
			<wfw:commentRss>http://dannyman.toldme.com/2008/11/19/e2fsck-frog-off/feed/</wfw:commentRss>
		</item>
		<item>
		<title>New York Times Reviews G1</title>
		<link>http://dannyman.toldme.com/2008/10/17/new-york-times-reviews-g1/</link>
		<comments>http://dannyman.toldme.com/2008/10/17/new-york-times-reviews-g1/#comments</comments>
		<pubDate>Fri, 17 Oct 2008 00:21:17 +0000</pubDate>
		<dc:creator>dannyman</dc:creator>
		
		<category><![CDATA[About Me]]></category>

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

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

		<category><![CDATA[News and Reaction]]></category>

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

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

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

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

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

		<category><![CDATA[Bill Gates]]></category>

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

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

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

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

		<guid isPermaLink="false">http://dannyman.toldme.com/?p=1786</guid>
		<description><![CDATA[I should receive my first new mobile phone since 2004 on October 22. I don’t really need a new phone: the old Sidekick 2 is built like a tank and shows no sign of giving up the ghost any time soon. But I went and pre-ordered a G1 for three reasons . . .]]></description>
			<content:encoded><![CDATA[<p>I should receive my first new mobile phone since 2004 on October 22.  I don&#8217;t really need a new phone: the old Sidekick 2 is built like a tank and shows no sign of giving up the ghost any time soon.  But I went and pre-ordered a G1 for three reasons:<br />
1) I have a friend on Google&#8217;s Android team.<br />
2) To annoy the iPhone weenies.<br />
3) My employer made its targets, so I spend a little of my bonus check.</p>
<p>I haven&#8217;t actually used one yet, so I was pleased to catch <a href="http://www.nytimes.com/2008/10/16/technology/personaltech/16pogue.html">a review in the New York Times</a>.  Some of what I enjoyed:</p>
<blockquote><p>One crucial improvement over the iPhone: a Menu button. It summons a panel of big buttons for functions related to what you’re doing. It’s the equivalent of right-clicking a computer mouse.</p></blockquote>
<p>&#8220;Right mouse button!&#8221;  HA!</p>
<blockquote><p>Where Android really falls down is in the iPod department. There’s no companion program like iTunes to sync your photos, music and videos to the phone; you’re expected to drag these items to the phone manually after connecting via USB cable to your Mac or PC. More time-consuming fussiness.</p></blockquote>
<p>This is a win for me: I hate iTunes.  Dragging and dropping files is just the ticket, in my book.  I&#8217;ve been dealing with that interface metaphor for fifteen years and its more comfortable than dealing with the quirks of some new software package.  (Back when I had lots of issues with iTunes doing stuff like copying my library over twice.)  That, and I run Linux desktops.</p>
<blockquote><p>Some of the goodies in Android will reward the iPhone holdouts: voice dialing, picture messaging, built-in audio recording and the ability to turn any song into a ring tone are all included — no charge.</p></blockquote>
<p>Voice dialing?  That should be nice.  And audio recording might be fun, too.  Too bad the camera is supposedly crap, and no video.  But that&#8217;s why I have my Canon.</p>
<blockquote><p>The big news is the physical keyboard. It’s not pure joy, though. The keys don’t click down much. Worse, you have to keep turning the phone 90 degrees from its customary vertical orientation every time you need to enter text. That gets old fast.  And it’s bizarre that, even though the phone contains a tilt sensor like the iPhone’s, it’s not hooked up to the screen. Turning the phone 90 degrees to get a wider look at a photo or Web page doesn’t rotate the image. You have to do that manually, using a menu or by popping open the keyboard, which makes no sense.</p></blockquote>
<p>The keyboard is my biggest concern.  I think the Sidekick 2 keyboard is nearly ideal and it is a big reason I shun the iPhone.  Software bugs (sounds like the e-mail client is a mess) can be addressed by future patches or possibly third-party applications.  I like to think rotation can be sorted out down the road.</p>
<p>Overall, it sounds like the G1 will be the dowdier, more adaptable PC to the flashy smugness that is the iPhone.  And, I have to admit, while I love the turtleneck sweater I bought in France, I am a PC guy.  (I think that&#8217;s the point of the new Microsoft ads: Bill Gates is as big a schmuck as Jerry Seinfeld or any one else.)</p>
<p>Lastly, this is just sad:</p>
<blockquote><p>Finally, there’s no headphone jack. (Hello?!) If you want to use headphones, you have to buy and carry a special adapter that connects to the USB jack.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://dannyman.toldme.com/2008/10/17/new-york-times-reviews-g1/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Linux Video &#8220;Blue Flesh&#8221; Bug</title>
		<link>http://dannyman.toldme.com/2008/08/24/ubuntu-nvidia-video-violet-hue/</link>
		<comments>http://dannyman.toldme.com/2008/08/24/ubuntu-nvidia-video-violet-hue/#comments</comments>
		<pubDate>Sun, 24 Aug 2008 00:12:14 +0000</pubDate>
		<dc:creator>dannyman</dc:creator>
		
		<category><![CDATA[Linux]]></category>

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

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

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

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

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

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

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

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

		<category><![CDATA[the daily show]]></category>

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

		<guid isPermaLink="false">http://dannyman.toldme.com/?p=1606</guid>
		<description><![CDATA[This week I upgraded the guts in my desktop.  For the video card I jumped up to an ASUS EN9600GT silent graphics card.  It is pretty &#8220;bleeding edge&#8221; as far as Linux goes, and it is a double-wide card with a massive heatsink where others would have a fan.  I like to [...]]]></description>
			<content:encoded><![CDATA[<p>This week I upgraded the guts in my desktop.  For the video card I jumped up to an ASUS EN9600GT silent graphics card.  It is pretty &#8220;bleeding edge&#8221; as far as Linux goes, and it is a double-wide card with a massive heatsink where others would have a fan.  I like to reduce the white noise.</p>
<p>Unfortunately, it is too new for the currently-supported Ubuntu drivers.  I used <a href="https://help.ubuntu.com/community/NvidiaManual">Ubuntu&#8217;s NvidiaManual docs</a> to manually upgrade to <a href="http://www.nvidia.com/object/unix.html">the 173.14.12 drivers from NVidia&#8217;s site</a>, and then things were happier.  Except video playback.  Files and DVDs seem to work okay, but the colors are off, notably, people get rendered with blue or purple flesh.<span id="more-1606"></span></p>
<p style="text-align: center"><a href="http://www.flickr.com/photos/dannyman/2791132308/" title="hue-blue by dannyman, on Flickr"><img src="http://farm4.static.flickr.com/3255/2791132308_f6359f285e_o.png" width="522" height="532" alt="hue-blue" border=0 /></a></p>
<p>I tried Googling up the fix, but didn&#8217;t get far.  One page mentioned that I could run <code>nvidia-bug-report.sh</code> and send the debug log to <code>linux-bugs@nvidia.com</code>.  Support from a hardware developer?  For Linux?  Stranger things have happened.  I sent off a report on Friday night and on Saturday morning got an e-mail back from Aaron pointing me here:</p>
<p><a href="http://www.nvnews.net/vbulletin/showthread.php?t=107009">http://www.nvnews.net/vbulletin/showthread.php?t=107009</a></p>
<p>Verily, when I start X I have:</p>
<pre>
0-16:40 djh@noneedto ~$ <b>xvinfo | grep -A2 XV_HUE</b>
      "XV_HUE" (range 0 to 360)
              client settable attribute
              client gettable attribute (current value is 0)
</pre>
<p>And when I run a video and get blue people:</p>
<pre>
0-16:40 djh@noneedto ~$ <b>xvinfo | grep -A2 XV_HUE</b>
      "XV_HUE" (range 0 to 360)
              client settable attribute
              client gettable attribute (current value is 164)
</pre>
<p>Yet, they can be fixed like so:</p>
<pre>
0-16:40 djh@noneedto ~$ <b>xvattr -a XV_HUE -v 0</b>
Found Xv 2.2
XV_HUE set to 0
0-16:40 djh@noneedto ~$ <b>xvinfo | grep -A2 XV_HUE</b>
      "XV_HUE" (range 0 to 360)
              client settable attribute
              client gettable attribute (current value is 0)
</pre>
<p style="text-align: center"><a href="http://www.flickr.com/photos/dannyman/2790283583/" title="hue-good by dannyman, on Flickr"><img src="http://farm4.static.flickr.com/3282/2790283583_7a0bd0bbb8_o.png" width="522" height="532" alt="hue-good" border=0 /></a></p>
<p>Having the work-around moves this issue from awful to annoying.  I tried resetting <code>XV_HUE</code> and invoking different players.  I found these players producing the blue flesh bug:</p>
<ul>
<li>gxine</li>
<li>(Totem) Movie Player</li>
<li>mplayer</li>
</ul>
<p>It was starting to look grim, when I found that one player doesn&#8217;t mess up the hue setting:</p>
<ul>
<li>VLC media player</li>
</ul>
<p>Hopefully this bug gets worked out over the next few months.  I&#8217;d like to give Aaron Plattner and nVidia a great deal of credit not only for grappling with this issue but for providing customer support for their products.  Now I know which brand of video card to be loyal to!</p>
]]></content:encoded>
			<wfw:commentRss>http://dannyman.toldme.com/2008/08/24/ubuntu-nvidia-video-violet-hue/feed/</wfw:commentRss>
		</item>
		<item>
		<title>HOWTO: Random Number in Shell Script</title>
		<link>http://dannyman.toldme.com/2008/07/04/shell-sh-bash-random-splay/</link>
		<comments>http://dannyman.toldme.com/2008/07/04/shell-sh-bash-random-splay/#comments</comments>
		<pubDate>Fri, 04 Jul 2008 20:55:23 +0000</pubDate>
		<dc:creator>dannyman</dc:creator>
		
		<category><![CDATA[Featured]]></category>

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

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

		<category><![CDATA[Mac OS X]]></category>

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

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

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

		<category><![CDATA[jot sleep]]></category>

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

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

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

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

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

		<guid isPermaLink="false">http://dannyman.toldme.com/?p=1541</guid>
		<description><![CDATA[<i>How do you conjure a random number within a specific range in a shell script?</i>  Updated with three different solutions, and two variants.]]></description>
			<content:encoded><![CDATA[<p>The other day I was working on a shell script to be run on several hundred machines at the same time.  Since the script was going to download a file from a central server, and I did not want to overwhelm the central server with hundreds of simultaneous requests, I decided that I wanted to add a random wait time.  <em>But how do you conjure a random number within a specific range in a shell script?</em></p>
<p><b>Updated:</b>  Due to much feedback, I now know of three ways to do this . . .</p>
<p>1) <strong>On BSD systems</strong>, you can use <code><a href="http://developer.apple.com/documentation/Darwin/Reference/ManPages/man1/jot.1.html">jot(1)</a></code>:<br />
<code>sleep `jot -r 1 1 900`</code></p>
<p>2) <strong>If you are scripting with bash</strong>, you can use <code>$RANDOM</code>:<br />
<code>sleep `echo $RANDOM%900 | bc`</code></p>
<p>3) <strong>For portability</strong>, you can resort to my first solution:<br />
<code># Sleep up to fifteen minutes<br />
sleep `echo $$%900 | bc`</code></p>
<p><code>$$</code> is the process ID (PID), or &#8220;random seed&#8221; which on most systems is a value between 1 and <a href="http://en.wikipedia.org/wiki/Integer">65,535</a>.  Fifteen minutes is 900 seconds.  <code>%</code> is <a href="http://en.wikipedia.org/wiki/Modulo_operation">modulo</a>, which is like division but it gives you the remainder.  Thus, <code>$$ % 900</code> will give you a result between 0 and 899.  With bash, <code>$RANDOM</code> provides the same utility, except it is a different value whenever you reference it.</p>
<p><b>Updated yet again . . .</b> says a friend:<br />
nah it&#8217;s using <code>`echo .. | bc`</code> that bugs me, 2 fork+execs, let your shell do the math, it knows how<br />
so <code>$(( $$ % 900 ))</code> should work in bsd sh</p>
<p><strong>For efficiency</strong>, you could rewrite the latter two solutions:<br />
2.1) <code>sleep $(( $RANDOM % 900 ))</code><br />
3.1) <code>sleep $(( $$ % 900 ))</code></p>
<p>The revised solution will work in sh-derived shells: sh, bash, ksh.  My original &#8220;portable&#8221; solution will also work if you&#8217;re scripting in csh or tcsh.</p>
]]></content:encoded>
			<wfw:commentRss>http://dannyman.toldme.com/2008/07/04/shell-sh-bash-random-splay/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Canon i250 on Ubuntu 8.04</title>
		<link>http://dannyman.toldme.com/2008/05/14/canon-i250-hardy-heron/</link>
		<comments>http://dannyman.toldme.com/2008/05/14/canon-i250-hardy-heron/#comments</comments>
		<pubDate>Wed, 14 May 2008 02:15:47 +0000</pubDate>
		<dc:creator>dannyman</dc:creator>
		
		<category><![CDATA[Linux]]></category>

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

		<guid isPermaLink="false">http://dannyman.toldme.com/?p=1475</guid>
		<description><![CDATA[The Ubuntu upgrade broke printing.  Among other things, it removed my canoni250.ppd file.  I struggled with it to no avail.  Then I went back and pasted the commands in from last time and now it all works.
Yay.
]]></description>
			<content:encoded><![CDATA[<p>The Ubuntu upgrade broke printing.  Among other things, it removed <a href="http://dannyman.toldme.com/warez/canoni250.ppd">my <code>canoni250.ppd</code> file</a>.  I struggled with it to no avail.  Then I went back and pasted <a href="/2008/03/13/canon-i250-ubuntu-feisty/">the commands in from last time</a> and now it all works.</p>
<p>Yay.</p>
]]></content:encoded>
			<wfw:commentRss>http://dannyman.toldme.com/2008/05/14/canon-i250-hardy-heron/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Mini-HOWTO: What Time is UTC?</title>
		<link>http://dannyman.toldme.com/2008/05/06/what-time-utc/</link>
		<comments>http://dannyman.toldme.com/2008/05/06/what-time-utc/#comments</comments>
		<pubDate>Tue, 06 May 2008 04:15:41 +0000</pubDate>
		<dc:creator>dannyman</dc:creator>
		
		<category><![CDATA[FreeBSD]]></category>

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

		<category><![CDATA[Mac OS X]]></category>

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

		<guid isPermaLink="false">http://dannyman.toldme.com/?p=1464</guid>
		<description><![CDATA[I wanted to know what time it was in UTC, but I forgot my local offset.  (It changes twice a year!)  I figured I could look in the date man page, but I came up with an &#8220;easier&#8221; solution.  Simply fudge the time zone and then ask.

0-20:57 djh@noneedto ~$ env TZ=UTC date
Tue [...]]]></description>
			<content:encoded><![CDATA[<p>I wanted to know what time it was in UTC, but I forgot my local offset.  (It changes twice a year!)  I figured I could look in the <code>date</code> man page, but I came up with an &#8220;easier&#8221; solution.  Simply fudge the time zone and <em>then</em> ask.</p>
<pre>
0-20:57 djh@noneedto ~$ <strong>env TZ=UTC date</strong>
Tue May  6 03:57:07 UTC 2008
</pre>
<p>The <code>env</code> bit is not needed in bash, but it makes tcsh happy.</p>
<p><b>Update:</b> <a href="#comment-74835">Mark points out</a> an easier solution:<br />
<code style="font-weight: bolder">date -u</code></p>
<p>Knowing you can set <code>TZ=</code> is still useful in case you ever need to contemplate an alternate timezone.</p>
<p>(Thanks, <a href="http://reasonablegoods.com">Saul</a> and <a href="http://meat.net/">Dave</a> for improving my knowledge.)</p>
]]></content:encoded>
			<wfw:commentRss>http://dannyman.toldme.com/2008/05/06/what-time-utc/feed/</wfw:commentRss>
		</item>
		<item>
		<title>WordPress 2.5.1</title>
		<link>http://dannyman.toldme.com/2008/04/25/wordpress-251/</link>
		<comments>http://dannyman.toldme.com/2008/04/25/wordpress-251/#comments</comments>
		<pubDate>Fri, 25 Apr 2008 18:32:58 +0000</pubDate>
		<dc:creator>dannyman</dc:creator>
		
		<category><![CDATA[Linux]]></category>

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

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

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

		<guid isPermaLink="false">http://dannyman.toldme.com/?p=1448</guid>
		<description><![CDATA[There&#8217;s a notice on the WordPress dev blog that WordPress 2.5.1 is out.  Alas, they neglected to link to the upgrade documentation.  My favorite?  Upgrading via Subversion:
0-11:17 djh@ratchet ~&#62; cd public_html/toldme
0-11:17 djh@ratchet ~/public_html/toldme&#62; svn sw http://svn.automattic.com/wordpress/tags/2.5.1/
[ . . . ]
Updated to revision 7839.
When I logged in to post this little note, it [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s a notice on the WordPress dev blog that <a href="http://wordpress.org/development/2008/04/wordpress-251/">WordPress 2.5.1 is out</a>.  Alas, they neglected to link to the <a href="http://codex.wordpress.org/Installing_WordPress">upgrade documentation</a>.  My favorite?  <a href="http://wordpress.org/development/2008/04/wordpress-251/">Upgrading via Subversion</a>:</p>
<pre>0-11:17 djh@ratchet ~&gt; <b>cd public_html/toldme</b>
0-11:17 djh@ratchet ~/public_html/toldme&gt; <b>svn sw http://svn.automattic.com/wordpress/tags/2.5.1/</b>
[ . . . ]
Updated to revision 7839.</pre>
<p>When I logged in to post this little note, it blocked me and ran the upgrade procedure, then I had to log in again, and here I am!</p>
<p>There&#8217;s a further note about the secret key setting:</p>
<blockquote><p>
Since 2.5 your <code>wp-config.php</code> file allows a new constant called <code>SECRET_KEY</code> which basically is meant to introduce a little permanent randomness into the cryptographic functions used for cookies in WordPress. You can <a href="http://api.wordpress.org/secret-key/1.0/">visit this link we set up to get a unique secret key</a> for your config file. (It&#8217;s unique and random on every page load.) Having this line in your config file helps secure your blog.
</p></blockquote>
<p>It leaves me to wonder: if the secret key can be randomly generated by a machine, why not go ahead and do that and then stash it in the database?  There may be a good reason for that . . .</p>
<p>In unrelated news, I upgraded to <a href="http://www.ubuntu.com/news/ubuntu-8.04-lts-desktop">the newer Ubuntu release</a> at home yesterday.  The only trick I have noticed so far is that it runs with <a href="http://www.mozilla.com/en-US/firefox/3.0b5/releasenotes/">Firefox 3.0, which is beta</a>, and I lost use of my <a href="http://www.foxmarks.com/">foxmarks plugin</a>, for now.  So, I&#8217;m waiting until that is supported before I upgrade my workstation.</p>
]]></content:encoded>
			<wfw:commentRss>http://dannyman.toldme.com/2008/04/25/wordpress-251/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Canon i250 on Ubuntu 7.10</title>
		<link>http://dannyman.toldme.com/2008/03/13/canon-i250-ubuntu-feisty/</link>
		<comments>http://dannyman.toldme.com/2008/03/13/canon-i250-ubuntu-feisty/#comments</comments>
		<pubDate>Thu, 13 Mar 2008 04:20:44 +0000</pubDate>
		<dc:creator>dannyman</dc:creator>
		
		<category><![CDATA[Linux]]></category>

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

		<guid isPermaLink="false">http://dannyman.toldme.com/2008/03/13/canon-i250-ubuntu-feisty/</guid>
		<description><![CDATA[I had a rough go of it until I found BlackNight&#8217;s post, and now my Canon i250 printer works with Ubuntu like a charm.  I thought I would recap here for those who, like me, at first Googled in vain.  If you paste these command into Ubuntu 7.10 (Feisty) things ought to work:
First, [...]]]></description>
			<content:encoded><![CDATA[<p>I had a rough go of it until I found <a href="http://www.livux.org/otros/canon-i250_2.3_i386.deb">BlackNight&#8217;s post,</a> and now my Canon i250 printer works with Ubuntu like a charm.  I thought I would recap here for those who, like me, at first Googled in vain.  If you paste these command into Ubuntu 7.10 (Feisty) things ought to work:</p>
<p>First, enter your sudo password:</p>
<p><code>sudo echo</code></p>
<p>Now, this paste just might set up everything you need:</p>
<pre>
sudo apt-get install libpng3 libtiff4 cupsys alien
cd /tmp
wget http://download.canon.com.au/bj/i250linux/bjfilteri250-2.3-0.i386.rpm
wget http://download.canon.com.au/bj/i250linux/bjfiltercups-2.3-0.i386.rpm
sudo alien --scripts bjfilteri250-2.3-0.i386.rpm
sudo alien --scripts bjfiltercups-2.3-0.i386.rpm
sudo dpkg -i bjfiltercups_2.3-1_i386.deb bjfilteri250_2.3-1_i386.deb
sudo ln -s /usr/lib/libtiff.so.4 /usr/lib/libtiff.so.3
sudo ln -s /usr/lib/libpng.so.3 /usr/lib/libpng.so.2
sudo /etc/init.d/cupsys restart
</pre>
<p>Then, go set up your printer in the GUI, and specify <a href="/warez/canoni250.ppd">this PPD file</a>:</p>
<p><code>/usr/share/cups/model/canoni250.ppd</code></p>
<p>(Or, in retrospect, since it has a GNU license on it, you could just <a href="/warez/canoni250.ppd">download the PPD directly off my web site</a>.)</p>
<p>If things turn out less-than-straightforward, definitely <a href="http://www.linux-geek.org/2007/07/07/ubuntu-feisty-canon-i250-howto/">review BlackNight&#8217;s page for details</a>, and if this does work out for you drop him a thank you note in the comments!</p>
]]></content:encoded>
			<wfw:commentRss>http://dannyman.toldme.com/2008/03/13/canon-i250-ubuntu-feisty/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Trendspotting: &#8220;The Amiga Line&#8221;</title>
		<link>http://dannyman.toldme.com/2008/01/26/deader-than-amiga/</link>
		<comments>http://dannyman.toldme.com/2008/01/26/deader-than-amiga/#comments</comments>
		<pubDate>Sat, 26 Jan 2008 05:26:00 +0000</pubDate>
		<dc:creator>dannyman</dc:creator>
		
		<category><![CDATA[Featured]]></category>

		<category><![CDATA[Free Style]]></category>

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

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

		<category><![CDATA[Mac OS X]]></category>

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

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

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

		<guid isPermaLink="false">http://dannyman.toldme.com/2008/01/26/deader-than-amiga/</guid>
		<description><![CDATA[I asked myself: what is the threshold for a dead or dying Operating System?]]></description>
			<content:encoded><![CDATA[<p>I have been playing with <a href="http://www.google.com/trends">Google Trends</a>, which will be happy to generate a pretty graph of keyword frequency over time.  A rough gauge to the relative popularity of various things.  This evening, I was riffing off a post from the Royal Pingdom, <a href="http://royal.pingdom.com/?p=239">regarding the relative popularity of Ubuntu and Vista</a>, among other things.</p>
<p>I got started graphing <a href="http://www.google.com/trends?q=Ubuntu%2C+Fedora%2C+SuSE%2C+Gentoo%2C+Debian">various Linux distributions</a> against each other, <a href="http://www.google.com/trends?q=XP%2C+Vista">XP versus Vista</a>, and trying to figure out the best keyword for OS X.  Then, I wondered about FreeBSD.  <a href="http://www.google.com/trends?q=Ubuntu%2C+FreeBSD">Against Ubuntu, it was a flatline.</a>  So, I asked myself: what is the threshold for a dead or dying Operating System?</p>
<p><span style="color: #4684ee">Amiga</span> vs <span style="color: #dc3912">FreeBSD</span>:<br />
<a href="http://www.google.com/trends?q=Amiga%2C+FreeBSD"><img src='http://dannyman.toldme.com/wp-content/uploads/2008/01/amiga-freebsd.png' alt='Google Trends: Amiga versus FreeBSD' border=0 /></a></p>
<p>Ouch!  Can we get deader?</p>
<p><span style="color: #4684ee">Amiga</span> vs <span style="color: #dc3912">FreeBSD</span> vs <span style="color: #ff9900">BeOS</span>:<br />
<a href="http://www.google.com/trends?q=Amiga%2C+FreeBSD%2C+BeOS"><img src='http://dannyman.toldme.com/wp-content/uploads/2008/01/amiga-freebsd-beos.png' alt='Google Trends: Amiga versus FreeBSD versus BeOS' border=0 /></a></p>
<p>To be fair, the cult of Amiga is still strong . . . BeOS is well and truly dead.  But how do the BSDs fare?</p>
<p><span style="color: #4684ee">Amiga</span> vs <span style="color: #dc3912">FreeBSD</span> vs <span style="color: #ff9900">BeOS</span> vs <span style="color: #008000">NetBSD</span> vs <span style="color: #4942cc">OpenBSD</span>:<br />
<a href="http://www.google.com/trends?q=Amiga%2C+FreeBSD%2C+BeOS%2C+NetBSD%2C+OpenBSD"><img src='http://dannyman.toldme.com/wp-content/uploads/2008/01/amiga-bsds.png' alt='Google Trends: *BSD versus Amiga, BeOS' border=0 /></a></p>
<p>NetBSD has been sleeping with the BeOS fishes for a while, and OpenBSD is on its way.  And that&#8217;s a league <em>below</em> Amiga!</p>
<p>In Red Hat land, <a href="http://www.google.com/trends?q=Amiga%2C+Red+Hat%2C+Fedora%2C+CentOS">only Fedora beats &#8220;the Amiga Line&#8221;</a>.  For Unix in general, nothing stops <a href="http://www.google.com/trends?q=FreeBSD%2C+Fedora%2C+Ubuntu%2C+Solaris%2C+SuSE">the Ubuntu juggernaut</a>.  But there&#8217;s <a href="http://www.google.com/trends?q=Ubuntu%2C+Mac%2C+XP%2C+Vista">a long way to go to catch up with Uncle Bill</a>.</p>
<p>(Yes, it is a rainy night and the girlfriend is out of town.)</p>
<p>Postscript: <a href="http://www.google.com/trends?q=Ubuntu%2C+Obama">Ubuntu versus Obama</a></p>
]]></content:encoded>
			<wfw:commentRss>http://dannyman.toldme.com/2008/01/26/deader-than-amiga/feed/</wfw:commentRss>
		</item>
		<item>
		<title>SysAdmin OpEd: Where to Keep the Crons</title>
		<link>http://dannyman.toldme.com/2008/01/11/etc-crontab-or-die/</link>
		<comments>http://dannyman.toldme.com/2008/01/11/etc-crontab-or-die/#comments</comments>
		<pubDate>Fri, 11 Jan 2008 23:04:33 +0000</pubDate>
		<dc:creator>dannyman</dc:creator>
		
		<category><![CDATA[About Me]]></category>

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

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

		<category><![CDATA[Mac OS X]]></category>

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

		<guid isPermaLink="false">http://dannyman.toldme.com/2008/01/11/etc-crontab-or-die/</guid>
		<description><![CDATA[This is just a note which I contributed to a thread on sage-members, to get something off my chest, as to where people should maintain their crontab entries.  I sincerely doubt that reading what I have to say will bring you any great illumination.
I&#8217;d say, any reasonable SysAdmin should default to /etc/crontab because every [...]]]></description>
			<content:encoded><![CDATA[<p>This is just a note which I contributed to a thread on <a href="http://www.sage.org/lists/mailarchive.html">sage-members</a>, to get something off my chest, as to where people should maintain their crontab entries.  I sincerely doubt that reading what I have to say will bring you any great illumination.</p>
<blockquote><p>I&#8217;d say, any reasonable SysAdmin should default to <code>/etc/crontab</code> because every other reasonable SysAdmin already knows where it is.  If anything is used in addition to <code>/etc/crontab</code>, leave a note in <code>/etc/crontab</code> advising the new guy who just got paged at 3:45am where else to look for crons.</p>
<p>For production systems, I strongly object to the use of per-user crontabs.  I&#8217;m glad to hear I&#8217;m not alone.  One thing I have to do in a new environment tends to be to write <a href="/warez/showcrons">a script that will sniff out all the cron entries</a>.</p>
<p>And then there was the shop that used <code>/etc/crontab</code>, user crons, and <a href="http://fcron.free.fr/">fcron</a> to keep crons from running over each other.  This frustrated me enough that I did a poor job of explaining that job concurrency could easily be ensured by executing a command through (something like) <a href="http://fuse4bsd.creo.hu/localcgi/man-cgi.cgi?lockf">the lockf utility</a>, instead of adding <a href="/2006/11/29/crontab-l-u-star/">a new layer of system complexity</a>.</p></blockquote>
<p>Yes, I am a cranky old SysAdmin.</p>
]]></content:encoded>
			<wfw:commentRss>http://dannyman.toldme.com/2008/01/11/etc-crontab-or-die/feed/</wfw:commentRss>
		</item>
		<item>
		<title>HOWTO: Audit User Crontabs</title>
		<link>http://dannyman.toldme.com/2006/11/29/crontab-l-u-star/</link>
		<comments>http://dannyman.toldme.com/2006/11/29/crontab-l-u-star/#comments</comments>
		<pubDate>Wed, 29 Nov 2006 02:24:36 +0000</pubDate>
		<dc:creator>dannyman</dc:creator>
		
		<category><![CDATA[Linux]]></category>

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

		<guid isPermaLink="false">http://dannyman.toldme.com/2006/11/29/crontab-l-u-star/</guid>
		<description><![CDATA[For production systems, I think it is best to use a single, centralized /etc/crontab, which simplifies the job of tracking batch processes.  On a production system, batch scripts should be sufficiently robust such that if they are resource or lock-intensive, they make sure everything is okay before they get to work.  Stuff like [...]]]></description>
			<content:encoded><![CDATA[<p>For production systems, I think it is best to use a single, centralized <code>/etc/crontab</code>, which simplifies the job of tracking batch processes.  On a production system, batch scripts should be sufficiently robust such that if they are resource or lock-intensive, they make sure everything is okay before they get to work.  Stuff like user crons and fcrontab can live in your development and corporate servers.</p>
<p>Of course, sometimes you inherit production systems with people who don&#8217;t think like you do.  You&#8217;ll need to review what random user crons are running on each system.  With any luck you&#8217;ll have a sane OS that keeps the user crontabs in a well-documented location. (FreeBSD? <code>/var/cron/tabs</code> . . . SuSE . . . still not sure . . .)  Of course, luck is a fickle mistress, and sometimes you have to do it the evil way:</p>
<pre>
&gt; <strong>cat /etc/passwd | awk -F : &#39;{print &#34;echo crontabs for user &#34;$1&#34;&#92;ncrontab -l -u &#34;$1&#34;&#92;n&#34;}&#39; &gt; /tmp/crontabs.sh</strong>
&gt; <strong>head /tmp/crontabs.sh</strong>
echo crontabs for user root
crontab -l -u root
&nbsp;
echo crontabs for user bin
crontab -l -u bin
&nbsp;
echo crontabs for user daemon
crontab -l -u daemon
&nbsp;
echo crontabs for user lp
&gt; <strong>sudo sh /tmp/crontabs.sh | mail -s &#34;&#96;hostname&#96; crontabs&#34; <em>$USER</em></strong>
</pre>
<p>If you are borrowing my &#8220;recipe&#8221; you will likely want to put your e-mail address where it says <em>$USER</em> . . . and, you may have to do the same for fcron as well.  Bah!</p>
<pre>
cat /etc/passwd | awk -F : &#39;{print &#34;echo fcrontabs for user &#34;$1&#34;&#92;n/usr/local/bin/fcrontab -l -u &#34;$1&#34;&#92;n&#34;}&#39; &gt; /tmp/fcrontabs.sh
sudo sh /tmp/fcrontabs.sh | mail -s &#34;&#96;hostname&#96; fcrontabs&#34; <em>$USER</em>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://dannyman.toldme.com/2006/11/29/crontab-l-u-star/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Linux HOWTO: Add Temporary File to Swap</title>
		<link>http://dannyman.toldme.com/2006/10/24/howto-swapon-file/</link>
		<comments>http://dannyman.toldme.com/2006/10/24/howto-swapon-file/#comments</comments>
		<pubDate>Tue, 24 Oct 2006 23:10:40 +0000</pubDate>
		<dc:creator>dannyman</dc:creator>
		
		<category><![CDATA[Linux]]></category>

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

		<guid isPermaLink="false">http://dannyman.toldme.com/2006/10/24/howto-swapon-file/</guid>
		<description><![CDATA[Scenario: a Linux system with two drives.  The system was built with resiliency as a priority, but availability is not critical.  So, the filesystems were mounted atop md raid1 for resiliency, and the swap was striped across an md raid0 for performance.
One disk failed and was removed from the system.  System returns [...]]]></description>
			<content:encoded><![CDATA[<p>Scenario: a Linux system with two drives.  The system was built with resiliency as a priority, but availability is not critical.  So, the filesystems were mounted atop md raid1 for resiliency, and the swap was striped across an md raid0 for performance.</p>
<p>One disk failed and was removed from the system.  System returns to service on remaining drive until RMA is completed.  Users are informed that the system is available but does not have swap space.  Consensus is reached to add some temporary swap space via a swapfile.<span id="more-1186"></span></p>
<p>Figure 2GB, space is available in <code>/tmp</code>.  Check the man pages, and make notes.  First, how much is 2GB?</p>
<p><code>> <strong>bc</strong><br />
bc 1.06<br />
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.<br />
This is free software with ABSOLUTELY NO WARRANTY.<br />
For details type `warranty&#8217;.<br />
1024*1024*2<br />
2097152<br />
quit</code></p>
<p>Next, create a file of the appropriate size, mkswap, and swapon:</p>
<p><code># <strong>dd if=/dev/zero of=/tmp/tmpswap bs=1024 count=2097152</strong><br />
2097152+0 records in<br />
2097152+0 records out<br />
2147483648 bytes (2.1 GB) copied, 21.552 seconds, 99.6 MB/s<br />
# <strong>mkswap /tmp/tmpswap 2097152</strong><br />
Setting up swapspace version 1, size = 2147479 kB<br />
# <strong>swapon /tmp/tmpswap</strong><br />
# <strong>swapon -s</strong><br />
Filename                                Type            Size    Used Priority<br />
/tmp/tmpswap                            file            2097144 0    -1</code></p>
<p>Note: I like to think we don&#8217;t need to pass the size to mkswap, and it will just use the entire file.  I figured I&#8217;d play it safe, like <a href="http://tldp.org/HOWTO/Swap-Space-7.html">these notes</a>.</p>
<p>RMA and subsequent maintenance involve a system reboot, so this swap space will go away.  I figure that if we want to swapoff while the system is running, it is simply:</p>
<p><code># <strong>swapoff  /tmp/tmpswap</strong><br />
# <strong>rm /tmp/tmpswap</strong></code></p>
]]></content:encoded>
			<wfw:commentRss>http://dannyman.toldme.com/2006/10/24/howto-swapon-file/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Serial Console Woes</title>
		<link>http://dannyman.toldme.com/2006/09/06/serial-console-woes/</link>
		<comments>http://dannyman.toldme.com/2006/09/06/serial-console-woes/#comments</comments>
		<pubDate>Wed, 06 Sep 2006 20:50:39 +0000</pubDate>
		<dc:creator>dannyman</dc:creator>
		
		<category><![CDATA[Linux]]></category>

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

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

		<guid isPermaLink="false">http://dannyman.toldme.com/2006/09/06/serial-console-woes/</guid>
		<description><![CDATA[So, I&#8217;m setting up a box.  I need to test different filesystem configurations, which will involve a lot of boot-configure-install-post-install-benchmark cycles.  We have a nice network boot infrastructure, but getting serial booting to work is always fun.  Today I found that the vendor has set up BIOS &#8220;remote access&#8221; to COM2.  [...]]]></description>
			<content:encoded><![CDATA[<p>So, I&#8217;m setting up a box.  I need to test different filesystem configurations, which will involve a lot of boot-configure-install-post-install-benchmark cycles.  We have a nice network boot infrastructure, but getting serial booting to work is always fun.  Today I found that the vendor has set up BIOS &#8220;remote access&#8221; to COM2.  Funny thing, the box only has one serial port!  So, I set that to COM1, and configure console redirection only up to the boot loader, tell the bootloader that I want <code>text console=ttyS0</code> and we&#8217;re in business!</p>
<p>But man, if SuSE&#8217;s YaST aint a bloody mess when it downgrades to text on a serial port:</p>
<p style="text-align: center"><a title="Photo Sharing" href="http://www.flickr.com/photos/dannyman/236193437/"><img width="667" height="436" alt="yast" src="http://static.flickr.com/84/236193437_4f17f3e18b_o.png" /></a></p>
<p>What you don&#8217;t see here is the constant slow screen-redraw, constant pressing control-L.  This is what it looks like at a good moment!</p>
<p>I think I understand why.  I mean, I would think that Linux developers would take serial consoles and text mode to heart.  After all, that&#8217;s the whole point, right?  But that&#8217;s how I think, because I manage dozens of servers at a time, remote, and all my boxes are rack-mount jobbies with lots o&#8217; fans and nobody wants to be in the same room.</p>
<p>But the developers who hack on Linux probably aren&#8217;t hard-core SysAdmins.  Their dev system is some beat-up old hardware sitting near their desk, wired up to a spare VGA monitor, so yeah, text mode is kind of an afterthought.  Especially given the pain in the butt that setting up serial consoles can be!</p>
]]></content:encoded>
			<wfw:commentRss>http://dannyman.toldme.com/2006/09/06/serial-console-woes/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Linux Uptime Reset</title>
		<link>http://dannyman.toldme.com/2006/08/16/linux-uptime-reset/</link>
		<comments>http://dannyman.toldme.com/2006/08/16/linux-uptime-reset/#comments</comments>
		<pubDate>Wed, 16 Aug 2006 18:14:57 +0000</pubDate>
		<dc:creator>dannyman</dc:creator>
		
		<category><![CDATA[Linux]]></category>

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

		<guid isPermaLink="false">http://dannyman.toldme.com/2006/08/16/linux-uptime-reset/</guid>
		<description><![CDATA[dman: Anyone ever been on a Unix box and see uptime reset without a reboot?
 SmooveB: dman: yes
 David: dman: yes
 ***dman smiles
 David: dman: my personal favorate is the rollover or the negative rollover
 SmooveB: dman: linux in particular
 dman: LINUX, you say?
 David: SmooveB: fancy that, that&#8217;s where I&#8217;ve seen it too
It seems [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p><strong>dman:</strong> Anyone ever been on a Unix box and see uptime reset without a reboot?<br />
<strong> SmooveB:</strong> dman: yes<br />
<strong> David:</strong> dman: yes<br />
<em> ***dman smiles</em><br />
<strong> David:</strong> dman: my personal favorate is the rollover or the negative rollover<br />
<strong> SmooveB:</strong> dman: linux in particular<br />
<strong> dman:</strong> LINUX, you say?<br />
<strong> David:</strong> SmooveB: fancy that, that&#8217;s where I&#8217;ve seen it too</p></blockquote>
<p>It seems that this issue is near and dear to those involved in &#8220;the uptime project&#8221; where, I guess, geeks sit around comparing uptime size.  Which is kind of juvenile. However, <a href="https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=97373">this bug</a> gave me a hearty laugh:</p>
<blockquote><p>How reproducible:<br />
ALWAYS</p>
<p>Steps to Reproduce:<br />
1. Boot Linux system<br />
2. Go away for 497 days<br />
3. check uptime</p></blockquote>
<p>That would be a bitch to QA!<span id="more-1154"></span></p>
<p>For the pedantic, the cause is:</p>
<blockquote><p>The Linux kernel (at least up to 2.4.2) has a flaw: It computes the result of the &#8220;uptime&#8221; based on the internal &#8220;jiffies&#8221; counter, which counts the time since boot, in units of 10 milliseconds.  This is typecast as an &#8220;unsigned long&#8221; - on the Intel boxes, that&#8217;s an unsigned 32-bit number.</p></blockquote>
<p>I have been researching to ensure that this won&#8217;t cause us other problems, since the monitoring system graphed a load spike on the system this morning, but I can&#8217;t correlate that with my own experience tailing the uptime.  Anyway, from <a href="http://kerneltrap.org/node/464">a good overview of jiffies and pre-emption timing:</a></p>
<blockquote><p>The second issue is jiffie wraparound: the system uptime clock wraps around at about 497 days (32-bits holding 10 jiffies per second, 60 seconds in a minute, &#8230;). If we go to HZ=1000, the uptime clock wraps in 49.7 days. We can fix this by backporting the 64-bit jiffies we have in 2.5 to 2.4.</p></blockquote>
<p>So, are there other foul things that can happen to us after jiffie wrap-around?  (We don&#8217;t want to reboot an important box that&#8217;s been running for more than a year if we can avoid it.)  <a href="http://www.kernel-traffic.org/kernel-traffic/kt20030223_206.html#1">There&#8217;s a discussion on the need for 64-bit jiffie and whether it might just be better to account for jiffie wrap-around in code.</a>  Denis Vlasenko suggested in 2003 that the kernel trigger a jiffie wrap five minutes after boot, to expose bugs in driver code:</p>
<blockquote><p><span class="quote">&#8220;There were reports of machines hanging on jiffy wrap.  This is typically a result of incorrect jiffy use in some driver.&#8221; </span>[Denis] suggested wrapping the jiffy counter within the first five minutes of uptime.  Driver writers would be bitten by their bugs, and fix them right away.</p></blockquote>
<p>Fortunately, I&#8217;m not finding many jiffie wrap-around bugs in my Google searches.  But then, who knows?  This is where disaster recovery and best practices come in to account for the occasional fallibility of the Unix OS, and that&#8217;s how guys like me get paid.</p>
]]></content:encoded>
			<wfw:commentRss>http://dannyman.toldme.com/2006/08/16/linux-uptime-reset/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Red Hat Rant</title>
		<link>http://dannyman.toldme.com/2005/12/28/red-hat-rant/</link>
		<comments>http://dannyman.toldme.com/2005/12/28/red-hat-rant/#comments</comments>
		<pubDate>Wed, 28 Dec 2005 20:24:40 +0000</pubDate>
		<dc:creator>dannyman</dc:creator>
		
		<category><![CDATA[Linux]]></category>

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

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

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

		<guid isPermaLink="false">http://dannyman.toldme.com/?p=1055</guid>
		<description><![CDATA[Ahhh, so in my getting to grips with, I have a few gripes about Linux.  Some day I may cultivate these into a well-formed, coherent technical explanation, but just now . . . just now, I&#8217;ll share with you a special favorite rant of mine.
New install, right?  By default, it wants to check [...]]]></description>
			<content:encoded><![CDATA[<p>Ahhh, so in my getting to <em>grips</em> with, I have a few <em>gripes</em> about Linux.  Some day I may cultivate these into a well-formed, coherent technical explanation, but just now . . . just now, I&#8217;ll share with you a special favorite rant of mine.</p>
<p>New install, right?  By default, it wants to check the install media (who cares?) then there&#8217;s a screen that says &#8220;welcome to &lt;version of Red Hat&gt;&#8221; where you get the chance to say &#8220;ohhh, wrong CD &#8230;&#8221; then you move on to disk partitioning, and you have to intentionally select that yes you want to erase all data, and enter a bunch of other parameters &#8230; network &#8230; firewall, SE-Linux &#8230; altogether 10-15 minutes if you know what you are doing.  Nothing onerous.  Lots of &#8220;yes, a firewall, and these other things, these are all a good ideas, I&#8217;ll just mostly agree to what you suggest.&#8221;<span id="more-1055"></span></p>
<p style="text-align: center"><a href="http://www.flickr.com/photos/dannyman/78600242/" title="Photo Sharing"><img src="http://static.flickr.com/41/78600242_b41dc05f04_o.png" width="488" height="344" alt="redhat-dumb" /></a></p>
<p>Then, the &#8220;commit&#8221; step, this stupid screen for which I have a special hatred, because to the naked eye, it appears to say: &#8220;you know you&#8217;ll need these CDs, right?&#8221;  And the default response, if you are not careful, for no good reason, is to reboot!</p>
<p style="text-align: center"><strong><blink>REBOOT!</blink></strong></p>
<p>Because . . . most people who think they want to install Red Hat are probably wrong, even if they&#8217;ve ponied up the $350 for an Enterprise license.</p>
<p>pppppppbbbbbttt!!!</p>
]]></content:encoded>
			<wfw:commentRss>http://dannyman.toldme.com/2005/12/28/red-hat-rant/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
