<?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/"
	xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule"
>

<channel>
	<title>Al Hoang &#187; unix</title>
	<atom:link href="http://blogs.law.harvard.edu/hoanga/category/unix/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.law.harvard.edu/hoanga</link>
	<description>Just another weblog</description>
	<lastBuildDate>Wed, 09 Sep 2009 06:52:48 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>
		<item>
		<title>Automating Zone creation in OpenSolaris 2009.06</title>
		<link>http://blogs.law.harvard.edu/hoanga/2009/06/02/automating-zone-creation-in-opensolaris-200906/</link>
		<comments>http://blogs.law.harvard.edu/hoanga/2009/06/02/automating-zone-creation-in-opensolaris-200906/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 13:02:14 +0000</pubDate>
		<dc:creator>hoanga</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[solaris]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://blogs.law.harvard.edu/hoanga/?p=737</guid>
		<description><![CDATA[With the announcement of OpenSolaris 2009.06 I thought it would be appropriate to blog a little about a tool I had been writing to help myself play with Zones a bit easier.  
My overall goals were the following:

Have each zone configured with its own virtual NIC (Crossbow)
Allow easy creation of zones without having to [...]]]></description>
			<content:encoded><![CDATA[<p>With the <a href="http://www.sun.com/aboutsun/pr/2009-06/sunflash.20090601.1.xml">announcement of OpenSolaris 2009.06</a> I thought it would be appropriate to blog a little about a tool I had been writing to help myself play with Zones a bit easier.  </p>
<p>My overall goals were the following:</p>
<ul>
<li>Have each zone configured with its own virtual NIC (<a href="http://opensolaris.org/os/project/crossbow/">Crossbow</a>)</li>
<li>Allow easy creation of zones without having to type zonecfg crap over and over again</li>
<li>Make it a stepping stone to automatically creating zones</li>
<li>See how well ipkg branded Zones work</li>
<li>Allow a Zone to get its IP and DNS configuration from DHCP</li>
</ul>
<p>I had tried going through tutorials that I found on the web (See references below) for setting up Zones but sadly none of them worked to my frustration.  After a lot of experimentation I finally pieced together a way to create zones quickly and (almost) automatically for simple configurations.</p>
<h3>Howto</h3>
<ol>
<li>Create a template zone that will be used as the main clone Zone</li>
<li>Download <a href="http://gist.github.com/122220">setup-zone-exclusive.sh</a> and modify lines 34-35 to match the name of your template zone and the real interface you want the zones to bind to</li>
<li>Download the DHCP event hook script from <a href="http://www.linuxtopia.org/online_books/opensolaris_2008/SYSADV3/html/extkj.html">here</a> and name it dhcp-client-event.sh if you want DHCP configuration</li>
<li>Run setup-zone-exclusive with the zonename and the virtual nic interface that you want</li>
</ol>
<p>In more detail here are the steps below</p>
<h4>First create a template zone (I call it barebones here)</h4>
<blockquote><p>
# Create /zones as its own ZFS filesystem<br />
$ pfexec zfs create rpool/zones<br />
$ pfexec zfs set mountpoint=/zones rpool/zones<br />
$ pfexec zfs create rpool/zones/barebones<br />
$ pfexec chmod 0700 /zones/barebones<br />
$ pfexec dladm create-vnic -l $REAL_IF vnic0<br />
$ pfexec zonecfg -z barebones<br />
barebones: No such zone configured<br />
Use &#8216;create&#8217; to begin configuring a new zone.<br />
zonecfg:barebones&gt; create<br />
zonecfg:barebones&gt; set zonepath=/zones/barebones<br />
zonecfg:barebones&gt; set ip-type=exclusive<br />
zonecfg:barebones&gt; add net<br />
zonecfg:barebones:net&gt; set physical=vnic0<br />
zonecfg:barebones:net&gt; end<br />
zonecfg:barebones&gt; exit</p>
<p>$ pfexec zoneadm -z barebones install
</p></blockquote>
<h4>Get the script</h4>
<p>I would suggest you create a project directory to hold things such as <em>zonecreations</em>.</p>
<p>Download from Github gists <a href="http://gist.github.com/122220">here</a>.   Name it setup-zone-exclusive.sh. Don&#8217;t forget to chmod +x the file so you can execute it</p>
<h4>Download the DHCP event hook script</h4>
<p>You can get that <a href="http://www.linuxtopia.org/online_books/opensolaris_2008/SYSADV3/html/extkj.html">here</a>.  Make sure this script is in the same directory as wherever you saved setup-zone-exclusive.sh</p>
<h4>Create a zone</h4>
<p>You can now create zones like this:</p>
<blockquote><p>
cd zonecreations<br />
pfexec ./setup-zone-exclusive.sh mycoolnewzone  virtualnic1
</p></blockquote>
<p>Have fun!</p>
<p>Update:  Fixed an error in the example for using dladm.  It should be correct now.  Thanks!</p>
<h3> References </h3>
<h4>Downloads</h4>
<p><a href="http://gist.github.com/122220">http://gist.github.com/122220 (setup-zone-exclusive.sh)</a><br />
<a href="http://www.linuxtopia.org/online_books/opensolaris_2008/SYSADV3/html/extkj.html">A DHCP event script to make sure DNS is configured when DHCP acquires an IP</a></p>
<h4>Older docs on setting up Zones on Solaris</h4>
<p><a href="http://www.mail-archive.com/zones-discuss@opensolaris.org/msg04174.html">How to use sysidcfg file in OpenSolaris 2008.11</a><br />
<a href="http://docs.sun.com/app/docs/doc/819-2450/z.login.ov-14?a=view">Internal Zone Configuration docs</a> <br />
<a href="http://docs.sun.com/app/docs/doc/819-2450/z.login.task-31?a=view">Performing the Initial Zone configuration</a> <br />
<a href="http://docs.sun.com/app/docs/doc/819-5776/6n7r9js2j?a=view">Preconfiguring with sysidcfg file</a> <br />
<a href="http://opensolaris.org/os/community/zones/faq/#cfg_sysidcfg">OpenSolaris FAQ on sysidcfg</a> <br />
<a href="http://www.cuddletech.com/blog/pivot/entry.php?id=751">Ben Rockwood&#8217;s blogpost on Zone creation</a>  <br />
<a href="http://docs.sun.com/app/docs/doc/819-2450/gbrmi?a=view">About /etc/.UNCONFIGURED</a> </p>
<h4>Helpful for understanding Zones and Crossbow</h4>
<p><a href="http://blogs.sun.com/stw/entry/crossbow_is_delivered_traveling_vnics">Crossbow on vnics</a></p>
<h4>Finding out that there is a change in policy for setting root_password in sysidcfg files</h4>
<p><a href="http://opensolaris.org/os/community/on/flag-days/pages/2008111501/">PASSREQ is enforced</a> <br />
<a href="https://www.opensolaris.org/jive/thread.jspa?messageID=329028&amp;#329028">zlogin failure after zone setup</a> </p>
<h4>The following helped in understanding the role of IPS and ipkg inside a non-global Zone</h4>
<p><a href="http://blogs.sun.com/jerrysblog/entry/updating_zones_on_opensolaris_2008">Updating Zones in OpenSolaris 2008.x</a> <br />
<a href="http://blogs.sun.com/dp/date/20080512">A field guide to Zones in OpenSolaris 2008.05</a> <br />
<a href="https://www.opensolaris.org/jive/thread.jspa?threadID=102287&amp;tstart=15">OpenSolaris forum on sysidcfg and Zones</a> </p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.law.harvard.edu/hoanga/2009/06/02/automating-zone-creation-in-opensolaris-200906/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>The role of loghost entry in /etc/inet/hosts for OpenSolaris</title>
		<link>http://blogs.law.harvard.edu/hoanga/2009/06/02/the-role-of-loghost-entry-in-etcinethosts-for-opensolaris/</link>
		<comments>http://blogs.law.harvard.edu/hoanga/2009/06/02/the-role-of-loghost-entry-in-etcinethosts-for-opensolaris/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 11:47:11 +0000</pubDate>
		<dc:creator>hoanga</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[solaris]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://blogs.law.harvard.edu/hoanga/?p=734</guid>
		<description><![CDATA[After looking at /etc/inet/hosts I noticed a loghost entry.
Being a Solaris newbie I was curious to see why this entry was there.  A quick Google brought up this nice discussion:
&#160;http://opensolaris.org/jive/thread.jspa?&#8230;
Summary, don&#8217;t delete it.
]]></description>
			<content:encoded><![CDATA[<p>After looking at /etc/inet/hosts I noticed a loghost entry.</p>
<p>Being a Solaris newbie I was curious to see why this entry was there.  A quick Google brought up this nice discussion:<br />
&nbsp;<a href="http://opensolaris.org/jive/thread.jspa?threadID=47166" title="http://opensolaris.org/jive/thread.jspa?threadID=47166" target="_blank">http://opensolaris.org/jive/thread.jspa?&#8230;</a></p>
<p>Summary, don&#8217;t delete it.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.law.harvard.edu/hoanga/2009/06/02/the-role-of-loghost-entry-in-etcinethosts-for-opensolaris/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Enabling ZeroConf / Bonjour DNS resolution in OpenSolaris</title>
		<link>http://blogs.law.harvard.edu/hoanga/2009/05/06/enabling-zeroconf-bonjour-dns-resolution-in-opensolaris/</link>
		<comments>http://blogs.law.harvard.edu/hoanga/2009/05/06/enabling-zeroconf-bonjour-dns-resolution-in-opensolaris/#comments</comments>
		<pubDate>Wed, 06 May 2009 07:20:09 +0000</pubDate>
		<dc:creator>hoanga</dc:creator>
				<category><![CDATA[fixes]]></category>
		<category><![CDATA[solaris]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[fixes tech opensolaris sysadmin]]></category>

		<guid isPermaLink="false">http://blogs.law.harvard.edu/hoanga/?p=724</guid>
		<description><![CDATA[On small LAN networks that do not have an internal DNS server.  There is a nice technology called ZeroConf that uses multicast to enable name lookup resolution.  It has been baked into OS X for quite some time now.  Linux and other UNIX flavors have been picking this up as well.  [...]]]></description>
			<content:encoded><![CDATA[<p>On small LAN networks that do not have an internal DNS server.  There is a nice technology called ZeroConf that uses multicast to enable name lookup resolution.  It has been baked into OS X for quite some time now.  Linux and other UNIX flavors have been picking this up as well.  OpenSolaris also includes this but enabling it is not on by default (At least with 2008.11).  Here is a quick howto.</p>
<p>Edit the file /etc/nsswitch.conf and make sure that the line that begins with</p>
<blockquote><p>
hosts:
</p></blockquote>
<p>contains the following</p>
<blockquote><p>
hosts:       files dns mdns
</p></blockquote>
<p>Then you should be able to ping any machine that uses Bonjour.  For example, if you have a Mac that is named mycoolmac then you should be able to ping mycoolmac.local</p>
<h4>References</h4>
<ul>
<li>
<a href="http://opensolaris.org/os/community/on/flag-days/pages/2007082001/">Heads-up Multicast DNS and discovery</a>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blogs.law.harvard.edu/hoanga/2009/05/06/enabling-zeroconf-bonjour-dns-resolution-in-opensolaris/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Good Systems Administration should be boring</title>
		<link>http://blogs.law.harvard.edu/hoanga/2009/04/30/good-systems-administration-should-be-boring/</link>
		<comments>http://blogs.law.harvard.edu/hoanga/2009/04/30/good-systems-administration-should-be-boring/#comments</comments>
		<pubDate>Thu, 30 Apr 2009 15:27:57 +0000</pubDate>
		<dc:creator>hoanga</dc:creator>
				<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[windoze]]></category>

		<guid isPermaLink="false">http://blogs.law.harvard.edu/hoanga/?p=712</guid>
		<description><![CDATA[Tom has a great summary on why.
One challenge for the cowboy sys admin is on how to keep oneself engaged while making their job basically&#8230; a walk in the park.
One thing I have found helpful in creating lists is to be dogmatic about writing docs as you are doing something somewhere, anywhere and collect all [...]]]></description>
			<content:encoded><![CDATA[<p>Tom has a great summary on <a href="http://everythingsysadmin.com/2009/01/transforming-art-into-science.html">why</a>.</p>
<p>One challenge for the cowboy sys admin is on how to keep oneself engaged while making their job basically&#8230; a walk in the park.</p>
<p>One thing I have found helpful in creating lists is to be dogmatic about writing docs as you are doing something somewhere, anywhere and collect all of this later.  (You are writing documentation as you do your job, aren&#8217;t you?)</p>
<p><a href="http://everythingsysadmin.com/2009/01/transforming-art-into-science.html">Read More</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.law.harvard.edu/hoanga/2009/04/30/good-systems-administration-should-be-boring/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Getting X working again after swapping hardware on Open Solaris nv100</title>
		<link>http://blogs.law.harvard.edu/hoanga/2008/12/07/getting-x-working-again-after-swapping-hardware-on-open-solaris-nv100/</link>
		<comments>http://blogs.law.harvard.edu/hoanga/2008/12/07/getting-x-working-again-after-swapping-hardware-on-open-solaris-nv100/#comments</comments>
		<pubDate>Sun, 07 Dec 2008 15:18:50 +0000</pubDate>
		<dc:creator>hoanga</dc:creator>
				<category><![CDATA[fixes]]></category>
		<category><![CDATA[gripe]]></category>
		<category><![CDATA[solaris]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://blogs.law.harvard.edu/hoanga/?p=705</guid>
		<description><![CDATA[After having dain bramaged myself for years with Linux usage.  I had gotten spoiled into believing an OS should make it simple to do the following:
1. Shutdown computer
2. Swap around hardware components
3. Restart
4. Life is good
However any techie should tell you this is a pipe dream on Windows.  Mac users probably have no [...]]]></description>
			<content:encoded><![CDATA[<p>After having dain bramaged myself for years with Linux usage.  I had gotten spoiled into believing an OS should make it simple to do the following:</p>
<p>1. Shutdown computer<br />
2. Swap around hardware components<br />
3. Restart<br />
4. Life is good</p>
<p>However any techie should tell you this is a pipe dream on Windows.  Mac users probably have no clue since they never change hardware components and just buy new Macs to solve their problems.  Which leaves the lucky OSS *nix variants to try stunts like this.</p>
<p>Being the stubborn person I am,  I attempted this with OpenSolaris by swapping out my motherboard.  I wanted to do this in order to take advantage of the E7400 Core 2 Duo that I bought awhile back.  Things almost worked however on reboot I was given the dreaded console login screen with a useless keyboard.  The following as far as I know don´t work&#8230;</p>
<p>1. CTRL-ALT-BACKSPACE<br />
2. CTRL-ALT-Fn<br />
3. CTRL-ALT-DEL</p>
<p>Your best bet is to ssh somehow and try to look for clues.  Here is what I did&#8230;</p>
<p>1. Swap motherboard and stare at dark screen<br />
2. Find out how to <a href="http://mail.opensolaris.org/pipermail/opensolaris-discuss/2007-September/034748.html">boot into single user mode</a> and make sure the kernel isn&#8217;t PO-ed or something and find my IP address<br />
3. Move away the X11 configuration that I configured  (dual-display) and try rebooting<br />
4. Reboot and find out it isn&#8217;t working<br />
5. ssh in and realize it still isn&#8217;t working.   Move the old dual display X11 config back to /etc/X11/xorg.conf<br />
6. Try restarting gdm with svcadm restart gdm and watch it fail<br />
7. Scritch head some more<br />
8. Try starting X from the SSH session and whoah it works<br />
9. Restart gdm (svcadm restart gdm) and now I get a login screen<br />
10. Realize that I disconnected the left monitor (VGA) to help debug and want it back<br />
11. Logout and log back in.  I now have dual screens and a working Solaris install again!</p>
<p>References</p>
<ul>
<li><a href="http://mail.opensolaris.org/pipermail/opensolaris-discuss/2007-September/034748.html">How to boot into Single User Mode for OpenSolaris</a></li>
<li>
<li><a href="//opensolaris.org/jive/thread.jspa?messageID=234143¨">Finding device faults with Fault Manager</a></li>
<li><a href="//opensolaris.org/jive/thread.jspa?messageID=311678¨">Debugging problems with nvidia driver on bootup</a></li>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blogs.law.harvard.edu/hoanga/2008/12/07/getting-x-working-again-after-swapping-hardware-on-open-solaris-nv100/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Understanding what an L2ARC is</title>
		<link>http://blogs.law.harvard.edu/hoanga/2008/11/29/understanding-what-an-l2arc-is/</link>
		<comments>http://blogs.law.harvard.edu/hoanga/2008/11/29/understanding-what-an-l2arc-is/#comments</comments>
		<pubDate>Sat, 29 Nov 2008 15:13:41 +0000</pubDate>
		<dc:creator>hoanga</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[solaris]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://blogs.law.harvard.edu/hoanga/?p=703</guid>
		<description><![CDATA[I&#8217;ve been silently scanning some Solaris blogs and skimming some of the appropriate websites for documentation on some of the more interesting features of Solaris for awhile now.  One thing that requires time to adjust to is the number of acronyms that the Solaris community has to describe their technologies.  One of these [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been silently scanning some Solaris blogs and skimming some of the appropriate websites for documentation on some of the more interesting features of Solaris for awhile now.  One thing that requires time to adjust to is the number of acronyms that the Solaris community has to describe their technologies.  One of these is called <a href="//blogs.sun.com/brendan/entry/test¨">L2ARC</a>.</p>
<p>At first I thought it was some hardware device however after a bit more searching it turns out that it is part of the <a href="//en.wikipedia.org/wiki/ZFS¨">ZFS</a> technology suite.  L2ARC stands for second level ARC where ARC is a read cache system for ZFS that uses a system´s main memory for holding the cache.  While ARC uses the hardware´s main memory, L2ARC is designed to take advantage of faster I/O media such as SSD devices to provide faster read throughput than what a typical hard drive can offer.</p>
<p>Brendan Gregg has an <a href="//blogs.sun.com/brendan/entry/test¨">excellent overview</a> explaining what the L2ARC is and some of the benefits it can give in accelerating random reads.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.law.harvard.edu/hoanga/2008/11/29/understanding-what-an-l2arc-is/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Getting KDE 4.1.0 on a Fedora 8 machine when KDE 3 is already there</title>
		<link>http://blogs.law.harvard.edu/hoanga/2008/11/29/getting-kde-410-on-a-fedora-8-machine-when-kde-3-is-already-there/</link>
		<comments>http://blogs.law.harvard.edu/hoanga/2008/11/29/getting-kde-410-on-a-fedora-8-machine-when-kde-3-is-already-there/#comments</comments>
		<pubDate>Sat, 29 Nov 2008 14:32:26 +0000</pubDate>
		<dc:creator>hoanga</dc:creator>
				<category><![CDATA[fixes]]></category>
		<category><![CDATA[gripe]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[stupid]]></category>

		<guid isPermaLink="false">http://blogs.law.harvard.edu/hoanga/?p=690</guid>
		<description><![CDATA[According to the Fedora FAQ one should be able to update with just this

sudo yum --enablerepo=updates-testing groupupdate "KDE (K Desktop Environment)"

However when I did, I ran into some icons from packages kdepim-3.5.9 and kdegraphics-4.1.0 conflicting with packages crystalsvg-icon-theme and libkipi.  Here is a log&#8230;

  file /usr/share/icons/crystalsvg/48x48/apps/kpalmdoc.png from install of kdepim-3.5.9-10.fc9.i386 conflicts with file [...]]]></description>
			<content:encoded><![CDATA[<p>According to the Fedora FAQ one should be able to update with just this</p>
<pre>
sudo yum --enablerepo=updates-testing groupupdate "KDE (K Desktop Environment)"
</pre>
<p>However when I did, I ran into some icons from packages kdepim-3.5.9 and kdegraphics-4.1.0 conflicting with packages crystalsvg-icon-theme and libkipi.  Here is a log&#8230;</p>
<pre>
  file /usr/share/icons/crystalsvg/48x48/apps/kpalmdoc.png from install of kdepim-3.5.9-10.fc9.i386 conflicts with file from package crystalsvg-icon-theme-4.0.4-1.fc9.i386
  file /usr/share/icons/crystalsvg/64x64/actions/kontact_contacts.png from install of kdepim-3.5.9-10.fc9.i386 conflicts with file from package crystalsvg-icon-theme-4.0.4-1.fc9.i386
  file /usr/share/icons/crystalsvg/64x64/actions/kontact_date.png from install of kdepim-3.5.9-10.fc9.i386 conflicts with file from package crystalsvg-icon-theme-4.0.4-1.fc9.i386
  file /usr/share/icons/crystalsvg/64x64/actions/kontact_journal.png from install of kdepim-3.5.9-10.fc9.i386 conflicts with file from package crystalsvg-icon-theme-4.0.4-1.fc9.i386
  file /usr/share/icons/crystalsvg/64x64/actions/kontact_mail.png from install of kdepim-3.5.9-10.fc9.i386 conflicts with file from package crystalsvg-icon-theme-4.0.4-1.fc9.i386
  file /usr/share/icons/crystalsvg/64x64/actions/kontact_news.png from install of kdepim-3.5.9-10.fc9.i386 conflicts with file from package crystalsvg-icon-theme-4.0.4-1.fc9.i386
  file /usr/share/icons/crystalsvg/64x64/actions/kontact_notes.png from install of kdepim-3.5.9-10.fc9.i386 conflicts with file from package crystalsvg-icon-theme-4.0.4-1.fc9.i386
  file /usr/share/icons/crystalsvg/64x64/actions/kontact_summary.png from install of kdepim-3.5.9-10.fc9.i386 conflicts with file from package crystalsvg-icon-theme-4.0.4-1.fc9.i386
  file /usr/share/icons/crystalsvg/64x64/actions/kontact_summary_green.png from install of kdepim-3.5.9-10.fc9.i386 conflicts with file from package crystalsvg-icon-theme-4.0.4-1.fc9.i386
  file /usr/share/icons/crystalsvg/64x64/actions/kontact_todo.png from install of kdepim-3.5.9-10.fc9.i386 conflicts with file from package crystalsvg-icon-theme-4.0.4-1.fc9.i386
  file /usr/share/icons/crystalsvg/64x64/actions/rss_tag.png from install of kdepim-3.5.9-10.fc9.i386 conflicts with file from package crystalsvg-icon-theme-4.0.4-1.fc9.i386
  file /usr/share/icons/hicolor/16x16/apps/kipi.png from install of kdegraphics-4.1.0-3.fc9.i386 conflicts with file from package libkipi-0.1.5-4.fc9.i386
  file /usr/share/icons/hicolor/22x22/apps/kipi.png from install of kdegraphics-4.1.0-3.fc9.i386 conflicts with file from package libkipi-0.1.5-4.fc9.i386
  file /usr/share/icons/hicolor/32x32/apps/kipi.png from install of kdegraphics-4.1.0-3.fc9.i386 conflicts with file from package libkipi-0.1.5-4.fc9.i386
  file /usr/share/icons/hicolor/48x48/apps/kipi.png from install of kdegraphics-4.1.0-3.fc9.i386 conflicts with file from package libkipi-0.1.5-4.fc9.i386

Error Summary
-------------
</pre>
<p>I tried deleting these packages manually but that led into an even deeper&#8217;s rats nest of dependency hell.  So one thing I tried was </p>
<pre>
$ sudo yum groupremove "KDE (K Desktop Environment)"
$ sudo yum --enablerepo=updates-testing groupinstall  "KDE (K Desktop Environment)"
</pre>
<p>However I still got conflcts so ran </p>
<pre>
$ sudo yum remove libkipi
$ sudo yum remove crystalsvg-icon-theme
$ sudo yum --enablerepo=updates-testing groupupdate  "KDE (K Desktop Environment)"
</pre>
<p>And finally I have got KDE 4.1.0 to install in way too many steps.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.law.harvard.edu/hoanga/2008/11/29/getting-kde-410-on-a-fedora-8-machine-when-kde-3-is-already-there/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>I can&#8217;t get no satisfying manpages</title>
		<link>http://blogs.law.harvard.edu/hoanga/2008/11/29/i-cant-get-no-satisfying-manpages/</link>
		<comments>http://blogs.law.harvard.edu/hoanga/2008/11/29/i-cant-get-no-satisfying-manpages/#comments</comments>
		<pubDate>Sat, 29 Nov 2008 14:29:26 +0000</pubDate>
		<dc:creator>hoanga</dc:creator>
				<category><![CDATA[gripe]]></category>
		<category><![CDATA[solaris]]></category>
		<category><![CDATA[stupid]]></category>

		<guid isPermaLink="false">http://blogs.law.harvard.edu/hoanga/?p=701</guid>
		<description><![CDATA[It seems that with most default UNIX-like installations outside of FreeBSD just include craptastic manpages.
This really puts a dent in RTFM.  In Linux-land this has been a serious PITA for years (Yes, I know how to hunt around for the packages to install the manpages in Redhat-ish and Debian lang but it is still [...]]]></description>
			<content:encoded><![CDATA[<p>It seems that with most default UNIX-like installations outside of FreeBSD just include craptastic manpages.</p>
<p>This really puts a dent in RTFM.  In Linux-land this has been a serious PITA for years (Yes, I know how to hunt around for the packages to install the manpages in Redhat-ish and Debian lang but it is still an irritation).  It seems my forays with OpenSolaris mirror the fun of Linux.  Ah well..</p>
<pre>
$  man ps
Reformatting page.  Please Wait... done

Miscellaneous                                          missing(x)

     missing - Missing Manual Page

DESCRIPTION
     Unfortunately, this OpenSolaris Developer Preview  does  not
     include  the  manual  page you are looking for.  We're sorry
     and hope to improve upon this situation in future releases.

     Online versions  of  many  manual  pages  are  available  at
    &nbsp;<a href="http://docs.sun.com/app/docs/coll/40.17" title="http://docs.sun.com/app/docs/coll/40.17" target="_blank">http://docs.sun.com/app/docs/coll/40.17</a>.

SunOS 5.11            Last change: 07/10/25
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blogs.law.harvard.edu/hoanga/2008/11/29/i-cant-get-no-satisfying-manpages/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Linux is a woman</title>
		<link>http://blogs.law.harvard.edu/hoanga/2008/11/10/linux-is-a-woman/</link>
		<comments>http://blogs.law.harvard.edu/hoanga/2008/11/10/linux-is-a-woman/#comments</comments>
		<pubDate>Mon, 10 Nov 2008 10:06:22 +0000</pubDate>
		<dc:creator>hoanga</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[humor]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://blogs.law.harvard.edu/hoanga/?p=698</guid>
		<description><![CDATA[I love this quote

It&#8217;s obvious that GNU/Linux is a woman. She&#8217;s high maintenance, expects
everything to be given to her for free, and no matter what goes wrong&#8230;
it&#8217;s your fault.

]]></description>
			<content:encoded><![CDATA[<p>I love this quote</p>
<blockquote><p>
It&#8217;s obvious that GNU/Linux is a woman. She&#8217;s high maintenance, expects<br />
everything to be given to her for free, and no matter what goes wrong&#8230;<br />
it&#8217;s your fault.
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blogs.law.harvard.edu/hoanga/2008/11/10/linux-is-a-woman/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Multiple renaming utilities: mmv</title>
		<link>http://blogs.law.harvard.edu/hoanga/2008/07/16/multiple-renaming-utilities-mmv/</link>
		<comments>http://blogs.law.harvard.edu/hoanga/2008/07/16/multiple-renaming-utilities-mmv/#comments</comments>
		<pubDate>Wed, 16 Jul 2008 07:58:05 +0000</pubDate>
		<dc:creator>hoanga</dc:creator>
				<category><![CDATA[fixes]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://blogs.law.harvard.edu/hoanga/2008/07/16/multiple-renaming-utilities-mmv/</guid>
		<description><![CDATA[There are many multiple file rename utilities that you can dig up.
One that I am used to on Debian/Ubuntu-based distros is called  rename which is one that is derived from the Perl Cookbook.   However, note that this rename script does not seem to exist on other UNIX variants in a packaged format. [...]]]></description>
			<content:encoded><![CDATA[<p>There are many multiple file rename utilities that you can dig up.</p>
<p>One that I am used to on Debian/Ubuntu-based distros is called  <a href="http://www.perlmonks.org/?node_id=632437">rename</a> which is one that is derived from the Perl Cookbook.   However, note that this rename script does not seem to exist on other UNIX variants in a packaged format.  It definitely does not seem to exist on a Fedora Core 9 box I use nor does it exist on a FreeBSD machine.</p>
<p>While it would not be too hard to swipe the perl script and copy it in place onto a system.  I hate having to remember moving that script around and around with me from place to place so I looked around for other equivalents and found one called <a href="http://linux.maruhn.com/sec/mmv.html">mmv</a>.  One nice thing is that there are packages for at least FreeBSD, FC9, and Debian/Ubuntu variants so it should be quite lazy to install compared to rename.</p>
<p>Below I give an example of using it to do a multiple renaming where I want to append the value <em>1</em> to the end of a bunch of filenames.</p>
<pre>
$ ls
cat_100  cat_15  cat_200  cat_50  cat_500
</pre>
<pre>
$ mmv cat"*" cat#1_1
$ ls
cat_100_1  cat_15_1  cat_200_1  cat_500_1  cat_50_1
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blogs.law.harvard.edu/hoanga/2008/07/16/multiple-renaming-utilities-mmv/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>On the irritation of trying to run GPG on a remote headless server</title>
		<link>http://blogs.law.harvard.edu/hoanga/2008/07/14/on-the-irritation-of-trying-to-run-gpg-on-a-remote-headless-server/</link>
		<comments>http://blogs.law.harvard.edu/hoanga/2008/07/14/on-the-irritation-of-trying-to-run-gpg-on-a-remote-headless-server/#comments</comments>
		<pubDate>Mon, 14 Jul 2008 05:40:23 +0000</pubDate>
		<dc:creator>hoanga</dc:creator>
				<category><![CDATA[gripe]]></category>
		<category><![CDATA[stupid]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://blogs.law.harvard.edu/hoanga/2008/07/14/on-the-irritation-of-trying-to-run-gpg-on-a-remote-headless-server/</guid>
		<description><![CDATA[My short, short suggestion is&#8230; don&#8217;t:  This blog post explains it much better than I can although I definitely have been the victim of trying to generate a GPG key on a headless server to no avail:

While trying to generate a gpg keypair on a remote server, I discovered I lack entropy. Eventually I [...]]]></description>
			<content:encoded><![CDATA[<p>My short, short suggestion is&#8230; don&#8217;t:  <a href="http://blogs.securiteam.com/index.php/archives/473">This blog post</a> explains it much better than I can although I definitely have been the victim of trying to generate a GPG key on a headless server to no avail:</p>
<blockquote><p>
While trying to generate a gpg keypair on a remote server, I discovered I lack entropy. Eventually I had to physically type on the keyboard in order to generate enough random bytes.
</p></blockquote>
<p>I guess in the meantime the best workaround is to generate a GPG key on a workstation somewhere and transfer that to the server in question.   A little hokey but I guess if you truly need a GPG key that would be my suggestion.</p>
<p>References</p>
<ul>
<li>Read <a href="http://blogs.securiteam.com/index.php/archives/473">Plain life is just not random enough</a></li>
<li>Suggestions from the <a href="http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=114684809230875&amp;w=2">Linux Kernel ML</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blogs.law.harvard.edu/hoanga/2008/07/14/on-the-irritation-of-trying-to-run-gpg-on-a-remote-headless-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>svnbackup-restore.rb, svnbackup&#8217;s handy companion tool</title>
		<link>http://blogs.law.harvard.edu/hoanga/2008/07/03/svnbackup-restorerb-svnbackups-handy-companion-tool/</link>
		<comments>http://blogs.law.harvard.edu/hoanga/2008/07/03/svnbackup-restorerb-svnbackups-handy-companion-tool/#comments</comments>
		<pubDate>Fri, 04 Jul 2008 03:48:21 +0000</pubDate>
		<dc:creator>hoanga</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[fixes]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://blogs.law.harvard.edu/hoanga/2008/07/03/svnbackup-restorerb-svnbackups-handy-companion-tool/</guid>
		<description><![CDATA[Doug Hellman&#8217;s svnbackup script tool is a really handy tool for setting up automated backups for a subversion repository.  
However, the non-fun time comes when one wants to restore a subversion repository that has way too many dumpfiles parts.  The instructions for restoration are basically &#8216;roll your own&#8217; if you want to try [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.doughellmann.com/projects/svnbackup/">Doug Hellman&#8217;s svnbackup script</a> tool is a really handy tool for setting up automated backups for a subversion repository.  </p>
<p>However, the non-fun time comes when one wants to restore a subversion repository that has way too many dumpfiles parts.  The instructions for restoration are basically <a href="http://code.google.com/p/svnautobackup/wiki/RestoringFromTheBackup">&#8216;roll your own&#8217;</a> if you want to try to automate the restore procedure.  What would be nicer is if there was the converse tool that made it easier to not have to figure out how to re-order the backup files in the proper manner in order to perform the restore.</p>
<p>I spent a few minutes thinking about it and wrote a small Ruby script to help with this that I call svnbackup-restore.rb.   Here is the (hastily written) source code.  (<a href="http://samsara.bebear.net/~al/scripts/svnbackup-restore.rb">Download here</a>)</p>
<pre>
#!/usr/bin/ruby
# Program Name: Restore the restore
# Purpose:      Take all the svn dumpfiles generated from svnbackup
#               sort them and try loading them via svnadmin
# Usage:        1. Create the new repo path with svnadmin create
#               2. Set repo_name to the repo backup file names
#               3. Set restore_path to the new path to restore to
#               4. Run it ./svnbackup-restore.rb
# Assumptions:  svnrestore-backup.rb is in the same dir as the svn dump files

# CHANGE PARAMETERS HERE
repo_name = 'myrepo'
restore_path = '/path/to/myrepo'

# Print out debugging?
DEBUG = true

# DON'T CHANGE BELOW

# Filename format is 'dumpfile---.bzip2'
svn_dumpfiles = Dir["dumpfile-#{repo_name}*.bzip2"]
sorted_files = svn_dumpfiles.sort do |a, b|
  left_rev = a.split('-')[2].to_i
  right_rev = b.split('-')[2].to_i
  left_rev  right_rev
end
sorted_files.each do |dump_part|
  results = `bzcat #{dump_part} | svnadmin load #{restore_path}; echo $?`
  puts results if DEBUG
  res = results.split.last.to_i
  if res != 0
    puts "Error on trying to load up #{dump_part}!"
    exit 1
  end
end
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blogs.law.harvard.edu/hoanga/2008/07/03/svnbackup-restorerb-svnbackups-handy-companion-tool/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Yapc Asia 2008 Day 1 Notes</title>
		<link>http://blogs.law.harvard.edu/hoanga/2008/05/15/yapc-day-1-notes/</link>
		<comments>http://blogs.law.harvard.edu/hoanga/2008/05/15/yapc-day-1-notes/#comments</comments>
		<pubDate>Thu, 15 May 2008 15:02:29 +0000</pubDate>
		<dc:creator>hoanga</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://blogs.law.harvard.edu/hoanga/2008/05/15/yapc-day-1-notes/</guid>
		<description><![CDATA[Okay first day at YAPC&#8230;
Missed most of the opening speeches and Larry Wall&#8217;s Keynote.. d&#8217;oh.  Then again trying to handle the incoming rush of attendees was quite the experience.  I&#8217;d say jumbled is a good word for how we handled it but at least it got handled.  It&#8217;s pretty hard handling the [...]]]></description>
			<content:encoded><![CDATA[<p>Okay first day at YAPC&#8230;</p>
<p>Missed most of the opening speeches and Larry Wall&#8217;s Keynote.. d&#8217;oh.  Then again trying to handle the incoming rush of attendees was quite the experience.  I&#8217;d say jumbled is a good word for how we handled it but at least it got handled.  It&#8217;s pretty hard handling the Japanese Incoming Rush that seems such a common phenomenon in Japan.</p>
<h3>Perl as a Second Language Notes</h3>
<p>Sat in on the Perl as a Second Language Talk.  Here are some of my messy notes</p>
<ul>
<li>There is one than one way to say it</li>
<li>Some languages pay more attention to certain details than others (Lots of ways to say cousin in Chinese vs Japanese and English)</li>
<li>Showed some examples of Hello World in other languages</li>
<ul>
<li>The Ruby example hung!  D&#8217;oh!   No that isn&#8217;t because Ruby is slow&#8230;.</li>
<li>Showed the ever popular Y-Combinator example in Scheme then showed a Perl version</li>
</ul>
<li>One beneficial thing about expresstivity languages is the ability to skip saying the obvious</li>
<li>What makes Perl different?</li>
<ul>
<li>Perl does not have OOP built-in (Yes&#8230; I know)</li>
<li>Shows an example using autobox</li>
<li>Perl can be a good language for learning OOP (because you can learn to make your own OO system)</li>
<li>Dan defines an Object to be data that knows what to do (I welcome our self-aware Object overlords)</li>
<li>Perl objects are references! (D&#8217;oh, I need to understand what a reference is&#8230; I&#8217;ll just assume pointer&#8230;)</li>
<li>Shows an example of objects with the Mom class and Daughter class</li>
<li><em>our @ISA</em> defines parent-child class relationship in Perl</li>
</ul>
<li>Implementing is&#8230;</li>
<ul>
<li>References &#8211; for storing data</li>
<li>bless &#8211; teach data how to find it? (Sorta spaces out here)</li>
</ul>
<li>More than one way to implement OO (no kidding, look at CLOS)</li>
<li>&#8220;1&#8243; + &#8220;1&#8243; is not &#8220;11&#8243; because Perl is a context-oriented language</li>
<li>However 1 . 1 IS 2   (Operators tell you a lot about what to do I guess)</li>
<li>perl -MO=Deparse is handy&#8230;</li>
<li>DWIM &#8211; Context is important for this (Somehow I don&#8217;t think I&#8217;ll ever get a computer to DWIM)</li>
</ul>
<h3>The other talks</h3>
<p>After that&#8230; somehow I missed most of the others.. oh yeah I was busy trying to volunteer but I did manage to catch </p>
<p><a href="http://conferences.yapcasia.org/ya2008/talk/973">‎mizzy&#8217;s &#8211; ‎Easy system administration programming with a framework &#8211; フレームワークでシステム管理プログラミングをもっと簡単に‎</a> </p>
<h3>Easy system administration programming with a framework</h3>
<ul>
<li>It&#8217;s called <a href="http://coderepos.org/share/wiki/Punc">Punc</a> (Perl Unified Network Controller)</li>
<li>I learned about <a href="http://coderepos.org">CodeRepos</a> which seems to be a popular SourceForge-like area for Japanese (Perl) hackers&#8230;</li>
<li>Punc looks like a clone of puppet except it uses JSON instead of XML-RPC for the data format to transfer</li>
<li>Looks like it&#8217;s still bleeding edge software (checkout from trunk and play with it)</li>
<li>Uses a Facter clone called PFacter (Are these two interchangeable?  That would be realllly nice&#8230; otherwise you suck for making yet another clone that does the same thing but can&#8217;t be interchangeable&#8230;)</li>
<li>Dude where&#8217;s your <a href="http://coderepos.org/share/browser/lang/perl/Punc/trunk/t">test cases</a>?</li>
<li>I somehow missed the reasons for writing Punc (Although because I can seems like a good enough reason for many&#8230;.)</li>
<li>I guess if you REALLY want Perl for a Config Management system and don&#8217;t mind getting your hands dirty with sending patches this might work but I&#8217;m not wedded to any particular language but I am wedded to a more mature implementation</li>
<li>I&#8217;m sticking with Puppet</li>
</ul>
<p>Afterwards came <a href="http://conferences.yapcasia.org/ya2008/talk/1031">Lightning Talks</a> which were really good.  Here&#8217;s my blurry recollection of them (wish I took notes&#8230;)</p>
<ul>
<li>One presenter seemed to have gotten close to written a Perl OS (Perl Machine)&#8230; whoah&#8230;</li>
<li>One presenter showed an interesting aggregator named Plagger (or was that Fastladder) that supposedly could aggregate anything on the web (supported authenticated sites yaaay) including one IRC commentors suggestion that it could be a perfect tool to aggregator pr0n pics</li>
<li>TT-something template looked nifty&#8230; wish Ruby had that</li>
<li>Text::MicroMason looked also nifty since it seemed like an ERB-clone so that&#8217;s less learning</li>
<li>Vroom::Vroom is quite impressive  (VIM as your presentation tool)</li>
<li>Developing Amazon&#8217;s Dynamo in POE and Erlang showed some interesting contrasts between how the messaging would work if implemented in POE versus Erlang</li>
</ul>
<p>Lightning Talks are probably one of my favorite events in a conference since 5 minutes really forces you to get to the point.  There was also the dinner party which is what I guess you could expect from large amounts of geeks with large amounts of food and booze.  Okay last day coming up!  I need sleep&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.law.harvard.edu/hoanga/2008/05/15/yapc-day-1-notes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Why does RTFM with GNU manpages just suck</title>
		<link>http://blogs.law.harvard.edu/hoanga/2008/05/13/why-does-rtfm-with-gnu-manpages-just-suck/</link>
		<comments>http://blogs.law.harvard.edu/hoanga/2008/05/13/why-does-rtfm-with-gnu-manpages-just-suck/#comments</comments>
		<pubDate>Tue, 13 May 2008 14:00:35 +0000</pubDate>
		<dc:creator>hoanga</dc:creator>
				<category><![CDATA[gripe]]></category>
		<category><![CDATA[stupid]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://blogs.law.harvard.edu/hoanga/2008/05/13/why-does-rtfm-with-gnu-manpages-just-s</guid>
		<description><![CDATA[After looking at a seriously useful tip for cleaning out a clogged postfix queue I puzzled over the -r option in xargs.  I&#8217;m not an xargs master but I figure if I need it I can always RTFM.
Well man xargs on my Ubuntu box provides the typical GNU fair and I spend the next [...]]]></description>
			<content:encoded><![CDATA[<p>After looking at a seriously useful tip for <a href="http://woss.name/2003/10/15/cleaning-out-the-postfix-mail-queue/">cleaning out a clogged postfix queue</a> I puzzled over the <em>-r</em> option in xargs.  I&#8217;m not an xargs master but I figure if I need it I can always RTFM.</p>
<p>Well <em>man xargs</em> on my Ubuntu box provides the typical GNU fair and I spend the next way too long time period looking for where the <em>-r</em> option is.  (The full option is <em>&#8211;no-run-if-empty</em>).</p>
<p>Sadly, I ended up finding it faster with a Google search on this <a href="http://www.hcidata.info/find.htm">web page</a> that has some find-fu and xargs then looking again at the GNU manpage and finally find the option buried just before the EXAMPLES section.</p>
<p>I guess I should be happy this time around, there are some GNU manpages that don&#8217;t even HAVE documentation (at least compared to the *BSD brethren).  Grrrrrr</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.law.harvard.edu/hoanga/2008/05/13/why-does-rtfm-with-gnu-manpages-just-suck/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>One way to clean out a gazillion files in a directory without causing the server to hang on IO</title>
		<link>http://blogs.law.harvard.edu/hoanga/2008/04/30/one-way-to-clean-out-a-gazillion-files-in-a-directory-without-causi/</link>
		<comments>http://blogs.law.harvard.edu/hoanga/2008/04/30/one-way-to-clean-out-a-gazillion-files-in-a-directory-without-causi/#comments</comments>
		<pubDate>Wed, 30 Apr 2008 10:37:53 +0000</pubDate>
		<dc:creator>hoanga</dc:creator>
				<category><![CDATA[fixes]]></category>
		<category><![CDATA[stupid]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://blogs.law.harvard.edu/hoanga/2008/04/30/one-way-to-clean-out-a-gazillion-files</guid>
		<description><![CDATA[Had a case where I had some rails app that was using files for its session store and had been running like that for months.  While it was a careless (and dumb) thing to run it that way, we had to do something about it since it was eating up close to 85% of [...]]]></description>
			<content:encoded><![CDATA[<p>Had a case where I had some rails app that was using files for its session store and had been running like that for months.  While it was a careless (and dumb) thing to run it that way, we had to do something about it since it was eating up close to 85% of the system partition.  The dumb way to try to do this is below:</p>
<pre>
nice find /tmp/ -name 'ruby_sess.*' | xargs -n 100 rm -fv
</pre>
<p>However, the problem is that this causes insanity on IO which is NOT good for a running service.  (Luckily this service was merely important instead of critical)  So, I present to you my quick and dirty script that will clean up all those nefarious ruby sessions files that have run amok for months.</p>
<pre>
while true; do
    nice find /tmp/ -name 'ruby_sess.*' | head -n 20 | xargs rm -fv; sleep 10
done
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blogs.law.harvard.edu/hoanga/2008/04/30/one-way-to-clean-out-a-gazillion-files-in-a-directory-without-causi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Long Live Linux</title>
		<link>http://blogs.law.harvard.edu/hoanga/2008/04/08/long-live-linux/</link>
		<comments>http://blogs.law.harvard.edu/hoanga/2008/04/08/long-live-linux/#comments</comments>
		<pubDate>Tue, 08 Apr 2008 11:06:57 +0000</pubDate>
		<dc:creator>hoanga</dc:creator>
				<category><![CDATA[humor]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://blogs.law.harvard.edu/hoanga/2008/04/08/long-live-linux/</guid>
		<description><![CDATA[Because the packaging certainly isn&#8217;t&#8230;

]]></description>
			<content:encoded><![CDATA[<p>Because the packaging certainly isn&#8217;t&#8230;</p>
<p><a href="http://feeds.gawker.com/~r/gizmodo/full/~3/226838511/crappy-casemod-contest-still-ongoing"><img width="400" height="225" src="http://gizmodo.com/assets/resources/2008/01/ghettomod_0806.jpg"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.law.harvard.edu/hoanga/2008/04/08/long-live-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Graphing mysql slave delay for munin</title>
		<link>http://blogs.law.harvard.edu/hoanga/2008/03/10/graphing-mysql-slave-delay-for-munin/</link>
		<comments>http://blogs.law.harvard.edu/hoanga/2008/03/10/graphing-mysql-slave-delay-for-munin/#comments</comments>
		<pubDate>Mon, 10 Mar 2008 14:42:36 +0000</pubDate>
		<dc:creator>hoanga</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://blogs.law.harvard.edu/hoanga/2008/03/10/graphing-mysql-slave-delay-for-munin/</guid>
		<description><![CDATA[I&#8217;ve been wanting something to visualize mysql slave delay.  Looks like LordElph has gone ahead and wrote something already to do it. Cool beans.

]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been wanting something to visualize mysql slave delay.  Looks like <a href="http://blog.dixo.net">LordElph</a> has gone ahead and <a href="http://blog.dixo.net/2008/02/10/munin-plugin-for-graphing-mysql-slave-delay/">wrote something already</a> to do it. Cool beans.</p>
<p><a href="http://blog.dixo.net/2008/02/10/munin-plugin-for-graphing-mysql-slave-delay"><img src="http://blog.dixo.net/wp-content/uploads/2008/02/slavedelay.png"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.law.harvard.edu/hoanga/2008/03/10/graphing-mysql-slave-delay-for-munin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Rereading a disk partition table in Linux without rebooting</title>
		<link>http://blogs.law.harvard.edu/hoanga/2008/03/10/rereading-a-disk-partition-table-in-linux-without-rebooting/</link>
		<comments>http://blogs.law.harvard.edu/hoanga/2008/03/10/rereading-a-disk-partition-table-in-linux-without-rebooting/#comments</comments>
		<pubDate>Mon, 10 Mar 2008 14:25:30 +0000</pubDate>
		<dc:creator>hoanga</dc:creator>
				<category><![CDATA[fixes]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://blogs.law.harvard.edu/hoanga/2008/03/10/rereading-a-disk-partition-table-in-li</guid>
		<description><![CDATA[Ran into a problem with trying to partition up a disk on a running system.  The idea is I wanted to create a new partition on a disk with partitions already mounted and use it without rebooting.
Here&#8217;s what you&#8217;ll mostly likely run into&#8230;

# sudo fdisk /dev/sda
... Steps for adding disk  elided ...

Command (m [...]]]></description>
			<content:encoded><![CDATA[<p>Ran into a problem with trying to partition up a disk on a running system.  The idea is I wanted to create a new partition on a disk with partitions already mounted and use it without rebooting.</p>
<p>Here&#8217;s what you&#8217;ll mostly likely run into&#8230;</p>
<pre>
# sudo fdisk /dev/sda
... Steps for adding disk  elided ...

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.

ahoang@jp-db-3:~$ sudo mke2fs -m 0 -j /dev/sda3
mke2fs 1.40.2 (12-Jul-2007)
Could not stat /dev/sda3 --- No such file or directory

The device apparently does not exist; did you specify it correctly?

# ls -la /dev/sda*
/dev/sda   /dev/sda1  /dev/sda2
</pre>
<p>The simplest thing to do is just reboot and Linux will redetect everything on restart.  However, sometimes you just can&#8217;t reboot.  After Googling around it seems that <a href="http://www.cyberciti.biz/tips/re-read-the-partition-table-without-rebooting-linux-system.html">partprobe does the job handily</a>.  Luckily this tool is already on an Ubuntu system so no need to apt-get install but it&#8217;s only a few keystrokes away.</p>
<p>Here&#8217;s the rest of the log once I ran partprobe and was humming along&#8230;</p>
<pre>
# sudo partprobe
# ls /dev/sda*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sda3
# sudo mke2fs -m 0 -j /dev/sda3
mke2fs 1.40.2 (12-Jul-2007)
... Creating a file system output elided ...
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blogs.law.harvard.edu/hoanga/2008/03/10/rereading-a-disk-partition-table-in-linux-without-rebooting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Getting screwed by an upgrade (libtidy in Ubuntu 8.04 not ready for real work)</title>
		<link>http://blogs.law.harvard.edu/hoanga/2008/02/20/getting-screwed-by-an-upgrade-libtidy-in-ubuntu-804-not-ready-for-r/</link>
		<comments>http://blogs.law.harvard.edu/hoanga/2008/02/20/getting-screwed-by-an-upgrade-libtidy-in-ubuntu-804-not-ready-for-r/#comments</comments>
		<pubDate>Wed, 20 Feb 2008 14:39:57 +0000</pubDate>
		<dc:creator>hoanga</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[stupid]]></category>

		<guid isPermaLink="false">http://blogs.law.harvard.edu/hoanga/2008/02/20/getting-screwed-by-an-upgrade-libtidy-</guid>
		<description><![CDATA[On my workstation at work I&#8217;ve been running Ubuntu 8.04 to test out something I&#8217;ll post on later.  However, one thing that was driving me nuts was that tidy was blowing up with a very unhelpful message like so:

/usr/lib/ruby/1.8/tidy/tidybuf.rb:39: [BUG] Segmentation fault

At first I thought it was some incompatibility with the gem installed version [...]]]></description>
			<content:encoded><![CDATA[<p>On my workstation at work I&#8217;ve been running Ubuntu 8.04 to test out something I&#8217;ll post on later.  However, one thing that was driving me nuts was that tidy was blowing up with a very unhelpful message like so:</p>
<blockquote><p>
/usr/lib/ruby/1.8/tidy/tidybuf.rb:39: [BUG] Segmentation fault
</p></blockquote>
<p>At first I thought it was some incompatibility with the gem installed version of tidy however after a bit more searching it seems tied with a specific bug in Debian that is <a href="http://groups.google.com/group/linux.debian.bugs.dist/browse_thread/thread/2090a2a92dac4267/859f841b6cb89654">logged here</a>.   Basically, the recent version of libtidy has some sort of instability that will blow up on certain types of HTML input.  Kind of not useful I say&#8230;</p>
<p>Looks like this has been fixed in Debian unstable so this might be a perfect candidate to have merged into Ubuntu since this really sucks inheriting a package bug.</p>
<p><a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=462325">Read the Bug Report</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.law.harvard.edu/hoanga/2008/02/20/getting-screwed-by-an-upgrade-libtidy-in-ubuntu-804-not-ready-for-r/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>DistroWatch reviews the current state of OpenSolaris on the desktop</title>
		<link>http://blogs.law.harvard.edu/hoanga/2008/02/09/distrowatch-reviews-the-current-state-of-opensolaris-on-the-desktop/</link>
		<comments>http://blogs.law.harvard.edu/hoanga/2008/02/09/distrowatch-reviews-the-current-state-of-opensolaris-on-the-desktop/#comments</comments>
		<pubDate>Sat, 09 Feb 2008 14:06:58 +0000</pubDate>
		<dc:creator>hoanga</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://blogs.law.harvard.edu/hoanga/2008/02/09/distrowatch-reviews-the-current-state-</guid>
		<description><![CDATA[DistroWatch has a very good article summarizing the state of running OpenSolaris on the desktop at the moment.  Personally, I&#8217;m interested in Solaris technology seeing more widespread usage although am not a gigantic follower at the moment.
For me the most interesting part was their discussion on what is happening with Nexenta, a project to [...]]]></description>
			<content:encoded><![CDATA[<p>DistroWatch has a very <a href="http://distrowatch.com/weekly.php?issue=20080204#feature">good article summarizing</a> the state of running OpenSolaris on the desktop at the moment.  Personally, I&#8217;m interested in Solaris technology seeing more widespread usage although am not a gigantic follower at the moment.</p>
<p>For me the most interesting part was their discussion on what is happening with <a href="http://www.nexenta.org">Nexenta</a>, a project to graft the power of the Debian/Ubuntu userland on an OpenSolaris foundation.  To me this seemed like one of the more promising projects since the mental overhead of relearning a whole bunch of new commands drops by a large factor and I can focus on really grokking the parts that make Solaris unique and not get too involved in the other parts until I feel good and ready to dive in.</p>
<p>Currently, Nexenta has decided to step away from the desktop and focus on the server backend which I think is just dandy since most of the features that OpenSolaris touts are more appropriate for the server at the current moment.  (ZFS, Zones, Xen) and I think it&#8217;s worth getting these tools integrated in seamlessly without too much fuss.</p>
<p>Currently, one of the annoying things that I had learned when trying to play with OpenSolaris is that some features that get a <a href="http://opensolaris.org/os/community/xen/announcements/#2006-08-25_OpenSolaris_on_Xen_Update">bit of press</a> require following bleeding edge of OpenSolaris which requires learning to keep track of basically <a href="http://en.wikipedia.org/wiki/Trunk_(software)">trunk</a> for a distribution.  (For example trying to play with Xen is something that requires <a href="http://opensolaris.org/os/community/xen/Bugfixes_Known_Issues/">more recent builds</a> of Open Solaris).  While there is something to be said for learning things from following trunk.  It can be a little frustrating when you also want your computer to actually do some work outside of sending bug reports and searching forums / mailing lists / blogs for &#8216;How do I get X working&#8217;</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.law.harvard.edu/hoanga/2008/02/09/distrowatch-reviews-the-current-state-of-opensolaris-on-the-desktop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>
	</item>
	</channel>
</rss>
