<?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>Xaprb &#187; Maatkit</title>
	<atom:link href="http://www.xaprb.com/blog/category/maatkit/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.xaprb.com/blog</link>
	<description>Stay curious!</description>
	<lastBuildDate>Wed, 08 Feb 2012 03:13:07 +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>A clarification on mk-slave-prefetch</title>
		<link>http://www.xaprb.com/blog/2011/08/21/a-clarification-on-mk-slave-prefetch/</link>
		<comments>http://www.xaprb.com/blog/2011/08/21/a-clarification-on-mk-slave-prefetch/#comments</comments>
		<pubDate>Sun, 21 Aug 2011 13:45:01 +0000</pubDate>
		<dc:creator>Xaprb</dc:creator>
				<category><![CDATA[Maatkit]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://www.xaprb.com/blog/?p=2448</guid>
		<description><![CDATA[It seems to be a popular misconception that mk-slave-prefetch is designed to keep a MySQL replica server &#8220;warm&#8221; and ready to serve production traffic in case the master is demoted or fails. This is not what mk-slave-prefetch does. It&#8217;s related, and easy to confuse, but its purpose is different. The mk-slave-prefetch tool is designed to [...]


<strong>Further Reading:</strong><ul><li><a href='http://www.xaprb.com/blog/2009/03/14/pop-quiz-how-can-one-slave-break-another-slave/' rel='bookmark' title='Permanent Link: Pop quiz: how can one slave break another slave'>Pop quiz: how can one slave break another slave</a></li>
<li><a href='http://www.xaprb.com/blog/2007/08/01/why-mysql-server-not-configured-as-slave/' rel='bookmark' title='Permanent Link: Why MySQL says the server is not configured as a slave'>Why MySQL says the server is not configured as a slave</a></li>
<li><a href='http://www.xaprb.com/blog/2007/04/07/how-to-know-if-a-mysql-slave-is-identical-to-its-master/' rel='bookmark' title='Permanent Link: How to know if a MySQL slave is identical to its master'>How to know if a MySQL slave is identical to its master</a></li>
<li><a href='http://www.xaprb.com/blog/2007/09/30/how-to-measure-mysql-slave-lag-accurately/' rel='bookmark' title='Permanent Link: How to measure MySQL slave lag accurately'>How to measure MySQL slave lag accurately</a></li>
<li><a href='http://www.xaprb.com/blog/2009/01/20/mysql-disaster-recovery-by-promoting-a-slave/' rel='bookmark' title='Permanent Link: MySQL disaster recovery by promoting a slave'>MySQL disaster recovery by promoting a slave</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>It seems to be a popular misconception that mk-slave-prefetch is designed to keep a MySQL replica server &#8220;warm&#8221; and ready to serve production traffic in case the master is demoted or fails.  <strong>This is not what mk-slave-prefetch does</strong>.  It&#8217;s related, and easy to confuse, but its purpose is different.</p>

<p>The mk-slave-prefetch tool is designed to try to execute a read-only approximation of the write workload that the replica is about to have to perform.  It is meant to do this just a little bit before the replication thread (which can only be true if replication is lagging), so that when the replica replays writes to execute replication, it doesn&#8217;t have to wait for disk I/O.</p>

<p>Keeping caches warmed up for production traffic requires that the <em>read</em> workload, which does not flow through relay logs, is executed on the server.  If you point mk-slave-prefetch at a server, you&#8217;re just double-executing the <em>write</em> workload in a read-only fashion.</p>

<p>Perhaps an example will clarify.  Suppose that a master database has a bunch of writes to WritableTable, and lots and lots of reads to ReadableTable.  On the replica, the only queries in the relay log will be on WritableTable.  And what will mk-slave-prefetch be doing?  Executing SELECT queries against WritableTable.  No traffic on ReadableTable at all.  If you switch to use the replica as the primary server, ReadableTable&#8217;s data won&#8217;t be in the caches.</p>

<p>To actually warm up the replica, you need to replay the queries against the ReadableTable.  You can only find those by looking at the master.  You can read its query logs, or watch its processlist, or capture TCP traffic, or any other method of capturing read traffic.  There is a feature built into mk-query-digest to help you capture and replay these against the replica: <a href="http://www.maatkit.org/doc/mk-query-digest.html#execute">&#8211;execute</a>.</p>

<p>A parting note: mk-slave-prefetch is an extremely niche tool that generally doesn&#8217;t help replicas keep up with their masters.  Only in very special cases is the hardware, data, and workload suitable for what it does.</p>

<p><strong>Further Reading:</strong><ul><li><a href='http://www.xaprb.com/blog/2009/03/14/pop-quiz-how-can-one-slave-break-another-slave/' rel='bookmark' title='Permanent Link: Pop quiz: how can one slave break another slave'>Pop quiz: how can one slave break another slave</a></li>
<li><a href='http://www.xaprb.com/blog/2007/08/01/why-mysql-server-not-configured-as-slave/' rel='bookmark' title='Permanent Link: Why MySQL says the server is not configured as a slave'>Why MySQL says the server is not configured as a slave</a></li>
<li><a href='http://www.xaprb.com/blog/2007/04/07/how-to-know-if-a-mysql-slave-is-identical-to-its-master/' rel='bookmark' title='Permanent Link: How to know if a MySQL slave is identical to its master'>How to know if a MySQL slave is identical to its master</a></li>
<li><a href='http://www.xaprb.com/blog/2007/09/30/how-to-measure-mysql-slave-lag-accurately/' rel='bookmark' title='Permanent Link: How to measure MySQL slave lag accurately'>How to measure MySQL slave lag accurately</a></li>
<li><a href='http://www.xaprb.com/blog/2009/01/20/mysql-disaster-recovery-by-promoting-a-slave/' rel='bookmark' title='Permanent Link: MySQL disaster recovery by promoting a slave'>MySQL disaster recovery by promoting a slave</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.xaprb.com/blog/2011/08/21/a-clarification-on-mk-slave-prefetch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Planned change in Maatkit &amp; Aspersa development</title>
		<link>http://www.xaprb.com/blog/2011/07/06/planned-change-in-maatkit-aspersa-development/</link>
		<comments>http://www.xaprb.com/blog/2011/07/06/planned-change-in-maatkit-aspersa-development/#comments</comments>
		<pubDate>Thu, 07 Jul 2011 03:26:08 +0000</pubDate>
		<dc:creator>Xaprb</dc:creator>
				<category><![CDATA[Aspersa]]></category>
		<category><![CDATA[Maatkit]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.xaprb.com/blog/?p=2390</guid>
		<description><![CDATA[I&#8217;ve just sent an email to the Maatkit discussion list to announce a planned change to how Maatkit (and Aspersa) are developed. In short, Percona plans to create a Percona Toolkit of MySQL-related utilities, as a fork of Maatkit and Aspersa. I&#8217;m very happy about this change, and I welcome your responses to that thread [...]


<strong>Further Reading:</strong><ul><li><a href='http://www.xaprb.com/blog/2011/09/01/want-to-hack-maatkit-and-aspersa-were-hiring/' rel='bookmark' title='Permanent Link: Want to hack Maatkit and Aspersa? We&#8217;re hiring'>Want to hack Maatkit and Aspersa? We&#8217;re hiring</a></li>
<li><a href='http://www.xaprb.com/blog/2010/04/21/aspersa-a-new-opensource-toolkit/' rel='bookmark' title='Permanent Link: Aspersa, a new opensource toolkit'>Aspersa, a new opensource toolkit</a></li>
<li><a href='http://www.xaprb.com/blog/2007/11/26/four-companies-to-sponsor-maatkit-development/' rel='bookmark' title='Permanent Link: Four companies to sponsor Maatkit development'>Four companies to sponsor Maatkit development</a></li>
<li><a href='http://www.xaprb.com/blog/2008/08/18/how-maatkit-benefits-from-test-driven-development/' rel='bookmark' title='Permanent Link: How Maatkit benefits from test-driven development'>How Maatkit benefits from test-driven development</a></li>
<li><a href='http://www.xaprb.com/blog/2010/09/22/aspersa-gets-a-user-manual/' rel='bookmark' title='Permanent Link: Aspersa gets a user manual'>Aspersa gets a user manual</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just sent <a href="https://groups.google.com/d/topic/maatkit-discuss/JWW6QEbDoj8/discussion">an email to the Maatkit discussion list</a> to announce a planned change to how Maatkit (and Aspersa) are developed.  In short, Percona plans to create a Percona Toolkit of MySQL-related utilities, as a fork of Maatkit and Aspersa.  I&#8217;m very happy about this change, and I welcome your responses to that thread on the discussion list.</p>

<p><strong>Further Reading:</strong><ul><li><a href='http://www.xaprb.com/blog/2011/09/01/want-to-hack-maatkit-and-aspersa-were-hiring/' rel='bookmark' title='Permanent Link: Want to hack Maatkit and Aspersa? We&#8217;re hiring'>Want to hack Maatkit and Aspersa? We&#8217;re hiring</a></li>
<li><a href='http://www.xaprb.com/blog/2010/04/21/aspersa-a-new-opensource-toolkit/' rel='bookmark' title='Permanent Link: Aspersa, a new opensource toolkit'>Aspersa, a new opensource toolkit</a></li>
<li><a href='http://www.xaprb.com/blog/2007/11/26/four-companies-to-sponsor-maatkit-development/' rel='bookmark' title='Permanent Link: Four companies to sponsor Maatkit development'>Four companies to sponsor Maatkit development</a></li>
<li><a href='http://www.xaprb.com/blog/2008/08/18/how-maatkit-benefits-from-test-driven-development/' rel='bookmark' title='Permanent Link: How Maatkit benefits from test-driven development'>How Maatkit benefits from test-driven development</a></li>
<li><a href='http://www.xaprb.com/blog/2010/09/22/aspersa-gets-a-user-manual/' rel='bookmark' title='Permanent Link: Aspersa gets a user manual'>Aspersa gets a user manual</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.xaprb.com/blog/2011/07/06/planned-change-in-maatkit-aspersa-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Maatkit tool: mk-table-usage</title>
		<link>http://www.xaprb.com/blog/2011/05/10/new-maatkit-tool-mk-table-usage/</link>
		<comments>http://www.xaprb.com/blog/2011/05/10/new-maatkit-tool-mk-table-usage/#comments</comments>
		<pubDate>Tue, 10 May 2011 13:45:02 +0000</pubDate>
		<dc:creator>Xaprb</dc:creator>
				<category><![CDATA[Maatkit]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.xaprb.com/blog/?p=2321</guid>
		<description><![CDATA[This month&#8217;s Maatkit release includes a new tool that&#8217;s kind of an old tool at the same time. We wrote it a couple years ago for a client who has a very large set of tables and many queries and developers, and wants the database&#8217;s schema and queries to self-document for data-flow analysis purposes. At [...]


<strong>Further Reading:</strong><ul><li><a href='http://www.xaprb.com/blog/2010/05/10/new-maatkit-tool-to-compute-index-usage/' rel='bookmark' title='Permanent Link: New Maatkit tool to compute index usage'>New Maatkit tool to compute index usage</a></li>
<li><a href='http://www.xaprb.com/blog/2009/07/25/analyze-and-optimize-memcached-usage-with-maatkit/' rel='bookmark' title='Permanent Link: Analyze and optimize memcached usage with Maatkit'>Analyze and optimize memcached usage with Maatkit</a></li>
<li><a href='http://www.xaprb.com/blog/2010/03/16/try-mk-query-advisor-a-new-maatkit-tool/' rel='bookmark' title='Permanent Link: Try mk-query-advisor, a new Maatkit tool'>Try mk-query-advisor, a new Maatkit tool</a></li>
<li><a href='http://www.xaprb.com/blog/2010/07/10/aspersas-mysql-summary-tool/' rel='bookmark' title='Permanent Link: Aspersa&#8217;s mysql-summary tool'>Aspersa&#8217;s mysql-summary tool</a></li>
<li><a href='http://www.xaprb.com/blog/2007/03/19/mysql-toolkits-show-grants-tool-091-released/' rel='bookmark' title='Permanent Link: MySQL Toolkit&#8217;s Show Grants tool 0.9.1 released'>MySQL Toolkit&#8217;s Show Grants tool 0.9.1 released</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>This month&#8217;s <a href="http://www.maatkit.org/">Maatkit</a> release includes a new tool that&#8217;s kind of an old tool at the same time.  We wrote it a couple years ago for a client who has a very large set of tables and many queries and developers, and wants the database&#8217;s schema and queries to self-document for data-flow analysis purposes.  At the time, it was called mk-table-access and was rather limited &#8212; just a few lines of code wrapped around some existing modules, with an output format that wasn&#8217;t generic enough to be broadly useful.  Thus we didn&#8217;t release it with Maatkit.  We recently changed the name to mk-table-usage (to match mk-index-usage), included it in the Maatkit suite of tools, and enhanced the functionality a lot.</p>

<p>What&#8217;s this tool good for?  Well, imagine that you&#8217;re a big MySQL user and you hire a new developer.  Now you need to bring the new person up to speed with your environment.  Or, you want to understand where the data in some table actually comes from.  Or, you want to drop a column, but you&#8217;re not sure where that data is used and what other code will be affected.  Or you want to find all SQL statements that modify a table.  Wouldn&#8217;t it be nice to have a graph of all your tables and the data flows between them?  With this tool you can parse the flow of data in SQL statements, in terms of Table-From &rarr; Table-To, and print the results, annotated by the statement&#8217;s fingerprint.</p>

<p>The client who sponsored the development of this tool is using it as an auditing mechanism, for some of the purposes I just mentioned, and also to help enforce their SQL coding standards.  It can be used for a lot more than that, though.  I haven&#8217;t done this yet, but it should be easy to write some quick 5-line script to transform it into graphviz format and produce graphs from it, or import into a table that represents edges and run queries against it, and so on.  (The client is doing some of those things, but they aren&#8217;t asking me to help, so I&#8217;m taking their word for it that the output format they chose is easily amenable to these tasks.)</p>

<p><strong>Further Reading:</strong><ul><li><a href='http://www.xaprb.com/blog/2010/05/10/new-maatkit-tool-to-compute-index-usage/' rel='bookmark' title='Permanent Link: New Maatkit tool to compute index usage'>New Maatkit tool to compute index usage</a></li>
<li><a href='http://www.xaprb.com/blog/2009/07/25/analyze-and-optimize-memcached-usage-with-maatkit/' rel='bookmark' title='Permanent Link: Analyze and optimize memcached usage with Maatkit'>Analyze and optimize memcached usage with Maatkit</a></li>
<li><a href='http://www.xaprb.com/blog/2010/03/16/try-mk-query-advisor-a-new-maatkit-tool/' rel='bookmark' title='Permanent Link: Try mk-query-advisor, a new Maatkit tool'>Try mk-query-advisor, a new Maatkit tool</a></li>
<li><a href='http://www.xaprb.com/blog/2010/07/10/aspersas-mysql-summary-tool/' rel='bookmark' title='Permanent Link: Aspersa&#8217;s mysql-summary tool'>Aspersa&#8217;s mysql-summary tool</a></li>
<li><a href='http://www.xaprb.com/blog/2007/03/19/mysql-toolkits-show-grants-tool-091-released/' rel='bookmark' title='Permanent Link: MySQL Toolkit&#8217;s Show Grants tool 0.9.1 released'>MySQL Toolkit&#8217;s Show Grants tool 0.9.1 released</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.xaprb.com/blog/2011/05/10/new-maatkit-tool-mk-table-usage/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Keeping docs and program options in sync</title>
		<link>http://www.xaprb.com/blog/2011/02/02/keeping-docs-and-program-options-in-sync/</link>
		<comments>http://www.xaprb.com/blog/2011/02/02/keeping-docs-and-program-options-in-sync/#comments</comments>
		<pubDate>Wed, 02 Feb 2011 19:35:19 +0000</pubDate>
		<dc:creator>Xaprb</dc:creator>
				<category><![CDATA[Aspersa]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[Maatkit]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://www.xaprb.com/blog/?p=2185</guid>
		<description><![CDATA[One of my pet peeves is when documentation is wrong. Another pet peeve is keeping documentation right. Crack open a source tarball for many programs and you&#8217;ll see a chunk of text that gets printed out when you use the &#8211;help option, and elsewhere in the program&#8217;s source code you&#8217;ll see the definitions of the [...]


<strong>Further Reading:</strong><ul><li><a href='http://www.xaprb.com/blog/2005/10/14/how-to-create-a-vb6-console-program/' rel='bookmark' title='Permanent Link: How to  create a VB6 console program'>How to  create a VB6 console program</a></li>
<li><a href='http://www.xaprb.com/blog/2008/08/01/how-to-leave-a-program-running-after-you-log-out/' rel='bookmark' title='Permanent Link: How to leave a program running after you log out'>How to leave a program running after you log out</a></li>
<li><a href='http://www.xaprb.com/blog/2006/12/28/a-shell-for-a-new-perl-mysql-program/' rel='bookmark' title='Permanent Link: A shell for a new Perl MySQL program'>A shell for a new Perl MySQL program</a></li>
<li><a href='http://www.xaprb.com/blog/2009/06/21/how-to-add-paragraph-spacing-in-google-docs/' rel='bookmark' title='Permanent Link: How to add paragraph spacing in Google Docs'>How to add paragraph spacing in Google Docs</a></li>
<li><a href='http://www.xaprb.com/blog/2007/03/03/new-support-options-for-innotop/' rel='bookmark' title='Permanent Link: New support options for innotop'>New support options for innotop</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>One of my pet peeves is when documentation is wrong.  Another pet peeve is keeping documentation right.  Crack open a source tarball for many programs and you&#8217;ll see a chunk of text that gets printed out when you use the &#8211;help option, and elsewhere in the program&#8217;s source code you&#8217;ll see the definitions of the command-line options.  Maintaining a program like this is miserable.  Using it is bad, too.  I can name a lot of programs that say one thing and do another.</p>

<p>For Maatkit, we solved this problem by making the tool read its own source code and generate command-line options, default values, behaviors, dependencies, data types, and so on directly from its own embedded documentation.  This is the same documentation that gets converted into man pages.  So when you run the program, view its documentation, ask it for &#8211;help, or whatever you do, you get the same information.  The documentation is part of the program, and if you change the documentation, you change the program.</p>

<p>For a while I was very unhappy with using Perl to reach outside the boundaries of Perl.  It turns out that executing another program, capturing its output, controlling it, capturing its return code, etc is very buggy.  So I started to write scripts that need this capability in bash, because it is obviously very good at these tasks.  But it&#8217;s a bit harder to handle command-line options in bash, and the tools available for it differ or are unavailable on various platforms.  So I ended up with usage information in a block of text, and program options defined in program code.  Yuck!</p>

<p>I fixed that recently.  I wrote a short script that reads the usage text and generates code to implement the options, including default values and options that are constrained to certain valid inputs.  Life is good again.</p>

<p><strong>Further Reading:</strong><ul><li><a href='http://www.xaprb.com/blog/2005/10/14/how-to-create-a-vb6-console-program/' rel='bookmark' title='Permanent Link: How to  create a VB6 console program'>How to  create a VB6 console program</a></li>
<li><a href='http://www.xaprb.com/blog/2008/08/01/how-to-leave-a-program-running-after-you-log-out/' rel='bookmark' title='Permanent Link: How to leave a program running after you log out'>How to leave a program running after you log out</a></li>
<li><a href='http://www.xaprb.com/blog/2006/12/28/a-shell-for-a-new-perl-mysql-program/' rel='bookmark' title='Permanent Link: A shell for a new Perl MySQL program'>A shell for a new Perl MySQL program</a></li>
<li><a href='http://www.xaprb.com/blog/2009/06/21/how-to-add-paragraph-spacing-in-google-docs/' rel='bookmark' title='Permanent Link: How to add paragraph spacing in Google Docs'>How to add paragraph spacing in Google Docs</a></li>
<li><a href='http://www.xaprb.com/blog/2007/03/03/new-support-options-for-innotop/' rel='bookmark' title='Permanent Link: New support options for innotop'>New support options for innotop</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.xaprb.com/blog/2011/02/02/keeping-docs-and-program-options-in-sync/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Controlling Maatkit from Ruby</title>
		<link>http://www.xaprb.com/blog/2011/01/19/controlling-maatkit-from-ruby/</link>
		<comments>http://www.xaprb.com/blog/2011/01/19/controlling-maatkit-from-ruby/#comments</comments>
		<pubDate>Wed, 19 Jan 2011 15:14:20 +0000</pubDate>
		<dc:creator>Xaprb</dc:creator>
				<category><![CDATA[Maatkit]]></category>

		<guid isPermaLink="false">http://www.xaprb.com/blog/?p=2162</guid>
		<description><![CDATA[There is a Ruby interface to Maatkit that looks like a handy idiomatic way to script Maatkit tools. Further Reading:New Ruby Conference: Ruby on Ales 2011 The little-known Maatkit man page Get Maatkit fast from the command line Is Maatkit notable enough for Wikipedia now? New Maatkit tool: mk-table-usage


<strong>Further Reading:</strong><ul><li><a href='http://www.xaprb.com/blog/2011/01/12/new-ruby-conference-ruby-on-ales-2011/' rel='bookmark' title='Permanent Link: New Ruby Conference: Ruby on Ales 2011'>New Ruby Conference: Ruby on Ales 2011</a></li>
<li><a href='http://www.xaprb.com/blog/2010/06/19/the-little-known-maatkit-man-page/' rel='bookmark' title='Permanent Link: The little-known Maatkit man page'>The little-known Maatkit man page</a></li>
<li><a href='http://www.xaprb.com/blog/2008/05/21/get-maatkit-fast-command-line/' rel='bookmark' title='Permanent Link: Get Maatkit fast from the command line'>Get Maatkit fast from the command line</a></li>
<li><a href='http://www.xaprb.com/blog/2010/07/02/is-maatkit-notable-enough-for-wikipedia-now/' rel='bookmark' title='Permanent Link: Is Maatkit notable enough for Wikipedia now?'>Is Maatkit notable enough for Wikipedia now?</a></li>
<li><a href='http://www.xaprb.com/blog/2011/05/10/new-maatkit-tool-mk-table-usage/' rel='bookmark' title='Permanent Link: New Maatkit tool: mk-table-usage'>New Maatkit tool: mk-table-usage</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>There is a <a href="http://rubygems.org/gems/maatkit-ruby">Ruby interface to Maatkit</a> that looks like a handy <a href="http://rubydoc.info/gems/maatkit-ruby/0.1.0/frames">idiomatic way to script Maatkit tools</a>.</p>

<p><strong>Further Reading:</strong><ul><li><a href='http://www.xaprb.com/blog/2011/01/12/new-ruby-conference-ruby-on-ales-2011/' rel='bookmark' title='Permanent Link: New Ruby Conference: Ruby on Ales 2011'>New Ruby Conference: Ruby on Ales 2011</a></li>
<li><a href='http://www.xaprb.com/blog/2010/06/19/the-little-known-maatkit-man-page/' rel='bookmark' title='Permanent Link: The little-known Maatkit man page'>The little-known Maatkit man page</a></li>
<li><a href='http://www.xaprb.com/blog/2008/05/21/get-maatkit-fast-command-line/' rel='bookmark' title='Permanent Link: Get Maatkit fast from the command line'>Get Maatkit fast from the command line</a></li>
<li><a href='http://www.xaprb.com/blog/2010/07/02/is-maatkit-notable-enough-for-wikipedia-now/' rel='bookmark' title='Permanent Link: Is Maatkit notable enough for Wikipedia now?'>Is Maatkit notable enough for Wikipedia now?</a></li>
<li><a href='http://www.xaprb.com/blog/2011/05/10/new-maatkit-tool-mk-table-usage/' rel='bookmark' title='Permanent Link: New Maatkit tool: mk-table-usage'>New Maatkit tool: mk-table-usage</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.xaprb.com/blog/2011/01/19/controlling-maatkit-from-ruby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

