<?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/"
	>

<channel>
	<title>Sean Blanton</title>
	<atom:link href="http://openmakesoftware.com/mavericks/feed/" rel="self" type="application/rss+xml" />
	<link>http://openmakesoftware.com/mavericks</link>
	<description>Best Practices and Technology in Software Delivery</description>
	<pubDate>Mon, 16 Nov 2009 18:06:28 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>New Post on Agile Methods by Sean Blanton</title>
		<link>http://openmakesoftware.com/mavericks/2009/11/16/new-post-on-agile-methods-by-sean-blanton/</link>
		<comments>http://openmakesoftware.com/mavericks/2009/11/16/new-post-on-agile-methods-by-sean-blanton/#comments</comments>
		<pubDate>Mon, 16 Nov 2009 18:06:28 +0000</pubDate>
		<dc:creator>Sean Blanton</dc:creator>
		
		<category><![CDATA[OpenMake]]></category>

		<guid isPermaLink="false">http://openmakesoftware.com/mavericks/?p=130</guid>
		<description><![CDATA[Don&#8217;t forget my blog has moved!
Check out my new post on comparing build management in Eclipse C and Java development tools, here:
Agile: A Set of Common Sense Optimizations
]]></description>
			<content:encoded><![CDATA[<p>Don&#8217;t forget my blog has moved!</p>
<p>Check out my new post on comparing build management in Eclipse C and Java development tools, here:</p>
<p><a href="http://openmakesoftware.com/blogs/seanblanton/2009/11/16/agile-a-set-of-common-sense-optimizations-2/" target="_self">Agile: A Set of Common Sense Optimizations</a></p>
<img src="http://openmakesoftware.com/mavericks/wp-content/plugins/pixelstats/trackingpixel.php?post_id=130&ts=1268627288" style="display:none;" alt="pixelstats trackingpixel"/>]]></content:encoded>
			<wfw:commentRss>http://openmakesoftware.com/mavericks/2009/11/16/new-post-on-agile-methods-by-sean-blanton/feed/</wfw:commentRss>
		</item>
		<item>
		<title>New Post by Sean Blanton</title>
		<link>http://openmakesoftware.com/mavericks/2009/06/04/new-post-by-sean-blanton/</link>
		<comments>http://openmakesoftware.com/mavericks/2009/06/04/new-post-by-sean-blanton/#comments</comments>
		<pubDate>Thu, 04 Jun 2009 18:33:03 +0000</pubDate>
		<dc:creator>Sean Blanton</dc:creator>
		
		<category><![CDATA[OpenMake]]></category>

		<guid isPermaLink="false">http://openmakesoftware.com/mavericks/?p=128</guid>
		<description><![CDATA[Don&#8217;t forget my blog has moved!
Check out my new post on comparing build management in Eclipse C and Java development tools, here:
Comparing Build Management in Eclipse CDT and JDT
]]></description>
			<content:encoded><![CDATA[<p>Don&#8217;t forget my blog has moved!</p>
<p>Check out my new post on comparing build management in Eclipse C and Java development tools, here:</p>
<p><a title="Comparing Build Management in CDT and JDT" href="http://openmakesoftware.com/blogs/seanblanton/2009/06/04/comparing-build-management-in-eclipse-cdt-and-jdt/" target="_self">Comparing Build Management in Eclipse CDT and JDT</a></p>
<img src="http://openmakesoftware.com/mavericks/wp-content/plugins/pixelstats/trackingpixel.php?post_id=128&ts=1268627288" style="display:none;" alt="pixelstats trackingpixel"/>]]></content:encoded>
			<wfw:commentRss>http://openmakesoftware.com/mavericks/2009/06/04/new-post-by-sean-blanton/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Blogs Spreading Out</title>
		<link>http://openmakesoftware.com/mavericks/2009/05/08/blogs-spreading-out/</link>
		<comments>http://openmakesoftware.com/mavericks/2009/05/08/blogs-spreading-out/#comments</comments>
		<pubDate>Fri, 08 May 2009 21:22:50 +0000</pubDate>
		<dc:creator>Sean Blanton</dc:creator>
		
		<category><![CDATA[OpenMake]]></category>

		<guid isPermaLink="false">http://openmakesoftware.com/mavericks/?p=125</guid>
		<description><![CDATA[This blog was technically for all the OM Services folk to blog, but since I did 95% of the posts, I went ahead and took it over. Selvi Dayabaran, Adam Gabor and my blogs are now splitting off from this site to the following respective URL&#8217;s:
Selvi&#8217;s Blog
Adam Gabor&#8217;s Blog
Sean Blanton&#8217;s Blog
The content up to this [...]]]></description>
			<content:encoded><![CDATA[<p>This blog was technically for all the OM Services folk to blog, but since I did 95% of the posts, I went ahead and took it over. Selvi Dayabaran, Adam Gabor and my blogs are now splitting off from this site to the following respective URL&#8217;s:</p>
<p><a href="http://www.openmakesoftware.com/blogs/selvidayabaran" target="_blank">Selvi&#8217;s Blog</a></p>
<p><a href="http://www.openmakesoftware.com/blogs/adamgabor" target="_blank">Adam Gabor&#8217;s Blog</a></p>
<p><a href="http://www.openmakesoftware.com/blogs/seanblanton" target="_blank">Sean Blanton&#8217;s Blog</a></p>
<p>The content up to this point will appear in both places for convenience. Please update your RSS feeds if you are using them. See you there!</p>
<p><a href="http://www.twitter.com/seanblanton">Sean</a></p>
<img src="http://openmakesoftware.com/mavericks/wp-content/plugins/pixelstats/trackingpixel.php?post_id=125&ts=1268627288" style="display:none;" alt="pixelstats trackingpixel"/>]]></content:encoded>
			<wfw:commentRss>http://openmakesoftware.com/mavericks/2009/05/08/blogs-spreading-out/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Build Management 2.0 - Messaging</title>
		<link>http://openmakesoftware.com/mavericks/2009/04/04/build-management-20-messaging/</link>
		<comments>http://openmakesoftware.com/mavericks/2009/04/04/build-management-20-messaging/#comments</comments>
		<pubDate>Sat, 04 Apr 2009 00:43:01 +0000</pubDate>
		<dc:creator>Sean Blanton</dc:creator>
		
		<category><![CDATA[.NET]]></category>

		<category><![CDATA[Build Management]]></category>

		<category><![CDATA[Eclipse]]></category>

		<category><![CDATA[JBoss]]></category>

		<category><![CDATA[Meister]]></category>

		<category><![CDATA[OpenMake]]></category>

		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://openmakesoftware.com/mavericks/2009/04/04/build-management-20-messaging/</guid>
		<description><![CDATA[Continuing my last post about using a service such as Twitter (or Yammer or equivalent) to create &#8220;pull&#8221; notifications that serve the individual, I&#8217;ve set up a Meister workflow to update the status of the Twitter handle @builds after a successful build.
I&#8217;ve set up a JBoss build in Meister involving a web service and consumer. [...]]]></description>
			<content:encoded><![CDATA[<p>Continuing my last <a href="http://openmakesoftware.com/mavericks/2009/03/26/twitter-for-web-20-build-notifications/" target="_blank">post</a> about using a service such as <a href="http://www.twitter.com" target="_blank">Twitter</a> (or <a href="http://www.yammer.com" target="_blank">Yammer</a> or equivalent) to create &#8220;pull&#8221; notifications that serve the individual, I&#8217;ve set up a <a href="http://www.openmakesoftware.com/build-automation/" target="_blank">Meister</a> workflow to update the status of the Twitter handle <a href="http://www.twitter.com/builds" target="_blank">@builds</a> after a successful build.</p>
<p>I&#8217;ve set up a <a href="http://www.jboss.com/" target="_blank">JBoss</a> build in Meister involving a web service and consumer. This was originally developed in <a href="http://www.myeclipseide.com" target="_blank">MyEclipse</a>, but the Meister Eclipse plug-in allows the native Eclipse build to be externalized (a better approach than Maven). So, I am just dealing with that, which simulates a development continuous integration or QA build.</p>
<p><a href="http://openmakesoftware.com/mavericks/wp-content/uploads/2009/04/image.png"><img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="208" alt="image" src="http://openmakesoftware.com/mavericks/wp-content/uploads/2009/04/image-thumb.png" width="244" border="0" /></a> </p>
<p>I have a workflow that has the two main Meister build tasks, &#8220;Generate Build Control File&#8221;, and &#8220;Build Targets&#8221;. The first gathers local and server metadata consolidating that into something like a makefile or Ant script depending on your perspective. The second is similar to running make or Ant.</p>
<p>This is a simple workflow to illustrate our messaging technique. Normally, we&#8217;d use an email notification task, but I&#8217;ve replaced that with an activity called &#8220;Tweet&#8221;. This calls a simple Perl script, called omtweet.pl that uses <a href="http://search.cpan.org/dist/Net-Twitter/" target="_blank">Net::Twitter</a>. Here is why we use Perl a lot - the code is simple to update your Twitter status:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="perl" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">use</span> Net<span style="color: #339933;">::</span><span style="color: #006600;">Twitter</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$twit</span> <span style="color: #339933;">=</span> Net<span style="color: #339933;">::</span><span style="color: #006600;">Twitter</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">new</span><span style="color: #009900;">&#40;</span>
  <span style="color: #009900;">&#123;</span>username <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">&quot;myuser&quot;</span><span style="color: #339933;">,</span> password <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">&quot;mypass&quot;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
&nbsp;
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$result</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$twit</span><span style="color: #339933;">-&gt;</span><span style="color: #006600;">update</span><span style="color: #009900;">&#40;</span>
  <span style="color: #009900;">&#123;</span>status <span style="color: #339933;">=&gt;</span> <span style="color: #ff0000;">&quot;My current Status&quot;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>I created a slightly more elaborate script that takes arguments and passes in a &#8220;Build Successful&#8221; message. If Java is your thing, look at Davanum Srinivas&#8217; <a href="http://davanum.wordpress.com/2009/03/16/postupdate-twitter-status-snippet-from-java/" target="_blank">post</a> and for .NET, there is <a href="http://rareedge.com/twitteroo/blog/2007/02/10/twitter-net-api/" target="_blank">Twitteroo</a>.</p>
<p>Next, I run the build and we see the steps complete in real time on the workflow monitor.</p>
<p><a href="http://openmakesoftware.com/mavericks/wp-content/uploads/2009/04/image1.png"><img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="201" alt="image" src="http://openmakesoftware.com/mavericks/wp-content/uploads/2009/04/image-thumb1.png" width="333" border="0" /></a> </p>
</p>
<p>The key is the last step, of course:</p>
<p><a href="http://openmakesoftware.com/mavericks/wp-content/uploads/2009/04/image2.png"><img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="26" alt="image" src="http://openmakesoftware.com/mavericks/wp-content/uploads/2009/04/image-thumb2.png" width="336" border="0" /></a> </p>
<p>And, the proof is in the pudding:</p>
<p><a href="http://openmakesoftware.com/mavericks/wp-content/uploads/2009/04/image3.png"><img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="159" alt="image" src="http://openmakesoftware.com/mavericks/wp-content/uploads/2009/04/image-thumb3.png" width="244" border="0" /></a> </p>
<p>I used the $(JOB_NUMBER) macro in Meister to get an incremental build number passed to omtweet.pl. Of course, following @builds and choosing device updates, I got a text message on my cell phone. I tried to get a picture of my cell phone with the message, but I haven&#8217;t worked out how to do that yet and it turned out terrible.</p>
<p>Well, this is a simple example, with a lot of possibilities. Meister wraps all build output in HTML and pushes to a web server. I&#8217;d like to include a shortened URL for that in the update. Currently we don&#8217;t have anything outside of a firewall, maybe I&#8217;ll try Yammer for that.</p>
<p>If you have any other suggestions, let me know. <a href="http://www.twitter.com/seanblanton" target="_blank">@seanblanton</a></p>
<img src="http://openmakesoftware.com/mavericks/wp-content/plugins/pixelstats/trackingpixel.php?post_id=116&ts=1268627288" style="display:none;" alt="pixelstats trackingpixel"/>]]></content:encoded>
			<wfw:commentRss>http://openmakesoftware.com/mavericks/2009/04/04/build-management-20-messaging/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Twitter for Web 2.0 Build Notifications</title>
		<link>http://openmakesoftware.com/mavericks/2009/03/26/twitter-for-web-20-build-notifications/</link>
		<comments>http://openmakesoftware.com/mavericks/2009/03/26/twitter-for-web-20-build-notifications/#comments</comments>
		<pubDate>Thu, 26 Mar 2009 16:46:15 +0000</pubDate>
		<dc:creator>Sean Blanton</dc:creator>
		
		<category><![CDATA[Agile]]></category>

		<category><![CDATA[Build Tools]]></category>

		<category><![CDATA[Eclipse]]></category>

		<category><![CDATA[Meister]]></category>

		<category><![CDATA[OpenMake]]></category>

		<category><![CDATA[Sean Blanton]]></category>

		<category><![CDATA[Social Networking]]></category>

		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://openmakesoftware.com/mavericks/2009/03/26/twitter-for-web-20-build-notifications/</guid>
		<description><![CDATA[There has been some talk around using physical, colored, lamps to notify build results (pragmatic automation, Carlos Sanchez, Richard Durnall, Alberto Savoia).
The idea comes from Lean Manufacturing principles developed by Toyota applied to software development. An &#8220;andon&#8221; paper lamp was a way to let other workers know there was a problem on the assembly line. [...]]]></description>
			<content:encoded><![CDATA[<p>There has been some talk around using physical, colored, lamps to notify build results (<a href="http://www.pragmaticautomation.com/cgi-bin/pragauto.cgi/Monitor/Devices/BubbleBubbleBuildsInTrouble.rdoc" target="_blank">pragmatic automation</a>, <a href="http://www.jroller.com/carlossg/entry/using_lava_lamps_for_continuous" target="_blank">Carlos Sanchez</a>, <a href="http://www.richarddurnall.com/?page_id=3" target="_blank">Richard Durnall</a>, <a href="http://www.artima.com/weblogs/viewpost.jsp?thread=67492" target="_blank">Alberto Savoia</a>).</p>
<p>The idea comes from Lean Manufacturing principles developed by Toyota applied to software development. An &#8220;andon&#8221; paper lamp was a way to let other workers know there was a problem on the assembly line. The idea for builds is that while a build is running, an amber light flashes, letting other developers know not to run a build, a green light signifies the last build was completed successfully, and a red light means the build is broken and needs to be fixed.</p>
<p>While I&#8217;m sure it is an entertaining exercise to set this up, some simple software automation could achieve the same results, and it has obvious faults, like what if I am working from home?</p>
<p>Email is the de facto standard for build notification. There is a hardcoded mailing list somewhere and you get the email, even if you don&#8217;t want it, and you have to go and check your mail to receive it.</p>
<p><a href="http://www.twitter.com" target="_blank">Twitter</a>, on the other hand, puts the user in control of the notifications in true Web 2.0 fashion. Tweets are also ideal for receiving notifications via cell phone, where email is generally not. Consider the following cases:</p>
<ul>
<li>I can follow the build when I want, and unfollow when I want. No going to an admin to remove me from the list. </li>
<li>I can turn on device updates so I get an SMS message about the result (maybe an important release is coming up), or I can turn off device updates, say, when I&#8217;m on vacation. </li>
<li>I can retweet (forward) the build notification. </li>
<li>You can put links in the message. Meister uploads all build logs in HTML format to a web server and we would include the link to that. </li>
</ul>
<ul>About a year ago, I used Meister with a post-build activity to Tweet the build result after a build. The activity was a simple Perl script using <a href="http://search.cpan.org/dist/Net-Twitter/lib/Net/Twitter.pm" target="_blank">Net::Twitter</a>. Let&#8217;s just say this experiment sort of fell on deaf ears.</ul>
<p>Now I&#8217;m ready to roll with this again and you can follow my progress. I had created a Twitter account, <a href="http://twitter.com/builds" target="_blank">@builds</a>, for this purpose. In a day or two, you&#8217;ll see some tweets from that guy from one of my builds.</p>
<p>I&#8217;m interested in what other people have to say. Meister already uses Eclipse RCP as it&#8217;s front end, but most other build tools are still command-line and in the 1970&#8217;s. Let&#8217;s bring build management tools into the 21st century with Web 2.0 features.</p>
<img src="http://openmakesoftware.com/mavericks/wp-content/plugins/pixelstats/trackingpixel.php?post_id=105&ts=1268627288" style="display:none;" alt="pixelstats trackingpixel"/>]]></content:encoded>
			<wfw:commentRss>http://openmakesoftware.com/mavericks/2009/03/26/twitter-for-web-20-build-notifications/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Build Problems are ScrumButs</title>
		<link>http://openmakesoftware.com/mavericks/2009/03/17/build-problems-are-scrumbuts/</link>
		<comments>http://openmakesoftware.com/mavericks/2009/03/17/build-problems-are-scrumbuts/#comments</comments>
		<pubDate>Tue, 17 Mar 2009 22:03:23 +0000</pubDate>
		<dc:creator>Sean Blanton</dc:creator>
		
		<category><![CDATA[Agile]]></category>

		<category><![CDATA[Build Management]]></category>

		<category><![CDATA[Coding]]></category>

		<category><![CDATA[Continuous Integration]]></category>

		<category><![CDATA[Meister]]></category>

		<category><![CDATA[OpenMake]]></category>

		<category><![CDATA[Scrum]]></category>

		<category><![CDATA[Sean Blanton]]></category>

		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://openmakesoftware.com/mavericks/2009/03/17/build-problems-are-scrumbuts/</guid>
		<description><![CDATA[In the Agile Scrum framework, a ScrumBut is a &#8220;reason why [you] can&#8217;t take full advantage of Scrum to solve the problems and realize the benefits.&#8221; Clearly, build problems are traditionally one of the biggest ScrumButs. Meister removes the scrum butt by taking variables out of the hands of operators managing the builds.
Ask for a [...]]]></description>
			<content:encoded><![CDATA[<p>In the Agile Scrum framework, a ScrumBut is a &#8220;<a href="http://www.controlchaos.com/" target="_blank">reason why [you] can&#8217;t take full advantage of Scrum to solve the problems and realize the benefits</a>.&#8221; Clearly, build problems are traditionally one of the biggest ScrumButs. Meister removes the scrum butt by taking variables out of the hands of operators managing the builds.</p>
<p>Ask for a build and get a build. Ask for continuous integration and test automation and coalescence and get it with Meister. Product owners should not be losing cycles to debugging builds, tweaking parameters to get different types of builds or in resolving confusion about what did or did not happen in a build or continuous integration workflow.</p>
<p>The client-server architecture and highly reusable build and workflow metadata extend the ScrumBut elimination to all developer machines and continuous integration build servers, creating a highly consistent build. Team members working on these different machines know exactly what to expect.</p>
<p>Since they know what to expect from the build, they can focus on resolving actual integration issues and testing rather than trying to make the build work in a consistent manner.</p>
<img src="http://openmakesoftware.com/mavericks/wp-content/plugins/pixelstats/trackingpixel.php?post_id=104&ts=1268627288" style="display:none;" alt="pixelstats trackingpixel"/>]]></content:encoded>
			<wfw:commentRss>http://openmakesoftware.com/mavericks/2009/03/17/build-problems-are-scrumbuts/feed/</wfw:commentRss>
		</item>
		<item>
		<title>OpenMake Meister Wins Jolt Award for Excellence</title>
		<link>http://openmakesoftware.com/mavericks/2009/03/12/openmake-meister-wins-jolt-award-for-excellence/</link>
		<comments>http://openmakesoftware.com/mavericks/2009/03/12/openmake-meister-wins-jolt-award-for-excellence/#comments</comments>
		<pubDate>Thu, 12 Mar 2009 20:05:53 +0000</pubDate>
		<dc:creator>Sean Blanton</dc:creator>
		
		<category><![CDATA[Build Forensics]]></category>

		<category><![CDATA[Build Management]]></category>

		<category><![CDATA[Build Tools]]></category>

		<category><![CDATA[Meister]]></category>

		<category><![CDATA[OpenMake]]></category>

		<category><![CDATA[Sean Blanton]]></category>

		<guid isPermaLink="false">http://openmakesoftware.com/mavericks/2009/03/12/openmake-meister-wins-jolt-award-for-excellence/</guid>
		<description><![CDATA[With our third nomination, we won the Jolt Award for product excellences in the change and configuration management category. You can view the announcement here.

 
]]></description>
			<content:encoded><![CDATA[<p>With our third nomination, we won the Jolt Award for product excellences in the change and configuration management category. You can view the announcement <a href="http://news.prnewswire.com/DisplayReleaseContent.aspx?ACCT=104&amp;STORY=/www/story/03-11-2009/0004987197&amp;EDATE=" target="_blank">here</a>.<span class="sbmLink"><br />
<span style="font-family: Verdana; -webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px;"><br />
</span> </span></p>
<img src="http://openmakesoftware.com/mavericks/wp-content/plugins/pixelstats/trackingpixel.php?post_id=98&ts=1268627288" style="display:none;" alt="pixelstats trackingpixel"/>]]></content:encoded>
			<wfw:commentRss>http://openmakesoftware.com/mavericks/2009/03/12/openmake-meister-wins-jolt-award-for-excellence/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Phurnace Software Java Deployment Tool</title>
		<link>http://openmakesoftware.com/mavericks/2009/03/06/phurnace-software-java-deployment-tool/</link>
		<comments>http://openmakesoftware.com/mavericks/2009/03/06/phurnace-software-java-deployment-tool/#comments</comments>
		<pubDate>Fri, 06 Mar 2009 21:56:49 +0000</pubDate>
		<dc:creator>Sean Blanton</dc:creator>
		
		<category><![CDATA[Application Environments]]></category>

		<category><![CDATA[Blogging]]></category>

		<category><![CDATA[Blogroll]]></category>

		<category><![CDATA[Build Management]]></category>

		<category><![CDATA[Deployment]]></category>

		<category><![CDATA[JBoss]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[Meister]]></category>

		<category><![CDATA[Mojo]]></category>

		<category><![CDATA[OpenMake]]></category>

		<category><![CDATA[Release Management]]></category>

		<category><![CDATA[WebSphere]]></category>

		<guid isPermaLink="false">http://openmakesoftware.com/mavericks/2009/03/06/phurnace-software-java-deployment-tool/</guid>
		<description><![CDATA[While we have managed Jboss and WebSphere deployments using Meister and Mojo and we frequently manage resources for different target server environments through build, here is a company that focuses on both of those things.
I posted a comment about the reluctance of script writers to give up their scripting on their blog here.
]]></description>
			<content:encoded><![CDATA[<p>While we have managed Jboss and WebSphere deployments using Meister and Mojo and we frequently manage resources for different target server environments through build, here is a <a href="http://www.phurnace.com/" target="_blank">company</a> that focuses on both of those things.</p>
<p>I posted a comment about the reluctance of script writers to give up their scripting on their blog <a href="http://www.phurnace.com/blog/blog-title-click-let-me-get-this-straight.-you-want-a-scripting-framework-2.html" target="_blank">here</a>.</p>
<img src="http://openmakesoftware.com/mavericks/wp-content/plugins/pixelstats/trackingpixel.php?post_id=97&ts=1268627288" style="display:none;" alt="pixelstats trackingpixel"/>]]></content:encoded>
			<wfw:commentRss>http://openmakesoftware.com/mavericks/2009/03/06/phurnace-software-java-deployment-tool/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Overclocking Meister and Mojo Builds and Workflows</title>
		<link>http://openmakesoftware.com/mavericks/2009/03/05/overclocking-meister-and-mojo-builds-and-workflows/</link>
		<comments>http://openmakesoftware.com/mavericks/2009/03/05/overclocking-meister-and-mojo-builds-and-workflows/#comments</comments>
		<pubDate>Thu, 05 Mar 2009 15:23:31 +0000</pubDate>
		<dc:creator>Sean Blanton</dc:creator>
		
		<category><![CDATA[Application Environments]]></category>

		<category><![CDATA[Build Management]]></category>

		<category><![CDATA[Build Tools]]></category>

		<category><![CDATA[Consulting]]></category>

		<category><![CDATA[Deployment]]></category>

		<category><![CDATA[File Control Tools]]></category>

		<category><![CDATA[JBoss]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[Meister]]></category>

		<category><![CDATA[Mojo]]></category>

		<category><![CDATA[OpenMake]]></category>

		<category><![CDATA[Release Management]]></category>

		<category><![CDATA[SCM Strategy]]></category>

		<guid isPermaLink="false">http://openmakesoftware.com/mavericks/2009/03/05/overclocking-meister-and-mojo-builds-and-workflows/</guid>
		<description><![CDATA[It is just plain fun to run parallel workflows and builds and watch the activities and build steps light up the workflow monitor in real time like a Christmas tree. See this flash demo to see what I mean.
As customers go to machines with more and more cores, fewer machines are needed in the application [...]]]></description>
			<content:encoded><![CDATA[<p>It is just plain fun to run parallel workflows and builds and watch the activities and build steps light up the workflow monitor in real time like a Christmas tree. See <a title="Flash demo showing multi-threaded builds" href="http://www.openmakesoftware.com/flashdemo/openmake-remote-workflows/openmake-remote-workflows.html" target="_blank">this</a> flash demo to see what I mean.</p>
<p>As customers go to machines with more and more cores, fewer machines are needed in the application lifecycle infrastructure, particularly for builds and code retrievals - the most resource intensive functions. This is helping to simplify the infrastructure, reduce maintenance and administration and drive down costs.</p>
<p>Several of our customers are running around 5000 builds and non-build workflows per month on two machines. The primary reason for two machines, in fact, is for disaster recovery, and the goal is to run both machines at less than half capacity so that in the event that one machine (or datacenter) fails, all the current capacity can be run as a contingency on the one machine that&#8217;s left.</p>
<p>Thread control is very simple with Meister and Mojo. Both use the <em>omsubmit</em> dependency manager program to handle this. Meister&#8217;s <em>om</em> program translates build events into workflow steps using omsubmit. The OMSUBMIT_MAX_USER_PROC value sets the maximum allowed number of threads.</p>
<p>You might think that if you are running dual, quad-core build machines that you should set the max threads at 8. However, Meister posts build operations to one thread and the associated logging operation to another. Compile operations notoriously use a lot of memory and CPU resources, but the logging operation posts to a server and waits for the operation to complete. There is really no disadvantage to setting the max threads higher than 16 in this case, so go ahead and do it.</p>
<p>As a non-build workflow example, I worked on JBoss deployments to 48 Linux machines. The workflow was parallelized into 48 activities each of which deployed to a single machine in parallel. The deployment activity was largely a remote execute operation that extracted archives on the remote machine. The extraction took about a second for a medium sized application. Again, this is a waiting situation where machine resources are essentially idle while the thread is in use, so use more threads. The machine was a dual, dual-core build machine and we set OMSUBMIT_MAX_USER_PROC to 50.</p>
<p>Watching the workflow monitor as the deployment ran, we could see roughly half of the machines light up (meaning actively running) at any one time and the entire deployment process synchronized all 48 machines in a little over two seconds.</p>
<p>So, don&#8217;t simply match your machine&#8217;s CPU threading capabilities - overclock! Aim high for max threads and try to determine where your performance is optimized. I&#8217;d love to provide you with some metrics as a function of thread count, but usually once something is working it&#8217;s on to the next project. I barely have enough time to blog!</p>
<img src="http://openmakesoftware.com/mavericks/wp-content/plugins/pixelstats/trackingpixel.php?post_id=96&ts=1268627288" style="display:none;" alt="pixelstats trackingpixel"/>]]></content:encoded>
			<wfw:commentRss>http://openmakesoftware.com/mavericks/2009/03/05/overclocking-meister-and-mojo-builds-and-workflows/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Check Out Code Post-Commit - Not Pre-Build</title>
		<link>http://openmakesoftware.com/mavericks/2009/02/17/check-out-code-post-commit-not-pre-build/</link>
		<comments>http://openmakesoftware.com/mavericks/2009/02/17/check-out-code-post-commit-not-pre-build/#comments</comments>
		<pubDate>Tue, 17 Feb 2009 05:34:35 +0000</pubDate>
		<dc:creator>Sean Blanton</dc:creator>
		
		<category><![CDATA[Build Management]]></category>

		<category><![CDATA[Build Tools]]></category>

		<category><![CDATA[CA Harvest]]></category>

		<category><![CDATA[Consulting]]></category>

		<category><![CDATA[File Control Tools]]></category>

		<category><![CDATA[Meister]]></category>

		<category><![CDATA[OpenMake]]></category>

		<category><![CDATA[Release Management]]></category>

		<category><![CDATA[SCM Strategy]]></category>

		<guid isPermaLink="false">http://openmakesoftware.com/mavericks/2009/02/17/check-out-code-post-commit-not-pre-build/</guid>
		<description><![CDATA[It&#8217;s very common to have a code check-out step be part of an integration build. Far better it is to not check out code before a build. What? How is that possible?
Let me explain, Fred. The simple approach most of us take (and have to take when getting things started) has developers commit, commit, commit, [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s very common to have a code check-out step be part of an integration build. Far better it is to not check out code before a build. What? How is that possible?</p>
<p>Let me explain, Fred. The simple approach most of us take (and have to take when getting things started) has developers commit, commit, commit, and when it is time to deploy, check out the code, do a build, and then deploy the application. There is room here for both problems and optimizations. Doing a full check out of the code tree is more costly in terms of time than checking out only what has changed. Updating the code tree with a single commit is less costly than updating with a large number of commits.</p>
<p>You may be limited by the technology in-hand and how much you&#8217;ve invested in learning the technology and possibly customizing it. For example, if your file control tool can only do a full check out of a source tree, or that&#8217;s the only command you had time to implement in order to meet the deadline, or you don&#8217;t trust your tool to do incremental updates, then you are basically running the longest builds possible.</p>
<p>On the other hand, if you could update the code tree every time a developer does a commit with only the changed files, then you are ready to execute a build at any moment. This requires some deft manipulation of your file control tool, and that&#8217;s why you don&#8217;t see it more often.</p>
<p>You might think &#8220;continuous integration&#8221; will take care of this. Developer commits, update checked out, build is run. However, you may end up with a build, test execution and deployment that takes longer than the typical time between developer commits. You still have to do incremental updates and it only solves the problem in cases with very low developer activity.</p>
<p>I&#8217;d like to point out one tool that does an excellent job of post-commit code checkout, CA Software Change Manager for Distributed. CA SCM (for short) is the tool, formerly known as Harvest, from the company formerly known as Computer Associates. CA SCM is a highly scalable (1000&#8217;s of developers) file control tool with a great lifecycle process model. We at OpenMake Software still have our very first customer still using OpenMake/Meister with CA Harvest/SCM after 11 years. While we have a reseller arrangement with CA, our partnership with CA in services has extended to 14 years.</p>
<p>About 10 years ago, OpenMake Software developed an integration with the then, Platinum Technologies&#8217; Harvest product, modeled after the now dead Computer Associates product, Endevor Workstation, that had an excellent post-action code tree update. (Endevor for z/OS, a.k.a CA SCM for Z/OS is still very popular and has a similar functionality called &#8216;output libraries&#8217; - following all this?) Our integration had the horrific name, &#8216;Har-refresh&#8217;.</p>
<p>As product partners, we finally transitioned Har-refresh from an external add-on to CA who have turned it into a core functionality of the product, called Hrefresh (a better name.) Rather than simply a post-commit check out, HRefresh updates the code tree after any action that updates a dynamic code view. This includes, renames, deletions, commits and code promotions and demotions. We like this because CA SCM does all the work and we cherry-pick sets of up-to-date code trees to build up an application source code stack for a build. We align Meister dependency directories with HRefresh-managed file system directories for a tight SCM (software configuration management) build.</p>
<p>This mechanism distributes the resource load for checking out code to times when builds are not required. It&#8217;s true that often times people want to build as soon as their code is checked in (or promoted), but on average it is a very big net win reducing build times.</p>
<p>This is just an example of the type of sophistication that is out there to prevent pre-build code check outs and save time on your builds.</p>
<img src="http://openmakesoftware.com/mavericks/wp-content/plugins/pixelstats/trackingpixel.php?post_id=93&ts=1268627288" style="display:none;" alt="pixelstats trackingpixel"/>]]></content:encoded>
			<wfw:commentRss>http://openmakesoftware.com/mavericks/2009/02/17/check-out-code-post-commit-not-pre-build/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.629 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2010-03-14 23:28:08 -->
