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

<channel>
	<title>Laen Aggregated &#187; System Admin</title>
	<atom:link href="http://www.laen.org/category/system-admin/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.laen.org</link>
	<description>Chaos is the raw material of order</description>
	<lastBuildDate>Fri, 23 Jul 2010 17:06:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>A SOAP kstat server for Solaris</title>
		<link>http://www.laen.org/2009/01/26/a-soap-kstat-server-for-solaris/</link>
		<comments>http://www.laen.org/2009/01/26/a-soap-kstat-server-for-solaris/#comments</comments>
		<pubDate>Mon, 26 Jan 2009 19:31:56 +0000</pubDate>
		<dc:creator>Laen</dc:creator>
				<category><![CDATA[System Admin]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://www.laen.org/?p=2455</guid>
		<description><![CDATA[I&#8217;m learning Ruby, and as an early project, I thought I&#8217;d write a little SOAP server for exposing Solaris &#8220;kstat&#8221; output to the network. It&#8217;s embryonic, but it works. I&#8217;d like to do a little more input sanitation, since it&#8217;s certainly possible to really hurt your server by requesting a kstat value of &#8220;::&#8221; (which [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m learning Ruby, and as an early project, I thought I&#8217;d write a little <span class="caps">SOAP </span>server for exposing Solaris &#8220;kstat&#8221; output to the network.</p>

<p>It&#8217;s embryonic, but it works.  I&#8217;d like to do a little more input sanitation, since it&#8217;s certainly possible to really hurt your server by requesting a kstat value of &#8220;::&#8221; (which returns all stats).</p>

<p>Here&#8217;s the server code:</p>


<pre><code>
require 'soap/rpc/standaloneServer'

class StatServ &lt; SOAP::RPC::StandaloneServer
        def initialize(*args)
          super
          add_method(self, 'kstat', 'stat')
        end
        def kstat(stat)
                stat.gsub!(/[^a-zA-z0-9_:+]/i,'%');
                f = IO.popen(&quot;kstat -p #{stat}&quot;)
                return f.readlines
        end
end

server = StatServ.new('StatServ,'urn:StatServ','0.0.0.0',8888)
trap('INT') { server.shutdown ; puts &quot;Server shutdown.&quot;}
trap('TERM') { server.shutdown ; puts &quot;Server shutdown.&quot;}
puts &quot;Starting server...&quot;
server.start
</code></code></pre>



<p>&#8230;and the client code:</p>


<pre><code>
require 'soap/rpc/driver'
def usage
        puts &quot;Usage: #{$0} hostname kstatvalue&quot;
        puts &quot;   Retrieves a kstat value from a remote machine's StatServ SOAP Server.&quot;
end

hostname = ARGV[0]
value    = ARGV[1];


if ! value
        usage;
        exit 1;
end

driver = SOAP::RPC::Driver.new(&quot;http://#{hostname}:8888/&quot;, 'urn:StatServ')
driver.add_method('kstat', 'stat')

val = driver.kstat(&quot;#{value}&quot;)

val.each do |s|
puts &quot;#{s}&quot;
end
</code></pre>]]></content:encoded>
			<wfw:commentRss>http://www.laen.org/2009/01/26/a-soap-kstat-server-for-solaris/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RPC/IPC and Messaging</title>
		<link>http://www.laen.org/2007/04/23/rpcipc-and-messaging/</link>
		<comments>http://www.laen.org/2007/04/23/rpcipc-and-messaging/#comments</comments>
		<pubDate>Mon, 23 Apr 2007 18:23:33 +0000</pubDate>
		<dc:creator>Laen</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[System Admin]]></category>

		<guid isPermaLink="false">http://www.laen.org/2007/04/23/rpcipc-and-messaging/</guid>
		<description><![CDATA[Advanced Message Queuing Protocol ..An open protocol for messaging systems. Some implementations of AMQP: * Apache QPID * RabbitMQ * OpenAMQ And some more information about it: * http://www.amqp.org/]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol">Advanced Message Queuing Protocol</a><br />
..An open protocol for messaging systems.</p>

<p>Some implementations of <acronym title="Advanced Message Queuing Protocol">AMQP</acronym>:<br />
* <a href="http://cwiki.apache.org/qpid/">Apache <span class="caps">QPID</span></a><br />
* <a href="http://www.rabbitmq.com/">RabbitMQ</a><br />
* <a href="http://www.openamq.org/">OpenAMQ</a></p>

<p>And some more information about it:<br />
* http://www.amqp.org/</p>]]></content:encoded>
			<wfw:commentRss>http://www.laen.org/2007/04/23/rpcipc-and-messaging/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Patch Check Advanced (Solaris)</title>
		<link>http://www.laen.org/2007/04/09/patch-check-advanced-solaris/</link>
		<comments>http://www.laen.org/2007/04/09/patch-check-advanced-solaris/#comments</comments>
		<pubDate>Mon, 09 Apr 2007 22:51:52 +0000</pubDate>
		<dc:creator>Laen</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[System Admin]]></category>
		<category><![CDATA[System Management]]></category>

		<guid isPermaLink="false">http://www.laen.org/2007/04/09/patch-check-advanced-solaris/</guid>
		<description><![CDATA[Solaris patching is, frankly, a pain. Patch Check Advanced makes it less painful&#8211; even pleasant. It&#8217;ll automatically download the patch list from Sun, correlate it against what you have on your system, and present you with a list of what needs to happen. You can tell it to install all recommended patches, all security patches, [...]]]></description>
			<content:encoded><![CDATA[<p>Solaris patching is, frankly, a pain.</p>

<p><a href="http://www.par.univie.ac.at/solaris/pca/">Patch Check Advanced</a> makes it less painful&#8211; even <em>pleasant</em>. </p>

<p>It&#8217;ll automatically download the patch list from Sun, correlate it against what you have on your system, and present you with a list of what needs to happen.  You can tell it to install all recommended patches, all security patches, or all the patches that don&#8217;t require a reboot (saving those for special occasions).</p>

<p>Extremely cool tool.</p>]]></content:encoded>
			<wfw:commentRss>http://www.laen.org/2007/04/09/patch-check-advanced-solaris/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Conserver and Sun X4100s</title>
		<link>http://www.laen.org/2006/10/09/conserver-and-sun-x4100s/</link>
		<comments>http://www.laen.org/2006/10/09/conserver-and-sun-x4100s/#comments</comments>
		<pubDate>Mon, 09 Oct 2006 22:51:11 +0000</pubDate>
		<dc:creator>Laen</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[System Admin]]></category>

		<guid isPermaLink="false">http://www.laen.org/2006/10/09/conserver-and-sun-x4100s/</guid>
		<description><![CDATA[X4100s have a pretty cool integrated lights-out management card, but it doesn&#8217;t have an easily integrate with Conserver. To fix, I created an expect script named &#8220;ilom-connect&#8221; like this: #!/usr/bin/expect -f expect { &#34;(yes/no)?&#34; {exp_send &#34;yes\r&#34;; exp_continue; } &#34;password: &#34; {exp_send &#34;\r&#34;; } } expect &#34;\\-&#62; &#34; send &#34;cd /SP/console\r&#34; send &#34;start\r&#34; expect &#34;(y/n)?&#34; exp_send [...]]]></description>
			<content:encoded><![CDATA[<p><span class="caps">X4100</span>s have a pretty cool integrated lights-out management card, but it doesn&#8217;t have an easily integrate with Conserver.</p>

<p>To fix, I created an expect script named &#8220;ilom-connect&#8221; like this:</p>


<pre>#!/usr/bin/expect -f
expect { 
&quot;(yes/no)?&quot;    {exp_send &quot;yes\r&quot;; exp_continue; }
&quot;password: &quot; {exp_send &quot;\r&quot;; }
}
expect &quot;\\-&gt; &quot;
send &quot;cd /SP/console\r&quot;
send &quot;start\r&quot;
expect &quot;(y/n)?&quot;
exp_send &quot;y\r&quot;</pre>


<p>Then, in conserver:</p>


<pre>console x4100 {
include sun-ilom;
exec ssh -l admin x4100-m;
type exec;
initcmd &quot;/usr/local/sbin/ilom-connect&quot;;
}</pre>]]></content:encoded>
			<wfw:commentRss>http://www.laen.org/2006/10/09/conserver-and-sun-x4100s/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nexenta GNU/Solaris</title>
		<link>http://www.laen.org/2006/09/26/nexenta-gnusolaris/</link>
		<comments>http://www.laen.org/2006/09/26/nexenta-gnusolaris/#comments</comments>
		<pubDate>Wed, 27 Sep 2006 00:41:26 +0000</pubDate>
		<dc:creator>Laen</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[System Admin]]></category>

		<guid isPermaLink="false">http://www.laen.org/2006/09/26/nexenta-gnusolaris/</guid>
		<description><![CDATA[I spent the weekend loading Nexenta&#194;&#160;on my two home PCs. Nexenta is&#194;&#160;basically&#194;&#160;Ubuntu&#194;&#160;on&#194;&#160;an&#194;&#160;OpenSolaris&#194;&#160;kernel.&#194;&#160;&#194;&#160;This&#194;&#160;gives&#194;&#160;you&#194;&#160;all&#194;&#160;the awesomenes of Ubuntu (apt-get, gnome, kde, GNU tools), with all the&#194;&#160;awesomeness&#194;&#160;of&#194;&#160;OpenSolaris&#194;&#160;(zones,&#194;&#160;ZFS,&#194;&#160;DTrace). Some cool things: The opensolaris packages are available via apt-get. &#194;&#160;I wanted to set up some zones, so I did an &#8220;apt-get install sunwzoner sunwzoneu&#8221;. &#8220;zoneadm&#194;&#160;-z&#194;&#160;zone1&#194;&#160;install&#8221;&#194;&#160;fires&#194;&#160;off&#194;&#160;debootstrap&#194;&#160;and&#194;&#160;creates&#194;&#160;a&#194;&#160;Nexenta&#194;&#160;Zone. The install is super-easy. &#194;&#160;Just boot [...]]]></description>
			<content:encoded><![CDATA[<p>I spent the weekend loading <a href="http://gnusolaris.org/" target="_blank" title="Nexenta">Nexenta</a>&Acirc;&nbsp;on my two home PCs.</p>

<p>Nexenta is&Acirc;&nbsp;basically&Acirc;&nbsp;Ubuntu&Acirc;&nbsp;on&Acirc;&nbsp;an&Acirc;&nbsp;OpenSolaris&Acirc;&nbsp;kernel.&Acirc;&nbsp;&Acirc;&nbsp;This&Acirc;&nbsp;gives&Acirc;&nbsp;you&Acirc;&nbsp;all&Acirc;&nbsp;the awesomenes of Ubuntu (apt-get, gnome, kde, <span class="caps">GNU </span>tools), with all the&Acirc;&nbsp;awesomeness&Acirc;&nbsp;of&Acirc;&nbsp;OpenSolaris&Acirc;&nbsp;(zones,&Acirc;&nbsp;ZFS,&Acirc;&nbsp;DTrace).</p>

Some cool things:<br />
<ul>
	<li>The opensolaris packages are available via apt-get. &Acirc;&nbsp;I wanted to set up some zones, so I did an &#8220;apt-get install sunwzoner sunwzoneu&#8221;.</li>
	<li>&#8220;zoneadm&Acirc;&nbsp;-z&Acirc;&nbsp;zone1&Acirc;&nbsp;install&#8221;&Acirc;&nbsp;fires&Acirc;&nbsp;off&Acirc;&nbsp;debootstrap&Acirc;&nbsp;and&Acirc;&nbsp;creates&Acirc;&nbsp;a&Acirc;&nbsp;Nexenta&Acirc;&nbsp;Zone.</li>
	<li>The install is super-easy. &Acirc;&nbsp;Just boot off the CD and answer a few questions.</li>
</ul>
So, now I have two Nexenta boxen, with about 1TB of storage online. &Acirc;&nbsp;Which brings me to why I did this in the first place: &Acirc;&nbsp;ZFS.

<p>I really hate Linux Software <span class="caps">RAID. </span>&Acirc;&nbsp;I hate it so much that I don&#8217;t use it. &Acirc;&nbsp;This meant that my home storage was more or less unprotected, which sucks. &Acirc;&nbsp;I don&#8217;t have anything&Acirc;&nbsp;irreplacable on these servers, but&Acirc;&nbsp;still,&Acirc;&nbsp;it&#8217;s&Acirc;&nbsp;good&Acirc;&nbsp;form&Acirc;&nbsp;to&Acirc;&nbsp;RAID.</p>

<p>Creating a mirror is as easy as:<br />
# zpool create -m /storage zstorage mirror c1d0p0 c2d0p0</p>

<p>Adding another&Acirc;&nbsp;mirrorset&Acirc;&nbsp;to this pool is&Acirc;&nbsp;as&Acirc;&nbsp;easy&Acirc;&nbsp;as:<br />
# zpool add zstorage mirror c3d0p0 c4d0p0</p>

<p>..Which gives me 560GB of <span class="caps">RAID10 </span>storage with two commands.&Acirc;&nbsp;&Acirc;&nbsp;&Acirc;&nbsp;Now I have room for a complete nightly backup of my laptop, including incrementals (thanks, <span class="caps">ZFS </span>snapshots!), <em>plus</em> a backup of my &#8220;every photo I&#8217;ve ever taken&#8221; directory.</p>]]></content:encoded>
			<wfw:commentRss>http://www.laen.org/2006/09/26/nexenta-gnusolaris/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python &#8211; Overriding site-prefix for things that use setup.py</title>
		<link>http://www.laen.org/2006/02/01/python-overriding-site-prefix-for-things-that-use-setuppy/</link>
		<comments>http://www.laen.org/2006/02/01/python-overriding-site-prefix-for-things-that-use-setuppy/#comments</comments>
		<pubDate>Thu, 02 Feb 2006 00:05:20 +0000</pubDate>
		<dc:creator>Laen</dc:creator>
				<category><![CDATA[System Admin]]></category>

		<guid isPermaLink="false">http://www.laen.org/2006/02/01/python-overriding-site-prefix-for-things-that-use-setuppy/</guid>
		<description><![CDATA[So, I wanted to play with a python package, but I didn&#8217;t want to install it into my primary python distribution tree just yet. I couldn&#8217;t find out how to override &#8220;site-packages&#8221;, though. Finally, I found this: Create a file called &#8220;setup.cfg&#8221; in the directory that has your &#8220;setup.py&#8221;. In it, put: [install] install_lib = [...]]]></description>
			<content:encoded><![CDATA[<p>So, I wanted to play with a python package, but I didn&#8217;t want to install it into my primary python distribution tree just yet.  I couldn&#8217;t find out how to override &#8220;site-packages&#8221;, though. </p>

<p>Finally, I found this:</p>

<p>Create a file called &#8220;setup.cfg&#8221; in the directory that has your &#8220;setup.py&#8221;.  In it, put:<br />
[install]<br />
install_lib = /var/tmp/test-blort/lib<br />
install_scripts = /var/tmp/test-blort/bin</p>

<p>Run your setup.py, and away you go.</p>]]></content:encoded>
			<wfw:commentRss>http://www.laen.org/2006/02/01/python-overriding-site-prefix-for-things-that-use-setuppy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Learning Ruby</title>
		<link>http://www.laen.org/2005/11/26/learning-ruby/</link>
		<comments>http://www.laen.org/2005/11/26/learning-ruby/#comments</comments>
		<pubDate>Sat, 26 Nov 2005 07:01:23 +0000</pubDate>
		<dc:creator>Laen</dc:creator>
				<category><![CDATA[System Admin]]></category>

		<guid isPermaLink="false">http://www.laen.org/?p=24</guid>
		<description><![CDATA[Okay, valuable things when learning ruby: * ri &#8211; This is like &#8220;perldoc&#8221;. Use it to view the live ruby documentation. * irb &#8211; Interactive Ruby. This is like the perl debugger. ** IRB Tab Completion &#8212; Use this to view every available method on every object. * gems &#8211; A packaging system and source [...]]]></description>
			<content:encoded><![CDATA[<p>Okay, valuable things when learning ruby:<br />
* ri &#8211; This is like &#8220;perldoc&#8221;.  Use it to view the live ruby documentation.<br />
* irb &#8211; Interactive Ruby.  This is like the perl debugger.<br />
** <a href="http://www.rubygarden.org/ruby?Irb%2FTipsAndTricks"><span class="caps">IRB</span> Tab Completion</a> &#8212; Use this to view every available method on every object.<br />
* gems &#8211; A packaging system and source code repository (kinda like <span class="caps">CPAN</span>)<br />
** <a href="http://docs.rubygems.org/">RubyGems</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.laen.org/2005/11/26/learning-ruby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CUPS &#8211; Request Entity Too Large</title>
		<link>http://www.laen.org/2005/11/15/cups-request-entity-too-large/</link>
		<comments>http://www.laen.org/2005/11/15/cups-request-entity-too-large/#comments</comments>
		<pubDate>Tue, 15 Nov 2005 19:26:51 +0000</pubDate>
		<dc:creator>Laen</dc:creator>
				<category><![CDATA[System Admin]]></category>

		<guid isPermaLink="false">http://www.laen.org/?p=23</guid>
		<description><![CDATA[If you get this CUPS error, it may mean that you don&#8217;t have write permission to your CUPS spool directory (/var/spool/cups, by default).]]></description>
			<content:encoded><![CDATA[<p>If you get this <span class="caps">CUPS </span>error, it may mean that you don&#8217;t have write permission to your <span class="caps">CUPS </span>spool directory (/var/spool/cups, by default).</p>]]></content:encoded>
			<wfw:commentRss>http://www.laen.org/2005/11/15/cups-request-entity-too-large/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building GCC for Solaris 9</title>
		<link>http://www.laen.org/2005/11/07/building-gcc-for-solaris-9/</link>
		<comments>http://www.laen.org/2005/11/07/building-gcc-for-solaris-9/#comments</comments>
		<pubDate>Mon, 07 Nov 2005 19:50:25 +0000</pubDate>
		<dc:creator>Laen</dc:creator>
				<category><![CDATA[System Admin]]></category>

		<guid isPermaLink="false">http://www.laen.org/?p=21</guid>
		<description><![CDATA[Here&#8217;s the build flags I used for building a 64-bit GCC for Solaris 9 (using Sun&#8217;s Forte C compiler). This uses the GNU binutils ld and as. export GCC_EXEC_PREFIX= export LD_LIBRARY_PATH= cd build; test -d gcc-4.0.2 &#124;&#124; gtar -jxvf ../src/gcc-4.0.2.tar.bz2 test -d objdir &#38;&#38; rm -rf objdir mkdir objdir cd objdir CC=&#34;cc -xarch=v9&#34; ../gcc-4.0.2/configure \ [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s the build flags I used for building a 64-bit <span class="caps">GCC </span>for Solaris 9 (using Sun&#8217;s Forte C compiler).  This uses the <span class="caps">GNU </span>binutils ld and as.</p>

<code>

<pre>
export GCC_EXEC_PREFIX=
export LD_LIBRARY_PATH=

 cd build;
        test -d gcc-4.0.2 || gtar -jxvf ../src/gcc-4.0.2.tar.bz2
        test -d objdir &amp;&amp; rm -rf objdir 
        mkdir objdir
        cd objdir
                CC=&quot;cc -xarch=v9&quot; ../gcc-4.0.2/configure  \
                        --prefix=/apps/gcc/4.0.2 \
                        --enable-languages=c,c++ \
                        --with-ld=/apps/binutils/stable/bin/ld \
                        --with-as=/apps/binutils/stable//bin/as \
                        --enable-threads=posix \
                        --disable-shared \
                        --enable-multilib
                while ! gmake -j16 bootstrap MAKE=gmake BOOT_CFLAGS=&quot;-g -O2 -m64&quot;; do
                        true;
                done</pre>

</code>]]></content:encoded>
			<wfw:commentRss>http://www.laen.org/2005/11/07/building-gcc-for-solaris-9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ruby and OpenSSL</title>
		<link>http://www.laen.org/2005/11/07/ruby-and-openssl/</link>
		<comments>http://www.laen.org/2005/11/07/ruby-and-openssl/#comments</comments>
		<pubDate>Mon, 07 Nov 2005 19:48:54 +0000</pubDate>
		<dc:creator>Laen</dc:creator>
				<category><![CDATA[System Admin]]></category>

		<guid isPermaLink="false">http://www.laen.org/2005/11/07/ruby-and-openssl/</guid>
		<description><![CDATA[Since this isn&#8217;t documented anywhere in the ruby install docs that I can find&#8230; If you want your Ruby build to have openssl support, you&#8217;ll need to compile with &#8211;with-openssl-dir=, pointing at your OpenSSL build. It seems kind of basic, but it doesn&#8217;t show up in a ./configure &#8211;help, and it&#8217;s not anywhere in the [...]]]></description>
			<content:encoded><![CDATA[<p>Since this isn&#8217;t documented anywhere in the ruby install docs that I can find&#8230; If you want your Ruby build to have openssl support, you&#8217;ll need to compile with &#8211;with-openssl-dir=, pointing at your OpenSSL build.</p>

<p>It seems kind of basic, but it doesn&#8217;t show up in a ./configure &#8211;help, and it&#8217;s not <em>anywhere</em> in the docs that I can find.</p>]]></content:encoded>
			<wfw:commentRss>http://www.laen.org/2005/11/07/ruby-and-openssl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress 1.5beta</title>
		<link>http://www.laen.org/2005/01/15/wordpress-15beta/</link>
		<comments>http://www.laen.org/2005/01/15/wordpress-15beta/#comments</comments>
		<pubDate>Sat, 15 Jan 2005 09:00:03 +0000</pubDate>
		<dc:creator>Laen</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[System Admin]]></category>

		<guid isPermaLink="false">http://www.laen.org/2005/01/15/wordpress-15beta/</guid>
		<description><![CDATA[Okay, just upgraded from WordPress 1.2.2 to 1.5-cvs. Gotchas: * upgrade.php/upgrade-functions.php bug * Links no longer show up on the sidebar. I hacked together a get_links_sidebar function that spits out a block in the right format. Usage: &#60; ?php get_links_sidebar(); ? &#62; * Styles are now themes. Get yer themes at WP-Themes.info.]]></description>
			<content:encoded><![CDATA[<p>Okay, just upgraded from WordPress 1.2.2 to 1.5-cvs.</p>

<p>Gotchas:<br />
* <a href="http://mosquito.wordpress.org/view.php?id=627">upgrade.php/upgrade-functions.php bug</a><br />
* Links no longer show up on the sidebar. I hacked together a <a href="http://wp-content/linksidebar.phps">get_links_sidebar</a> function that spits out a block in the right format. Usage: &lt; ?php get_links_sidebar(); ? &gt;<br />
* Styles are now themes.  Get yer themes at <a href="http://wp-themes.info">WP-Themes.info</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.laen.org/2005/01/15/wordpress-15beta/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Running Systems for Fun and Profit</title>
		<link>http://www.laen.org/2004/11/14/running-systems-for-fun-and-profit/</link>
		<comments>http://www.laen.org/2004/11/14/running-systems-for-fun-and-profit/#comments</comments>
		<pubDate>Sun, 14 Nov 2004 09:44:01 +0000</pubDate>
		<dc:creator>Laen</dc:creator>
				<category><![CDATA[Front Page]]></category>
		<category><![CDATA[System Admin]]></category>

		<guid isPermaLink="false">http://www.laen.org/2004/11/14/running-systems-for-fun-and-profit/</guid>
		<description><![CDATA[The trick to sysadminning is doing the most with the least amount of home-written code. That&#8217;s how you make it a fun challenge. Anyone can brute force a problem. The skill&#8211; and the fun&#8211; is in solving it with style. Sysadmin Thought Challenge &#8211; Here&#8217;s a theoretical problem. How do you solve it? &#8220;Let&#8217;s say [...]]]></description>
			<content:encoded><![CDATA[<p>The trick to sysadminning is doing the most with the least amount of home-written code. That&#8217;s how you make it a fun challenge.  Anyone can brute force a problem.  The skill&#8211; and the fun&#8211; is in solving it with style. </p>

<p>Sysadmin Thought Challenge &#8211;<br />
  Here&#8217;s a theoretical problem.  How do you solve it?<br />
&#8220;Let&#8217;s say you have 500 machines, and 5000 users.  How do you do authentication?&#8221;</p>

<p>Why not take it a step farther?  Heck, set up challenges, and provide the machines (UMLs) to do them.</p>]]></content:encoded>
			<wfw:commentRss>http://www.laen.org/2004/11/14/running-systems-for-fun-and-profit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
