<?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>Ideas.... &#187; Work</title>
	<atom:link href="http://rosalynmetz.com/ideas/category/work/feed/" rel="self" type="application/rss+xml" />
	<link>http://rosalynmetz.com/ideas</link>
	<description>a blog for me to record thoughts and ideas</description>
	<lastBuildDate>Thu, 14 Apr 2011 17:56:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="http://superfeedr.com/hubbub"/>		<item>
		<title>Resizing an EBS Backed AMI</title>
		<link>http://rosalynmetz.com/ideas/2011/04/14/resizing-an-ebs-backed-ami/</link>
		<comments>http://rosalynmetz.com/ideas/2011/04/14/resizing-an-ebs-backed-ami/#comments</comments>
		<pubDate>Thu, 14 Apr 2011 12:51:23 +0000</pubDate>
		<dc:creator>Rosalyn Metz</dc:creator>
				<category><![CDATA[Work]]></category>
		<category><![CDATA[Amazon Web Services]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[ebs]]></category>
		<category><![CDATA[ec2]]></category>

		<guid isPermaLink="false">http://rosalynmetz.com/ideas/?p=950</guid>
		<description><![CDATA[So in my previous post I talked about all this work to make an EBS backed AMI.  At the end though I realized that I didn&#8217;t size the server right.  Doh!  This was fairly stupid of me.  So I followed &#8230; <a href="http://rosalynmetz.com/ideas/2011/04/14/resizing-an-ebs-backed-ami/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So in my previous post I talked about all this work to make an EBS backed AMI.  At the end though I realized that I didn&#8217;t size the server right.  Doh!  This was fairly stupid of me.  So I followed the same set of steps because all the instructions I found on resizing an existing image didn&#8217;t seem to work.  And then I tried something, you know, for $#!*$ and giggles.  Imagined how annoyed I was when it worked.</p>
<p>So here is the command for registering an EBS backed image based on a particular snapshot:</p>
<pre>ec2-register --block-device-mapping /dev/sda1=s&lt;snapshot id&gt;::false
--name "&lt;ami name&gt;" --kernel &lt;kernel id&gt; --ramdisk &lt;ramdisk id&gt;
-K &lt;key file&gt; -C &lt;cert file&gt;</pre>
<p>(<strong>Note</strong>: If you want the <em>volume</em> to persist after termination then you&#8217;ll want to change the true in the &#8211;block-device-mapping flag to false)</p>
<p>So the key is in the &#8211;block-device-mapping flag.  The documentation for Amazon states:</p>
<div id="attachment_951" class="wp-caption aligncenter" style="width: 1022px"><a href="http://rosalynmetz.com/ideas/wp-content/uploads/2011/04/Screen-shot-2011-04-14-at-8.45.47-AM.png"><img class="size-full wp-image-951 " title="Block Device Mapping Documentation" src="http://rosalynmetz.com/ideas/wp-content/uploads/2011/04/Screen-shot-2011-04-14-at-8.45.47-AM.png" alt="Block Device Mapping Documentation" width="1012" height="394" /></a><p class="wp-caption-text">Block Device Mapping Documentation</p></div>
<p>So it says somewhere in there that you can specify the size of the AMI in that particular flag, so if I want to increase the size of the instance all I would need to do is change the flag to read:</p>
<pre>--block-device-mapping /dev/sda1=s&lt;snapshot id&gt;:50:true</pre>
<p>or whatever size you want.  Afterwards you&#8217;ll need to log on to the server and resize the drive.  You can do this by running the following (assuming you&#8217;re using an ext3 root file system, which is what I used in my previous post):</p>
<pre>sudo resize2fs /dev/sda1
</pre>
<p>it&#8217;ll resize the drive and you should be good to go.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Frosalynmetz.com%2Fideas%2F2011%2F04%2F14%2Fresizing-an-ebs-backed-ami%2F&amp;title=Resizing%20an%20EBS%20Backed%20AMI" id="wpa2a_2">Share/Save</a></p>]]></content:encoded>
			<wfw:commentRss>http://rosalynmetz.com/ideas/2011/04/14/resizing-an-ebs-backed-ami/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating an EBS Backed AMI</title>
		<link>http://rosalynmetz.com/ideas/2011/04/14/creating-an-ebs-backed-ami/</link>
		<comments>http://rosalynmetz.com/ideas/2011/04/14/creating-an-ebs-backed-ami/#comments</comments>
		<pubDate>Thu, 14 Apr 2011 12:39:50 +0000</pubDate>
		<dc:creator>Rosalyn Metz</dc:creator>
				<category><![CDATA[Work]]></category>
		<category><![CDATA[Amazon Web Services]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[ebs]]></category>
		<category><![CDATA[ec2]]></category>

		<guid isPermaLink="false">http://rosalynmetz.com/ideas/?p=943</guid>
		<description><![CDATA[There are tons of instructions out there on how to create an EBS backed images.  Most of them don&#8217;t work for me because they are either out dated or the person&#8217;s instructions for copying the file structure doesn&#8217;t work.  I &#8230; <a href="http://rosalynmetz.com/ideas/2011/04/14/creating-an-ebs-backed-ami/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>There are tons of instructions out there on how to create an EBS backed images.  Most of them don&#8217;t work for me because they are either out dated or the person&#8217;s instructions for copying the file structure doesn&#8217;t work.  I finally found instructions though that do work.</p>
<p>So here is how I did it:</p>
<p>1) Start Up an Instance</p>
<p>The first thing I do is start up an instance.  Everyone has instructions on how to do this from the command line.  But I&#8217;m lazy and find that Amazon&#8217;s API tools change regularly which is annoying and makes it difficult to follow the instructions other people have written.  I recommend doing it in the AWS Console.</p>
<p>Go to EC2 in the AWS Console.  Choose AMI and find an image that you like (I tend to lean toward Alestic&#8217;s Ubuntu images, but that&#8217;s just me).  Once I found an AMI I like I highlight it and then choose &#8220;Launch Instance&#8221;.  I follow the instructions, making sure that I choose the correct security group (aka firewall) and the correct key pair (you access ec2 servers using a key pair rather than a password).</p>
<p>Once the server is up and running, I update everything, configure it, transfer data onto it, blah blah blah.  The usual things that you do when you are prepping a server.  Once I&#8217;m all set I&#8217;m ready to make it an EBS backed AMI.</p>
<p>2) Create a New EBS Volume</p>
<p>The next thing I do is create an EBS Volume, again doing it in the AWS Console.  Go to the EC2 section of the AWS Console.  Choose &#8220;Volumes&#8221; and then &#8220;Create Volume&#8221;.  You&#8217;ll want to make sure of two things:</p>
<p>First that the volume is large enough to hold everything.  I forgot to do that the first time around and *thought* I had to do everything all over again (see next post for how to really do it).  The easiest thing would be to just size it right the first time around.</p>
<p>Second that the volume is in the same availability zone as the instance you started up in step 1.  If you aren&#8217;t sure what the availability zone is for your instance, go back to the instance, highlight it, and in the bottom panel you&#8217;ll see what zone its in.</p>
<p>3) Attach Volume to Instance</p>
<p>When you are done you&#8217;ll want to attach the volume to the instance that you created in step 1.  Once the volume is available, highlight it and choose &#8220;Attach Volume&#8221;.  You&#8217;ll be stepped through attaching it to your server.  If you have only one instance running its pretty straightforward.  If you have multiple ones running, you&#8217;ll want to make sure that you&#8217;re attaching it to the right place.  You&#8217;ll be asked to indicate where you want the attached, I usually do /dev/sdf.  Oh and this process won&#8217;t work if the volume and the instance aren&#8217;t in the same availability zone, hence my warning in the previous step.</p>
<p>4) Copy the Data from the Server to the Volume</p>
<p>This part of the instructions I found over at <a title="Winners Don't Lose" href="http://winnersdontlose.com/?p=95" target="_blank">Winners Don&#8217;t Lose</a>.  This helps you format the volume and copy the data on the current instance over to the volume:</p>
<pre>In a root shell on the instance:

# mkfs.ext3 /dev/sdf
# mkdir /mnt/target &amp;&amp; mount /dev/sdf /mnt/target
# rsync -avHx / /mnt/target
# rsync -avHx /dev /mnt/target
# sync;sync;sync;sync &amp;&amp; umount /mnt/target

The above commands did the following:

formatted the entire volume /dev/sdf as an extended 3 filesystem
created directory /mnt/target and mounted /dev/sdf at /mnt/target
rsync’d the root instance-store filesystem to the ebs volume
synchronized the /dev directory from the instance-store filesystem
flush all pending write ops, and unmount the EBS volume</pre>
<p>To be honest these are the only instructions I&#8217;ve ever been able to follow that doesn&#8217;t produce some error that I have to debug.</p>
<p>5) Detach the Volume</p>
<p>The next step is to detach the volume that you just created from the running instance.  Again you can do this in the AWS console by finding the volume, highlighting it, and choosing detach.  Make sure the you&#8217;re detaching the right volume though!</p>
<p>6) Create a Snapshot of the Volume</p>
<p>You&#8217;ll want to create a snapshot of the volume that you just created.  You can again do that in the AWS Management console but finding the volume, right clicking on it, and choosing create snapshot.</p>
<p>7) Register your AMI</p>
<p>This is the part that took me forever to figure out.  Mostly because the documentation for the ec2-register command didn&#8217;t jive with the tools that i had access too.  The command I used was:</p>
<pre>ec2-register --block-device-mapping /dev/sda1=&lt;snapshot id&gt;::true
--name &lt;ami name&gt; --kernel &lt;kernel id&gt; --ramdisk &lt;ram disk id&gt;
-K &lt;your pk file&gt;.pem -C &lt;your cert file&gt;.pem</pre>
<p>(note i updated this:  if you want the <em>volume</em> to persist after termination then you&#8217;ll want to change the true in the &#8211;block-device-mapping flag to false)</p>
<p>You&#8217;ll want to make sure that you specify and kernel id and a ram disk id, I usually use the same one that my instance I&#8217;m creating this new AMI from was using.  You don&#8217;t have to do it, but that would mean that if your AMI users don&#8217;t choose one during start up, then the instance won&#8217;t work.</p>
<p>Note that you may have your key and cert file set as part of your environment variable.  I have multiple accounts so I don&#8217;t, and instead just specify them when I&#8217;m running any commands (annoying but I don&#8217;t do much from the commandline anyway).</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Frosalynmetz.com%2Fideas%2F2011%2F04%2F14%2Fcreating-an-ebs-backed-ami%2F&amp;title=Creating%20an%20EBS%20Backed%20AMI" id="wpa2a_4">Share/Save</a></p>]]></content:encoded>
			<wfw:commentRss>http://rosalynmetz.com/ideas/2011/04/14/creating-an-ebs-backed-ami/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Moving On&#8230;</title>
		<link>http://rosalynmetz.com/ideas/2011/03/25/moving-on/</link>
		<comments>http://rosalynmetz.com/ideas/2011/03/25/moving-on/#comments</comments>
		<pubDate>Fri, 25 Mar 2011 18:12:06 +0000</pubDate>
		<dc:creator>Rosalyn Metz</dc:creator>
				<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://rosalynmetz.com/ideas/?p=940</guid>
		<description><![CDATA[As many of you may or may not know, I went to college in Washington, DC.  Over the years I spent there I began to think of it as my home.  When I left to go to grad school I &#8230; <a href="http://rosalynmetz.com/ideas/2011/03/25/moving-on/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>As many of you may or may not know, I went to college in Washington, DC.  Over the years I spent there I began to think of it as my home.  When I left to go to grad school I always assumed I would return, but sometimes life takes a bit of a detour, in my case a big one, like 8 hours out of my way.</p>
<p>But now I&#8217;m getting back to where I wanted to be.  I have accepted a job just outside of Washington, DC for a web consulting firm called <a href="http://www.viget.com/">Viget</a>.  I&#8217;ll be one of many <a href="http://www.viget.com/careers/web-project-manager/">project managers</a> for the company and I&#8217;m excited that my love of organizing projects will finally find a real creative outlet (hey organization can be creative).</p>
<p>I&#8217;ll be sad to leave behind my friends here in Boston, but I&#8217;m excited to be moving closer to some really great ones in Washington, DC.  I&#8217;ll be starting at the end of April, so wish me luck as I try to find an apartment, pack everything up, and move back to the city I love.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Frosalynmetz.com%2Fideas%2F2011%2F03%2F25%2Fmoving-on%2F&amp;title=Moving%20On%26%238230%3B" id="wpa2a_6">Share/Save</a></p>]]></content:encoded>
			<wfw:commentRss>http://rosalynmetz.com/ideas/2011/03/25/moving-on/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>WebWork</title>
		<link>http://rosalynmetz.com/ideas/2011/03/14/webwork/</link>
		<comments>http://rosalynmetz.com/ideas/2011/03/14/webwork/#comments</comments>
		<pubDate>Mon, 14 Mar 2011 19:51:04 +0000</pubDate>
		<dc:creator>Rosalyn Metz</dc:creator>
				<category><![CDATA[Work]]></category>
		<category><![CDATA[LDAP]]></category>
		<category><![CDATA[WebWork]]></category>

		<guid isPermaLink="false">http://rosalynmetz.com/ideas/?p=934</guid>
		<description><![CDATA[Recently the college decided to implement a piece of software that allows professors to assign students math homework via the web.  Professors can pick a bunch of math problems from a library of math problems, students do the work, and they are &#8230; <a href="http://rosalynmetz.com/ideas/2011/03/14/webwork/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Recently the college decided to implement a piece of software that allows professors to assign students math homework via the web.  Professors can pick a bunch of math problems from a library of math problems, students do the work, and they are given grades.  Fairly simple really.</p>
<p>The install process wasn&#8217;t so easy.  To be fair there are instructions for <a href="http://bit.ly/iehtGK">installing WebWork on Ubuntu 10.04</a> but if you deviate from the instructions you have to start all over again.  I learned that when I tried to install it in the /var/www directory rather than the /opt directory it asks for.  Luckily a friend had warned me, so I only made that mistake once.</p>
<p>We&#8217;ve made the decision to migrate from the MAA (which hosts WebWork if you have under 100 users) to our own installation.  Unfortunately, we&#8217;re doing it this week and I just got the archives of the courses last week, so I&#8217;m in a mad dash to figure out how to do all of this.  And of course, in true Rosalyn format, I&#8217;m going to write a blog post on the topic.  Hopefully these instructions will come in handy this summer as I move the rest of the courses to the WebWork server and figure out LDAP authentication for the system.  So here it goes, I know how much you all love this:</p>
<p>&nbsp;</p>
<p><strong>1) Determine what Archives I need to Migrate</strong></p>
<p>So when I requested the archives from the folks at MAA they sent all of our courses, even older ones.  But nothing in the course name indicated what semester these archives were from.  So I needed to figure it out on my own.  After extracting one course, I noticed there was a log directory with two files, one that talked about when people submitted answers and one that showed the last time users logged in.  Beautiful.  I decided to go with the answers log, since I felt that would be a more accurate portrayal of when the course was from.  I extracted each one separately and just took a peek at the last entry.</p>
<pre>tar -xvf {tarball.tar.gz} {path/to/file}</pre>
<p>Turns out there were only three current courses that needed to be migrated.  And then luckily one professor said they would continue using the MAA server until the end of the semester (and option we offered them).  Yay.  Less work for me.</p>
<p>&nbsp;</p>
<p><strong>2) Import the Course</strong></p>
<p>So the first step is to move the archives to the server.  Now in order to unarchive the course, they need to be in the /opt/webwork/courses folder.  I sftped the files to my server, and then went into the admin interface and clicked unarchive course and followed the prompts.</p>
<p style="text-align: left;">&nbsp;</p>
<div id="attachment_938" class="wp-caption aligncenter" style="width: 586px"><a href="http://rosalynmetz.com/ideas/wp-content/uploads/2011/03/Screen-shot-2011-03-14-at-3.29.25-PM.png"><img class="size-large wp-image-938 " title="WebWork Unarchive Course" src="http://rosalynmetz.com/ideas/wp-content/uploads/2011/03/Screen-shot-2011-03-14-at-3.29.25-PM-1024x481.png" alt="WebWork Unarchive Course" width="576" height="270" /></a><p class="wp-caption-text">WebWork Unarchive Course</p></div>
<p>When all was said and done I couldn&#8217;t log into the course.  This was the moment that everything that I thought was slightly off about the software came to make sense.</p>
<p>&nbsp;</p>
<p><strong>3) Change the Admin Password</strong></p>
<p>So each course gets their own tables in the webwork database:</p>
<ul>
<li>coursename_key</li>
<li>coursename_password</li>
<li>coursename_permission</li>
<li>coursename_problem</li>
<li>coursename_problem_user</li>
<li>coursename_set</li>
<li>coursename_set_locations</li>
<li>coursename_set_locations_user</li>
<li>coursename_set_user</li>
<li>coursename_setting</li>
<li>coursename_user</li>
</ul>
<p>No you&#8217;re reading that right.  There isn&#8217;t a global table for users and passwords, there are user and password tables <em><strong>for each course</strong></em>.  I know, I know&#8230;my normal form loving brain hurts thinking about it too.  But I guess it makes it easier to maintain each course??? (I&#8217;m really trying to be an optimist)</p>
<p>Since I don&#8217;t know the password for the admin user I realized I needed to change the password if I wanted to be able to get into the imported courses.  So I went into the database on my server and ran a select query so I could find the hashed up password of an account where I knew the actual password.</p>
<pre>select * from coursename_password;</pre>
<p>For some added annoyance WebWork can use spaces and other characters that you wouldn&#8217;t normally include in a MySQL table name.  I have actually never run across this before so I wasn&#8217;t sure what to do.  I tried containing the table names in single quotes and double quotes.  Turns out you need to use the accent mark located below the tilde on your keyboard.  Yay for trial and error.</p>
<p>So once I got the hashed up password of an account I knew the password for, I updated the table for the newly imported course in WebWork:</p>
<pre>update `coursename_password`
set password = "&lt;newhashedpasswordhere&gt;" where user_id = "admin";</pre>
<p>Once you&#8217;ve done that you should be able to log in to the course as the admin user.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Frosalynmetz.com%2Fideas%2F2011%2F03%2F14%2Fwebwork%2F&amp;title=WebWork" id="wpa2a_8">Share/Save</a></p>]]></content:encoded>
			<wfw:commentRss>http://rosalynmetz.com/ideas/2011/03/14/webwork/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing Munin on Ubuntu 10.04</title>
		<link>http://rosalynmetz.com/ideas/2011/03/10/installing-munin-on-ubuntu-10-04/</link>
		<comments>http://rosalynmetz.com/ideas/2011/03/10/installing-munin-on-ubuntu-10-04/#comments</comments>
		<pubDate>Thu, 10 Mar 2011 14:13:51 +0000</pubDate>
		<dc:creator>Rosalyn Metz</dc:creator>
				<category><![CDATA[Work]]></category>
		<category><![CDATA[munin]]></category>
		<category><![CDATA[server monitoring]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://rosalynmetz.com/ideas/?p=922</guid>
		<description><![CDATA[So since I&#8217;ve &#8220;gone rogue&#8221; and started hosting servers with Slicehost, that means that I&#8217;m also responsible for monitoring the servers.  So I tried installing Munin on Ubuntu 10.04 using apt-get.  I found a bunch of instructions and they were &#8230; <a href="http://rosalynmetz.com/ideas/2011/03/10/installing-munin-on-ubuntu-10-04/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So since I&#8217;ve &#8220;gone rogue&#8221; and started hosting servers with Slicehost, that means that I&#8217;m also responsible for monitoring the servers.  So I tried installing <a title="Munin" href="http://munin-monitoring.org/" target="_blank">Munin</a> on Ubuntu 10.04 using apt-get.  I found a bunch of instructions and they were all complicated and well plain crap.  I tried the Munin instructions but those didn&#8217;t seem to work either.  Eventually after a bunch of tries, I figured it out and feel pretty stupid that I went through so much for something so simple.  And since I can often forget these things months later, I decided to write them down here for my own personal enjoyment (if that&#8217;s what you want to call it).</p>
<p><strong>1) install apache</strong></p>
<p>in order to view the reports that munin installs you&#8217;ll need to install a web server.  i, like most of the universe, use apache, so that&#8217;s what i&#8217;m going to do here.</p>
<pre>sudo apt-get install apache2</pre>
<p>this will install apache2 and start it up for you.  when you&#8217;re done go to the server and you&#8217;ll see this page:</p>
<div id="attachment_924" class="wp-caption aligncenter" style="width: 586px"><a href="http://rosalynmetz.com/ideas/wp-content/uploads/2011/03/apache2.png"><img class="size-large wp-image-924  " title="Apache Default Page" src="http://rosalynmetz.com/ideas/wp-content/uploads/2011/03/apache2-1024x547.png" alt="Apache Default Page" width="576" height="307" /></a><p class="wp-caption-text">The apache default page after a simple install.</p></div>
<p>fairly simple really.  nothing major and there are tons of instructions all over the interwebs that can get you to this point.</p>
<p><strong>2) install postfix</strong></p>
<p>you&#8217;ll also need to install a mail server if you want Munin to email you when things go into warning mode and what not.</p>
<pre>sudo apt-get install postfix bsd-mailx</pre>
<p>this will install postfix and the mail command (so you can test to make sure postfix is working).  as you&#8217;re installing postfix you&#8217;ll be asked to set up postfix.  first you&#8217;ll be asked to choose the mail server configuration.</p>
<p style="text-align: left;">&nbsp;</p>
<div id="attachment_925" class="wp-caption aligncenter" style="width: 586px"><a href="http://rosalynmetz.com/ideas/wp-content/uploads/2011/03/postfix-server-config.png"><img class="size-large wp-image-925  " title="Postfix Server Configuration" src="http://rosalynmetz.com/ideas/wp-content/uploads/2011/03/postfix-server-config-1024x572.png" alt="Postfix Server Configuration" width="576" height="321" /></a><p class="wp-caption-text">The prompts for installing postfix on Ubuntu 10.04</p></div>
<p style="text-align: left;">choose internet site which will allow you to send outgoing mail from your server.  on the next screen insert the server&#8217;s web address if it is not already filled in.  if you screw up you can reconfigure postfix with the following command</p>
<pre style="text-align: left;">sudo dpkg-reconfigure postfix</pre>
<p>once you&#8217;ve got that set up you&#8217;ll want to test to see if you can send email to an outside email address.  you can do this by typing the following:</p>
<pre>mail your@emailaddress.com
Subject:  your subject here
body of the email here
.</pre>
<p>the period will end the email and send it on its way.  before doing this i usually tail the mail.log located in /var/log and watch the email get sent on its way.  watch out because it may end up in your spam folder rather than your inbox (just an fyi).</p>
<p><strong>3) install munin munin-node</strong></p>
<p>next you&#8217;ll want to install munin, which does the monitoring, and munin-node, which goes on any server that you want monitored.  you can do this again with apt-get</p>
<pre>sudo apt-get install munin munin-node</pre>
<p><strong>3.1) email notification</strong></p>
<p>if you would like to have munin notify you when something moves from OK to another state (or back again) you&#8217;ll want to set up email notifications.  you&#8217;ll need to do this by editting the /etc/munin/munin.conf file.</p>
<pre>vi /etc/munin/munin.conf</pre>
<p>and insert the following lines according to the instructions in the comments</p>
<pre># Drop somejuser@fnord.comm and anotheruser@blibb.comm an email everytime
# something changes (OK -&gt; WARNING, CRITICAL -&gt; OK, etc)
#contact.someuser.command mail -s "Munin notification" somejuser@fnord.comm
#contact.anotheruser.command mail -s "Munin notification" anotheruser@blibb.comm

contact.yourname.command mail -s "Munin notification" your@email.com</pre>
<p>when you&#8217;re done you&#8217;ll want to start the munin-node and restart apache (just to be safe) by running the following commands</p>
<pre>sudo start munin-node
sudo apache2ctl graceful</pre>
<p>when you&#8217;re done go to the web address of the server and you&#8217;ll see this:</p>
<div id="attachment_927" class="wp-caption aligncenter" style="width: 586px"><a href="http://rosalynmetz.com/ideas/wp-content/uploads/2011/03/munin-forbiddden.png"><img class="size-large wp-image-927 " title="Munin After Initial Install" src="http://rosalynmetz.com/ideas/wp-content/uploads/2011/03/munin-forbiddden-1024x576.png" alt="Munin After Initial Install" width="576" height="324" /></a><p class="wp-caption-text">After the initial install of Munin you&#39;ll see the Forbidden error.</p></div>
<p>so I saw that and assumed, oh its clearly a permissions error.  maybe the munin user that got created on install doesn&#8217;t have access to the web server.  yeah no, i was wrong.</p>
<p><strong>4) edit /etc/munin/apache.conf</strong></p>
<p>so with a fresh install of munin you can only access the information from the server that does the monitoring.  so you&#8217;ll want to go in and edit the apache.conf file:</p>
<pre>sudo vi /etc/munin/apache.conf</pre>
<p>and change the following line:</p>
<pre>Allow from 127.0.0.1 ::1</pre>
<p>into:</p>
<pre>Allow from all</pre>
<p>you can of course allow it from only particular ip addresses, or you can set up an .htpasswd file so that the directory is locked down.  however you want to do it is up to you, but you probably shouldn&#8217;t be pushing this info out the world.  in either case when you&#8217;re done you&#8217;ll want to restart apache.</p>
<pre>sudo apache2ctl graceful</pre>
<p>When all is said and done you&#8217;ll see this:</p>
<p style="text-align: left;">&nbsp;</p>
<div class="mceTemp mceIEcenter" style="text-align: left;">
<dl id="attachment_929" class="wp-caption aligncenter" style="width: 586px;">
<dt class="wp-caption-dt"><a href="http://rosalynmetz.com/ideas/wp-content/uploads/2011/03/munin-running.png"><img class="size-large wp-image-929 " title="Munin Monitoring" src="http://rosalynmetz.com/ideas/wp-content/uploads/2011/03/munin-running-1024x575.png" alt="Munin Monitoring" width="576" height="323" /></a></dt>
<dd class="wp-caption-dd">Munin up and running on Ubuntu 10.04</dd>
</dl>
</div>
<p>and then of course you can click on your server and look at all the pretty charts and graphs.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Frosalynmetz.com%2Fideas%2F2011%2F03%2F10%2Finstalling-munin-on-ubuntu-10-04%2F&amp;title=Installing%20Munin%20on%20Ubuntu%2010.04" id="wpa2a_10">Share/Save</a></p>]]></content:encoded>
			<wfw:commentRss>http://rosalynmetz.com/ideas/2011/03/10/installing-munin-on-ubuntu-10-04/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Slicehost, My New Best Friend</title>
		<link>http://rosalynmetz.com/ideas/2011/02/27/slicehost-my-new-best-friend/</link>
		<comments>http://rosalynmetz.com/ideas/2011/02/27/slicehost-my-new-best-friend/#comments</comments>
		<pubDate>Mon, 28 Feb 2011 03:10:05 +0000</pubDate>
		<dc:creator>Rosalyn Metz</dc:creator>
				<category><![CDATA[Work]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Rackspace]]></category>
		<category><![CDATA[Slicehost]]></category>

		<guid isPermaLink="false">http://rosalynmetz.com/ideas/?p=917</guid>
		<description><![CDATA[Over the past few months I&#8217;ve been working on a number of small projects.  First I&#8217;ve been working to set up an academic blog service for the campus.  The service will be used for class projects and faculty projects.  Another &#8230; <a href="http://rosalynmetz.com/ideas/2011/02/27/slicehost-my-new-best-friend/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Over the past few months I&#8217;ve been working on a number of small projects.  First I&#8217;ve been working to set up an academic blog service for the campus.  The service will be used for class projects and faculty projects.  Another system I&#8217;ve been working on is something called WebWork.  The system allows faculty to pick math problems from a variety of different sets and then assign them to their students.  All the problem sets are done online including grading.  Apparently it integrates with Moodle, but that&#8217;s something that will have to wait for now.  The last thing I&#8217;ve been working on is a Drupal based website for a grant project that I&#8217;ve been involved in.</p>
<p>So what do these three things have in common?  Each one is being hosted with Slicehost.</p>
<p>Slicehost is virtual private hosting and a subsidiary of cloud computing provider Rackspace.  Essentially all of their servers are in Rackspace&#8217;s cloud.  Slicehost allows you to provision servers, schedule backups, create snapshots, clone servers, etc.  But rather than being charged per hour, you&#8217;re charged a flat monthly fee (which can go up if you go over your bandwidth allowance).</p>
<p>So just like any best friend there are things about it that I like and thinks about it I don&#8217;t like.  I like how easy it is to clone a server or create a back up.  So if I want to upgrade WordPress for example, rather than dumping the MySQL database, backing up the files and then upgrading, I can take a snapshot of the server and then upgrade knowing that I have an exact replica of the system.  I also like how easy it is to do development work.  If there is a bug fix or something that I want to try out, I can clone the server, work on the changes, and know that it&#8217;ll work on my production instance (because essentially I&#8217;m using my production instance).</p>
<p>I speak so glowingly of it, what criticisms could I have?  Well what would be great is if I could have the best of both worlds.  I wish that in addition to paying a flat monthly fee, I could have the option to provision for just a few hours.  Maybe I could log into Rackspace&#8217;s cloud, see my Slicehost servers and clone them there.  This would help me with handling data loss and working on smaller more urgent bug fixes.  Maybe I&#8217;ll get lucky, they&#8217;ll read this, and figure out how to make all my dreams come true.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Frosalynmetz.com%2Fideas%2F2011%2F02%2F27%2Fslicehost-my-new-best-friend%2F&amp;title=Slicehost%2C%20My%20New%20Best%20Friend" id="wpa2a_12">Share/Save</a></p>]]></content:encoded>
			<wfw:commentRss>http://rosalynmetz.com/ideas/2011/02/27/slicehost-my-new-best-friend/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Backing Up Moodle to the Cloud</title>
		<link>http://rosalynmetz.com/ideas/2010/06/26/backing-up-moodle-to-the-cloud/</link>
		<comments>http://rosalynmetz.com/ideas/2010/06/26/backing-up-moodle-to-the-cloud/#comments</comments>
		<pubDate>Sat, 26 Jun 2010 14:42:11 +0000</pubDate>
		<dc:creator>Rosalyn Metz</dc:creator>
				<category><![CDATA[Work]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Moodle]]></category>

		<guid isPermaLink="false">http://rosalynmetz.com/ideas/?p=882</guid>
		<description><![CDATA[I have a plan to back up Wheaton&#8217;s Learning Management System (LMS) to the cloud on a yearly basis. I talked about the basics of this architecture in my post I &#60;3 Redmine and You Will Too.Essentially each academic year &#8230; <a href="http://rosalynmetz.com/ideas/2010/06/26/backing-up-moodle-to-the-cloud/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_861" class="wp-caption alignright" style="width: 310px"><a href="http://rosalynmetz.com/ideas/wp-content/uploads/2010/05/moodle-arch.png"><img class="size-medium wp-image-861" title="Moodle Architecture" src="http://rosalynmetz.com/ideas/wp-content/uploads/2010/05/moodle-arch-300x223.png" alt="Moodle Architecture" width="300" height="223" /></a><p class="wp-caption-text">Visual depiction of the rotating Moodle architecture</p></div>
<p>I have a plan to back up Wheaton&#8217;s Learning Management System (LMS) to the cloud on a yearly basis.  I talked about the basics of this architecture in my post <em><a href="http://rosalynmetz.com/ideas/2010/05/24/i/" target="_blank">I &lt;3 Redmine and You Will Too</a>.</em>Essentially each academic year I will rotate a years worth of Moodle into the cloud, only keeping the current year and the previous year.  Here&#8217;s a picture to give you a little help in understanding<span style="font-size: small;"><span style="line-height: 17px;">.</span></span></p>
<p><span style="font-size: small;">So now I need to find a way for people that are <strong>not me</strong> to access the Moodle that lives in the cloud.  The problem is that every moodle has a config file, and in that config file, Moodle asks you to specify the URL for where your Moodle is located, this is slightly problematic because:</span></p>
<ol>
<li>Amazon EC2 servers are not given IP addresses, they are given a Public DNS like</li>
<li>Technically they can be assigned to an IP address but <a href="http://aws.amazon.com/ec2/#features" target="_blank">Elastic IPs</a> cost money when they aren&#8217;t being used, and frankly I would rather not have to pay extra if I don&#8217;t have to.</li>
<li>The people accessing these Moodles can&#8217;t be expected to ssh into a server and change the config file.</li>
</ol>
<p>So I need to make this happen automagically when the server starts up.  I tried using the php variable $_SERVER but I got some weird things.  So my idea is to have a start up script call the public-hostname (using the API amazon provides) and then edit the config file.  That way when the server starts up, Moodle will automagically be available.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Frosalynmetz.com%2Fideas%2F2010%2F06%2F26%2Fbacking-up-moodle-to-the-cloud%2F&amp;title=Backing%20Up%20Moodle%20to%20the%20Cloud" id="wpa2a_14">Share/Save</a></p>]]></content:encoded>
			<wfw:commentRss>http://rosalynmetz.com/ideas/2010/06/26/backing-up-moodle-to-the-cloud/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Misinterpretations</title>
		<link>http://rosalynmetz.com/ideas/2010/05/26/misinterpretations/</link>
		<comments>http://rosalynmetz.com/ideas/2010/05/26/misinterpretations/#comments</comments>
		<pubDate>Wed, 26 May 2010 11:31:51 +0000</pubDate>
		<dc:creator>Rosalyn Metz</dc:creator>
				<category><![CDATA[Work]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://rosalynmetz.com/ideas/?p=869</guid>
		<description><![CDATA[So last night James Urquhart tweeted that he was misinterpreted in my blog post.  He said in another tweet: I never argued *against* PHP/Python/Perl or even use of Linux/Apache by PaaS vendor. Just noted PaaS users *shouldn&#8217;t* care. I apologized &#8230; <a href="http://rosalynmetz.com/ideas/2010/05/26/misinterpretations/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So last night James Urquhart tweeted that <a href="http://twitter.com/jamesurquhart/status/14734847156">he was misinterpreted</a> in my blog post.  He said in <a href="http://twitter.com/jamesurquhart/status/14735024573">another tweet</a>:</p>
<blockquote><p>I never argued *against* PHP/Python/Perl or even use of Linux/Apache by PaaS vendor. Just noted PaaS users *shouldn&#8217;t* care.</p></blockquote>
<p>I <a href="http://twitter.com/rosy1280/status/14735715884">apologized</a> and asked for <a href="http://twitter.com/rosy1280/status/14735871851">clarification</a> since it seemed to me that there was an argument about whether or not a PHP/Perl cloud was necessary.</p>
<p>I re-read the article a few times, and on the last go around the only new explanations I could see from it was:</p>
<ol>
<li>if i wrote in php a vendor would deploy in another language</li>
<li>he meant that the LAM in LAMP was what didn&#8217;t matter  (although that didn&#8217;t seem to be explicitly stated)</li>
</ol>
<p>In the meantime though, I&#8217;ll just wait for a response (I sent it late last night and people tend to sleep) rather than possibly misinterpret more.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Frosalynmetz.com%2Fideas%2F2010%2F05%2F26%2Fmisinterpretations%2F&amp;title=Misinterpretations" id="wpa2a_16">Share/Save</a></p>]]></content:encoded>
			<wfw:commentRss>http://rosalynmetz.com/ideas/2010/05/26/misinterpretations/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Who wants a PHP Cloud?  Users of OSS that&#8217;s who.</title>
		<link>http://rosalynmetz.com/ideas/2010/05/25/who-wants-a-php-cloud-users-of-oss-thats-who/</link>
		<comments>http://rosalynmetz.com/ideas/2010/05/25/who-wants-a-php-cloud-users-of-oss-thats-who/#comments</comments>
		<pubDate>Tue, 25 May 2010 20:43:15 +0000</pubDate>
		<dc:creator>Rosalyn Metz</dc:creator>
				<category><![CDATA[Work]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Moodle]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://rosalynmetz.com/ideas/?p=865</guid>
		<description><![CDATA[Last week Geva Perry wrote a post published on GigaOm called Who Will Build the LAMP Cloud.  In it he speculated on current cloud providers that may be interested in building a PaaS (platform as a service) offering of the &#8230; <a href="http://rosalynmetz.com/ideas/2010/05/25/who-wants-a-php-cloud-users-of-oss-thats-who/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Last week Geva Perry wrote a post published on GigaOm called <a href="http://gigaom.com/2010/05/22/who-will-build-the-lamp-cloud/">Who Will Build the LAMP Cloud</a>.  In it he speculated on current cloud providers that may be interested in building a PaaS (platform as a service) offering of the traditional LAMP stack.  A few days later James Urquhart responded with his blog post entitled <a href="http://news.cnet.com/8301-19413_3-20005709-240.html?tag=contentMain;contentBody">Does Cloud Computing Need LAMP</a>.  In it he questions whether the Linux and Apache piece are really necessary in a PaaS offering.  He then goes on to question the usefulness of P languages (PHP, Perl, Python) and MySQL, using a <a href="http://gigaom.com/2010/05/22/who-will-build-the-lamp-cloud/#comment-1034560">comment to Geva&#8217;s post</a> as a jumping off point.  Geva then comments back with a post on his own blog entitled <a href="http://gevaperry.typepad.com/main/2010/05/lamp-cloud.html">Who Will Build the LAMP Cloud? And Who Cares?</a> In it he agrees with James&#8217; comments on not caring about the LA in LAMP, but says:</p>
<blockquote><p>James&#8217; last question: &#8220;Is the &#8216;open sourceness&#8217; of a programming stack even that important anymore?&#8221; is a good one, but orthogonal to the discussion about a LAMP/PHP cloud, in my mind.</p></blockquote>
<p>So why has this conversation gotten me in a tizzy and forced me to write two blog posts in one week?  Well two reasons:</p>
<ol>
<li>Many web based open source projects are built on the back of P languages (PHP, Perl, and Python)</li>
<li>The cloud exists to make technology easier for the masses.</li>
</ol>
<p>Now before I go any further I will disclose that the first language I learned was PHP.  The second one was Perl.  While I know there are <a href="http://www.mail-archive.com/code4lib@listserv.nd.edu/msg07498.html" target="_blank">wars that start on listservs</a> about what languages are better, that is not the purpose of this post, so put it out of your head and don&#8217;t say anything about how much you think PHP sucks in the comments.</p>
<h2>Web based open source projects are built on the back of P languages</h2>
<p>Now I could write something about this, but I like lists.  So here is a brief off the cuff list of what open source projects use P languages:</p>
<ol>
<li>MediaWiki (PHP)</li>
<li>WordPress (PHP)</li>
<li>Bugzilla (Perl)</li>
<li>Drupal (PHP)</li>
<li>Plone (Python)</li>
<li>Moodle (PHP)</li>
<li>AWStats (Perl)</li>
<li>MovableType (PHP and Perl)</li>
<li>Subversion (Python and C)</li>
<li>Trac (Python)</li>
</ol>
<p>Now, I&#8217;m not going to argue the merits of how good each of these piece of software are. Again that&#8217;s not my point.  But they are popular whether you like it or not.  And to just dismiss them would be foolish.</p>
<h2>The cloud exists to make technology easier for the masses</h2>
<p>Google Docs makes it easier to get to files you need to edit.  Heroku makes it easier to deploy Ruby on Rails apps.  Amazon EC2 makes it easier for you to deploy a server.  The fall out of the cloud is that technology suddenly becomes much easier to create and deploy.</p>
<p>So what happens when my mom wants to write her own blog.  Well, most likely she heads over to WordPress.com and creates a blog for herself.  And if she needs a little more, then she signs up for the WordPress Premium services.  But what if I want my own blog.  Well right now I have my friend hosting my stuff.  But what if I want it hosted elsewhere and I don&#8217;t want to maintain servers (since I do that all day long).  My only option right now is to do what my mom is doing, but the reality is, that&#8217;s not what I want.  I want something like Heroku but for PHP.  And if I had it, I could install any of the PHP applications listed above.</p>
<p>And I think this conversation is very pertinent given that Google just announced its <a href="http://google-opensource.blogspot.com/2010/05/cloudcourse-enterprise-application-in.html" target="_blank">open source learning management system</a> written in Python and <a href="http://code.google.com/p/cloudcourse/wiki/WikiInstall" target="_blank">intended to be deployed in Google App Engine</a>.  This could potentially be a big blow to Moodle who doesn&#8217;t have a cloud to turn to.</p>
<h2>Conclusion</h2>
<p>So yes a PHP based cloud does matter.  And yes it should be built because there are lots of <a href="http://groups.google.com/group/google-appengine/browse_thread/thread/34635d269014b2bd/">people clamoring</a> to use it (or who have already <a href="http://www.google.com/search?hl=en&amp;q=google+app+engine+php">figured out a way</a>).</p>
<p>And yes this blog post could be more coherent.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Frosalynmetz.com%2Fideas%2F2010%2F05%2F25%2Fwho-wants-a-php-cloud-users-of-oss-thats-who%2F&amp;title=Who%20wants%20a%20PHP%20Cloud%3F%20%20Users%20of%20OSS%20that%26%238217%3Bs%20who." id="wpa2a_18">Share/Save</a></p>]]></content:encoded>
			<wfw:commentRss>http://rosalynmetz.com/ideas/2010/05/25/who-wants-a-php-cloud-users-of-oss-thats-who/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>I </title>
		<link>http://rosalynmetz.com/ideas/2010/05/24/i/</link>
		<comments>http://rosalynmetz.com/ideas/2010/05/24/i/#comments</comments>
		<pubDate>Mon, 24 May 2010 14:38:13 +0000</pubDate>
		<dc:creator>Rosalyn Metz</dc:creator>
				<category><![CDATA[Work]]></category>
		<category><![CDATA[Moodle]]></category>
		<category><![CDATA[Redmine]]></category>

		<guid isPermaLink="false">http://rosalynmetz.com/ideas/?p=860</guid>
		<description><![CDATA[Right now I&#8217;m insanely busy. But its the hurry up and wait kind of insanely busy stuff. I&#8217;m in the process of setting up an architecture for Moodle. Essentially using VMWare I&#8217;ll rotate out servers every academic year.  Older server &#8230; <a href="http://rosalynmetz.com/ideas/2010/05/24/i/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Right now I&#8217;m insanely busy.  But its the hurry up and wait kind of insanely busy stuff.</p>
<div id="attachment_861" class="wp-caption alignright" style="width: 310px"><a href="http://rosalynmetz.com/ideas/wp-content/uploads/2010/05/moodle-arch.png"><img class="size-medium wp-image-861 " title="Moodle Architecture" src="http://rosalynmetz.com/ideas/wp-content/uploads/2010/05/moodle-arch-300x223.png" alt="Moodle Architecture" width="300" height="223" /></a><p class="wp-caption-text">Visual depiction of the rotating Moodle architecture</p></div>
<p>I&#8217;m in the process of setting up an architecture for Moodle. Essentially using VMWare I&#8217;ll rotate out servers every academic year.  Older server images will be put in the cloud so that if we need access to them quickly, we can do that without any problems.  This will allow me to:</p>
<p>1) get away with not having to do necessary MySQL tuning since Moodle doesn&#8217;t really delete much from its database.</p>
<p>2) not have to deal with compatibility issues since Moodle has been know to create course back ups that don&#8217;t work with future versions of the software.</p>
<p>3) deal with file storage issues, namely that users often thing the course management software is the place to store all of your files for ever and ever (its not by the way).</p>
<p>So now that I&#8217;ve come up with that I need a way to figure out what I have to do to make this work and then hope that I don&#8217;t forget those tasks.  Enter Redmine.  If you haven&#8217;t used it before, I recommend checking it out.  There is a <a href="http://demo.redmine.org/" target="_blank">demo redmine</a> you can use to play around with it.</p>
<div id="attachment_862" class="wp-caption alignleft" style="width: 310px"><a href="http://rosalynmetz.com/ideas/wp-content/uploads/2010/05/redmine-tasks.png"><img class="size-medium wp-image-862" title="Redmine SubProject" src="http://rosalynmetz.com/ideas/wp-content/uploads/2010/05/redmine-tasks-300x166.png" alt="Redmine SubProject" width="300" height="166" /></a><p class="wp-caption-text">tasks that need to be accomplished in order to set up the Moodle architecture.</p></div>
<p>What I like about it is its flexibility.  At MPOW I am essentially a developer, systems administrator, and project manager all rolled up into one.  Its a lot of hats to wear, and often times I forget tasks, or I need to talk out the entire process.  Essentially I use Redmine to help me with that.  I can enter new features for the developer Rosalyn to work on.  I can enter tasks for sys admin Rosalyn to work on.  And all of this is done by project manager Rosalyn who is trying to help the sys admin and developer work together (yes i do talk to myself&#8230;and answer back).</p>
<p>Redmine has subtasking, subprojects, and you can change all kinds of things in it so that it can essentially function however you want it to.  And its written in Ruby on Rails so extending is easy (although the <a href="http://www.redmine.org/wiki/redmine/Plugin_List" target="_blank">plugins are plentiful</a> so you may not even need to write your own code).  I&#8217;ve gotten my boss on board with it, and he&#8217;s slowly trying to infect others so that they use it too.</p>
<p>So that&#8217;s my new best friend Redmine.  It has helped me organize and focus my day on the things that need to get done.  I &lt;3 it and if you try it out, I think you will too.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Frosalynmetz.com%2Fideas%2F2010%2F05%2F24%2Fi%2F&amp;title=I%20%3C3%20Redmine%20and%20you%20will%20too" id="wpa2a_20">Share/Save</a></p>]]></content:encoded>
			<wfw:commentRss>http://rosalynmetz.com/ideas/2010/05/24/i/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

