<?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>E1n1verse &#187; BBEdit</title>
	<atom:link href="http://einiverse.eingang.org/tag/bbedit/feed/" rel="self" type="application/rss+xml" />
	<link>http://einiverse.eingang.org</link>
	<description>WoW, Learning, and Teaching by Michelle A. Hoyle</description>
	<lastBuildDate>Fri, 26 Oct 2012 16:25:38 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.2</generator>
		<item>
		<title>Some Magic with Merlin</title>
		<link>http://einiverse.eingang.org/2005/10/13/some-magic-with-merlin/</link>
		<comments>http://einiverse.eingang.org/2005/10/13/some-magic-with-merlin/#comments</comments>
		<pubDate>Thu, 13 Oct 2005 22:11:39 +0000</pubDate>
		<dc:creator>Eingang</dc:creator>
				<category><![CDATA[phding]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[BBEdit]]></category>
		<category><![CDATA[Merlin]]></category>
		<category><![CDATA[OmniOutliner]]></category>
		<category><![CDATA[phd tools]]></category>
		<category><![CDATA[planning]]></category>

		<guid isPermaLink="false">http://einiverse.eingang.org/blogs/2005/10/13/some-magic-with-merlin/</guid>
		<description><![CDATA[When I was preparing for my thesis committee meeting earlier this year, one of the things I did was prepare a project timeline. In order to do that, I spent ages testing out project management software again, because working with FastTrack Scheduler was so frustrating and unrewarding. After a lengthy but rushed evaluation of several [...]]]></description>
			<content:encoded><![CDATA[<p>When I was preparing for my thesis committee meeting earlier this year, one of the things I did was prepare a project timeline.  In order to do that, I spent ages testing out project management software again, because working with <a href="http://www.aecsoftware.com/">FastTrack Scheduler</a> was so frustrating and unrewarding.  After a lengthy but rushed evaluation of several products, I ended up going with a relatively new product called <a href="http://www.projectwizards.net/en/merlin">Merlin</a> from a German company.  While Merlin isn&#8217;t perfect, it at least wasn&#8217;t frustrating to use and its import/export facilities meant that I could overcome some of its reporting deficiencies through the judicious application of other applications.</p>
<p><span id="more-70"></span></p>
<p>The biggest reporting deficiency I immediately found was that I wanted to produce a nice list of milestones organized by month and year, so that it was easy to see at a glance what deliverables I was supposed to have at any given point.  The first sticky bit was that I didn&#8217;t have a way to do a search for just the milestones in <a href="http://www.projectwizards.net/en/merlin">Merlin</a>.  I could define milestones, yes, but the interface didn&#8217;t allow me to search for them.  To overcome that, I had to manually add the word &#8220;Milestone&#8221; as a comment to all the milestones.  When you do a &#8220;search&#8221;, you can then say &#8220;Milestone&#8221; and a list of Milestones will be retrieved as a &#8220;report&#8221;.  Unfortunately, this is pretty ugly and useless because it didn&#8217;t include any of the date information, although you could see if something was late (red flag):</p>
<p>
<a href="/archives/images/Milestone-List-0.gif" title="Click to see the full-sized image"><img alt="Milestone-List-0.gif" src="http://einiverse.eingang.org/archives/images/Milestone-List-0-thumb.gif" width="455" height="244" /></a></p>
<p>So instead I hit upon the idea of creating a &#8220;workspace view&#8221; for the Milestones which included the kind of information I would need to produce a nicely formatted list: The milestone activity name, its end date (due date), its &#8220;path&#8221;, and its &#8220;subtitle&#8221; (the comment field which says &#8220;Milestone&#8221;.   The &#8220;path&#8221; is the a string showing the outliner path of a specific activity.  For example, it&#8217;s writing a chapter in the thesis, the path is &#8220;Ph.D./Thesis Writing/Chapter 1&#8243; where &#8220;Ph.D.&#8221; is the overall project name, &#8220;Thesis Writing&#8221; is the enclosing activity container, and &#8220;Chapter 1&#8243; is the actual activity.  Here&#8217;s what this view looks like:</p>
<p><a href="/archives/images/Milestone-List-1.gif" title="Click to see the full-sized image"><img src="/archives/images/Milestone-List-1-thumb.gif" width="455" height="234" border="0"></a></p>
<p>Unfortunately, there wasn&#8217;t a way to only include just the Milestones.  So if you go down the list, it actually includes everything, but the other items don&#8217;t have a Subtitle of &#8220;Milestone.&#8221;  </p>
<p>Once you have this view, you can export the view as a comma-separated values file.  Actually, it&#8217;s a semicolon-seperated values file, but let&#8217;s not be too picky.   That gives you something that looks like:</p>
<pre>
Title;Group Path;End Date;Subtitle
Ph.D.;;04/25/2007 15:00;
No Assigned Resources;;;
"Michelle ""Ein"" Hoyle";;;
CVS/Subversion everything;/Ph.D./Organization;09/23/2005 17:00;Milestone
Analysis summary of Exp 1 and Exp 2;/Ph.D./Statistics;12/16/2005 17:00;Milestone
WordNet lit. review document;/Ph.D./Literature Review;07/25/2005 18:00;Milestone
IR/SE lit. review document;/Ph.D./Literature Review;12/09/2005 16:00;Milestone
Semantic net lit. review document;/Ph.D./Literature Review;03/22/2006 18:00;Milestone
Modified prototype;/Ph.D./Formula Work;02/03/2006 13:00;Milestone
Revised analysis summary document for Exp 1 &amp; 2;/Ph.D./Formula Work;02/08/2006 18:00;Milestone
Analysis summary document for Exp 3;/Ph.D./Experiment 3: Semantic Web;11/08/2006 18:00;Milestone
Thesis committee 2006 report;/Ph.D./Communication/Thesis Committee 2006;05/24/2006 17:00;Milestone
Published CSR document;/Ph.D./Communication/CSR Paper 2005;12/23/2005 15:00;Milestone
Semantic web document;/Ph.D./Communication/Semantic Web Paper 2006;11/15/2006 16:00;Milestone
Other: Copyright Clearance;/Ph.D./Thesis Writing;02/04/2007 11:00;
Prepare Appendix 7;/Ph.D./Thesis Writing/Appendices/Appendix 7: NLP tagging;06/01/2006 17:00;
Prepare Appendix 5;/Ph.D./Thesis Writing/Appendices/Appendix 5: Exp. 3 Documents;11/23/2006 18:00;
Prepare Appendix 4;/Ph.D./Thesis Writing/Appendices/Appendix 4: Exp. 2 Machine/people data;06/22/2006 17:00;
</pre>
<p>When I originally did this, I was having trouble with the date format in Merlin.  Merlin was using European date formats and everything else in my computer was using the System-defined date method of mm/dd/yyyy and not dd/mm/yyyy.  Before I could use this data elsewhere, I needed to fix the dates, so one of the first patterns I wrote was one to strip out the times and flip the month and day fields around.  I eventually fixed that, so the flipping isn&#8217;t necessary, but one of the first steps in a <a href="http://www.barebones.com/products/bbedit/index.shtml">BBEdit</a> Text Factory is still to strip out the times.  Before that, though, I need to remove the non-milestone entries.  They&#8217;re the ones that end with a ; instead of &#8220;;Milestone&#8221;.  The regular expression pattern &#8220;(^.*;\r)&#8221; will search for lines that end with a ; and replace the entire line.  When I used &#8220;(^.*;$)&#8221;, I ended up with multitudes of empty lines.</p>
<p>The next thing to do is get rid of the &#8220;;&#8221;.  If I import it into another application, tabs would be better than ;.  The pattern &#8220;;&#8221; replaced by &#8220;\t&#8221; solves that admirably, leaving the file more or less ready for the bulk of the manipulations that need to occur.  Here&#8217;s an annotated list of the operations that the <a href="http://www.barebones.com/products/bbedit/index.shtml">BBEdit</a> Text Factory performs:</p>
<table cellspacing="5">
<tr valign="top" align="left">
<th>Step</th>
<th>Search Pattern</th>
<th>Replace Pattern</th>
<th>Comment</th>
</tr>
<tr valign="top">
<td>1</td>
<td>(^.*;\r)</td>
<td>&#8220;&#8221;</td>
<td>Remove non-milestone entries from the list.</td>
</tr>
<tr valign="top">
<td>2</td>
<td>;</td>
<td>\t</td>
<td>Separate the fields with a tab instead of a semicolon</td>
</tr>
<tr valign="top">
<td>3</td>
<td>(\d{2})\/(\d{2})\/(\d{4}) \d{2}:\d{2}</td>
<td>\1\/\2\/\3</td>
<td>Remove the timestamp.  Could be shorter!</td>
</tr>
<tr valign="top">
<td>4</td>
<td>(\s)\/Ph.D.\/([^\/\t]+)(\t\d)</td>
<td>\1\2\3</td>
<td>Split apart path info to grab overall activity type</td>
</tr>
<tr valign="top">
<td>5</td>
<td>(\s)\/Ph.D.\/([^\/]+)\/.*(\t\d)</td>
<td>\1\2\3</td>
<td>Something similar to above but works on remaining ones</td>
</tr>
<tr valign="top">
<td>6</td>
<td>\tMilestone</td>
<td></td>
<td>Remove Milestone comment as not needed</td>
</tr>
<tr valign="top">
<td>7</td>
<td>\t$</td>
<td></td>
<td>Removing any trailing tabs</td>
</tr>
</table>
<p>Before doing all this, I need to manually remove the first four lines at the top of the file.  I was able to write a regular expression to find/remove the first four lines, but then it would &#8220;replace all&#8221;  What I needed was a &#8220;replace once&#8221; action, but that doesn&#8217;t seem to be a possibility in BBEdit at the moment. I should probably suggest it.  The end result was something like this:</p>
<pre>
CVS/Subversion everything                              Organization                09/23/2005
Analysis summary of Exp 1 and Exp 2                    Statistics                  12/16/2005
WordNet lit. review document                           Literature Review           07/25/2005
IR/SE lit. review document                             Literature Review           12/09/2005
Semantic net lit. review document                      Literature Review           03/22/2006
Modified prototype                                     Formula Work                02/03/2006
Revised analysis summary document for Exp 1 + 2        Formula Work                02/08/2006
Analysis summary document for Exp 3                    Experiment 3: Semantic Web  11/08/2006
Thesis committee 2006 report                           Communication               05/24/2006
Published CSR document                                 Communication               12/23/2005
Semantic web document                                  Communication               11/15/2006
Chapter 1 document                                     Thesis Writing              01/04/2007
Chapter 2 document                                     Thesis Writing              04/06/2006
Chapter 3 document                                     Thesis Writing              04/20/2006
Chapter 5 document                                     Thesis Writing              06/14/2006
Chapter 6 document                                     Thesis Writing              07/12/2006
</pre>
<p>The new version of <a href="http://www.omnigroup.com/applications/omnioutliner/">OmniOutliner Pro</a> is quite cool.  They added many new column types to it to help people use it for things like David Allen&#8217;s <i>Getting Things Done</i> and building to-do lists with due dates, etc.  As a result, it was possible to build an OmniOutliner document which contained months and years entered as top-level items with &#8220;due dates&#8221; as the first of the appropriate month/year and tell it to sort the document based on the &#8220;due date&#8221; column.  Any items you added with due dates would then be sorted correctly.  I set up a template with just this information in and formatted and spaced out the way I wanted.  Then I could paste in my BBedit output.  I&#8217;d end up with something like:</p>
<p><a href="/archives/images/Milestone-List-2.gif" title="Click to see the full-sized image"><img src="http://einiverse.eingang.org/archives/images/Milestone-List-2-thumb.gif" width="455" height="234" border="0" alt="Output after pasting into OmniOutliner" /></a>
</p>
<p>Everything was at the same level.  However, everything I&#8217;d just pasted in was still selected.  I discovered that if I just hit the tab key, it made all the selected items subordinate to the items above them.  Since the items above them were always the month/year headers, I got a perfectly arranged list like:</p>
<p><a href="http://einiverse.eingang.org/archives/images/Milestone-List-3.gif" title="Click to see the full-sized image"><img src="/archives/images/Milestone-List-3-thumb.gif" width="455" height="235" border="0" alt="Properly formatted and levelled OmniOutliner output" /></a></p>
<p>Ta-da!  How cool is that?  Of course, it did take quite a bit of work to figure all that out.  Now that I know how to do it, though, it&#8217;s easy-peasy to produce a similarly-formatted list.  Here&#8217;s the set of steps in order, with a list of resources required at the end.</p>
<table cellspacing="5">
<tr align="left">
<th width="100">Program</th>
<th>Step</th>
<th>Activity</th>
<th>Resource</th>
</tr>
<tr valign="top">
<td><a href="http://www.projectwizards.net/en/merlin">Merlin</a></td>
<td>1</td>
<td>View-&gt;Workspaces-&gt;Milestones for Export</td>
<td>Workspace view</td>
</tr>
<tr valign="top">
<td></td>
<td>2</td>
<td>File-&gt;Export-&gt;Current View as CSV (Cmd-Alt E)</td>
</tr>
<tr valign="top">
<td></td>
<td>3</td>
<td>Give it a file name and put it somewhere convenient</td>
<td>output.csv</td>
</tr>
<tr valign="top">
<td></td>
</tr>
<tr valign="top">
<td><a href="http://www.barebones.com/products/bbedit/index.shtmlBBEdit">BBEdit</a></td>
<td>1</td>
<td>Open the file</td>
<td>output.csv</td>
</tr>
<tr valign="top">
<td></td>
<td>2</td>
<td>Remove first 4 lines</td>
</tr>
<tr valign="top">
<td></td>
<td>3</td>
<td>Text-&gt;Apply Text Factory-&gt;merlinMilestones</td>
<td>~Library/Application Support/BBEdit/<br />Text Factories/merlinMilestones</td>
</tr>
<tr valign="top">
<td></td>
<td>4</td>
<td>Copy result to clipboard</td>
</tr>
<tr valign="top">
<td></td>
</tr>
<tr valign="top">
<td><a href="http://www.omnigroup.com/applications/omnioutliner/">OmniOutliner</a></td>
<td>1</td>
<td>File-&gt;New From Template-&gt;MerlinPhDMilestones</td>
<td>/Data/Research/Timing/MilestoneReport_<br />OmniTemplate.oo3template</td>
</tr>
<tr valign="top">
<td></td>
<td>2</td>
<td>Paste clipboard into document</td>
</tr>
<tr valign="top">
<td></td>
<td>3</td>
<td>With pasted content selected, hit the tab key</td>
</tr>
<tr valign="top">
<td></td>
<td>4</td>
<td>Insert a date at &lt;insert date&gt; at bottom</td>
</tr>
<tr valign="top">
<td></td>
<td>5</td>
<td>File-&gt;Save</td>
</tr>
<tr valign="top">
<td></td>
</tr>
</table>
<p><a class="a2a_button_twitter" href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Feiniverse.eingang.org%2F2005%2F10%2F13%2Fsome-magic-with-merlin%2F&amp;linkname=Some%20Magic%20with%20Merlin" title="Twitter" rel="nofollow" target="_blank"><img src="http://einiverse.eingang.org/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a><a class="a2a_button_google_plus" href="http://www.addtoany.com/add_to/google_plus?linkurl=http%3A%2F%2Feiniverse.eingang.org%2F2005%2F10%2F13%2Fsome-magic-with-merlin%2F&amp;linkname=Some%20Magic%20with%20Merlin" title="Google+" rel="nofollow" target="_blank"><img src="http://einiverse.eingang.org/wp-content/plugins/add-to-any/icons/google_plus.png" width="16" height="16" alt="Google+"/></a><a class="a2a_button_evernote" href="http://www.addtoany.com/add_to/evernote?linkurl=http%3A%2F%2Feiniverse.eingang.org%2F2005%2F10%2F13%2Fsome-magic-with-merlin%2F&amp;linkname=Some%20Magic%20with%20Merlin" title="Evernote" rel="nofollow" target="_blank"><img src="http://einiverse.eingang.org/wp-content/plugins/add-to-any/icons/evernote.png" width="16" height="16" alt="Evernote"/></a><a class="a2a_button_diigo" href="http://www.addtoany.com/add_to/diigo?linkurl=http%3A%2F%2Feiniverse.eingang.org%2F2005%2F10%2F13%2Fsome-magic-with-merlin%2F&amp;linkname=Some%20Magic%20with%20Merlin" title="Diigo" rel="nofollow" target="_blank"><img src="http://einiverse.eingang.org/wp-content/plugins/add-to-any/icons/diigo.png" width="16" height="16" alt="Diigo"/></a><a class="a2a_button_google_plusone addtoany_special_service" data-href="http://einiverse.eingang.org/2005/10/13/some-magic-with-merlin/"></a><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Feiniverse.eingang.org%2F2005%2F10%2F13%2Fsome-magic-with-merlin%2F&amp;title=Some%20Magic%20with%20Merlin" id="wpa2a_2">Share/Save</a></p>
]]></content:encoded>
			<wfw:commentRss>http://einiverse.eingang.org/2005/10/13/some-magic-with-merlin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
