<?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>The Nuclear Bunny Blog &#187; work</title>
	<atom:link href="http://blog.nuclearbunny.org/tag/work/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.nuclearbunny.org</link>
	<description></description>
	<lastBuildDate>Tue, 27 Dec 2011 01:19:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>My Zenoss Development Environment &#8211; Part 3</title>
		<link>http://blog.nuclearbunny.org/2009/10/22/my-zenoss-development-environment-part-3/</link>
		<comments>http://blog.nuclearbunny.org/2009/10/22/my-zenoss-development-environment-part-3/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 22:01:01 +0000</pubDate>
		<dc:creator>chadwick</dc:creator>
				<category><![CDATA[Jobs]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Zenoss]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://blog.nuclearbunny.org/?p=545</guid>
		<description><![CDATA[In Part 1 of this series we discussed getting an initial Zenoss environment checked out and running on a Mac OS X or Ubuntu system. In Part 2 we discussed how to configure Eclipse to use the Zenoss source. In this part, we&#8217;ll discuss how to handle day-to-day operations such as branch management and working [...]]]></description>
			<content:encoded><![CDATA[<p>In <a href="../2009/10/22/my-zenoss-development-environment-part-1/" target="_blank">Part 1</a> of this series we discussed getting an initial <a href="http://www.zenoss.com/" target="_blank">Zenoss</a> environment checked out and running on a <a href="http://www.apple.com/macosx/" target="_blank">Mac OS X </a>or <a href="http://www.ubuntu.com/" target="_blank">Ubuntu</a> system. In <a href="http://blog.nuclearbunny.org/2009/10/22/my-zenoss-development-environment-part-2/" target="_self">Part 2</a> we discussed how to configure <a href="http://www.eclipse.org/" target="_blank">Eclipse</a> to use the Zenoss source. In this part, we&#8217;ll discuss how to handle day-to-day operations such as branch management and working with multiple versions.</p>
<h2>Branch-Based Development</h2>
<p>At Zenoss we do all development, including bug fixes and small maintenance tasks, in a private development branch within the subversion repository. This allows us to independently work-on changes, check-them into the repository for safe-keeping, and then perform code reviews with team members without having to share files or using <a href="http://pastebin.com/" target="_blank">pastebin</a> style tools (even though we do both at times).</p>
<ol>
<li>Create a branch within your user&#8217;s sandbox. In this example, I&#8217;ve decided to name the sandbox <code>new-widget</code> to identify what I&#8217;m working on. If I were fixing a defect, I&#8217;d use the defect number from the defect tracking system. Create the branch by copying the trunk folder to the sandbox branch. In Subversion this is a low-overhead operation and doesn&#8217;t actually copy files.<code><br />
svn copy http://dev.zenoss.org/svn/trunk http://dev.zenoss.org/svn/sandboxen/cgibbons/new-widget -m " * Copying trunk to sandbox branch."<br />
</code></li>
<li>Switch your working directory to use the new sandbox branch. You can do this either from the command-line or using Eclipse. From the command line, you&#8217;d do the following:<code><br />
cd $HOME/zenoss/core<br />
svn switch http://dev.zenoss.org/svn/sandboxen/cgibbons/new-widget<br />
</code>From within Eclipse, secondary-click on the <code>core</code> project and choose <em>Switch to Another Branch/Tag/Revision&#8230;</em> option from the Team menu. On the dialog that appears, enter in the sandbox URL. After switching, your Eclipse will show the new location next to the core project item.<br />
<a rel="attachment wp-att-549" href="http://blog.nuclearbunny.org/2009/10/22/my-zenoss-development-environment-part-3/picture-8/"><img class="aligncenter size-full wp-image-549" title="svn switch" src="http://blog.nuclearbunny.org/wp-content/uploads/2009/10/Picture-8.png" alt="svn switch" width="670" height="491" /></a></li>
</ol>
<p>Once your development environment has been switched, you can make changes and commit to the Subversion repository as desired. If you&#8217;re unsure if you are in the right branch, you can always use the <code>svn info</code> command to see which directory is being used.</p>
<h2>Merging Branches</h2>
<p>Once you have completed changes in a branch and have had them reviewed by a peer, it is time to merge them into trunk (or another branch, if using a maintenance release). Merging can be tricky, but a consistent process can make it much easier to handle.</p>
<ol>
<li>Change your working directory to a checked-out and clean version of the branch you want to merge into. For example, I keep a <code>$HOME/zenoss/clean-trunk</code> directory that I never make changes to, except for merging.</li>
<li>Determine the base working revision of your working branch. There are a variety of ways to do this, but one of the best is to view the revision log graph within the Trac system directly. For example, for the branch discussed above we can browse to <a href="http://dev.zenoss.org/trac/log/sandboxen/cgibbons/new-widget" target="_blank">http://dev.zenoss.org/trac/log/sandboxen/cgibbons/new-widget/</a> and see that revision <strong>15513</strong> is the base.</li>
<li>Perform a dry-run on the merge to get a general idea of what the changes into the branch will be. You should see your expected changes, plus any conflicts from changes to the other branch while you have been working in the sandbox branch.<code><br />
svn merge --dry-run --revision <strong>15513</strong>:HEAD <strong>http://dev.zenoss.org/svn/sandboxen/cgibbons/new-widget</strong> .<br />
</code></li>
<li>If the merge results look satisfactory, rerun the command without the dry-run argument.</li>
<li>Look at the final merge results using <code>svn status</code> and <code>svn diff</code>, and once you&#8217;re ready, issue an <code>svn commit</code>.</li>
</ol>
<h2>Multiple Branches and Zenoss Configuration</h2>
<p>As you switch between branches you will often render your Zenoss configuration useless.  Resetting your database after each branch switch is usually a good practice, and being able to quickly recreate any test data you may need makes this process less painful.</p>
<p>After switching a branch, my process is usually the following:</p>
<ol>
<li>Shutdown zenoss and restart only zeo.<code><br />
zenoss stop<br />
zeoctl start</code></li>
<li>Run the zenwipe script from the inst source directory.<code><br />
$HOME/zenoss/inst/zenwipe.sh --no-prompt</code></li>
<li>Run <code>zenmigrate</code> to install any database changes available within the current branch.</li>
</ol>
<p>Depending upon the task at hand, I may install additional ZenPacks and add new devices through the command-line if those are needed. Helper scripts, such as <code>install-windows.sh</code> to install of the Windows ZenPacks and create several local test devices in the instance, are useful tools to have for your typical configurations.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nuclearbunny.org/2009/10/22/my-zenoss-development-environment-part-3/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>My Zenoss Development Environment &#8211; Part 2</title>
		<link>http://blog.nuclearbunny.org/2009/10/22/my-zenoss-development-environment-part-2/</link>
		<comments>http://blog.nuclearbunny.org/2009/10/22/my-zenoss-development-environment-part-2/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 19:26:36 +0000</pubDate>
		<dc:creator>chadwick</dc:creator>
				<category><![CDATA[Jobs]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Zenoss]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://blog.nuclearbunny.org/?p=511</guid>
		<description><![CDATA[In Part 1 of this series we discussed getting an initial Zenoss environment checked out and running on a Mac OS X or Ubuntu system. In this part, we&#8217;ll discuss configuring Eclipse to use this environment. Mac OS X Prerequisites Install Eclipse Classic 3.5.x Mac Cocoa 32-bit. Ubuntu Prerequisites Install the Sun Java JDK. Why? [...]]]></description>
			<content:encoded><![CDATA[<p>In <a href="http://blog.nuclearbunny.org/2009/10/22/my-zenoss-development-environment-part-1/" target="_blank">Part 1</a> of this series we discussed getting an initial <a href="http://www.zenoss.com/" target="_blank">Zenoss</a> environment checked out and running on a <a href="http://www.apple.com/macosx/" target="_blank">Mac OS X </a>or <a href="http://www.ubuntu.com/" target="_blank">Ubuntu</a> system. In this part, we&#8217;ll discuss configuring <a href="http://www.eclipse.org/" target="_blank">Eclipse</a> to use this environment.</p>
<h2>Mac OS X Prerequisites</h2>
<ol>
<li>Install <a href="http://www.eclipse.org/downloads/" target="_blank">Eclipse Classic</a> 3.5.x Mac <a href="http://blog.zvikico.com/2009/06/eclipse-galileo-for-mac-cocoa-or-carbon.html" target="_blank">Cocoa 32-bit</a>.</li>
</ol>
<h2>Ubuntu Prerequisites</h2>
<ol>
<li>Install the Sun Java JDK. <strong>Why?</strong> Eclipse is a Java application and requires a full-fledged Java environment to run properly.<code><br />
sudo apt-get -y install sun-java6-jdk<br />
</code></li>
<li>Install <a href="http://www.eclipse.org/downloads/" target="_blank">Eclipse Classic</a> 3.5.x Linux 32-bit.</li>
</ol>
<h2>Eclipse Configuration</h2>
<ol>
<li>In part one, we created a Zenoss root project directory of <code>$HOME/zenoss</code> &#8211; use that directory, or the one you created, for the rest of these steps.</li>
<li>Launch Eclipse and configure it to use the Zenoss root project directory. <strong>Why?</strong> Eclipse needs a workspace directory to keep track of configuration settings for a group of related projects. By placing the workspace directory inside of the Zenoss root workspace, we can separate the requirements for a Zenoss workspace from other projects you may be using.<a rel="attachment wp-att-484" href="http://blog.nuclearbunny.org/2009/10/22/my-zenoss-development-environment-part-1/eclipse-workspace-2/"><img title="eclipse-workspace" src="http://blog.nuclearbunny.org/wp-content/uploads/2009/10/eclipse-workspace1.png" alt="eclipse-workspace" width="677" height="324" /></a></li>
<li>Install the <a href="http://pydev.org/" target="_blank">PyDev</a> plug-in for Eclipse. <strong>Why?</strong> PyDev provides Python language support to Eclipse.
<ol>
<li>Go to the Help Menu and choose<em> Install New Software</em>.</li>
<li>In the Available Software dialog, choose <em>Add</em> and enter in <code>http://pydev.org/updates/</code> as the Location and close the dialog. Eclipse will return to the Available Software dialog.<a rel="attachment wp-att-498" href="http://blog.nuclearbunny.org/2009/10/22/my-zenoss-development-environment-part-1/picture-5/"><img title="PyDev" src="http://blog.nuclearbunny.org/wp-content/uploads/2009/10/Picture-5.png" alt="PyDev" width="555" height="260" /></a></li>
<li>Software matching PyDev will appear in the dialog; pick the <em>PyDev</em> option but do not pick <em>PyDev Mylyn Integration</em>. Click <em>Next</em> and install the plug-in.</li>
</ol>
<p><a rel="attachment wp-att-500" href="http://blog.nuclearbunny.org/2009/10/22/my-zenoss-development-environment-part-1/picture-6-2/"><img title="PyDev" src="http://blog.nuclearbunny.org/wp-content/uploads/2009/10/Picture-61.png" alt="PyDev" width="725" height="643" /></a></li>
<li>Install the <a href="http://subclipse.tigris.org/" target="_blank">Subclipse</a> plug-in. <strong>Why?</strong> Subclipse allows you to work with the Subversion version control system directly from within Eclipse.
<ol>
<li>In the Available Software dialog add the Subclipse plug-in update site: <code>
<p>http://subclipse.tigris.org/update_1.6.x</p>
<p></code></li>
<li>In the Available Software dialog, choose the <em>Subclipse</em>, <em>Subversion Client Adapter</em>, <em>Subversion JavaHL Native Library Adapter</em> and the <em>Subversion Revision Graph </em>items.<a rel="attachment wp-att-553" href="http://blog.nuclearbunny.org/2009/10/22/my-zenoss-development-environment-part-2/picture-5-2/"><img class="aligncenter size-full wp-image-553" title="Subclipse" src="http://blog.nuclearbunny.org/wp-content/uploads/2009/10/Picture-51.png" alt="Subclipse" width="798" height="742" /></a></li>
</ol>
</li>
<li>Go to the Window menu, choose Open Perspective and then SVN Repository Exploring (you may have to choose Other&#8230; to see this option).</li>
<li>Choose the New Repository Location button in the SVN Repositories panel. Add the Zenoss SVN site at <code>http://dev.zenoss.org/svn</code></li>
<li>Open the SVN repository and select the <code>trunk</code> folder. Secondary-click the folder and choose the <em>Checkout&#8230; </em>option. Be sure to change the Depth option to be <em>Only this item</em> so that we don&#8217;t check out any of the sub-folders of trunk just yet (many of the folders within trunk are not needed for development, but we want to keep the directory structure). In the next dialog you will be asked to choose a Project Wizard. Open the Pydev tree item and select the <em>Pydev Project</em> option.<a rel="attachment wp-att-554" href="http://blog.nuclearbunny.org/2009/10/22/my-zenoss-development-environment-part-2/picture-6-3/"><img class="aligncenter size-full wp-image-554" title="svn checkout" src="http://blog.nuclearbunny.org/wp-content/uploads/2009/10/Picture-62.png" alt="svn checkout" width="605" height="556" /></a></li>
<li>Create the project in the Pydev Project dialog:
<ol>
<li>Use <code>core</code> as the project name and use the default location. This should create a core project at <code>$HOME/zenoss/core</code>.</li>
<li>Make sure the <em>Python</em> project type is selected.</li>
<li>Select<em> 2.4</em> as the Python Grammar version.</li>
<li>Uncheck the <em>Create default &#8216;src&#8217; folder..</em>. option.</li>
<li>Click the Click here to <em>configure an interpreter not listed&#8230;</em> option in order to add the python interpreter built by the Zenoss installation scripts.
<ol>
<li>In the Preferences Dialog, choose the Interpreter &#8211; Python item underneath Pydev and select the <em>New&#8230;</em> button to add a new Python interpreter.</li>
<li>Browse to the <code>$ZENHOME/bin</code> directory and choose the <code>python2.4</code> executable from that directory.</li>
<li>Name the interpreter <code>python-2.4</code>, <code>zenoss-python</code> or some other variant.</li>
<p><a rel="attachment wp-att-529" href="http://blog.nuclearbunny.org/2009/10/22/my-zenoss-development-environment-part-2/picture-13/"><img class="aligncenter size-full wp-image-529" title="Picture 13" src="http://blog.nuclearbunny.org/wp-content/uploads/2009/10/Picture-13.png" alt="Picture 13" width="632" height="303" /></a>After the new Python interpreter has been added, return to the Pydev Project dialog and choose that interpreter from the list and then click <em>Finish</em> to create the project.</ol>
</li>
<li>Update the <code>core</code> folder from the command-line SVN client so you can selectively pull the sub-folders of the core project and not all of them:<code><br />
cd $HOME/zenoss/core<br />
svn update Products<br />
</code></li>
<li>Move the Products directory the installation checked out and create a symbolic link to the one updated above. <strong>Why?</strong> This allows the Products source tree to be worked on from Eclipse and then also used by the Zenoss run-time.<code><br />
cd $ZENHOME<br />
mv Products Products.old<br />
ln -s $HOME/zenoss/core/Products Products</code></li>
<li>Return to Eclipse and choose the <em>Refresh</em> option from the File menu so that Eclipse notices the updated directory and builds necessary dependencies.</li>
<li>Secondary-click on the core project folder in Eclipse and choose <em>Properties</em>. Choose the <em>PyDev &#8211; PYTHONPATH</em> item and add source folders so PyDev can reference the project from within itself.
<ol>
<li>In the Source Folders tab choose the <em>Add source folder</em> button and pick the root <code>core</code> folder from the provided list.<a rel="attachment wp-att-532" href="http://blog.nuclearbunny.org/2009/10/22/my-zenoss-development-environment-part-2/picture-2/"><img class="aligncenter size-full wp-image-532" title="Picture 2" src="http://blog.nuclearbunny.org/wp-content/uploads/2009/10/Picture-2.png" alt="Picture 2" width="860" height="617" /></a></li>
<li>In the External Libraries tab choose the <em>Add source folder</em> button and choose the <code>$ZENHOME/lib/python</code> directory.<a rel="attachment wp-att-533" href="http://blog.nuclearbunny.org/2009/10/22/my-zenoss-development-environment-part-2/picture-3/"><img class="aligncenter size-full wp-image-533" title="Picture 3" src="http://blog.nuclearbunny.org/wp-content/uploads/2009/10/Picture-3.png" alt="Picture 3" width="860" height="617" /></a></li>
</ol>
</li>
</ol>
<p>At this point, your Eclipse project should allow you to navigate between dependencies within the Zenoss project. You can also simultaneously switch between using the Team feature within Eclipse to update and manage Subversion or do so using the command-line svn client.</p>
<h2>Next&#8230;</h2>
<p>In <a href="http://blog.nuclearbunny.org/2009/10/22/my-zenoss-development-environment-part-3/" target="_blank">Part 3</a> of this series, we&#8217;ll discuss how to manage day-to-day activities such as creating sandbox branches for changes and dealing with multiple versions are done from within the same environment.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blog.nuclearbunny.org/2009/10/22/my-zenoss-development-environment-part-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>My Zenoss Development Environment &#8211; Part 1</title>
		<link>http://blog.nuclearbunny.org/2009/10/22/my-zenoss-development-environment-part-1/</link>
		<comments>http://blog.nuclearbunny.org/2009/10/22/my-zenoss-development-environment-part-1/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 17:05:46 +0000</pubDate>
		<dc:creator>chadwick</dc:creator>
				<category><![CDATA[Jobs]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Zenoss]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://blog.nuclearbunny.org/?p=469</guid>
		<description><![CDATA[Over the past 18 months the developers at Zenoss have used a variety of development environments and methods to productively work with Zenoss, but there are a lot of best practices that have emerged out of this diversity. I develop Zenoss primarily on Mac OS X, with some work done on Ubuntu when necessary. I [...]]]></description>
			<content:encoded><![CDATA[<p>Over the past 18 months the developers at <a href="http://www.zenoss.com/" target="_blank">Zenoss</a> have used a variety of development environments and methods to productively work with Zenoss, but there are a lot of best practices that have emerged out of this diversity.</p>
<p>I develop Zenoss primarily on <a href="http://www.apple.com/macosx/" target="_blank">Mac OS X</a>, with some work done on <a href="http://www.ubuntu.com/" target="_blank">Ubuntu</a> when necessary. I normally use <a href="http://www.eclipse.org/" target="_blank">Eclipse</a> as my development editor, although I&#8217;ll often just use <a href="http://www.vim.org/" target="_blank">vim</a> when doing quick changes or bug fixes. In either case, careful setup of the Zenoss environment is key to being able to productively work with both the new development version and with the shipping versions that require maintenance.</p>
<p>The environment you get by default when you check out the source version of Zenoss from the source repository, or from a source tarball, is not necessarily setup in the best way to develop productively using tools like Eclipse.</p>
<p>The rest of this post will document how both my Mac OS X and Ubuntu environments are initially configured so that a working source Zenoss installation is realized.</p>
<h2>Mac OS X Prerequisites</h2>
<p>These prerequisite instructions assume Mac OS X 10.5 Leopard; 10.6 Snow Leopard will not be able to compile Zenoss&#8217;s third-party dependencies, so an additional work-around is required for that platform until Zenoss moves to <a href="http://www.python.org/download/releases/2.6/" target="_blank">Python 2.6</a>.</p>
<ol>
<li>Install <a href="http://developer.apple.com/technology/xcode.html" target="_blank">Xcode</a>. <strong>Why?</strong> Installs the GNU C/C++ compiler and other command-line development tools needed to build dependencies used by Zenoss.</li>
<li>Install <a href="http://www.open.collab.net/downloads/community/" target="_blank">Universal Subversion 1.6.x from CollabNet Community</a>.<strong>Why?</strong> Leopard only comes with Subversion 1.4.x. This version is not compatible with the Subclipse plug-in for Eclipse that will be used later. In order to be able to use both the command-line and Eclipse Subversion versions simultaneously on the same checked our source, the release of subversion should match. This installation will place the Subversion binaries in <code>/opt/subversion</code> and should automatically add it to your <code>PATH</code>.</li>
<li> Install <a href="http://dev.mysql.com/downloads/" target="_blank">MySQL Community Edition 5.1 32-bit</a>. <strong>Why?</strong> Zenoss needs MySQL for storage of event data.</li>
</ol>
<h2>Ubuntu Prerequisites</h2>
<p>These prerequisite instructions assume Ubuntu 9.04 32-bit Desktop Edition. Installing the server edition or one with different options may require additional prerequisites to be installed.</p>
<ol>
<li>Install Subversion. <strong>Why?</strong> Working with the Zenoss product in source form requires Subversion to access the source repositories (it is also possible to build directly from a source tarball, but this is not discussed here).<br />
<code>sudo apt-get -y install subversion<br />
</code></li>
<li>Install MySQL. <strong>Why?</strong> Zenoss needs MySQL for storage of event data.<br />
<code>sudo apt-get -y install mysql-client mysql-server libmysqlclient15-dev<br />
</code></li>
<li>Install additional development environment tools. <strong>Why?</strong> Zenoss third-party dependencies require several binaries to be built from source.<br />
<code>sudo apt-get -y install patch make vim gcc g++ autoconf</code></li>
<li>Install SNMP support. <strong>Why</strong>? Zenoss requires SNMP libraries for monitoring, and having a local SNMP agent is useful for testing.<code><br />
sudo apt-get -y install libsnmp-base snmp snmpd</code></li>
<li>Install Liberation TrueType fonts. <strong>Why?</strong> Graphs generated by RRDtool will not contain the correct glyphs without this font package.<code><br />
sudo apt-get -y install ttf-liberation</code></li>
</ol>
<h2>Environment Configuration</h2>
<p>Configuring Eclipse will require determining where you want to work with your Zenoss installation, and installing Eclipse plug-ins to provide the features required for Python and Subversion support.</p>
<ol>
<li>Create your Zenoss root directory:<code><br />
mkdir $HOME/zenoss<br />
</code></li>
<li>Create and run a <code>setup.sh</code> script that will configure needed environment variables for zenoss. This script can be started from your log in profile if desired.<code><br />
cd $HOME/zenoss<br />
cat &gt; zenoss-config.sh &lt;&lt;EOF<br />
ZENHOME=$HOME/zenoss/zenhome<br />
PYTHONPATH=$ZENHOME/lib/python<br />
PATH=\$ZENHOME/bin:\$PATH<br />
export ZENHOME PYTHONPATH PATH<br />
EOF<br />
chmod +x zenoss-config.sh<br />
. zenoss-config.sh<br />
mkdir $ZENHOME<br />
</code></li>
<li>Checkout the Zenoss source installation tree. <strong>Why?</strong> This tree is used to bootstrap the installation from the source repository and create a running Zenoss installation. We&#8217;ll need this before we modify it to fit the needs of our development environment.<code><br />
svn co http://dev.zenoss.org/svn/trunk/inst inst<br />
</code></li>
<li>Run the installation script to checkout, compile, and configure a zenoss environment. If you need to customize your MySQL configuration at all do not use the <code>--no-prompt</code> argument.<code><br />
cd inst<br />
./install.sh --no-prompt<br />
</code></li>
<li>Modify the <code>zensocket</code> file to be setuid root. <strong>Why?</strong> Some of the Zenoss daemons use a privileged port and making the file owned by root and accessible by the Zenoss user allows the daemons to be run as a non-priviledged user but still use the privileged port.<code><br />
sudo chown root:`id -g` $ZENHOME/bin/zensocket<br />
sudo chmod 04750 $ZENHOME/bin/zensocket<br />
</code></li>
</ol>
<p>At this point, you should have running zeo and zope processes and be able to log on to the local Zenoss instance. Your Zenoss root directory should look similar to the following:<br />
<a rel="attachment wp-att-491" href="http://blog.nuclearbunny.org/2009/10/22/my-zenoss-development-environment-part-1/picture-4/"><img class="aligncenter size-full wp-image-491" title="zenoss workspace" src="http://blog.nuclearbunny.org/wp-content/uploads/2009/10/Picture-4.png" alt="zenoss workspace" width="492" height="393" /></a></p>
<h2>Next&#8230;</h2>
<p>In <a title="Part 2" href="http://blog.nuclearbunny.org/2009/10/22/my-zenoss-development-environment-part-2/" target="_self">Part 2</a> of this series, we&#8217;ll download and configure the Eclipse IDE.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nuclearbunny.org/2009/10/22/my-zenoss-development-environment-part-1/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>My Zenoss Home Office</title>
		<link>http://blog.nuclearbunny.org/2008/04/22/my-zenoss-home-office/</link>
		<comments>http://blog.nuclearbunny.org/2008/04/22/my-zenoss-home-office/#comments</comments>
		<pubDate>Tue, 22 Apr 2008 19:11:29 +0000</pubDate>
		<dc:creator>chadwick</dc:creator>
				<category><![CDATA[Jobs]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[desks]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://blog.nuclearbunny.org/?p=10</guid>
		<description><![CDATA[My work environment at Zenoss involves working out of my home part of the time, and then spending a week or so a month at our Austin office. I had originally planned on using my Mac Pro and large monitor as my workstation and then just using the Mac OS X built-in Screen Saver tool [...]]]></description>
			<content:encoded><![CDATA[<p>My work environment at <a href="http://www.zenoss.com/">Zenoss</a> involves working out of my home part of the time, and then spending a week or so a month at our Austin office.</p>
<p>I had originally planned on using my Mac Pro and large monitor as my workstation and then just using the <a href="http://www.apple.com/macosx/">Mac OS X</a> built-in Screen Saver tool to connect to my laptop as needed. After a few days I realized this wasn&#8217;t going to work that well, so I set about getting an actual workspace just for Zenoss activities.<img class="alignright" style="float: right;" src="http://blog.nuclearbunny.org/wp-content/uploads/2008/04/IMG_0423.png" alt="My Zenoss Workspace" width="320" height="240" /></p>
<p>Luckily I had an extra small computer cart from <a href="http://www.anthro.com/">Anthro</a> that I could use. I wound up using a spare <a href="http://www.dell.com/">Dell</a> monitor and some newly purchased wireless input devices and then I was in business.</p>
<p> </p>
<p>So far, this is working out well. It is making it easier to not be distracted by non-work computer stuff as well, since I don&#8217;t have everything personal on my work laptop.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nuclearbunny.org/2008/04/22/my-zenoss-home-office/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Transitions&#8230;</title>
		<link>http://blog.nuclearbunny.org/2008/04/01/transitions/</link>
		<comments>http://blog.nuclearbunny.org/2008/04/01/transitions/#comments</comments>
		<pubDate>Tue, 01 Apr 2008 18:15:59 +0000</pubDate>
		<dc:creator>chadwick</dc:creator>
				<category><![CDATA[Jobs]]></category>
		<category><![CDATA[school]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://blog.nuclearbunny.org/?p=8</guid>
		<description><![CDATA[The last week of March brought about some major changes in my life. They were planned transitions, although the exact timing just happened to work out to be the same week. On March 24th I finished my undergraduate degree. I had been working on it for four years non-stop, plus a couple of semesters earlier [...]]]></description>
			<content:encoded><![CDATA[<p>The last week of March brought about some major changes in my life. They were planned transitions, although the exact timing just happened to work out to be the same week.</p>
<p>On March 24th I finished my undergraduate degree. I had been working on it for four years non-stop, plus a couple of semesters earlier in life. Finishing was tremendously satisfying, of course, but more importantly it finally lets me have some free-time back. I have only had two weeks off a year for the past four and the lack of relaxation was starting to get to me. Thank goodness for my wife&#8217;s support and cycling or otherwise I would have gone insane.</p>
<p>The prime motivator for the undergraduate degree was a pathway to graduate school. That&#8217;s still in the cards, but not surprisingly I&#8217;d like to take a year or so off from school before returning. Luckily I&#8217;m willing to take more time with the graduate program than I was with the undergraduate so hopefully it won&#8217;t completely overwhelm my life when it is time.</p>
<p>The other major transition in the last week of March was leaving my job at <a href="http://www.bmc.com/">BMC Software</a> after being there for nearly 10 years. The product I had worked on for the previous 4 years had reached a maturity point to where the company decided to move most of the research and development offshore to India. My architect job remained in the US, but I decided to leave at the end of March when given the choice. I had expected to leave the company in 2008 anyway so the timing worked out well.</p>
<p>Finding my next job was quite an undertaking. Being at a career pinnacle I had a lot of choices and possibilities and I decided to explore as many as I could. In the end, I decided to pick between several job offers that gave me the most difference and challenge from what I had been working on before. Both <a href="http://www.microsoft.com/">Microsoft</a> and <a href="http://www.zenoss.com/">Zenoss</a> were about as different as I could get and still be working in the software industry. Both would require letting go of skills I had mastered in the previous parts of my career; both were tremendously different organizational from most places I had worked at before.</p>
<p>In the end, I chose <a href="http://www.zenoss.com/">Zenoss</a>. A for-profit company using an open-source business model and Python technology sounded like a very appealing challenge. Not only that, but 4 other former co-workers that I highly respect were there, and working with them again made the choice even easier.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nuclearbunny.org/2008/04/01/transitions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

