<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Commavee</title>
	
	<link>http://commavee.com</link>
	<description>from John Minnihan, founder of Freepository.</description>
	<lastBuildDate>Wed, 24 Jun 2009 13:52:40 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<image><link>http://commavee.com</link><url>http://commavee.com/images/commavee-badge.gif</url><title>CommaVee</title></image><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/Commavee" type="application/rss+xml" /><feedburner:browserFriendly>If you are interested in the software development topics covered at CommaVee, you'll want to check out Freepository - we provide Instant Development Infrastructure. http://freepository.com</feedburner:browserFriendly><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>Tech Tip: Multi-line Perl regex pattern match</title>
		<link>http://feedproxy.google.com/~r/Commavee/~3/WL2rvFoNsxE/</link>
		<comments>http://commavee.com/2009/06/18/tech-tip-multi-line-perl-regex-pattern-match/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 16:56:53 +0000</pubDate>
		<dc:creator>John Minnihan</dc:creator>
				<category><![CDATA[General Technology]]></category>
		<category><![CDATA[Source Control]]></category>
		<category><![CDATA[Tech Tips]]></category>

		<guid isPermaLink="false">http://commavee.com/2009/06/18/tech-tip-multi-line-perl-regex-pattern-match/</guid>
		<description><![CDATA[Yesterday, I encountered an analysis issue that appeared to be resolvable with a simple pattern replacement technique.  This turned out to be a bit more complex than estimated, as the pattern spanned multiple lines and I struggled to get the regex constructed to match this use case.
I finally figured it out, and although the overall [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-family:Arial">Yesterday, I encountered an analysis issue that appeared to be resolvable with a simple pattern replacement technique.  This turned out to be a bit more complex than estimated, as the pattern spanned multiple lines and I struggled to get the regex constructed to match this use case.</span></p>
<p><span style="font-family:Arial">I finally figured it out, and although the overall problem remains unresolved (it has many layers), this particular part works well.  My error was in how I viewed use of  /s and /m as mutually exclusive; they aren&#8217;t of course, and I have made that mistake one other time over the years.   I also hadn&#8217;t set the input record separator ($/) to paragraph read mode.   I&#8217;m posting details here to document my specific usage.</span></p>
<p><span style="font-family:Arial">Assumptions:</span></p>
<ul>
<li><span style="font-family:Arial">A literal pattern exists that is present in multiple places in a file</span></li>
<li><span style="font-family:Arial">The literal pattern spans multiple lines in the file</span></li>
<li>
<span style="font-family:Arial">Literal pattern is</span></p>
<ul>
<li><span style="font-family:Courier">Node-path: branches/%%BRANCHES%%</span></li>
<li><span style="font-family:Courier">Node-kind: dir</span></li>
<li><span style="font-family:Courier">Node-action: add</span></li>
</ul>
</li>
<li><span style="font-family:Arial">Perl is being used to read the file and current line of file is <span style="font-family:Courier">$line</span></span></li>
<li><span style="font-family:Arial">Objective is to delete all occurrences of this pattern from the file one <span style="font-family:Courier">$line</span> at a time</span></li>
</ul>
<p><span style="font-family:Arial">Here&#8217;s how I did that:</span></p>
<p>[read the file &amp; crawl thru the lines]</p>
<p><span style="font-family: Courier; font-size: 10pt">$/ = &#8221;;</span></p>
<p><span style="font-family: Courier; font-size: 10pt">$line =~ s/^Node-path:\sbranches\/%%BRANCHES%%.*?^Node-kind:\sdir.*?^Node-action:\sadd.*?//sm;</span></p>
<p><span style="font-family:Arial"><small>Tags: <a rel="tag" href="http://technorati.com/tag/perl">perl</a>, <a rel="tag" href="http://technorati.com/tag/regex">regex</a>, <a rel="tag" href="http://technorati.com/tag/tech-tips">tech-tips</a></small></span></p>
<p><!--pp-thumb-start--><!--PictPress found no dir /usr/local/apache2/htdocs/wordpress/wp-content/uploads/2009/06/tech-tip-multi-line-perl-regex-pattern-match--><!--pp-thumb-end--></p>
<img src="http://commavee.com/?ak_action=api_record_view&id=565&type=feed" alt="" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Commavee?a=WL2rvFoNsxE:CQuZa9TxJwQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Commavee?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Commavee?a=WL2rvFoNsxE:CQuZa9TxJwQ:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Commavee?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Commavee/~4/WL2rvFoNsxE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://commavee.com/2009/06/18/tech-tip-multi-line-perl-regex-pattern-match/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://commavee.com/2009/06/18/tech-tip-multi-line-perl-regex-pattern-match/</feedburner:origLink></item>
		<item>
		<title>Quick file &amp; directory cleanup tools</title>
		<link>http://feedproxy.google.com/~r/Commavee/~3/_I5APJ2nr3w/</link>
		<comments>http://commavee.com/2009/06/15/quick-file-directory-cleanup-tools/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 01:49:19 +0000</pubDate>
		<dc:creator>John Minnihan</dc:creator>
				<category><![CDATA[General Technology]]></category>
		<category><![CDATA[Tech Tips]]></category>

		<guid isPermaLink="false">http://commavee.com/2009/06/15/quick-file-directory-cleanup-tools/</guid>
		<description><![CDATA[Every sys admin needs to quickly free up disk space from time to time, and here are two well-tested scripts I use for exactly this purpose.
The first is a simple command-line use of exec that uses find to construct of list of matching file names, in this case all gzipped tarballs, and then runs the [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-family: Arial">Every sys admin needs to quickly free up disk space from time to time, and here are two well-tested scripts I use for exactly this purpose.</span></p>
<p><span style="font-family: Arial">The first is a simple command-line use of <span style="font-family:Courier">exec</span> that uses <span style="font-family:Courier">find</span> to construct of list of matching file names, in this case all <span style="font-family:Courier">gzipped tarballs</span>, and then runs the <span style="font-family:Courier">rm</span> command on them.  The curly braces <span style="font-family:Courier">&quot;{}&quot;</span> act as a holder for each file name from the list, and the trailing <span style="font-family:Courier">&quot;\&quot;</span> is used to escape the <span style="font-family:Courier">&quot;;&quot;</span>, so that it is passed to <span style="font-family:Courier">find</span> as a literal command terminator.</span></p>
<p><span style="font-family:Courier">#find . -name *.tar.gz -exec rm {} \;</span></p>
<p><span style="font-family:Arial">You may find (pun intended) that you need a slightly more sophisticated way to construct the list of things to remove.  For example,  to recursively delete all files &amp; directories from an arbitrary depth in the file-system, except for special files or directories.  To accomplish this, I use a small Perl utility I wrote that uses the <span style="font-family:Courier">File::Find</span> module.  </span></p>
<p><span style="font-family:Arial">Here is the actual script I use generalized out with a fake <span style="font-family:Courier">$top</span> and<span style="font-family:Courier"> </span></span><span style="font-family:Courier">/some-pattern-to-exclude/.<span style="font-family:Arial"> This script will</span></span><span style="font-family:Arial"> crawl down (actually the direction that </span><span style="font-family:Courier">finddepth</span><span style="font-family:Arial"> goes is <strong>up)</strong> a list of files &amp; directories, and unless the pattern is matched, each file in the directory &amp; then the directory itself is deleted. </span></p>
<p><span style="font-family:Arial">How does this work?  Pretty simple &#8211; the <span style="font-family:Courier">File::Find</span> module loads some routines, one of which is <span style="font-family:Courier">finddepth.</span> The first argument it expects is a routine to run against all files &amp; directories found, starting at the location named in the second argument.  The <span style="font-family:Courier">wanted</span> routine is run on each element in <span style="font-family:Courier">finddepth&#8217;s</span> list &amp; you can use  <span style="font-family:Courier">finddepth&#8217;s</span> variables to make your <span style="font-family:Courier">wanted</span> routine smarter.</span></p>
</p>
<p><img height="341" style="margin: 5px" width="532" alt="" src="http://commavee.com/wp-content/uploads/2009/06/cleanUp1.jpg" /></p>
</p>
<p><small>Tags: <a rel="tag" href="http://technorati.com/tag/tech+tips">tech tips</a>, <a rel="tag" href="http://technorati.com/tag/perl">perl</a>, <a rel="tag" href="http://technorati.com/tag/sysadmin">sysadmin</a></small></p>
<p><!--pp-thumb-start--><!--PictPress found no dir /usr/local/apache2/htdocs/wordpress/wp-content/uploads/2009/06/quick-file-directory-cleanup-tools--><!--pp-thumb-end--></p>
<img src="http://commavee.com/?ak_action=api_record_view&id=560&type=feed" alt="" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Commavee?a=_I5APJ2nr3w:IyoHhx77OIY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Commavee?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Commavee?a=_I5APJ2nr3w:IyoHhx77OIY:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Commavee?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Commavee/~4/_I5APJ2nr3w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://commavee.com/2009/06/15/quick-file-directory-cleanup-tools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://commavee.com/2009/06/15/quick-file-directory-cleanup-tools/</feedburner:origLink></item>
		<item>
		<title>Don’t install TortoiseSVN v 1.6.2?</title>
		<link>http://feedproxy.google.com/~r/Commavee/~3/ZeGB9VW_npE/</link>
		<comments>http://commavee.com/2009/05/20/dont-install-tortoisesvn-v-162/#comments</comments>
		<pubDate>Thu, 21 May 2009 01:27:23 +0000</pubDate>
		<dc:creator>John Minnihan</dc:creator>
				<category><![CDATA[Source Control]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://commavee.com/2009/05/20/dont-install-tortoisesvn-v-162/</guid>
		<description><![CDATA[A friend of mine forwarded this to me a few days ago; I filed it away under &#8216;refer to later&#8217;.   Later just arrived, as I saw someone tweet about a TortoiseSVN issue on Vista.
I&#8217;m relaying this here in the hope that it saves folks the hassle of figuring it out themselves.


I [installed TortoiseSVN 1.6.2] this [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-family:Arial">A friend of mine forwarded this to me a few days ago; I filed it away under &#8216;refer to later&#8217;.   Later just arrived, as I saw someone tweet about a TortoiseSVN issue on Vista.</span></p>
<p><span style="font-family:Arial">I&#8217;m relaying this here in the hope that it saves folks the hassle of figuring it out themselves.</span></p>
</p>
<blockquote>
<p>I [installed TortoiseSVN 1.6.2] this morning, and it just failed silently, After digging out some logs etc, I found the very helpful Microsoft message &quot;Application did not start because its side-by-side configuration was not correct&quot;<br />That has to be one of the most non-enlightening error messages of all time.</p>
<p>I had come across that myself before with ScreenCap, and I was able to figure out that it has some mysterious connection to the .NET framework. However, my work-around was pretty ugly, and not useful in this case.</p>
<p>My recovery for tortoise is that I had to uninstall the new version, restart 3 times to make sure that windows forgot about it it, and then install the older (1.6.1) version.</p>
<p>From previous experience with this side-by-side nonsense, this seems to be Vista specific because I&#8217;ve never seen that message in an XP machine. Interestingly enough, I didn&#8217;t see a bug report on the tortoise site, but I only did a cursory look through the list.</p>
<p><small>Tags: <a rel="tag" href="http://technorati.com/tag/twitter">twitter</a>, <a rel="tag" href="http://technorati.com/tag/tortoisesvn">tortoisesvn</a>, <a rel="tag" href="http://technorati.com/tag/vista">vista</a></small></p>
</blockquote>
<p><!--pp-thumb-start--><!--PictPress found no dir /usr/local/apache2/htdocs/wordpress/wp-content/uploads/2009/05/dont-install-tortoisesvn-v-162--><!--pp-thumb-end--></p>
<img src="http://commavee.com/?ak_action=api_record_view&id=559&type=feed" alt="" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Commavee?a=ZeGB9VW_npE:xxPjMB62A9Y:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Commavee?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Commavee?a=ZeGB9VW_npE:xxPjMB62A9Y:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Commavee?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Commavee/~4/ZeGB9VW_npE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://commavee.com/2009/05/20/dont-install-tortoisesvn-v-162/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://commavee.com/2009/05/20/dont-install-tortoisesvn-v-162/</feedburner:origLink></item>
		<item>
		<title>Glue Conference 2009</title>
		<link>http://feedproxy.google.com/~r/Commavee/~3/_vNCVvWq_sc/</link>
		<comments>http://commavee.com/2009/05/16/glue-conference-2009/#comments</comments>
		<pubDate>Sat, 16 May 2009 15:58:12 +0000</pubDate>
		<dc:creator>John Minnihan</dc:creator>
				<category><![CDATA[Business Development]]></category>

		<guid isPermaLink="false">http://commavee.com/2009/05/16/glue-conference-2009/</guid>
		<description><![CDATA[The inaugural Glue Conference was held this week &#38; it was, as expected, fantastic.
When I saw Eric last November at Defrag, he told me he was starting another conference.  My one sentence response was &#8216;let me know how I can help&#8217;.  He promised he would.
Fast forward a few months and there I was at Glue [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-family:Arial">The inaugural Glue Conference was held this week &amp; it was, as expected, fantastic.</span></p>
<p><span style="font-family:Arial">When I saw Eric last November at Defrag, he told me he was starting another conference.  My one sentence response was &#8216;let me know how I can help&#8217;.  He promised he would.</span></p>
<p><span style="font-family:Arial">Fast forward a few months and there I was at Glue as both a sponsor and panel moderator.  From a business perspective, it was time &amp; money well spent, as I had the opportunity to meet &amp; socialize with some truly amazing technologists &amp; entrepreneurs.   The venue at the Hyatt is very well suited for conferences, and in the heart of downtown Denver, is easily accessible via taxi &amp; light rail.</span></p>
<p><span style="font-family:Arial">I&#8217;ll leave the deep analysis to others for now, but I do want to share with you the quote I left for Eric on the post-conference survey.  I think it speaks for itself:</span></p>
<blockquote>
<p><span style="font-family:Arial">&quot;What an amazing group of people. Where else could I have had a one-on-one conversation with Bob Frankston while Mitch Kapor was standing less than 20 feet away, after having had drinks the evening before with a group that included an America&#8217;s Cup winner (hey T.A.!).&quot;</span></p>
</blockquote>
<p><small>Tags: <a rel="tag" href="http://technorati.com/tag/gluecon">gluecon</a>, <a rel="tag" href="http://technorati.com/tag/defrag">defrag</a></small></p>
<p><!--pp-thumb-start--><!--PictPress found no dir /usr/local/apache2/htdocs/wordpress/wp-content/uploads/2009/05/glue-conference-2009--><!--pp-thumb-end--></p>
<img src="http://commavee.com/?ak_action=api_record_view&id=558&type=feed" alt="" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Commavee?a=_vNCVvWq_sc:7OqFEXPmjcc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Commavee?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Commavee?a=_vNCVvWq_sc:7OqFEXPmjcc:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Commavee?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Commavee/~4/_vNCVvWq_sc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://commavee.com/2009/05/16/glue-conference-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://commavee.com/2009/05/16/glue-conference-2009/</feedburner:origLink></item>
		<item>
		<title>Astroturfing</title>
		<link>http://feedproxy.google.com/~r/Commavee/~3/8uhiV4Lt_PQ/</link>
		<comments>http://commavee.com/2009/04/10/astroturfing/#comments</comments>
		<pubDate>Fri, 10 Apr 2009 13:52:53 +0000</pubDate>
		<dc:creator>John Minnihan</dc:creator>
				<category><![CDATA[Blogging]]></category>

		<guid isPermaLink="false">http://commavee.com/2009/04/10/astroturfing/</guid>
		<description><![CDATA[Please don&#8217;t waste your time &#8211; and mine &#8211; astroturfing here.  I&#8217;ll just delete the comments as soon as I see them.
I really, really welcome genuine comments on any of the posts I&#8217;ve ever written (the ajax logfile tailer  &#38; the elliptical mileage calculation posts are especially popular), and I read them all.  But [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-family: Arial; font-size: 11pt">Please don&#8217;t waste your time &#8211; and mine &#8211; astroturfing here.  I&#8217;ll just delete the comments as soon as I see them.</span></p>
<p><span style="font-family: Arial; font-size: 11pt">I really, really welcome genuine comments on any of the posts I&#8217;ve ever written (the<a href="http://commavee.com/2007/04/13/ajax-logfile-tailer-viewer/"> ajax logfile tailer </a> &amp; the<a href="http://commavee.com/2008/01/13/convert-nordictrack-revolutions-to-miles/"> elliptical mileage calculation</a> posts are especially popular), and I read them all.  But the moment I determine you&#8217;re fronting a comment for advertising purposes, it gets deleted without a second thought.</span></p>
<p><span style="font-family: Arial; font-size: 11pt">Save yourself the trouble, really.</span></p>
<p><small>Tags: <a rel="tag" href="http://technorati.com/tag/astroturfing">astroturfing</a></small></p>
<p><!--pp-thumb-start--><!--PictPress found no dir /usr/local/apache2/htdocs/wordpress/wp-content/uploads/2009/04/astroturfing--><!--pp-thumb-end--></p>
<img src="http://commavee.com/?ak_action=api_record_view&id=557&type=feed" alt="" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Commavee?a=8uhiV4Lt_PQ:Em888BLQRBs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Commavee?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Commavee?a=8uhiV4Lt_PQ:Em888BLQRBs:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Commavee?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Commavee/~4/8uhiV4Lt_PQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://commavee.com/2009/04/10/astroturfing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://commavee.com/2009/04/10/astroturfing/</feedburner:origLink></item>
	</channel>
</rss>
