<?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>Technology, Food, Life</title>
	<atom:link href="http://www.thetechchef.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.thetechchef.com</link>
	<description></description>
	<lastBuildDate>Tue, 10 Aug 2010 17:09:36 +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>Python Suds 0.3.9 &#8211; Modified To Allow Choice</title>
		<link>http://www.thetechchef.com/2010/08/10/python-suds-0-3-9-modified-to-allow-choice/</link>
		<comments>http://www.thetechchef.com/2010/08/10/python-suds-0-3-9-modified-to-allow-choice/#comments</comments>
		<pubDate>Tue, 10 Aug 2010 17:09:36 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[python]]></category>
		<category><![CDATA[python suds choice]]></category>
		<category><![CDATA[python suds no choice]]></category>
		<category><![CDATA[python-suds]]></category>
		<category><![CDATA[python-suds-0.3.9]]></category>
		<category><![CDATA[suds]]></category>

		<guid isPermaLink="false">http://www.thetechchef.com/?p=670</guid>
		<description><![CDATA[I&#8217;ve been using the Python Suds SOAP client to consume web-services for our product at work for reporting purposes. I ran into an issue with suds 0.3.9 and choice elements for remote methods. Thanks to the awesome Actional Diagnostics SOAP Inspector I knew that the web services method I was trying to use had a [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been using the <a href="https://fedorahosted.org/suds/" target="_new">Python Suds SOAP client</a> to consume web-services for our product at work for reporting purposes. I ran into an issue with suds 0.3.9 and choice elements for remote methods. Thanks to the awesome <a href="http://web.progress.com/en/actional/actional-diagnostics.html" target="_new">Actional Diagnostics SOAP Inspector</a> I knew that the web services method I was trying to use had a choice element available, but when I printed the client the choice did not appear in the method. After digging into the source I realized that choice elements were disabled. I&#8217;m not sure why this is the case, but I haven&#8217;t run into any negative side effects by enabling it. </p>
<p>It was so long ago when I ran into this issue that I don&#8217;t recall which source file I had to modify. The positive is that I kept the modified version. If you need to use suds for web services and can&#8217;t use choice elements, download and install my modified version. It is the latest release of suds available at the time of this post (0.3.9 GA).</p>
<p><a href='http://www.thetechchef.com/wp/wp-content/uploads/2010/08/python-suds-0.3.9-modified-choice-working.tar.gz'>Download python-suds-0.3.9-modified-choice-working.tar.gz</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.thetechchef.com/2010/08/10/python-suds-0-3-9-modified-to-allow-choice/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Baker &amp; Banker &#8211; Don&#8217;t Believe The Hype</title>
		<link>http://www.thetechchef.com/2010/07/26/baker-banker-dont-believe-the-hype/</link>
		<comments>http://www.thetechchef.com/2010/07/26/baker-banker-dont-believe-the-hype/#comments</comments>
		<pubDate>Mon, 26 Jul 2010 21:44:27 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Food and Wine]]></category>
		<category><![CDATA[baker & banker]]></category>
		<category><![CDATA[baker and banker]]></category>
		<category><![CDATA[bakerandbankersf]]></category>
		<category><![CDATA[food]]></category>
		<category><![CDATA[wine]]></category>

		<guid isPermaLink="false">http://www.thetechchef.com/?p=592</guid>
		<description><![CDATA[As Public Enemy so eloquently put it &#8212; don&#8217;t believe the hype! It has been quite a while since I posted a food review. Mostly because I haven&#8217;t cared enough&#8230; until now. My wife and I recently had dinner at Baker &#038; Banker. This new-ish Pacific Heights restaurant occupies the former home of Quince. Quince [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.thetechchef.com/wp/wp-content/uploads/2010/07/dont_believe_the_hype.jpg"><img src="http://www.thetechchef.com/wp/wp-content/uploads/2010/07/dont_believe_the_hype-150x150.jpg" alt="" title="dont_believe_the_hype" width="150" height="150" class="alignleft size-thumbnail wp-image-593" /></a>  As Public Enemy so eloquently put it &#8212; don&#8217;t believe the hype! It has been quite a while since I posted a food review. Mostly because I haven&#8217;t cared enough&#8230; until now. </p>
<p>My wife and I recently had dinner at <a href="http://www.bakerandbanker.com/">Baker &#038; Banker</a>. This new-ish Pacific Heights restaurant occupies the former home of <a href="http://www.quincerestaurant.com/quince.html">Quince</a>. Quince vacated this tiny spot after proving their might with amazing food and classy service.</p>
<p>Baker and Banker, hoping to capture the same success, have fallen very short of the mark. We had a dinner reservation for 7:30pm on a Thursday night. We arrived on-time. Shockingly, our table wasn&#8217;t ready. Did I mention that this place is tiny? There&#8217;s no room to wait for a table without feeling like you&#8217;re hovering over the tables near the door. I felt bad for those seated but it was too damn cold to wait outside. Gotta love that SF winter, I mean summer. There were also six other guests waiting for tables.</p>
<p>Ten minutes later we were seated. We sat around for fifteen minutes before we were greeted with the menu. The waiter, I&#8217;ll call him waiter 1, explained the tasting menu in way too much detail and then proceeded to leave us sitting there for another twenty minutes. He hadn&#8217;t even taken a wine order from us. Luckily, we did get water and bread. The focaccia bread was delicious.</p>
<p>At the point I was about to lose it, a different waiter who I&#8217;ll call waiter 2, approached us and asked, &#8220;So how are you guys doing? Would you like to order some food?&#8221;. Seriously? It was the same style of delivery you&#8217;d get at your local Applebee&#8217;s from a miserable college student barely surviving on tips. How about some food and a bottle of wine? Anything! Waiter 2 literally came out of nowhere to help us. He was a bit scattered and seemed rattled when he took our order. It was as if he was from the other side of the restaurant and he just scooted over to help cover.</p>
<p>The decor of the restaurant was comfortable. It&#8217;s a very small space so it gets super loud. I had to ask my wife to repeat herself at least five times. At one point she just gave up. If you&#8217;re looking for a romantic dining experience, do not come here. It will get frustrating trying to keep a conversation going.</p>
<p>Now to the food. We ordered the appetizer special which was local grilled sardines with sea bean salad and radish. It sounded like it could be a real winner, but it was a total letdown. The fish were whole and cooked nicely, but there wasn&#8217;t a lot of flavor there. The sea bean salad was bland and tough. It was also very oily with little flavor. That dish was atrocious at $11.</p>
<p>We ordered two mains. The first was the Florida Gulf prawns a&#8217;la plancha, &#8220;paella&#8221; risotto, shellfish, chorizo bread crumbs ($27). The second Moroccan spiced Pozzi Farm lamb loin, couscous, charred eggplant and pine nut purée, tzatziki, natural jus ($30).</p>
<p>The main dishes came out in a reasonable timeframe, so we weren&#8217;t staring at our watches or anything. The one positive was that we did find a very nice bottle of Barbera; Cantine Valpane &#8220;Perlydia&#8221; Barbera, Piedmonte, Italy, 2003 ($40). It was very full-bodied with great spice notes and nice dark fruit. That and good conversation, when we could hear it, kept us occupied. </p>
<p>Once the main courses came out the experience just hit ludicrous speed.</p>
<p>The risotto was undercooked (too al dente) and had a weird citrus flavor to it. My wife took the first bite and I asked her how it was. She wanted so badly to like this place and she grinned and said, &#8220;good&#8221;. I knew she was lying through her teeth. This dish had whole shrimp in it with the heads and tentacles in-tact! Who does that anymore? I don&#8217;t want to see a dead shrimp on my plate! This isn&#8217;t 1980&#8242;s California cuisine. The body also had some leftover remnants of the exoskeleton or something. The only way I can explain it was as if the shrimp weren&#8217;t peeled properly. I had to pick this filmy crap out of my mouth and put it on my plate. The guests next to me must have loved seeing me dig my fingers into my mouth!</p>
<p>The lamb was disappointing at best. The meat was overcooked and underwhelming. There were some nice moroccan spices going on, but who cares? The outside of the couscous was garnished with cuts of baby carrots. It was as if a kid took their veggies and put the main dish in jail. It was just too fancy for its own good. There were three slices of lamb. I ate one and my wife ate one.</p>
<p>When we were finished, waiter 1 appeared again and asked if we&#8217;d like the lamb to-go. My wife said yes as she was going to eat it for lunch the next day. May as well salvage a $30 plate. So we sat around forever again. Probably twenty to twenty five minutes. Now who comes by to give us a dessert menu? You guessed it, waiter 2! He started to put down the dessert menu when I just asked for the check. At this point I wasn&#8217;t going to give them anymore money, even if their desserts are supposed to be to die for. They didn&#8217;t deserve it.</p>
<p>When waiter 2 came by to give us our check he asked, &#8220;was there a long time between clearing your plate and someone coming by for dessert?&#8221;. I said yes and also told him about the huge time gap between getting seated and taking our order. He apologized and said waiter 1 was new. When you&#8217;re paying $25-$30 an entree and getting sub-par food and awful service, it&#8217;s like a sucker punch in the stomach. The kicker is that waiter 1 didn&#8217;t even box up the lamb for us. He totally forgot! It was twenty minutes after he took our food before we realized he hadn&#8217;t boxed it up for us. I was going to go tell waiter 2 that waiter 1 failed again, but whatever. It wasn&#8217;t going to do a damn thing.</p>
<p>The best part of the night was getting 30% off the bill from an online coupon code that my wife had. The second best part was leaving.</p>
<p>There are so many amazing places to eat in San Francisco. This is not one of them. I would never recommend it and if you do go, I sure hope your experience is better than mine. I would have been a million times happier to have spent $10 at <a href="http://thelittlechihuahua.com/">The Little Chihuaha</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thetechchef.com/2010/07/26/baker-banker-dont-believe-the-hype/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Visualization API Tutorial With gviz_api Python Module</title>
		<link>http://www.thetechchef.com/2010/07/21/google-visualization-api-tutorial-with-gviz_api-python-module/</link>
		<comments>http://www.thetechchef.com/2010/07/21/google-visualization-api-tutorial-with-gviz_api-python-module/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 23:49:00 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Google Visualization]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Google Visualization Api]]></category>
		<category><![CDATA[Google Visualization Api Python]]></category>
		<category><![CDATA[gviz_api]]></category>

		<guid isPermaLink="false">http://www.thetechchef.com/?p=575</guid>
		<description><![CDATA[I finally got around to writing up how to use the Google Visualization API with Python. Check out my tutorial here.]]></description>
			<content:encoded><![CDATA[<p>I finally got around to writing up how to use the Google Visualization API with Python. <a href="http://www.thetechchef.com/google-visualization-api/">Check out my tutorial here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thetechchef.com/2010/07/21/google-visualization-api-tutorial-with-gviz_api-python-module/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Re-Ordering Cacti Graphs For Devices</title>
		<link>http://www.thetechchef.com/2010/06/02/re-ordering-cacti-graphs-for-devices/</link>
		<comments>http://www.thetechchef.com/2010/06/02/re-ordering-cacti-graphs-for-devices/#comments</comments>
		<pubDate>Wed, 02 Jun 2010 16:31:25 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Cacti]]></category>
		<category><![CDATA[cacti graph order]]></category>

		<guid isPermaLink="false">http://www.thetechchef.com/?p=467</guid>
		<description><![CDATA[I recently ran into an issue where I needed to re-order the graphs for my devices in Cacti. Although I couldn&#8217;t specifically find documentation on how graph order is determined, I noticed that it was alphabetical and derived from the graph template names. To re-order, simply name your graph templates in the order you wish [...]]]></description>
			<content:encoded><![CDATA[<p>I recently ran into an issue where I needed to re-order the graphs for my devices in Cacti. Although I couldn&#8217;t specifically find documentation on how graph order is determined, I noticed that it was alphabetical and derived from the graph template names.</p>
<p>To re-order, simply name your graph templates in the order you wish them to appear with a two digit prefix. Here&#8217;s a screenshot of how I did this for routers, switches and servers.</p>
<p><a href="http://www.thetechchef.com/wp/wp-content/uploads/2010/06/cacti_graph_reorder.jpg"><img src="http://www.thetechchef.com/wp/wp-content/uploads/2010/06/cacti_graph_reorder-300x192.jpg" alt="" title="cacti_graph_reorder" width="300" height="192" class="aligncenter size-medium wp-image-469" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.thetechchef.com/2010/06/02/re-ordering-cacti-graphs-for-devices/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recursive Perforce Command Aliases</title>
		<link>http://www.thetechchef.com/2010/04/23/recursive-perforce-command-aliases/</link>
		<comments>http://www.thetechchef.com/2010/04/23/recursive-perforce-command-aliases/#comments</comments>
		<pubDate>Fri, 23 Apr 2010 18:46:09 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Unix]]></category>
		<category><![CDATA[Perforce]]></category>
		<category><![CDATA[Recursive Perforce Commands]]></category>

		<guid isPermaLink="false">http://www.thetechchef.com/?p=455</guid>
		<description><![CDATA[If any of you use Perforce at work, you might find these aliases useful to add in your .bashrc or .profile. There are times when I need to recursively make changes to files in my workspace. alias p4_recursive_add='find `pwd` -type f -print &#124; p4 -x - add' alias p4_recursive_del='find `pwd` -type f -print &#124; p4 [...]]]></description>
			<content:encoded><![CDATA[<p>If any of you use Perforce at work, you might find these aliases useful to add in your .bashrc or .profile. There are times when I need to recursively make changes to files in my workspace.</p>
<p><code><br />
alias p4_recursive_add='find `pwd` -type f -print | p4 -x - add'<br />
alias p4_recursive_del='find `pwd` -type f -print | p4 -x - delete'<br />
alias p4_recursive_edit='find `pwd` -type f -print | p4 -x - edit'<br />
alias p4_recursive_revert='find `pwd` -type f -print | p4 -x - revert'<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.thetechchef.com/2010/04/23/recursive-perforce-command-aliases/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Email Event Acknowledgment &#8211; Zenoss Tip Of The Month</title>
		<link>http://www.thetechchef.com/2009/12/01/email-event-acknowledgment-zenoss-tip-of-the-month/</link>
		<comments>http://www.thetechchef.com/2009/12/01/email-event-acknowledgment-zenoss-tip-of-the-month/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 20:05:56 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Zenoss]]></category>

		<guid isPermaLink="false">http://www.thetechchef.com/?p=402</guid>
		<description><![CDATA[Zenoss has recognized my write-up on email based event acknowledgment as their November 2009 Tip of the Month! Many thanks to Zenoss&#8217; Community Manager, Matt Ray, for the tip of the hat! Also, big thanks to Zenoss community member Rodrique Heron. He put in a lot of effort to test it out and give feedback [...]]]></description>
			<content:encoded><![CDATA[<p>Zenoss has recognized my write-up on <a href="http://www.thetechchef.com/zenoss-email-event-acknowledgement/">email based event acknowledgment</a> as their <a href="http://community.zenoss.org/blogs/zenossblog/2009/11/24/tip-of-the-month-email-event-acknowledgment">November 2009 Tip of the Month!</a> Many thanks to Zenoss&#8217; Community Manager, Matt Ray, for the tip of the hat! Also, big thanks to Zenoss community member Rodrique Heron. He put in a lot of effort to test it out and give feedback for enhancements and bug fixes.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thetechchef.com/2009/12/01/email-event-acknowledgment-zenoss-tip-of-the-month/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python Matplotlib plot_date Wrapper Script</title>
		<link>http://www.thetechchef.com/2009/11/20/python-matplotlib-plot_date-wrapper-script/</link>
		<comments>http://www.thetechchef.com/2009/11/20/python-matplotlib-plot_date-wrapper-script/#comments</comments>
		<pubDate>Sat, 21 Nov 2009 00:49:31 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.thetechchef.com/?p=396</guid>
		<description><![CDATA[I&#8217;ve been doing a lot of work lately with data mining and presentation. Specifically, I&#8217;ve been parsing Nagios log files to gather outage statistics and do trending on the data. I came across the amazing Matplotlib in my search for Python graphing modules. I&#8217;m sure anyone who does coding and graphing in the scientific community [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been doing a lot of work lately with data mining and presentation. Specifically, I&#8217;ve been parsing Nagios log files to gather outage statistics and do trending on the data. I came across the amazing <a title="Matplotlib" href="http://matplotlib.sourceforge.net/" target="_blank">Matplotlib</a> in my search for Python graphing modules. I&#8217;m sure anyone who does coding and graphing in the scientific community has used this tool. I wrote a pretty useful wrapper to graph date plots and I thought I&#8217;d share it.</p>
<p><a href="http://www.thetechchef.com/python-matplotlib-plot_date-wrapper">Check it out</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.thetechchef.com/2009/11/20/python-matplotlib-plot_date-wrapper-script/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zenoss Email Based Event Acknowledgment Updated</title>
		<link>http://www.thetechchef.com/2009/10/31/zenoss-email-based-event-acknowledgment-updated/</link>
		<comments>http://www.thetechchef.com/2009/10/31/zenoss-email-based-event-acknowledgment-updated/#comments</comments>
		<pubDate>Sat, 31 Oct 2009 15:38:40 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Zenoss]]></category>

		<guid isPermaLink="false">http://www.thetechchef.com/?p=340</guid>
		<description><![CDATA[Quick update&#8230; I developed this script on an earlier version of Zenoss Core. I&#8217;ve made some small tweaks so it&#8217;s compatible with the latest release of Zenoss Core (tested on 2.4.5 &#38; 2.5.0). I&#8217;ve also removed a section that had a Zenoss patch that is no longer necessary. Thanks to some feedback from Rodrique Heron, [...]]]></description>
			<content:encoded><![CDATA[<p>Quick update&#8230; I developed this script on an earlier version of Zenoss Core. I&#8217;ve made some small tweaks so it&#8217;s compatible with the latest release of Zenoss Core (tested on 2.4.5 &amp; 2.5.0). I&#8217;ve also removed a section that had a Zenoss patch that is no longer necessary.</p>
<p>Thanks to some feedback from Rodrique Heron, I&#8217;ve also updated this to handle base64 encoded and multipart emails properly. He was trying to use this from a Blackberry device, but it wasn&#8217;t working properly due to the base64 Content-Transfer-Encoding. It was also failing on multipart email messages from his outlook client.</p>
<p><a href="http://www.thetechchef.com/zenoss-email-event-acknowledgement/">Give it a spin!</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.thetechchef.com/2009/10/31/zenoss-email-based-event-acknowledgment-updated/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building RRDTool on Centos/Redhat x86_64 Systems</title>
		<link>http://www.thetechchef.com/2009/10/22/building-rrdtool-on-centosredhat-x86_64-systems/</link>
		<comments>http://www.thetechchef.com/2009/10/22/building-rrdtool-on-centosredhat-x86_64-systems/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 20:14:35 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Unix]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[pango]]></category>
		<category><![CDATA[pangocairo]]></category>
		<category><![CDATA[redhat]]></category>
		<category><![CDATA[rrdtool]]></category>

		<guid isPermaLink="false">http://www.thetechchef.com/?p=299</guid>
		<description><![CDATA[I just ran into this one and thought someone else might find it useful. I was trying to compile rrdtool under Centos5 x86_64 so that I could have access to the perl libraries. It seems like rrdtool can get confused when looking for dependencies. First, install the dependencies via yum: # yum install cairo-devel libxml2-devel [...]]]></description>
			<content:encoded><![CDATA[<p>I just ran into this one and thought someone else might find it useful. I was trying to compile rrdtool under Centos5 x86_64 so that I could have access to the perl libraries. It seems like rrdtool can get confused when looking for dependencies. First, install the dependencies via yum:</p>
<p><code># yum install cairo-devel libxml2-devel pango-devel pango libpng-devel freetype freetype-devel libart_lgpl-devel</code></p>
<p>Then set the PKG_CONFIG_PATH environment variable to point to the 64-bit pkgconfig directory:</p>
<p><code>export PKG_CONFIG_DIR=/usr/lib64/pkgconfig</code></p>
<p>Run configure with the &#8211;libdir flag:</p>
<p><code>./configure --libdir=/usr/lib64</code></p>
<p>You should now be able to cleanly compile the 64-bit version of rrdtool.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thetechchef.com/2009/10/22/building-rrdtool-on-centosredhat-x86_64-systems/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Grails and the CMDB Project</title>
		<link>http://www.thetechchef.com/2009/10/20/grails-and-the-cmdb-project/</link>
		<comments>http://www.thetechchef.com/2009/10/20/grails-and-the-cmdb-project/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 23:19:01 +0000</pubDate>
		<dc:creator>Scott</dc:creator>
				<category><![CDATA[Grails]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[cmdb]]></category>
		<category><![CDATA[orm]]></category>
		<category><![CDATA[prototype]]></category>
		<category><![CDATA[scriptaculous]]></category>

		<guid isPermaLink="false">http://www.thetechchef.com/?p=290</guid>
		<description><![CDATA[Recently I&#8217;ve been developing a CMDB (Configuration Management Database) to help drive automation and provisioning of systems. I first started by designing a database to model our Datacenter and all the assets that we need to manage within it. I did this by hand, using MySQL and then built a CGI front-end to it using [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I&#8217;ve been developing a CMDB (Configuration Management Database) to help drive automation and provisioning of systems. I first started by designing a database to model our Datacenter and all the assets that we need to manage within it. I did this by hand, using MySQL and then built a CGI front-end to it using Python. As I got deeper and needed to make changes, I started to see how much of a pain this was going to be to maintain and develop.</p>
<p>Luckily I was pointed in the direction of a Java Web Application framework called <a title="Grails" href="http://grails.org/" target="_blank">Grails</a>. If you haven&#8217;t heard of it or used it, I highly suggest checking it out. I&#8217;m not a Java guy, but it only took me two weeks to really come up to speed with Grails. My favorite parts of grails are the ORM (Object Relational Mapper) that abstracts the database interaction from SQL into objects and methods. I&#8217;ve also enjoyed messing with the AJAX functionality (prototype and scriptaculous).</p>
<p>Within three weeks, I&#8217;ve developed a management tool that is gaining functionality every week. It&#8217;s not to the point where I&#8217;d release it unto the world, but hopefully I can get it there sooner than later. I&#8217;ll be posting some how-to&#8217;s on some issues I faced with AJAX and creating my UI.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thetechchef.com/2009/10/20/grails-and-the-cmdb-project/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
