<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Glog &#187; programming</title>
	<atom:link href="http://blog.aiama.com/category/computing/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.aiama.com</link>
	<description></description>
	<lastBuildDate>Sat, 03 Dec 2011 06:25:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='blog.aiama.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Glog &#187; programming</title>
		<link>http://blog.aiama.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://blog.aiama.com/osd.xml" title="Glog" />
	<atom:link rel='hub' href='http://blog.aiama.com/?pushpress=hub'/>
		<item>
		<title>Zettabee and Theia</title>
		<link>http://blog.aiama.com/2011/10/21/zettabee-and-theia/</link>
		<comments>http://blog.aiama.com/2011/10/21/zettabee-and-theia/#comments</comments>
		<pubDate>Fri, 21 Oct 2011 22:09:09 +0000</pubDate>
		<dc:creator>gerirgaudi</dc:creator>
				<category><![CDATA[python]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://blog.aiama.com/?p=228</guid>
		<description><![CDATA[It&#8217;s hard to believe it has almost a year since we started the process of open sourcing tools, but it has indeed been that long, and it picked up steam a few weeks ago, when pushed out nddtune, which is admittedly a very simple tool. Today we&#8217;re continuing that effort with a couple of more significant [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.aiama.com&amp;blog=3418512&amp;post=228&amp;subd=gerirgaudi&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s hard to believe <a href="http://blog.aiama.com/2010/11/03/githubed/">it has almost a year</a> since we started the process of open sourcing tools, but it has indeed been that long, and it picked up steam <a title="Ops Toolkit" href="http://www.ning.com/code/2011/09/operations-toolkit/">a few weeks ago</a>, when pushed out <a title="nddtune" href="https://github.com/ning/nddtune" target="_blank">nddtune</a>, which is admittedly a very simple tool. Today we&#8217;re continuing that effort with a couple of more significant tools: <a title="Zettabee" href="https://github.com/ning/Zettabee" target="_blank">Zettabee</a> and <a title="Theia" href="https://github.com/ning/Theia" target="_blank">Theia</a>.</p>
<h5>A Little History</h5>
<p>About four years ago, we had a very real need to have fairly detailed performance metrics for NetApp filers. At the time, the available solutions relied on SNMP (NetApp&#8217;s SNMP support has historically been weak) or were NetApp&#8217;s own, which, asides from expensive, were hard to integrate with the rest of our monitoring infrastructure (which is comprised of Nagios and Zenoss). As such, we set out to write a tool that would both perform detailed filer monitoring (for faults and performance) and that would be able to interface with those systems. Theia was born.</p>
<p>In more recent times, as we were looking at beefing up our DR strategy, we found ourselves needing a good ZFS-based replication tool, and set out to write Zettabee, which gave us an opportunity to dive deeper into ZFS capabilities.</p>
<h5>Let the Games Begin</h5>
<p>Today we&#8217;re very excited to be releasing those two tools into the open. Theia has been in production for the last four years, dutifully keeping an eye on our filers, while Zettabee has been pushing bits long-distance for well over nine months. We are working on putting together a roadmap for future work, but are happy to have them out in the open for further collaboration. Tim has written <a title="Theia – Open Source NetApp Monitoring" href="http://www.h1tman.com/2011/10/theia-open-source-netapp-monitoring/" target="_blank">a good post</a> on some of the work he has done to make this happen, and I am grateful for his help on this endeavor.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gerirgaudi.wordpress.com/228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gerirgaudi.wordpress.com/228/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gerirgaudi.wordpress.com/228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gerirgaudi.wordpress.com/228/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gerirgaudi.wordpress.com/228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gerirgaudi.wordpress.com/228/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gerirgaudi.wordpress.com/228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gerirgaudi.wordpress.com/228/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gerirgaudi.wordpress.com/228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gerirgaudi.wordpress.com/228/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gerirgaudi.wordpress.com/228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gerirgaudi.wordpress.com/228/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gerirgaudi.wordpress.com/228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gerirgaudi.wordpress.com/228/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.aiama.com&amp;blog=3418512&amp;post=228&amp;subd=gerirgaudi&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.aiama.com/2011/10/21/zettabee-and-theia/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1b079627c377fe7a5555fb68068724ed?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gerirgaudi</media:title>
		</media:content>
	</item>
		<item>
		<title>SOAPing up JIRA</title>
		<link>http://blog.aiama.com/2009/09/25/soaping-up-jira/</link>
		<comments>http://blog.aiama.com/2009/09/25/soaping-up-jira/#comments</comments>
		<pubDate>Fri, 25 Sep 2009 18:35:38 +0000</pubDate>
		<dc:creator>gerirgaudi</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[atlassian]]></category>
		<category><![CDATA[en]]></category>
		<category><![CDATA[jira]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://blog.aiama.com/2009/09/25/soaping-up-jira/</guid>
		<description><![CDATA[After a couple of days of running into dead ends, I am finally able to drive JIRA via its SOAP interface sanely from something other than Java in an effort to automate small, repetitive tasks that are best left to tools. Without going into the details of what is it that I needed to get [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.aiama.com&amp;blog=3418512&amp;post=91&amp;subd=gerirgaudi&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>After a couple of days of running into dead ends, I am finally able to drive JIRA via its <a href="http://confluence.atlassian.com/display/JIRA/Creating+a+SOAP+Client" title="JIRA SOAP client">SOAP interface</a> <i>sanely</i> from something other than Java in an effort to automate small, repetitive tasks that are best left to tools. Without going into the details of what is it that I needed to get accomplished (which is not the key point of this post), I wanted to share a bit of the experience before I close shop for the day.</p>
<p>First, check out <a href="http://blogs.atlassian.com/news/2008/11/killer_jira_cli.html" title="Igor Sereda's presentation on JIRA Client">Igor Sereda&#8217;s presentation on JIRA Client</a>, which offers many insights on general <i>client-side</i> JIRA programming. Second, have the <a href="http://docs.atlassian.com/software/jira/docs/api/rpc-jira-plugin/latest/com/atlassian/jira/rpc/soap/JiraSoapService.html" title=" JiraSoapService javadoc">JiraSoapService javadoc</a> handy. Given the usual needs I deal with, I use Python quite a bit, which has served me very well for nearly the last 10 years, and it&#8217;s the workhorse of my tool development. But in this case, I ran into problems at almost every turn: SOAPpy cannot deal with dates, and ZSI ran into some <a href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1966415&amp;group_id=26590&amp;atid=387667" title="wsdl2py 2.1a1 fails on Atlassian JIRA WSDL - ID: 1966415">issues</a> as well. So I went to Ruby and <a href="http://jira4r.rubyhaus.org/" title="jira4r">jira4r</a> (<a href="http://code.remi.org/jira4r/" title="jira4r">navigator</a>, <a href="http://svn.rubyhaus.org/jira4r/" title="svn">source</a>). Amazingly elegant, it hides all the SOAP stuff from view, producing ridiculously compact code, and so far, working flawlessly.</p>
<p><a href="http://split-s.blogspot.com/" title="split-s">Martin</a> always knew I would end up diving into Ruby <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Update: check out <a href="http://www.soapui.org/" title="soapUI">soapUI</a> (<a href="https://sourceforge.net/projects/soapui/files/soapui/" title="soapUI at SourceForge">download</a>).</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gerirgaudi.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gerirgaudi.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gerirgaudi.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gerirgaudi.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gerirgaudi.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gerirgaudi.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gerirgaudi.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gerirgaudi.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gerirgaudi.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gerirgaudi.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gerirgaudi.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gerirgaudi.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gerirgaudi.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gerirgaudi.wordpress.com/91/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.aiama.com&amp;blog=3418512&amp;post=91&amp;subd=gerirgaudi&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.aiama.com/2009/09/25/soaping-up-jira/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1b079627c377fe7a5555fb68068724ed?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gerirgaudi</media:title>
		</media:content>
	</item>
		<item>
		<title>Love thy Logging</title>
		<link>http://blog.aiama.com/2008/05/31/love-thy-logging/</link>
		<comments>http://blog.aiama.com/2008/05/31/love-thy-logging/#comments</comments>
		<pubDate>Sat, 31 May 2008 19:42:58 +0000</pubDate>
		<dc:creator>gerirgaudi</dc:creator>
				<category><![CDATA[python]]></category>
		<category><![CDATA[en]]></category>
		<category><![CDATA[logging]]></category>

		<guid isPermaLink="false">http://gerirgaudi.wordpress.com/2008/05/31/love-thy-logging/</guid>
		<description><![CDATA[Fact: I&#8217;m not a developer. That&#8217;s magic I leave to people far (far) more talented than myself. Fact: I do write code relatively often. It is not a constant activity for a variety of reasons: the weather, fires at work, my camera, Saturday nights out and about, whatever. The net result of this stop-and-go is [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.aiama.com&amp;blog=3418512&amp;post=7&amp;subd=gerirgaudi&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Fact: I&#8217;m not a developer. That&#8217;s magic I leave to <a title="Martin's Weblog" href="http://split-s.blogspot.com/">people</a> far (<strong>far</strong>) more talented than myself. Fact: I do write code relatively often. It is not a constant activity for a variety of reasons: the weather, fires at work, my camera, Saturday nights out and about, whatever. The net result of this stop-and-go is that I don&#8217;t always keep up with new language features, and Python&#8217;s <span style="font-family:'Courier New';"><a title="Logging facility for Python" href="http://docs.python.org/lib/module-logging.html">logging module</a></span> is a good example of this sometimes embarrassing reality. This module has been available in the standard Python distribution since version 2.3, but it was only recently that I started using it. It rocks.</p>
<p>Ninety percent of the code I write is sysadmin related code. Task automation, log grokking and processing, monitoring widgets, reporting tools, management gizmos and the like. A lot of these are long-running processes that deal with a fair number of interconnected (and possibly remote) moving parts. Given a 24&#215;7 shop, these tools have to interact with the real world, which implies strapping them to monitoring systems, the kind that will page the humans in those (hopefully) rare instances when things do go sideways and someone has to intervene to make it all better. The pace is relentless, so streamlining the development is critical to keep up and be able to maintain the code as things evolve.</p>
<p>Before discovering the <span style="font-family:'Courier New';">logging</span> module, I wrote a fair amount code involving admittedly crude custom loggers and heavy usage of the <a title="Unix syslog library routined" href="http://docs.python.org/lib/module-syslog.html"><span style="font-family:'Courier New';">syslog</span> module</a>, which is fine, actually, but far from optimal. The logging module does away with all of that, simplifying the code and allowing for a fair amount of control over how and where messages are sent. In addition to log files and syslog, the logging module offers a good variety of other handlers (SMTP, socket and datagram, to name a few). Yum. It forces a bit of thinking about the organization of messages (mapping conditions to severity levels and deciding what to do for each severity), but this is actually quite helpful. Yum yum.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gerirgaudi.wordpress.com/7/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gerirgaudi.wordpress.com/7/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gerirgaudi.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gerirgaudi.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gerirgaudi.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gerirgaudi.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gerirgaudi.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gerirgaudi.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gerirgaudi.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gerirgaudi.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gerirgaudi.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gerirgaudi.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gerirgaudi.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gerirgaudi.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gerirgaudi.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gerirgaudi.wordpress.com/7/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.aiama.com&amp;blog=3418512&amp;post=7&amp;subd=gerirgaudi&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.aiama.com/2008/05/31/love-thy-logging/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1b079627c377fe7a5555fb68068724ed?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gerirgaudi</media:title>
		</media:content>
	</item>
	</channel>
</rss>
