<?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>James&#039; World &#187; BSD</title>
	<atom:link href="http://www.jebriggs.com/blog/category/bsd/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jebriggs.com/blog</link>
	<description>Observations by a Programmer of Silicon Valley and Beyond</description>
	<lastBuildDate>Sun, 05 Feb 2012 10:40:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>SVLUG: The Story of Gluster</title>
		<link>http://www.jebriggs.com/blog/2012/02/svlug-story-of-glusterfs/</link>
		<comments>http://www.jebriggs.com/blog/2012/02/svlug-story-of-glusterfs/#comments</comments>
		<pubDate>Thu, 02 Feb 2012 06:11:36 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[BSD]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Storage]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Toys]]></category>
		<category><![CDATA[User Groups]]></category>

		<guid isPermaLink="false">http://www.jebriggs.com/blog/2012/02/</guid>
		<description><![CDATA[At Silicon Valley Users&#8217; Group (SVLUG) tonite, Anand Babu (AB) Periasamy, CTO Gluster, Inc. gave a great talk on &#8220;The Story of Gluster.&#8221; The name &#8220;Gluster&#8221; was derived from the words &#8220;GNU&#8221; and &#8220;Cluster.&#8221; No relation to the Luster filesystem, &#8230; <a href="http://www.jebriggs.com/blog/2012/02/svlug-story-of-glusterfs/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://jebriggs.com/php/gluster_logo.png" border="0" align="left" alt="Gluster Logo" />At <a href="http://www.svlug.org/">Silicon Valley Users&#8217; Group (SVLUG)</a> tonite, Anand Babu (AB) Periasamy, CTO Gluster, Inc. gave a great talk on &#8220;The Story of Gluster.&#8221;</p>
<p>The name &#8220;Gluster&#8221; was derived from the words &#8220;GNU&#8221; and &#8220;Cluster.&#8221; No relation to the Luster filesystem, and actually they have opposite overall architectures.</p>
<p>GlusterFS is a GPL3 distributed network filesystem that runs as a service in user mode on Linux on a network of servers (conceptually like Google GFS.) Redhat bought Gluster, Inc. in 2011 and calls it <a href="http://www.redhat.com/products/storage/">&#8220;Redhat Storage.&#8221;</a> By running in user mode and reusing existing linux features and modules, GlusterFS gained reliability in months instead of the usual 10 years for other filesystems.</p>
<p><a href="http://www.gluster.org/">gluster.org</a> is the community website for GlusterFS.</p>
<p>Previously, AB was CTO at <a href="http://www.californiadigital.com/">California Digital Corporation (CDC).</a> One of his projects was the 1024-node linux <a href="http://linux.sys-con.com/node/44799">&#8220;Thunder&#8221; HPC supercomputer</a> for LLNL, the most powerful in the USA at the time.</p>
<p>- after that, he still wanted to do Open Source projects, preferably without bureaucratic encumbrances<br />
- got some angel funding, but also a seismic data company paid $500,000 to adapt HPC code in 3 months to replace IBM Regatta system, then a follow-on storage contract for 1.2 PB in a 6 months project<br />
- audience member: &#8220;In 10 years 1 PB will fit on a SD card.&#8221;<br />
- GlusterFS is in some ways architecturally the opposite of VMware. GlusterFS is userland code.<br />
- in 2006 large companies like Lehman, etc. started appearing on mailing list, to some surprise and awe<br />
- originally the company was called Z Research, renamed to Gluster, Inc. to have clearer brand name<br />
- no in-house test storage hardware, so developed on customer hardware!<br />
- was still doing other paying work such as embedded kernel stuff, web dev, etc to reduce burn rate initially. Too distracting.</p>
<table border="1">
<tr>
<th>Traditional complex method</th>
<th>Newer, simpler method</th>
</tr>
<tr>
<td>FC</td>
<td>HTTP, sockets</td>
</tr>
<tr>
<td>modified BSD OS</td>
<td>linux/user space/C, python, Java</td>
</tr>
<tr>
<td>appliance-based</td>
<td>application-based</td>
</tr>
</table>
<p>- Google mixes app and GFS, app generates 64 MB chunks, GFS manages metadata. Too complicated for general use.<br />
- GlusterFS is a distributed storage OS in user-space<br />
- create container without knowledge of filesystem (Posix, ACL, etc. ) because no known common user pattern for storage<br />
- lots of general C programmers available to recruit, but no filesystem developers without baggage about kernel<br />
- in 2008-2009 added too many features to actually test<br />
- VCs contacted them and invested A and B series total of $15 million, despite their storage &#8220;experts&#8221; saying it was crazy, users said it was awesome<br />
- lowest layer is native filesystem like EXT3 or XFS, thus idiot-proof<br />
- use extended attributes for metadata<br />
- block, replication, striping, elastic hashing algorithm<br />
- striping support by cleverly using sparse files with different offset on each server<br />
- read server choice based on fastest response<br />
- every directory has its own hash space<br />
- good default behavior when adding servers (no thundering herd)<br />
- striping is good for hotspot files or files too big for 1 volume, like saving HPC results<br />
- will be unified file and object protocol for object storage<br />
- there is a pathinfo command can query extended attribute, could be used with ssh for a fake MapReduce<br />
- GET and PUT at command line<br />
- GlusterFS is most heavily used for lots of files containing unstructured data<br />
- 3.3 will have faster healing operations, better granularity for 100 VMs, KVM support, etc.<br />
- currently shared-nothing, but with a little sharing healing can be faster<br />
- will be HDFS clone mode</p>
<p>Data Storage models:</p>
<ul>
<li>objects</li>
<li>file</li>
<li>block</li>
<li>structured data</li>
<li>NoSQL</li>
<li>semi-structured data.</li>
</ul>
<p>- Redhat bought Gluster, Inc. for about $136 million in October, 2011. It was about 60 employees at the time. Now there&#8217;s about 40 engineers working on GlusterFS at Redhat. AB chose Redhat over other suitors because of its commitment to Open Source and linux.</p>
<p>A dozen people attended dinner afterwards:</p>
<p>- it was tough hiring people for Gluster Inc. since the concept of doing file systems in userland confused a lot of developers and managers.<br />
- AB&#8217;s philosophy is that the Open Core model doesn&#8217;t serve end-users well, as all users need &#8220;extras&#8221; like user-friendly mgmt. programs, not just licensees<br />
- companies seem to be happy to pay for GlusterFS support, one of the reasons being lack of in-house storage engineers<br />
- lots of discussion about <a href="https://www.illumos.org/">Illumos</a> (OpenSolaris fork), ZFS and containers<br />
- take a look at <a href="http://www.nexenta.org/">Nexenta</a><br />
- An efficient WAN replication method with GlusterFS is to use the marker framework / queue using extended attributes to feed rsync a list of changed files, scales better than <a href="http://en.wikipedia.org/wiki/Inotify">inotify</a><br />
- no storage tiering yet for incoming/outgoing hotspot files<br />
- Redhat is pushing xfs heavily internally, and has hired the available ex-SGI xfs developers<br />
- some checksumming is done in GlusterFS, but no end-end checksumming. Need to look at performance and demand.<br />
- historicaly, linux has had slower adoption and community interest in India than Western countries due to lagging Internet performance (often more practical to install linux from a magazine CD-ROM than attempting large downloads) and relatively higher cost of computers compared to local salaries<br />
- AB got started in programming on a Spectrum microcomputer, and progressed over time to fixing minor bugs in the linux network drivers, culminating in GlusterFS.</p>
<p>Thanks again to Symantec for hosting this event.</p>
<p><a href="http://www.gluster.org/download/">GlusterFS Downloads</a><br />
<a href="http://chip.typepad.com/weblog/2011/09/why-glusterfs-is-glusterfsckd-too.html">Chip&#8217;s Rant: Why GlusterFS is Glusterfsck&#8217;d Too</a><br />
<a href="http://en.wikipedia.org/wiki/Extended_file_attributes">wikipedia: Extended file attributes</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jebriggs.com/blog/2012/02/svlug-story-of-glusterfs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BIND and DHCP Open Day, Menlo Park</title>
		<link>http://www.jebriggs.com/blog/2012/01/bind-and-dhcp-open-day-menlo-park/</link>
		<comments>http://www.jebriggs.com/blog/2012/01/bind-and-dhcp-open-day-menlo-park/#comments</comments>
		<pubDate>Sun, 15 Jan 2012 06:48:30 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[BSD]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Toys]]></category>

		<guid isPermaLink="false">http://www.jebriggs.com/blog/2012/01/</guid>
		<description><![CDATA[I went to ISC&#8217;s BIND and DHCP Open Day in Menlo Park. There was a good turnout, with about 30 outside attendees and about the same of ISC staff. 3 BIND developers from the Czech and Chinese registrars also attended, &#8230; <a href="http://www.jebriggs.com/blog/2012/01/bind-and-dhcp-open-day-menlo-park/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I went to <a href="http://www.isc.org/">ISC&#8217;s</a> BIND and DHCP Open Day in Menlo Park.</p>
<p>There was a good turnout, with about 30 outside attendees and about the same of ISC staff. 3 BIND developers from the Czech and Chinese registrars also attended, as well as <a href="http://www.cricketondns.com/">Cricket Liu</a>.</p>
<p>Here&#8217;s my notes.</p>
<p>DNS</p>
<p>- can learn what you need to know (50%) in a day, lifetime for the next 50%</p>
<p>BIND9</p>
<p>- monolithic program<br />
- 10 years old<br />
- different syntax than BIND8, 30% slower</p>
<p>User Story &#8211; Quick Refresh at AOL</p>
<p>- VMs spark up in 9.5 seconds, but DNS takes 15 minutes or more to propagate in their system<br />
- goal is 5 minute updates across globe</p>
<p>BIND10</p>
<p>- sponsored by 10 TLDs, unlike BIND9 which was sponsored by Big Iron vendors<br />
- TLDs represent registrars, users or citizens<br />
- started April 1, 2009<br />
- 5 year plan<br />
- now on year3 &#8211; features and performance<br />
- release every 6 weeks<br />
- will be no slower than BIND9<br />
- postfix processes model, not threads<br />
- scalable across cores<br />
- modular<br />
- logging<br />
- reporting<br />
- REST API<br />
- save cache object to memory or network, could be 10s to 100s of MB<br />
- no query or response logging, use tcpdump<br />
- look at <a href="http://bind-dlz.sourceforge.net/">DLZ</a></p>
<p>DNS Provider Issues</p>
<p>- Dealing with large zones<br />
- Dealing with lots of zones<br />
- resource estimates (for sizing new servers)<br />
- high-availability installations and technologies<br />
 &#8211; anycasting<br />
 &#8211; cooperate better with firewalls and load balancers<br />
 &#8211; auto-clustering?<br />
 &#8211; quagga support?<br />
- multi-master<br />
- support for fully mastered slave<br />
 &#8211; akin to powerdns &#8220;super masters&#8221;</p>
<p>- some debate over how much routing is appropriate inside dns<br />
- do it all or just be fast<br />
- does it make sense to send acl info over port 53? needed for cluster setup</p>
<p>DNSSEC Issues</p>
<p>- Deployment and Maintenance procedures<br />
- in-line signing<br />
 &#8211; aka &#8220;bump on the wire&#8221; 9.9.0<br />
   &#8211; hidden master sends signed zones to slaves<br />
 &#8211; aka &#8220;signer in the middle&#8221;<br />
- registry vs. registrar<br />
- look at DomainKeys optionality<br />
- DLV keys (don&#8217;t need a signed parent)<br />
- zone monitoring is crucial<br />
- 4 HSM known, $80k for qty 1<br />
- some firefox plugins check ad bit<br />
- dnssec slowest on negative answer, nsec3 worst </p>
<p>The event photos are available <a href="http://on.fb.me/wHcPFd">here.</a></p>
<p>Thanks to Facebook for hosting this event.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jebriggs.com/blog/2012/01/bind-and-dhcp-open-day-menlo-park/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Small URL Generator in F5 iRule</title>
		<link>http://www.jebriggs.com/blog/2011/07/small-url-generator-in-f5-irule/</link>
		<comments>http://www.jebriggs.com/blog/2011/07/small-url-generator-in-f5-irule/#comments</comments>
		<pubDate>Sun, 31 Jul 2011 09:26:14 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[BSD]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://www.jebriggs.com/blog/?p=3762</guid>
		<description><![CDATA[One of the funniest technical articles I&#8217;ve read in a while: Small URL Generator (in F5 iRule): Part 1 Part 2 What could possibly go wrong? wikipedia: F5 Networks says, &#8220;iRules: a TCL-based scripting language allowing arbitrary manipulation of traffic &#8230; <a href="http://www.jebriggs.com/blog/2011/07/small-url-generator-in-f5-irule/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://jebriggs.com/php/f5-logo.jpg" alt="F5 Logo" title="F5 Logo" align="left" />One of the funniest technical articles I&#8217;ve read in a while:</p>
<p>Small URL Generator (in F5 iRule): <a href="http://devcentral.f5.com/Tutorials/TechTips/tabid/63/articleType/ArticleView/articleId/1086360/Small-URL-Generator-Part-1.aspx">Part 1</a> <a href="http://devcentral.f5.com/Tutorials/TechTips/tabid/63/articleType/ArticleView/articleId/1086381/Small-URL-Generator-Part-2.aspx">Part 2</a></p>
<p>What could possibly go wrong? <img src='http://www.jebriggs.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://en.wikipedia.org/wiki/F5_Networks">wikipedia: F5 Networks</a> says, &#8220;iRules: a TCL-based scripting language allowing arbitrary manipulation of traffic flowing through the BIG-IP, including real-time modification of said data.&#8221;</p>
<p><a href="http://devcentral.f5.com/Tutorials/TechTips/tabid/63/articleType/ArticleView/articleId/281/Ten-Steps-to-iRules-Optimization.aspx">Ten Steps to iRules Optimization</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jebriggs.com/blog/2011/07/small-url-generator-in-f5-irule/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux File System Conformance Tests</title>
		<link>http://www.jebriggs.com/blog/2011/06/linux-file-system-conformance-tests/</link>
		<comments>http://www.jebriggs.com/blog/2011/06/linux-file-system-conformance-tests/#comments</comments>
		<pubDate>Sun, 05 Jun 2011 09:03:53 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[BSD]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Storage]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://www.jebriggs.com/blog/?p=3408</guid>
		<description><![CDATA[It&#8217;s nice when filesystems benchmark fast, but even nicer when they don&#8217;t lose your files or go readonly. Thus the need for filesystem conformance testing. Some popular tools are: File System Exerciser (fsx) mt_write File System Reliability Test Suite Linux &#8230; <a href="http://www.jebriggs.com/blog/2011/06/linux-file-system-conformance-tests/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://jebriggs.com/php/linux_penguin-med.jpg" alt="Linux Penguin Logo" title="Linux Penguin Logo" align="left" />It&#8217;s nice when filesystems benchmark fast, but even nicer when they don&#8217;t lose your files or go readonly.</p>
<p>Thus the need for filesystem conformance testing.</p>
<p>Some popular tools are:</p>
<ul>
<li><a href="http://codemonkey.org.uk/projects/fsx/">File System Exerciser (fsx)</a>
<li><a href="http://lists.openwall.net/linux-ext4/2009/07/21/30">mt_write</a>
<li><a href="http://www.fsl.cs.sunysb.edu/project-fstest.html">File System Reliability Test Suite</a>
<li><a href="http://ltp.sourceforge.net/tooltable.php">Linux Test Project</a>
<li>bonnie and bonnie++ stress filesystems and can also reveal issues. bonnie++&#8217;s fsync option is one knob to try.
</ul>
<p><a href="http://lwn.net/Articles/410272/">linux-kernel: Inode Lock Scalability V4</a><br />
<a href="http://www.techforce.com.br/news/linux_blog/lvm_raid_xfs_ext3_tuning_for_small_files_parallel_i_o_on_debian">techforce.com.br: LVM, RAID, XFS and EXT3 file systems tuning for small files massive heavy load concurrent parallel I/O on Debian</a><br />
<a href="http://www.mythtv.org/docs/mythtv-HOWTO-24.html#ss24.1">MythTV: Advanced Partition Formatting (Large files)</a><br />
<a href="http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Storage_Administration_Guide/newfilesys-ext4.html">redhat.com: The Ext4 File System</a></p>
<p><a href="http://pages.cs.wisc.edu/~travitch/pthreads_primer.html">Pthreads Primer</a><br />
<a href="https://computing.llnl.gov/tutorials/pthreads/">LLNL: POSIX Threads Programming Tutorial</a><br />
<a href="http://pubs.opengroup.org/onlinepubs/009695399/functions/xsh_chap02_02.html#tag_02_02_01_01">POSIX.1 Symbols: _XOPEN_SOURCE and POSIX_C_SOURCE Feature Test Macros</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jebriggs.com/blog/2011/06/linux-file-system-conformance-tests/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Open Source Software Configuration Management Systems</title>
		<link>http://www.jebriggs.com/blog/2011/05/open-source-software-configuration-management-systems/</link>
		<comments>http://www.jebriggs.com/blog/2011/05/open-source-software-configuration-management-systems/#comments</comments>
		<pubDate>Mon, 16 May 2011 03:19:15 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[BSD]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Toys]]></category>

		<guid isPermaLink="false">http://www.jebriggs.com/blog/?p=3192</guid>
		<description><![CDATA[There&#8217;s a lot of configuration management tools, but here&#8217;s the most common that I encounter: Tool Date Boot Initial Config Change Mgmt W Dev Lang Config Lang Licence OS Redhat Anaconda/ Kickstart 1994 Y Y N W Python/C kickstart.cfg/ Unix &#8230; <a href="http://www.jebriggs.com/blog/2011/05/open-source-software-configuration-management-systems/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s a <a href="http://en.wikipedia.org/wiki/Comparison_of_open_source_configuration_management_software">lot</a> of configuration management tools, but here&#8217;s the most common that I encounter:</p>
<table border=1>
<tr>
<th>Tool</th>
<th>Date</th>
<th>Boot</th>
<th>Initial Config</th>
<th>Change Mgmt</th>
<th>W</th>
<th>Dev Lang</th>
<th>Config Lang</th>
<th>Licence</th>
<th>OS</th>
</tr>
<tr>
<td><a href="http://fedoraproject.org/wiki/Anaconda">Redhat Anaconda/ Kickstart</a></td>
<td>1994</td>
<td>Y</td>
<td>Y</td>
<td>N</td>
<td><a href="http://en.wikipedia.org/wiki/Kickstart_%28Linux%29">W</a></td>
<td>Python/C</td>
<td>kickstart.cfg/ Unix scripts</td>
<td>GPL2</td>
<td>L</td>
</tr>
<tr>
<td><a href="http://www.cfengine.org/">Cfengine 3</a></td>
<td>1993</td>
<td>Y</td>
<td>Y</td>
<td>Y</td>
<td><a href="http://en.wikipedia.org/wiki/Cfengine">W</a></td>
<td>C</td>
<td>cfengine</td>
<td>GPL3</td>
<td>All</td>
</tr>
<tr>
<td><a href="http://www.puppetlabs.com/">Puppet</a></td>
<td>2005</td>
<td>N</td>
<td>Y</td>
<td>Y</td>
<td><a href="http://en.wikipedia.org/wiki/Puppet_%28software%29">W</a></td>
<td>Ruby</td>
<td>Ruby</td>
<td><a href="http://www.puppetlabs.com/blog/relicensing-puppet-to-apache-2-0/">Apache 2.0</a></td>
<td>All</td>
</tr>
<tr>
<td><a href="http://www.opscode.com/">Chef</a></td>
<td>2009</td>
<td>N</td>
<td>Y</td>
<td>Y</td>
<td><a href="http://en.wikipedia.org/wiki/Chef_%28software%29">W</a></td>
<td>Ruby</td>
<td>Recipe (Ruby DSL)</td>
<td>Apache 2.0</td>
<td>L</td>
</tr>
</table>
<p><a href="http://article.gmane.org/gmane.linux.redhat.fedora.cloud/405/match=kickstart">Interesting comments about using kickstart in EC2:</a></p>
<pre>
    Maybe I'm missing something: why would you ever want an EC2 instance to
    kickstart at boot time?  You should create an image for every role you
    care about and then boot the appropriate one for every instance you
    need.

Roles change, updates happen frequently, and I'd rather a machine spin up with the
latest packages.  I've always found that updating a pre-built machine is slower,
sometimes substantially so, than just building a fresh image with the newest RPMs.
</pre>
<p><a href="http://magazine.redhat.com/2008/04/29/interview-anaconda-and-fedora-9/">Interview: Anaconda and Fedora 9 Developers</a><br />
<a href="http://news.ycombinator.com/item?id=911391">Quick History Lesson of Puppet and Chef</a><br />
<a href="http://www.johnborwick.com/writing/system-automation.html">Cradle-to-Grave System Automation with PXE, Kickstart, and cfengine</a><br />
<a href="http://narrabilis.com/mybook">crash, bang, wallop, what a server (creating a kickstart+puppet solution from scratch)</a><br />
<a href="http://linuxdatacenter.blogspot.com/2010/05/systemimager-puppet.html">Systemimager &#038; puppet</a><br />
<a href="http://en.wikipedia.org/wiki/Software_configuration_management">wikipedia: Software configuration management</a><br />
<a href="http://wiki.centos.org/TipsAndTricks/KickStart">Tips and tricks for anaconda and kickstart</a><br />
<a href="http://en.wikipedia.org/wiki/Capistrano">Capistrano</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jebriggs.com/blog/2011/05/open-source-software-configuration-management-systems/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visual diff Utilities on Linux</title>
		<link>http://www.jebriggs.com/blog/2011/04/visual-diff-utilities-on-linux/</link>
		<comments>http://www.jebriggs.com/blog/2011/04/visual-diff-utilities-on-linux/#comments</comments>
		<pubDate>Wed, 20 Apr 2011 22:36:49 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[BSD]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://www.jebriggs.com/blog/?p=3013</guid>
		<description><![CDATA[The diff utility is widely used by programmers on linux for comparing file changes, but there are some handy, lesser-known comparison utilities that are more visual and still included for free with linux distros and Mac OS X: sdiff is &#8230; <a href="http://www.jebriggs.com/blog/2011/04/visual-diff-utilities-on-linux/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://linux.die.net/man/1/diff">diff</a> utility is widely used by programmers on linux for comparing file changes, but there are some handy, lesser-known comparison utilities that are more visual and still included for free with linux distros and Mac OS X:</p>
<ul>
<li><a href="http://linux.die.net/man/1/sdiff">sdiff</a> is a text-mode side-by-side diff and merge utility. It has -B and -W options for special handling of blank lines and whitespace.
<li><a href="http://linux.die.net/man/1/vimdiff">vimdiff</a> lets you visually compare and edit up to 3 files in color using the vim engine.
</ul>
<p>Note: <a href="http://linux.die.net/man/1/diff3">diff3</a> works like diff, but lets you compare and merge 3 files.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jebriggs.com/blog/2011/04/visual-diff-utilities-on-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Some ZFS News</title>
		<link>http://www.jebriggs.com/blog/2010/08/some-zfs-news/</link>
		<comments>http://www.jebriggs.com/blog/2010/08/some-zfs-news/#comments</comments>
		<pubDate>Sat, 28 Aug 2010 03:11:19 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[BSD]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[Storage]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Toys]]></category>

		<guid isPermaLink="false">http://www.jebriggs.com/blog/?p=2306</guid>
		<description><![CDATA[Phoronix has a really well-written article on ZFS, including news on a company planning to release a CDDL-licensed linux kernel module. ZFS is the holy grail of filesystems. Many Database Administrators have switched from Linux to Solaris because ZFS has &#8230; <a href="http://www.jebriggs.com/blog/2010/08/some-zfs-news/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Phoronix has <a href="http://www.phoronix.com/scan.php?page=article&#038;item=zfs_linux_coming&#038;num=1">a really well-written article on ZFS</a>, including news on a company planning to release a CDDL-licensed linux kernel module.</p>
<p>ZFS is the holy grail of filesystems. Many Database Administrators have switched from Linux to Solaris because ZFS has much better snapshot support than LLVM, as well as good SSD support.</p>
<p><a href="http://www.phoronix.com/scan.php?page=article&#038;item=zfs_linux_coming&#038;num=1">phoronix.com: Native ZFS Is Coming To Linux Next Month (Aug. 27, 2010)</a><br />
<a href="http://www.phoronix.com/scan.php?page=article&#038;item=btrfs_zfs_ssd&#038;num=1">phoronix.com: Btrfs, EXT4 &#038; ZFS On A Solid-State Drive (Aug. 9, 2010)</a><br />
<a href="http://www.phoronix.com/scan.php?page=article&#038;item=zfs_ext4_btrfs&#038;num=1">phoronix.com: Benchmarking ZFS On FreeBSD vs. EXT4 &#038; Btrfs On Linux (July 27, 2010)</a><br />
<a href="http://www.phoronix.com/scan.php?page=article&#038;item=freebsd_zfs_cam&#038;num=1">phoronix.com: Running ZFS With CAM-based ATA On FreeBSD 8.1 (July 26, 2010)</a><br />
<a href="http://github.com/behlendorf/zfs/wiki">github: Native ZFS for Linux</a><br />
<a href="http://wiki.freebsd.org/ZFS">FreeBSD Wiki: ZFS</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jebriggs.com/blog/2010/08/some-zfs-news/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>O&#8217;Reilly Open Source Conference 2010, Portland</title>
		<link>http://www.jebriggs.com/blog/2010/07/oscon-conference-2010-portland/</link>
		<comments>http://www.jebriggs.com/blog/2010/07/oscon-conference-2010-portland/#comments</comments>
		<pubDate>Fri, 23 Jul 2010 23:22:51 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[BSD]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[i18n]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[OSCON]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Storage]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Toys]]></category>
		<category><![CDATA[Travel]]></category>
		<category><![CDATA[User Groups]]></category>

		<guid isPermaLink="false">http://www.jebriggs.com/blog/?p=2140</guid>
		<description><![CDATA[Once again, the O&#8217;Reilly Open Source Conference (OSCON) was held in Portland, Oregon. It was a good conference, and we had beautiful weather all week long. Executive Summary The themes promoted by the conference organizers were Cloud Computing, NoSQL, Emerging &#8230; <a href="http://www.jebriggs.com/blog/2010/07/oscon-conference-2010-portland/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Once again, <a href="http://www.oscon.com/oscon2010">the O&#8217;Reilly Open Source Conference (OSCON)</a> was held in Portland, Oregon.</p>
<p>It was a good conference, and we had beautiful weather all week long.</p>
<p><strong>Executive Summary</strong></p>
<p>The themes promoted by the conference organizers were Cloud Computing, NoSQL, Emerging Languages (Scala, Erlang, Parrot, Go) and Android phone development.</p>
<p>The <a href="http://twitter.com/oscon">@oscon</a> twitter channel was heavily used to coordinate amongst organizers and attendees. I used the <a href="http://www.twixtreme.com/">TwiXtreme</a> twitter client program on my BlackBerry.</p>
<p>Plug Computers were very popular in the Expo area. They are 5 watt ARM-based computers running Debian Linux that fit into a power brick-sized case and cost $99 to $129 depending on features. The Marvell booth had a few models on display, from GlobalScale <a href="http://www.globalscaletechnologies.com/c-2-globalscale-technologies-products.aspx">(GuruPlug)</a> and <a href="http://www.ionics-ems.com/plugcomputer.html">Ionics.</a> High-end models have dual gigabit NICs, multiple USB ports, a WiFi access point and other expansion ports.</p>
<p>There was also continuing buzz regarding Facebook&#8217;s <a href="http://www.facebook.com/note.php?note_id=388112370932">Flashcache SSD module (GPL v2)</a> for linux, and also ZFS snapshots.</p>
<p><strong>Tutorials</strong></p>
<p>I went to the <a href="http://gearman.org/">Gearman</a> Cookbook tutorial, the first half of the <a href="http://opscode.com/chef/">Chef</a> tutorial and some of the Cloud Summit talks.</p>
<p>The <a href="http://gearman.org/">Gearman</a> Cookbook tutorial was excellent. After a detailed overview of the Gearman architecture and implementations in Perl and C, a number of use cases were explored in detail, including before and after code samples. The talk was both easy to listen to as an overall survey, as well as providing immediately useful info for those wanting to deploy it.</p>
<p>The <a href="http://opscode.com/chef/">Chef</a> tutorial was very detailed &#8211; too much so perhaps. I went to the first half only, since I am not planning to implement Chef soon (I use PXE and anaconda/kickstart with CentOS), and did not need that level of detail at this time. cfengine, puppet and chef are ops tools for configuring servers. Chef uses Ruby data structures for its configuration files, and has include files and other useful syntax. Basically, users can &#8220;code&#8221; server configuration, as if they were traditional apps.</p>
<p>I went to some of the <a href="http://www.oscon.com/oscon2010/public/schedule/detail/15295">Cloud Summit talks</a> and BOFs, but found that anybody who has done a simple project using EC2 knew as much or more than the speakers, some I would call blowhards.</p>
<p>Marten Mickos, president of Eucalyptus, is refreshing in that he is always clear about being in it for the money, while also promoting Open Source.</p>
<p><strong>Sessions</strong></p>
<p>Some of the most memorable sessions to me were:</p>
<p><strong>Introduction to MongoDB, Kristina Chodorow (MongoDB)</strong></p>
<p><a href="http://www.snailinaturtleneck.com/blog/">Kristina</a> is the maintainer of the Perl and PHP drivers for MongoDB. She gave an overview of MongoDB, a NoSQL document store, and its command-line interface, which uses JavaScript. </p>
<p>Some day she will release <a href="http://www.snailinaturtleneck.com/blog/2010/06/30/managing-your-mongo-horde-with-genghis-khan/">a sharding tool</a> for MongoDB.</p>
<p><strong>Scaling SourceForge with MongoDB, Nosh Petigara (10gen), Rick Copeland (SourceForge.net / GeekNet) </strong></p>
<p>Nosh and Rick gave an excellent review of incorporating MongoDB into the SourceForge site.</p>
<p>- SF query load is mostly read-only<br />
- ops team benchmarked a few NoSQL candidates, and MongoDB won on performance<br />
- original MySQL servers had 64 GB RAM. After migration to MongoDB, same server machines but only 8 GB RAM<br />
- backup dumps are verified to be bitwise the same as masters<br />
- have to be careful not to dump all documents in your database to the network or it will max out switches<br />
- SF relies on first-class data centers and replication slaves, less worried about MongoDB mmap (not crash-safe)<br />
- I personally looked at their performance numbers and site graphs (on an iPad), and the end result was impressive.</p>
<p><strong>Perl Lightning Talks</strong></p>
<p>As always, the Perl Lightning Talks are a highpoint of the conference.</p>
<p>The &#8220;cartoon&#8221; of <a href="http://www.math.u-bordeaux1.fr/~pit/">Vincent Pit&#8217;s</a> remarkable CPAN module<a href="http://search.cpan.org/~vpit/">(VPIT)</a> contributions was both informative and hilarious. Vincent is a French Ph.D. candidate in advanced geometry.</p>
<p><strong>Cloud BOF (3 Hours)</strong></p>
<p>The Cloud BOF was disorganized, starting 30 minutes late and for some reason was subdivided into 4 audience groups. Startups and vendors trying to make a cloud sales push led the BOF, including cloud and DNS service providers.</p>
<p>The Health Regulations subgroup came up with a couple ways to make the Cloud palatable to regulators by using encryption on all data due to the multi-tenancy issues with sharing public VMs.</p>
<p>I was in the NoSQL group, which discussed general issues and particular successes. <a href="http://www.memcached.org/">Memcached</a> was the clearest winner, while some people also had success with MongoDB and Redis.</p>
<p>My neighbor was an engineer at <a href="http://www.postrank.com/">Postrank.com</a>. He said that they were happy with HAProxy, but much less happy with the unpredictable IO available when running MySQL on EC2. He also said to carefully look at storage volumes available to your instance, as one is a useful tmpfs. They use <a href="http://www.authsmtp.com/">AuthSMTP</a> to get around EC2 being generally blacklisted for outbound email.</p>
<p><strong>Database BOFs</strong></p>
<p><strong>MySQL BOF</strong></p>
<p>The MySQL AB engineering staff has left Oracle. <a href="http://askmonty.org">Monty Program AB</a> (21 staff) has the core developers, and Percona Inc. (32 staff) has the consultants. Oracle still has some of the InnoDB programmers.</p>
<p>The business plan for Monty Program AB is 60% commercially-sponsored MySQL development, and 40% community-request development. Monty would like commercial users of MySQL to sponsor patches that would benefit them.</p>
<p>Mark mentioned that using Nehalem instructions for CRC were much faster, and that Facebook was using partitions for truncating tables instead of doing multi-record deletes. (See his blog for more details.)</p>
<p>One person mentioned using a commercial backup tool, <a href="http://www.r1soft.com/">R1Soft</a>, that inserts a linux kernel module to allow filesystem snapshots. He said to carefully test backup and restore in your environment, especially for filesystems greater than 1 TB which may exceed certain block counter limits. Peter said that some of his clients had used it with varying success.</p>
<p>It worked for him in his environment, and the file browser allows selective file restore (he uses it to restore by priority where a system runs multiple applications.) It starts at $299 for the Standard Edition, and also has MySQL Add-on and Enterprise Editions. </p>
<p><strong>PostgreSQL BOF</strong></p>
<p>The PostgreSQL BOF talked about 30 or so changes that went into version 9.</p>
<p>One of the most exciting new features is a native replication feature, called streaming replication (block-based.) The advantage over <a href="http://www.slony.info/">Slony-I</a> replication is that Slony-I is trigger-based, so has a variety of issues included inability to replicate DDL commands.</p>
<p>Some of the developers mimed replication events, which was rather amusing to watch. Yes, it was taped.</p>
<p>PostgreSQL is released under the <a href="http://www.opensource.org/licenses/postgresql">PostgreSQL Licence</a>, which is BSDish.</p>
<p>Peter Zaitsev, co-founder of <a href="http://www.percona.com/">Percona</a>, organized 3 BOFs, including XtraDB, XtraBackup, Maatkit, Percona Server, <a href="http://www.sphinxsearch.com/">Sphinx Search</a> and Running Databases on Flash Storage.</p>
<p><strong>Sphinx Search BOF</strong></p>
<p>Andrew Aksyonoff, the original programmer of Sphinx Search (GPL v2), couldn&#8217;t make it to OSCON (the good excuse was that he was busy coding), so Richard Kelm (Sphinx sales/customer support honcho) and Peter filled in (Percona is a business partner with Sphinx, and many of Percona&#8217;s clients use it.)</p>
<p>Some of the attendees were existing users, like myself, and some from HP and other companies were looking for a large-scale search solution or alternative to Lucene.</p>
<p>Monty mentioned that the latest MySQL 5.1 should be used, as there have been a number of performance and reliability improvements. Full-text search is supposed to be 10x faster than 5.0, and replication is nearly bug-free by now.</p>
<p>Sphinx Search now has <a href="http://www.sphinxsearch.com/docs/current.html#rt-indexes">real-time index updates</a> in version 1.1.0 beta. Another very nice feature is SQL+FS indexing.</p>
<p>Here is the full Sphinx 1.1.0 <a href="http://www.sphinxsearch.com/docs/current.html#rel110">changelog.</a></p>
<p><strong>Running Databases on Flash Storage BOF</strong></p>
<p>The Running Databases on Flash Storage BOF had a combination of MySQL and Postgres users who have tested or used most of the SSD products: FusionIO, violin, Intel, OCZ, etc. Everybody was happy with SSD IOPS performance, but less so with cost and metadata RAM requirements with the add-in boards (FusionIO may require 4 GB RAM for metadata.)</p>
<p>Peter said that 20% to 30% of his clients are already using SSD &#8211; across the spectrum of vendors and models. Some are also trying &#8220;massive RAM&#8221; solutions, like Cisco servers with 384 GB RAM.</p>
<p>Some users had 1+ TB Postgres databases with very thorny backup and mgmt. issues. One solution was to start a snapshot, but not do the copy operation.</p>
<p><strong>Expo Notes</strong></p>
<p>I had an enjoyable talk with Austin Hook, who has operated the OpenBSD Store for many years. He lives near Calgary, the center of OpenBSD/OpenSSH/PF development. He mentioned that some perennial financial contributors had stopped because of the recession, so here&#8217;s <a href="http://www.openbsd.org/donations.html">the donations link.</a></p>
<p>I also talked to some reps from a Brazilian outsourcing firm, <a href="http://www.actminds.com/">ActMinds.</a> They currently have 400 employees across Brazil and a sales office in Philadelphia. Brazil is only 2 hours ahead of EST. They said the minimum project size is 2 developers and developer turnover a low 5%/annum. Their pricing is $35 to $45/hour.</p>
<p>And I had fun handling the plug computers on display at the Marvell booth. The Ionics boards are amazingly densely populated.</p>
<p><strong>Discussions</strong></p>
<p>I had the opportunity to talk to a long-time Portland resident who works as a computer consultant. He said that the Portland economy is not doing great, and really hasn&#8217;t done well since old-growth logging was stopped after 90% of the forests were cleared. And although hundreds of miles of fiber optic has been laid downtown, it&#8217;s not available for residential use. However, the Beaverton area does have ubiquitous FTTH.</p>
<p>I also talked to somebody who attended the Emerging Languages talks. He&#8217;s working on his M.Sc. in Computer Science, so found those talks fascinating.</p>
<p><strong>Twitter Humor</strong></p>
<p>There were some humorous tweets:</p>
<p>- &#8220;my MongoDB and CouchDB mugs are fighting each other.&#8221;<br />
- &#8220;I got one MongoDB mug, but need two to safely store coffee.&#8221;</p>
<p><strong>Notes</strong></p>
<p>Note to self: skip the nightly parties unless you have a date. The bars are too loud to talk to anybody.</p>
<p>Note to the O&#8217;Reilly conference organizers: use meetup.com for the BOFs like ApacheCon does. The average audience was about 10 people, and with meetup it would  be 4x that.</p>
<p><a href="http://www.oscon.com/oscon2010/public/schedule/proceedings">OSCON 2010 Slides</a><br />
<a href="http://www.tbray.org/ongoing/When/201x/2010/07/21/DPH">Tim Bray: Desperate Perl Hacker</a><br />
<a href="http://www.youtube.com/results?search_query=oscon+2010&#038;aq=f">Youtube: OSCON 2010 videos</a><br />
<a href="http://blip.tv/?search=oscon2010;s=search">blip.tv: OSCON2010 videos</a><br />
<a href="http://en.wikipedia.org/wiki/Plug_computer">wikipedia: Plug Computer</a><br />
<a href="http://blog.zawodny.com/2010/05/22/mongodb-early-impressions/#comments">Jeremy Zawodny: MongoDB Early Impressions</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jebriggs.com/blog/2010/07/oscon-conference-2010-portland/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SVLUG Meeting: Not Your Father&#8217;s Assembly Language with Randall Hyde</title>
		<link>http://www.jebriggs.com/blog/2010/07/randall-hyde-hal-assembly-language/</link>
		<comments>http://www.jebriggs.com/blog/2010/07/randall-hyde-hal-assembly-language/#comments</comments>
		<pubDate>Wed, 07 Jul 2010 17:39:12 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[BSD]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Toys]]></category>
		<category><![CDATA[User Groups]]></category>

		<guid isPermaLink="false">http://www.jebriggs.com/blog/?p=2111</guid>
		<description><![CDATA[At Silicon Valley Linux Users Group tonite, Randall Hyde talked a bout a more modern implementation of assembly language, HLA &#8211; the High Level Assembler. He talked about his career as a programmer, college lecturer at UC Riverside, computer book &#8230; <a href="http://www.jebriggs.com/blog/2010/07/randall-hyde-hal-assembly-language/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>At Silicon Valley Linux Users Group tonite, <a href="http://homepage.mac.com/randyhyde/webster.cs.ucr.edu/">Randall Hyde</a> talked a bout a more modern implementation of assembly language, HLA &#8211; the High Level Assembler.</p>
<p>He talked about his career as a programmer, college lecturer at UC Riverside, computer book author and developer of nuclear reactor control software.</p>
<p>It was interesting to hear first-hand that CS students during the dot com boom actually did enroll &#8220;just for the money&#8221;, regardless of interest in science or ability.</p>
<p>Originally his book on HAL was a download-only book, but No Starch Press was looking for content and actually contacted him for permission to publish it. It proved to be a popular book and another version is planned.</p>
<p>He said it takes about 2 years to learn the domain-specific knowledge about nuclear reactors, plus whatever time it takes to learn the programming languages or tools used for the project.</p>
<p>Using a debugger on nuclear reactor control software results in a scram, so planning ahead is a good idea.</p>
<p>Thanks again to Symantec for hosting the meeting.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jebriggs.com/blog/2010/07/randall-hyde-hal-assembly-language/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ClusterIt dtop Command Ported to Linux</title>
		<link>http://www.jebriggs.com/blog/2010/05/clusterit-dtop-command-ported-to-linux/</link>
		<comments>http://www.jebriggs.com/blog/2010/05/clusterit-dtop-command-ported-to-linux/#comments</comments>
		<pubDate>Tue, 25 May 2010 09:46:56 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[BSD]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Toys]]></category>

		<guid isPermaLink="false">http://www.jebriggs.com/blog/?p=1943</guid>
		<description><![CDATA[The light-weight ClusterIt toolkit mostly worked on linux, but dtop (distributed top) still expected BSD-style top syntax. Here&#8217;s a diff I wrote to make dtop work on recent versions of Linux (tested on CentOS 5.5 x86_64): $ diff dtop.org.c dtop.c &#8230; <a href="http://www.jebriggs.com/blog/2010/05/clusterit-dtop-command-ported-to-linux/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The light-weight <a href="http://www.garbled.net/clusterit.html">ClusterIt</a> toolkit mostly worked on linux, but dtop (distributed top) still expected BSD-style top syntax.</p>
<p>Here&#8217;s a diff I wrote to make dtop work on recent versions of Linux (tested on CentOS 5.5 x86_64):</p>
<pre>
$ diff dtop.org.c dtop.c

311a312,322
> 	char buf2[30];
>
> 	if (strstr(c, "Swap:") != NULL) {
> 		sscanf(c, "Swap: %30s total, %*s used, %30s free", buf, buf2);
> 		nd->swap = dehumanize_number(buf);
> 		nd->swapfree = dehumanize_number(buf2);
> 		nd->inactmem = nd->wiredmem = nd->execmem = 0;
> 		return;
> 	}
>
>
344a356
> #if ! defined(__linux__)
364a377
> #endif
470a484,486
> #if defined(__linux__)
> 		case 11:
> #else
471a488
> #endif
517a535,539
> #if defined(__linux__)
> 		} else if (strstr(c, "Tasks:") != NULL) {
>                         sscanf(c, "Tasks: %d ",&#038;nodedata[nn].procs);
> #else
519a542
> #endif
</pre>
<p>The output of dtop on linux looks like this:</p>
<pre>
HOSTNAME  PROCS  LOAD1  LOAD5 LOAD15 ACTIVE  INACT   FILE   FREE SWPFRE SWUSED
  g00-int     64   0.11   0.04   0.01	   0	  0	 0  7345M  2047M  0.00%
  g01-int     64   0.00   0.01   0.00	   0	  0	 0  7033M  2047M  0.00%
  g02-int     61   0.08   0.02   0.01	   0	  0	 0  6980M  2047M  0.00%
  g03-int     64   0.16   0.06   0.01	   0	  0	 0  7011M  2047M  0.00%
  g04-int     64   0.04   0.04   0.01	   0	  0	 0  6996M  2047M  0.00%
  g05-int     61   0.02   0.01   0.00	   0	  0	 0  7424M  2047M  0.00%
</pre>
<p>Here is <a href="http://jebriggs.com/php/dtop.c.txt">the final, hardened version of dtop.c</a> that uses secure C programming techniques (strn API and double-free safe.)</p>
<p>My long-term preference would be to rewrite dtop in Perl since parsing text input in old-school C is brittle.</p>
<p>Also, dtop should be able to handle top results from heterogeneous systems, and the linux ifdefs contribute to preventing that.</p>
<p>And here are some of the debugging commands I used:</p>
<pre>
ulimit -S -c unlimited > /dev/null 2>&#038;1
valgrind -v --leak-check=full --show-reachable=yes --track-origins=yes ./dtop
gdb ./dtop core
</pre>
<p><a href="http://www.embedded.com/columns/programmingpointers/200900195?pgno=1">Dan Saks: Why size_t matters</a><br />
<a href="http://www.viva64.com/content/articles/64-bit-development/?f=size_t_and_ptrdiff_t.html&#038;lang=en&#038;content=64-bit-development">Karpov: About size_t and ptrdiff_t</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jebriggs.com/blog/2010/05/clusterit-dtop-command-ported-to-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (enhanced)
Database Caching 1/49 queries in 0.020 seconds using disk
Object Caching 643/764 objects using disk

Served from: www.jebriggs.com @ 2012-02-06 03:53:26 -->
