<?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:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:yt="http://gdata.youtube.com/schemas/2007" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
   <channel>
      <title>OpenMake Full Feed</title>
      <description>OpenMake Software - All Blogs</description>
      <link>http://pipes.yahoo.com/pipes/pipe.info?_id=BnVV1BtX3BG44Y4TG8evXg</link>
      <pubDate>Sun, 08 Nov 2009 09:06:09 -0800</pubDate>
      <generator>http://pipes.yahoo.com/pipes/</generator>
      <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/OpenmakeFullFeed" type="application/rss+xml" /><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2FOpenmakeFullFeed" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FOpenmakeFullFeed" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2FOpenmakeFullFeed" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/OpenmakeFullFeed" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FOpenmakeFullFeed" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FOpenmakeFullFeed" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FOpenmakeFullFeed" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2FOpenmakeFullFeed" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://download.attensa.com/app/get_attensa.html?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FOpenmakeFullFeed" src="http://www.attensa.com/blogs/attensa/WindowsLiveWriter/BadgeredintoBadges_10C02/attensa_feed_button5.gif">Subscribe with Attensa for Outlook</feedburner:feedFlare><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><title>Links for 2009-08-14 [Digg]</title><link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/JYYAmd9QdAU/dugg</link><pubDate>Sat, 15 Aug 2009 00:00:00 PDT</pubDate><guid isPermaLink="false">http://digg.com/users/openmake//dugg#2009-08-14</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://digg.com/programming/OpenMake_Meister_7_3_Accelerates_Software_Builds"&gt;OpenMake Meister 7.3 Accelerates Software Builds&lt;/a&gt;&lt;br/&gt;
OpenMake Software announced today the general release of OpenMake Meister and Mojo 7.3.  This important release delivers optimized acceleration capabilities of the Meister build engine to improve continuous integration build processing as well as enhanced Application Lifecycle  Management (ALM) integrations through Workflow Plug-ins.&lt;/li&gt;
&lt;/ul&gt;</description><feedburner:origLink>http://digg.com/users/openmake//dugg#2009-08-14</feedburner:origLink></item><item><title>Links for 2009-07-23 [Digg]</title><link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/3ADkkeTqwQw/dugg</link><pubDate>Fri, 24 Jul 2009 00:00:00 PDT</pubDate><guid isPermaLink="false">http://digg.com/users/openmake//dugg#2009-07-23</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://digg.com/programming/OpenMake_Meister_and_Mojo_7_3_Released"&gt;OpenMake Meister and Mojo 7.3 Released&lt;/a&gt;&lt;br/&gt;
OpenMake Software, provider of build automation, build management, and continuous integration software, has released OpenMake Meister and Mojo 7.3. This new release delivers optimized acceleration capabilities of the Meister build engine to improve continuous integration build processing as well as enhanced Application Lifecycle Management integrat&lt;/li&gt;
&lt;/ul&gt;</description><feedburner:origLink>http://digg.com/users/openmake//dugg#2009-07-23</feedburner:origLink></item><item>
         <title>New Post by Sean Blanton</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/_MZcmuY0_QA/</link>
         <description>Don&amp;#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>
         <guid isPermaLink="false">http://openmakesoftware.com/mavericks/?p=128</guid>
         <pubDate>Thu, 04 Jun 2009 11:33:03 -0700</pubDate>
         <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 rel="nofollow" title="Comparing Build Management in CDT and JDT" target="_blank" href="http://openmakesoftware.com/blogs/seanblanton/2009/06/04/comparing-build-management-in-eclipse-cdt-and-jdt/">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=1257696756" style="display:none;" alt="pixelstats trackingpixel"/><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=_MZcmuY0_QA:yMe_kAD00PA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=_MZcmuY0_QA:yMe_kAD00PA:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=_MZcmuY0_QA:yMe_kAD00PA:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=_MZcmuY0_QA:yMe_kAD00PA:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=_MZcmuY0_QA:yMe_kAD00PA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=_MZcmuY0_QA:yMe_kAD00PA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=_MZcmuY0_QA:yMe_kAD00PA:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=_MZcmuY0_QA:yMe_kAD00PA:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
         <category>OpenMake</category>
      <feedburner:origLink>http://openmakesoftware.com/mavericks/2009/06/04/new-post-by-sean-blanton/</feedburner:origLink></item>
      <item>
         <title>OpenMake Software Wins 2nd Award for the year</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/KpIKW756nnw/</link>
         <description>In March of this year, OpenMake Meister won the 2009 Jolt award in the change and configuration management category. Last week at TechEd, OpenMake Mojo Max won the 2009 Code Project Member&amp;#8217;s Choice award in the ALM category. This gives OpenMake Software two important developer based awards for 2009. Looks like more development teams are [...]</description>
         <guid isPermaLink="false">http://openmakesoftware.com/trend/?p=26</guid>
         <pubDate>Tue, 19 May 2009 13:25:43 -0700</pubDate>
         <content:encoded><![CDATA[<p>In March of this year, OpenMake Meister won the 2009 Jolt award in the change and configuration management category. Last week at TechEd, OpenMake Mojo Max won the 2009 Code Project Member&#8217;s Choice award in the ALM category. This gives OpenMake Software two important developer based awards for 2009. Looks like more development teams are starting to understand the importance of managing both workflow and build automation as part of their development process.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=KpIKW756nnw:j2AmM4jDHqU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=KpIKW756nnw:j2AmM4jDHqU:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=KpIKW756nnw:j2AmM4jDHqU:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=KpIKW756nnw:j2AmM4jDHqU:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=KpIKW756nnw:j2AmM4jDHqU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=KpIKW756nnw:j2AmM4jDHqU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=KpIKW756nnw:j2AmM4jDHqU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=KpIKW756nnw:j2AmM4jDHqU:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
         <category>Uncategorized</category>
      <feedburner:origLink>http://openmakesoftware.com/trend/?p=26</feedburner:origLink></item>
      <item>
         <title>Know the difference between distributed builds and distributed workflow processing</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/jvUUf4cC4Zs/</link>
         <description>OK, I often see the term &amp;#8220;distributed builds&amp;#8221; used to refer to processing the workload of a workflow management tool. So lets get some terms sorted out. First, a distributed build is one that takes the calls to the compilers and linkers, sorts out the dependency relationships and then builds them across multiple machines. A [...]</description>
         <guid isPermaLink="false">http://openmakesoftware.com/trend/?p=25</guid>
         <pubDate>Tue, 19 May 2009 13:18:21 -0700</pubDate>
         <content:encoded><![CDATA[<p>OK, I often see the term &#8220;distributed builds&#8221; used to refer to processing the workload of a workflow management tool. So lets get some terms sorted out. First, a distributed build is one that takes the calls to the compilers and linkers, sorts out the dependency relationships and then builds them across multiple machines. A workflow management tool cannot do this - and most of the so called build management tools on the market are only workflow management tools even though they claim to speed up your builds by distributing them across multiple machines.</p>
<p>A workflow management tool is only as intelligent as the scripts it is being asked to execute. Build management tools that function like a job scheduler simply takes a command an executes it on a particular machine. If that command is a make, maven or ant script, it is going to send that script to be executed on a particular machine. That is NOT Distributing the build. It is distributing the build script. Build scripts are rarely written to support distributed build processing, so your workflow solution cannot magically turn that script into an intelligent process that can be distributed. In fact most scripts have no understanding of dependencies, so there is no way for them to know what order to build the application, much less distribute those calls out to external machines.</p>
<p>OpenMake Meister does understand dependencies and does have the intelligence to know the order in which to build artifacts. In fact, out of the box, it does this for your builds, on a single machine using multi-core processors calling the compilers in multi-threaded mode. So if you are looking for speed and need to distribute builds across multiple machines, look no farther than Meister. This is what Build Automation is.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=jvUUf4cC4Zs:YSIzbrpcZgE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=jvUUf4cC4Zs:YSIzbrpcZgE:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=jvUUf4cC4Zs:YSIzbrpcZgE:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=jvUUf4cC4Zs:YSIzbrpcZgE:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=jvUUf4cC4Zs:YSIzbrpcZgE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=jvUUf4cC4Zs:YSIzbrpcZgE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=jvUUf4cC4Zs:YSIzbrpcZgE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=jvUUf4cC4Zs:YSIzbrpcZgE:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
         <category>Uncategorized</category>
      <feedburner:origLink>http://openmakesoftware.com/trend/?p=25</feedburner:origLink></item>
      <item>
         <title>Blogs Spreading Out</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/EFL98lYvnlw/</link>
         <description>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&amp;#8217;s:
Selvi&amp;#8217;s Blog
Adam Gabor&amp;#8217;s Blog
Sean Blanton&amp;#8217;s Blog
The content up to this [...]</description>
         <guid isPermaLink="false">http://openmakesoftware.com/mavericks/?p=125</guid>
         <pubDate>Fri, 08 May 2009 14:22:50 -0700</pubDate>
         <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 rel="nofollow" target="_blank" href="http://www.openmakesoftware.com/blogs/selvidayabaran">Selvi&#8217;s Blog</a></p>
<p><a rel="nofollow" target="_blank" href="http://www.openmakesoftware.com/blogs/adamgabor">Adam Gabor&#8217;s Blog</a></p>
<p><a rel="nofollow" target="_blank" href="http://www.openmakesoftware.com/blogs/seanblanton">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 rel="nofollow" target="_blank" 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=1257696756" style="display:none;" alt="pixelstats trackingpixel"/><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=EFL98lYvnlw:U1bfISnuN_E:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=EFL98lYvnlw:U1bfISnuN_E:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=EFL98lYvnlw:U1bfISnuN_E:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=EFL98lYvnlw:U1bfISnuN_E:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=EFL98lYvnlw:U1bfISnuN_E:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=EFL98lYvnlw:U1bfISnuN_E:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=EFL98lYvnlw:U1bfISnuN_E:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=EFL98lYvnlw:U1bfISnuN_E:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
         <category>OpenMake</category>
      <feedburner:origLink>http://openmakesoftware.com/mavericks/2009/05/08/blogs-spreading-out/</feedburner:origLink></item>
      <item>
         <title>Build Management 2.0 - Messaging</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/XeodXu1FKek/</link>
         <description>Continuing my last post about using a service such as Twitter (or Yammer or equivalent) to create &amp;#8220;pull&amp;#8221; notifications that serve the individual, I&amp;#8217;ve set up a Meister workflow to update the status of the Twitter handle @builds after a successful build.
I&amp;#8217;ve set up a JBoss build in Meister involving a web service and consumer. [...]</description>
         <guid isPermaLink="false">http://openmakesoftware.com/mavericks/2009/04/04/build-management-20-messaging/</guid>
         <pubDate>Fri, 03 Apr 2009 17:43:01 -0700</pubDate>
         <content:encoded><![CDATA[<p>Continuing my last <a rel="nofollow" target="_blank" href="http://openmakesoftware.com/mavericks/2009/03/26/twitter-for-web-20-build-notifications/">post</a> about using a service such as <a rel="nofollow" target="_blank" href="http://www.twitter.com">Twitter</a> (or <a rel="nofollow" target="_blank" href="http://www.yammer.com">Yammer</a> or equivalent) to create &#8220;pull&#8221; notifications that serve the individual, I&#8217;ve set up a <a rel="nofollow" target="_blank" href="http://www.openmakesoftware.com/build-automation/">Meister</a> workflow to update the status of the Twitter handle <a rel="nofollow" target="_blank" href="http://www.twitter.com/builds">@builds</a> after a successful build.</p>
<p>I&#8217;ve set up a <a rel="nofollow" target="_blank" href="http://www.jboss.com/">JBoss</a> build in Meister involving a web service and consumer. This was originally developed in <a rel="nofollow" target="_blank" href="http://www.myeclipseide.com">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 rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" href="http://search.cpan.org/dist/Net-Twitter/">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;">"myuser"</span><span style="color:#339933;">,</span> password <span style="color:#339933;">=&gt;</span> <span style="color:#ff0000;">"mypass"</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;">"My current Status"</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 rel="nofollow" target="_blank" href="http://davanum.wordpress.com/2009/03/16/postupdate-twitter-status-snippet-from-java/">post</a> and for .NET, there is <a rel="nofollow" target="_blank" href="http://rareedge.com/twitteroo/blog/2007/02/10/twitter-net-api/">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 rel="nofollow" target="_blank" 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>The key is the last step, of course:</p>
<p><a rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" 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 rel="nofollow" target="_blank" href="http://www.twitter.com/seanblanton">@seanblanton</a></p>
<img src="http://openmakesoftware.com/mavericks/wp-content/plugins/pixelstats/trackingpixel.php?post_id=116&ts=1257696756" style="display:none;" alt="pixelstats trackingpixel"/><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=XeodXu1FKek:o-ShVrYzlYI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=XeodXu1FKek:o-ShVrYzlYI:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=XeodXu1FKek:o-ShVrYzlYI:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=XeodXu1FKek:o-ShVrYzlYI:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=XeodXu1FKek:o-ShVrYzlYI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=XeodXu1FKek:o-ShVrYzlYI:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=XeodXu1FKek:o-ShVrYzlYI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=XeodXu1FKek:o-ShVrYzlYI:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
      <feedburner:origLink>http://openmakesoftware.com/mavericks/2009/04/04/build-management-20-messaging/</feedburner:origLink></item>
      <item>
         <title>maven and its junk</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/a51h_PlpGnA/</link>
         <description>I have run maven a couple of times but don&amp;#8217;t use it. (I had to build some open source jars). And today I decided to clean up my harddrive on my Mac using OmniDiskSweeper. Low and behold maven created a hidden directory in my home directory called .m2. In that was 320MB of jar files [...]</description>
         <guid isPermaLink="false">http://www.openmakesoftware.com/build/?p=25</guid>
         <pubDate>Fri, 27 Mar 2009 11:46:40 -0700</pubDate>
         <content:encoded><![CDATA[<div>
<p>I have run maven a couple of times but don&#8217;t use it. (I had to build some open source jars). And today I decided to clean up my harddrive on my Mac using <a rel="nofollow" target="_blank" href="http://www.omnigroup.com/applications/omnidisksweeper/">OmniDiskSweeper</a>. Low and behold maven created a hidden directory in my home directory called .m2. In that was 320MB of jar files and classes. Why does maven need to hide that? Shouldn&#8217;t it be nice and put it in a location that I know about so I can manage it. Instead of hiding junk on me.</p>
</div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=a51h_PlpGnA:_obsbHxVVkg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=a51h_PlpGnA:_obsbHxVVkg:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=a51h_PlpGnA:_obsbHxVVkg:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=a51h_PlpGnA:_obsbHxVVkg:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=a51h_PlpGnA:_obsbHxVVkg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=a51h_PlpGnA:_obsbHxVVkg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=a51h_PlpGnA:_obsbHxVVkg:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=a51h_PlpGnA:_obsbHxVVkg:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
      <feedburner:origLink>http://www.openmakesoftware.com/build/?p=25</feedburner:origLink></item>
      <item>
         <title>Twitter for Web 2.0 Build Notifications</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/MC5vpEihdEY/</link>
         <description>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 &amp;#8220;andon&amp;#8221; paper lamp was a way to let other workers know there was a problem on the assembly line. [...]</description>
         <guid isPermaLink="false">http://openmakesoftware.com/mavericks/2009/03/26/twitter-for-web-20-build-notifications/</guid>
         <pubDate>Thu, 26 Mar 2009 09:46:15 -0700</pubDate>
         <content:encoded><![CDATA[<p>There has been some talk around using physical, colored, lamps to notify build results (<a rel="nofollow" target="_blank" href="http://www.pragmaticautomation.com/cgi-bin/pragauto.cgi/Monitor/Devices/BubbleBubbleBuildsInTrouble.rdoc">pragmatic automation</a>, <a rel="nofollow" target="_blank" href="http://www.jroller.com/carlossg/entry/using_lava_lamps_for_continuous">Carlos Sanchez</a>, <a rel="nofollow" target="_blank" href="http://www.richarddurnall.com/?page_id=3">Richard Durnall</a>, <a rel="nofollow" target="_blank" href="http://www.artima.com/weblogs/viewpost.jsp?thread=67492">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 rel="nofollow" target="_blank" href="http://www.twitter.com">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 rel="nofollow" target="_blank" href="http://search.cpan.org/dist/Net-Twitter/lib/Net/Twitter.pm">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 rel="nofollow" target="_blank" href="http://twitter.com/builds">@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=1257696756" style="display:none;" alt="pixelstats trackingpixel"/><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=MC5vpEihdEY:JGbBy2gPWG8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=MC5vpEihdEY:JGbBy2gPWG8:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=MC5vpEihdEY:JGbBy2gPWG8:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=MC5vpEihdEY:JGbBy2gPWG8:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=MC5vpEihdEY:JGbBy2gPWG8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=MC5vpEihdEY:JGbBy2gPWG8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=MC5vpEihdEY:JGbBy2gPWG8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=MC5vpEihdEY:JGbBy2gPWG8:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
      <feedburner:origLink>http://openmakesoftware.com/mavericks/2009/03/26/twitter-for-web-20-build-notifications/</feedburner:origLink></item>
      <item>
         <title>Build Problems are ScrumButs</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/3FPdjQihjXI/</link>
         <description>In the Agile Scrum framework, a ScrumBut is a &amp;#8220;reason why [you] can&amp;#8217;t take full advantage of Scrum to solve the problems and realize the benefits.&amp;#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>
         <guid isPermaLink="false">http://openmakesoftware.com/mavericks/2009/03/17/build-problems-are-scrumbuts/</guid>
         <pubDate>Tue, 17 Mar 2009 15:03:23 -0700</pubDate>
         <content:encoded><![CDATA[<p>In the Agile Scrum framework, a ScrumBut is a &#8220;<a rel="nofollow" target="_blank" href="http://www.controlchaos.com/">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=1257696756" style="display:none;" alt="pixelstats trackingpixel"/><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=3FPdjQihjXI:O0yNSevHj1s:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=3FPdjQihjXI:O0yNSevHj1s:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=3FPdjQihjXI:O0yNSevHj1s:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=3FPdjQihjXI:O0yNSevHj1s:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=3FPdjQihjXI:O0yNSevHj1s:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=3FPdjQihjXI:O0yNSevHj1s:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=3FPdjQihjXI:O0yNSevHj1s:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=3FPdjQihjXI:O0yNSevHj1s:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
      <feedburner:origLink>http://openmakesoftware.com/mavericks/2009/03/17/build-problems-are-scrumbuts/</feedburner:origLink></item>
      <item>
         <title>OpenMake Meister Wins Jolt Award for Excellence</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/obmxeTpkL3c/</link>
         <description>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>
         <guid isPermaLink="false">http://openmakesoftware.com/mavericks/2009/03/12/openmake-meister-wins-jolt-award-for-excellence/</guid>
         <pubDate>Thu, 12 Mar 2009 13:05:53 -0700</pubDate>
         <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 rel="nofollow" target="_blank" href="http://news.prnewswire.com/DisplayReleaseContent.aspx?ACCT=104&amp;STORY=/www/story/03-11-2009/0004987197&amp;EDATE=">here</a>.<span class="sbmLink"><br />
<span style="font-family:Verdana;"><br />
</span> </span></p>
<img src="http://openmakesoftware.com/mavericks/wp-content/plugins/pixelstats/trackingpixel.php?post_id=98&ts=1257696756" style="display:none;" alt="pixelstats trackingpixel"/><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=obmxeTpkL3c:6q1isL-X4uI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=obmxeTpkL3c:6q1isL-X4uI:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=obmxeTpkL3c:6q1isL-X4uI:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=obmxeTpkL3c:6q1isL-X4uI:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=obmxeTpkL3c:6q1isL-X4uI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=obmxeTpkL3c:6q1isL-X4uI:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=obmxeTpkL3c:6q1isL-X4uI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=obmxeTpkL3c:6q1isL-X4uI:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
      <feedburner:origLink>http://openmakesoftware.com/mavericks/2009/03/12/openmake-meister-wins-jolt-award-for-excellence/</feedburner:origLink></item>
      <item>
         <title>Phurnace Software Java Deployment Tool</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/Vn9gpZYSnjQ/</link>
         <description>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>
         <guid isPermaLink="false">http://openmakesoftware.com/mavericks/2009/03/06/phurnace-software-java-deployment-tool/</guid>
         <pubDate>Fri, 06 Mar 2009 13:56:49 -0800</pubDate>
         <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 rel="nofollow" target="_blank" href="http://www.phurnace.com/">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 rel="nofollow" target="_blank" href="http://www.phurnace.com/blog/blog-title-click-let-me-get-this-straight.-you-want-a-scripting-framework-2.html">here</a>.</p>
<img src="http://openmakesoftware.com/mavericks/wp-content/plugins/pixelstats/trackingpixel.php?post_id=97&ts=1257696756" style="display:none;" alt="pixelstats trackingpixel"/><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=Vn9gpZYSnjQ:Rxr45DcCsoA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=Vn9gpZYSnjQ:Rxr45DcCsoA:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=Vn9gpZYSnjQ:Rxr45DcCsoA:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=Vn9gpZYSnjQ:Rxr45DcCsoA:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=Vn9gpZYSnjQ:Rxr45DcCsoA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=Vn9gpZYSnjQ:Rxr45DcCsoA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=Vn9gpZYSnjQ:Rxr45DcCsoA:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=Vn9gpZYSnjQ:Rxr45DcCsoA:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
      <feedburner:origLink>http://openmakesoftware.com/mavericks/2009/03/06/phurnace-software-java-deployment-tool/</feedburner:origLink></item>
      <item>
         <title>Overclocking Meister and Mojo Builds and Workflows</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/bNLyW2saNWg/</link>
         <description>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>
         <guid isPermaLink="false">http://openmakesoftware.com/mavericks/2009/03/05/overclocking-meister-and-mojo-builds-and-workflows/</guid>
         <pubDate>Thu, 05 Mar 2009 07:23:31 -0800</pubDate>
         <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 rel="nofollow" title="Flash demo showing multi-threaded builds" target="_blank" href="http://www.openmakesoftware.com/flashdemo/openmake-remote-workflows/openmake-remote-workflows.html">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=1257696756" style="display:none;" alt="pixelstats trackingpixel"/><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=bNLyW2saNWg:yB8yhPB71JA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=bNLyW2saNWg:yB8yhPB71JA:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=bNLyW2saNWg:yB8yhPB71JA:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=bNLyW2saNWg:yB8yhPB71JA:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=bNLyW2saNWg:yB8yhPB71JA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=bNLyW2saNWg:yB8yhPB71JA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=bNLyW2saNWg:yB8yhPB71JA:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=bNLyW2saNWg:yB8yhPB71JA:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
      <feedburner:origLink>http://openmakesoftware.com/mavericks/2009/03/05/overclocking-meister-and-mojo-builds-and-workflows/</feedburner:origLink></item>
      <item>
         <title>Check Out Code Post-Commit - Not Pre-Build</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/TCU7UpIzBeM/</link>
         <description>It&amp;#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>
         <guid isPermaLink="false">http://openmakesoftware.com/mavericks/2009/02/17/check-out-code-post-commit-not-pre-build/</guid>
         <pubDate>Mon, 16 Feb 2009 21:34:35 -0800</pubDate>
         <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=1257696756" style="display:none;" alt="pixelstats trackingpixel"/><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=TCU7UpIzBeM:EUnL34Qr3VA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=TCU7UpIzBeM:EUnL34Qr3VA:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=TCU7UpIzBeM:EUnL34Qr3VA:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=TCU7UpIzBeM:EUnL34Qr3VA:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=TCU7UpIzBeM:EUnL34Qr3VA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=TCU7UpIzBeM:EUnL34Qr3VA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=TCU7UpIzBeM:EUnL34Qr3VA:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=TCU7UpIzBeM:EUnL34Qr3VA:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
      <feedburner:origLink>http://openmakesoftware.com/mavericks/2009/02/17/check-out-code-post-commit-not-pre-build/</feedburner:origLink></item>
      <item>
         <title>Meister and Mojo Shine on Multi-Core Cpu’s</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/yn4ieCluQ5c/</link>
         <description>One of OpenMake Software&amp;#8217;s product strategies is to keep things simple. Build management is one of the most complex operations in all of the IT world, and one of our key benefits is to simplify, organize and automate the build process for development, testing and production.
We&amp;#8217;ve seen a trend among our customers to simplify their [...]</description>
         <guid isPermaLink="false">http://openmakesoftware.com/mavericks/2009/02/09/meister-and-mojo-shine-on-multi-core-cpus/</guid>
         <pubDate>Mon, 09 Feb 2009 15:15:09 -0800</pubDate>
         <content:encoded><![CDATA[<p>One of OpenMake Software&#8217;s product strategies is to keep things simple. Build management is one of the most complex operations in all of the IT world, and one of our key benefits is to simplify, organize and automate the build process for development, testing and production.</p>
<p>We&#8217;ve seen a trend among our customers to simplify their build management infrastructure by going to fewer build machines with more CPU cores. Builds in particular use relatively more CPU resources than other resources as code is interpreted and compiled in memory and then finally written to disk. By reducing the total number of machines, rack space, procurement, administration and other IT overhead costs are reduced at great cost savings per machine eliminated.</p>
<p>Recently, I was at one of the big chip makers where they used dual quad-core CPU Linux machines for their development and builds. They had two machines and were able to control access to allow separate areas for development, testing and release builds in keeping with best practices. Having all the horsepower of 8 CPU cores on a single machine kept them from needing more machines.</p>
<p>Another customer does 6000 builds per month with Meister on just two build machines.</p>
<p>IBM, when selling BuildForge, likes to talk about big build server farms, because their tool does remote execution on multiple machines, as does Meister. However, BuildForge does not do builds at all. It can remotely execute your existing build scripts, but there is little real value add to that. BuildForge is also famously expensive. What happens over the next few years to the high investment in multi-machine remote execution software as the number of machines declines, perhaps dramatically?</p>
<p>A similar argument can be for Electric Cloud&#8217;s Electric Accelerator product. It&#8217;s possible in some cases, for C/C++ builds to gain an edge by pushing a compile operation to another machine, and then bringing it back. You would only do this to gain access to additional CPU resources. In the past, you might have 8 build machines that Electric Accelerator would farm operations out to. Now, you can pull all those operations into a single machine and there is no need for that functionality. Also, you are stuck with converting your GNU makefiles into other GNU makefiles.</p>
<p>Meister is optimized for multi-core CPU build machines and offers multi-threaded capability to both build events and non-build workflow events. You know where your build is and there are fewer dependencies on network resources. Both BuildForge and Electric Accelerator add additional overhead to build administration to coordinate across multiple machines - a dying practice, that no organization wants to invest in. Meister is the best bet for a future with fewer build machines with more horsepower.</p>
<img src="http://openmakesoftware.com/mavericks/wp-content/plugins/pixelstats/trackingpixel.php?post_id=92&ts=1257696756" style="display:none;" alt="pixelstats trackingpixel"/><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=yn4ieCluQ5c:K2wovcFnL70:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=yn4ieCluQ5c:K2wovcFnL70:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=yn4ieCluQ5c:K2wovcFnL70:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=yn4ieCluQ5c:K2wovcFnL70:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=yn4ieCluQ5c:K2wovcFnL70:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=yn4ieCluQ5c:K2wovcFnL70:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=yn4ieCluQ5c:K2wovcFnL70:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=yn4ieCluQ5c:K2wovcFnL70:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
      <feedburner:origLink>http://openmakesoftware.com/mavericks/2009/02/09/meister-and-mojo-shine-on-multi-core-cpus/</feedburner:origLink></item>
      <item>
         <title>SQLite: “Small. Fast. Reliable. Choose any three.”</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/vUz-WZavkP8/</link>
         <description>As Steve wrote last year, we&amp;#8217;ve been using SQLite as a backend for some of our datatypes in our omsubmit and om command line executables. And it seems we&amp;#8217;re in good company: here are a few products that are also using SQLite It&amp;#8217;s the Ruby on Rails default DB
Adobe Air
Mozilla Firefox
Mac OS X It&amp;#8217;s such a popular [...]</description>
         <guid isPermaLink="false">http://openmakesoftware.com/insights/?p=31</guid>
         <pubDate>Wed, 23 Apr 2008 11:08:58 -0700</pubDate>
         <content:encoded><![CDATA[<p>As Steve <a rel="nofollow" target="_blank" href="http://www.openmakesoftware.com/build/?p=12">wrote</a> last year, we&#8217;ve been using <a rel="nofollow" target="_blank" href="http://www.sqlite.org">SQLite</a> as a backend for some of our datatypes in our <code>omsubmit</code> and <code>om</code> command line executables. And it seems we&#8217;re in good company: here are a <a rel="nofollow" target="_blank" href="http://en.wikipedia.org/wiki/SQLite#High-profile_deployment">few products</a> that are also using SQLite</p>
<ul>
<li>It&#8217;s the Ruby on Rails default DB</li>
<li>Adobe Air</li>
<li>Mozilla Firefox</li>
<li>Mac OS X</li>
</ul>
<p>It&#8217;s such a popular tool, that its creator, Dr. D. Richard Hipp, won a <a rel="nofollow" target="_blank" href="http://osdir.com/Article6677.phtml">2005 Open Source Award</a> from Google and O&#8217;Reilly. About a year later, Dr. Hipp gave a <a rel="nofollow" target="_blank" href="http://video.google.com/videoplay?docid=-5160435487953918649">Google Tech Talk</a> introducing SQLite to Google. In that talk, he remarked on a number of features and benefits of SQLite:</p>
<ul>
<li>SQLite is designed to be embedded, it can be less than 250 KB in size.</li>
<li>Some uncommon SQLite uses:
<ul>
<li>stand-in for client-server DBMS during testing/debugging.</li>
<li>Local database caching.</li>
<li>Implementing complex data structures.</li>
<li>Sorting large amounts of data.</li>
<li>Configuration files.</li>
<li>IPC via database.</li>
<li>Application file formats.</li>
</ul>
</li>
<li>SQLite is very convenient to use as a tool to teach basics of SQL, as it just works.</li>
</ul>
<p>Of the uncommon uses for SQLite, I can speak to at least two of them, because that&#8217;s how we use it internally. Originally, I was looking for a good way to persist tree data to disk, since I was having timing issues with reading and writing linked-list data to disk. I literally googled &#8220;persist binary trees to disk&#8221; and one of the hits said &#8220;use SQLite&#8221;. Steve took this idea further and used the database as a way to do interprocess communication between the main <code>omsubmit</code> daemon and the child processes that run each activity. This allowed us to move away from shared memory and message queues that seemed to be a bit flaky.</p>
<p>As for the second point, SQLite is a good tool to teach SQL. But more importantly, it gives a really good insight into how to <strong>use</strong> a database. With the big &#8220;enterprise&#8221; databases, you read and write and go on your way. With SQLite embedded in your program, you have to actually think! For example, if you do multithreaded design, you can&#8217;t have two threads updating the database or you&#8217;ll get a deadlock. Furthermore, if you do a big SELECT with a bunch of processing for each row on a worker thread, you&#8217;ll get writer starvation on the main thread. We had to come up to speed pretty quickly in terms of good design to make sure we didn&#8217;t introduce new timing issues using SQLite, since our goal was to reduce timing issues.</p>
<p>We&#8217;ve also used SQLite in our <code>om</code> build engine executable to do more efficient wildcard matching and we&#8217;re seeing really good speed improvements there. That improvement will be available in our upcoming release.</p>
<p>Here are some tools to investigate SQLite:</p>
<ul>
<li>Perl DBI <a rel="nofollow" target="_blank" href="http://search.cpan.org/~msergeant/DBD-SQLite-0.31/lib/DBD/SQLite.pm">module</a>. Great for prototyping code and databases, especially from the debugger.</li>
<li>GUIs
<ul>
<li><a rel="nofollow" target="_blank" href="http://sqlitebrowser.sourceforge.net/">SQLite Browser</a></li>
<li><a rel="nofollow" target="_blank" href="http://www.yunqa.de/delphi/doku.php/products/sqlitespy/index">SQLite Spy</a></li>
<li><a rel="nofollow" target="_blank" href="https://addons.mozilla.org/en-US/firefox/addon/5817">SQLite Manager</a>, which is a Firefox Add-on!</li>
</ul>
</li>
</ul>
<p>Hope this helps you get into using SQLite.</p>
<p>- Jim</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=vUz-WZavkP8:KE_gFjj_CR8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=vUz-WZavkP8:KE_gFjj_CR8:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=vUz-WZavkP8:KE_gFjj_CR8:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=vUz-WZavkP8:KE_gFjj_CR8:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=vUz-WZavkP8:KE_gFjj_CR8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=vUz-WZavkP8:KE_gFjj_CR8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=vUz-WZavkP8:KE_gFjj_CR8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=vUz-WZavkP8:KE_gFjj_CR8:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
      <feedburner:origLink>http://openmakesoftware.com/insights/?p=31</feedburner:origLink></item>
      <item>
         <title>Installing Meister on an Oracle machine</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/AMHzJ3weLLM/</link>
         <description>A common cause of problems when installing Meister or Mojo is the prerequisites necessary for a successful install. Both Perl
and Java are required. Often, Meister customers run into a problem with either or both of these prerequisites when installing. More often than not, they do not have one or both of [...]</description>
         <guid isPermaLink="false">http://openmakesoftware.com/support/?p=15</guid>
         <pubDate>Thu, 17 Apr 2008 09:39:19 -0700</pubDate>
         <content:encoded><![CDATA[<p>A common cause of problems when installing Meister or Mojo is the prerequisites necessary for a successful install. Both <a rel="nofollow" target="_blank" href="http://openmakesoftware.com/support/?p=8">Perl</a><br />
and Java are required. Often, Meister customers run into a problem with either or both of these prerequisites when installing. More often than not, they do not have one or both of them installed on their machine, or they have an unsupported version.</p>
<p>However, even if you have the correct versions of Perl and Java installed, you might run into Perl or Java validation errors when you install Meister. The most common cause of these errors is conflicts with Oracle products. Oracle ships with its own version of Perl, which has been optimized to work with the Oracle database. When Oracle is installed, it modifies two environment variables: the PATH variable, and the PERL5LIB variable.</p>
<p>When Meister performs its Perl validation routines during installation, it recognizes the Perl version that Oracle has placed in the PATH. This is where the first conflict arises. Meister validates the Perl installation by running a `perl -v` command, and checking against the output of that command. Oracle&#8217;s version of Perl returns an unexpected version number string, and does not pass validation (this is by design, since Oracle&#8217;s version of Perl will not work with Meister&#8217;s Perl libraries.)</p>
<p>In order to pass Perl validation, then, you will need to modify the PATH variable so that the Oracle&#8217;s &#8220;bin&#8221; directory is no longer in the PATH.</p>
<p>Once you have cleared out references to Oracle Perl from your PATH, you will still run into one more error: Meister installation will hang if the PERL5LIB variable is definied. You will need to remove the PERL5LIB variable when you install Meister.</p>
<p>Openmake Support&#8217;s recommendation is to initialize a Meister install from a shell prompt. From inside the shell, modify the PATH variable to remove Oracle&#8217;s bin directory (where their perl.exe is installed), and unset the PERL5LIB. Once you have modified the environment, you can run the install of Meister. After Meister installed, you will be able to start it from your normal environment (including Oracle&#8217;s environment settings.)</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=AMHzJ3weLLM:wbs9yfvafos:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=AMHzJ3weLLM:wbs9yfvafos:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=AMHzJ3weLLM:wbs9yfvafos:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=AMHzJ3weLLM:wbs9yfvafos:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=AMHzJ3weLLM:wbs9yfvafos:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=AMHzJ3weLLM:wbs9yfvafos:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=AMHzJ3weLLM:wbs9yfvafos:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=AMHzJ3weLLM:wbs9yfvafos:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
      <feedburner:origLink>http://openmakesoftware.com/support/?p=15</feedburner:origLink></item>
      <item>
         <title>Accessing Unmodeled Visual Studio Project Data Programmatically</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/IgreRJ3cegY/</link>
         <description>I&amp;#8217;ve been trying to add support to our Visual Studio Add in to create target definition files (TGTs) for Web Deployment Projects. I need to get meta-data information about the .wdproj file from within Visual Studio. Within the Visual Studio Extensibility object model, these items are marked as project.Kind == EnvDTE.Constants.vsProjectKindUnmodeled; meaning that the object model only [...]</description>
         <guid isPermaLink="false">http://openmakesoftware.com/insights/?p=30</guid>
         <pubDate>Wed, 16 Apr 2008 07:53:25 -0700</pubDate>
         <content:encoded><![CDATA[<p>I&#8217;ve been trying to add support to our Visual Studio Add in to create target definition files (TGTs) for <a rel="nofollow" target="_blank" href="http://msdn2.microsoft.com/en-us/asp.net/aa336619.aspx">Web Deployment Projects</a>. I need to get meta-data information about the .wdproj file from within Visual Studio. Within the Visual Studio Extensibility object model, these items are marked as<br />
<code><br />
project.Kind == EnvDTE.Constants.vsProjectKindUnmodeled;<br />
</code><br />
meaning that the object model only provides limited information about the project. As far as I can tell, only <code>project.Name</code> and <code>project.Type</code> are valid properties; the rest throw <code>System.NotImplementedException</code>.</p>
<p>This causes a number of problems, as other Visual Studio projects also use the &#8220;unmodeled&#8221; project type. For example, database projects return the same project Kind, and I&#8217;m not interested in them at all. I needed a way to differentiate between sub-project types where the overall project type was &#8220;unmodeled&#8221;.</p>
<p>A quick and dirty way to do this would be to look at the<br />
<code><br />
project.FileName<br />
</code><br />
property and see what extension it has. A &#8220;.dbp&#8221; extension would be a database project and a &#8220;.wdproj&#8221; extension would be a web deployment project. There are two things wrong with this approach. It&#8217;s frail &#8212; what if Microsoft updates database projects to be .dbproj files using MSBuild (they may have already done this in VS 2008)? More importantly, both database projects and web deployment projects do not implement the FileName property (it throws a NotImplemented exception).</p>
<p>The correct way to do this is to find out the project&#8217;s subtype GUID. Looking into the XML of the .wdproj file, and looking at the registry under <code>HKEY_LOCAL_MACHINE&#92;SOFTWARE&#92;Microsoft&#92;VisualStudio&#92;8.0&#92;Projects</code>, I know the Project Type GUIDS are:</p>
<ul>
<li>Database : <code>{4F174C21-8C12-11D0-8340-0000F80270F8}</code></li>
<li>WebDeploy : <code>{2CFEAB61-6A3B-4EB8-B523-560B4BEEF521}</code></li>
</ul>
<p>You can also see this in a solution file. Each project is listed in this format:<br />
<code><br />
Project("&lt;Project Type GUID&gt;") = "&lt;Project Name&gt;", "&lt;Location&gt;", "&lt;Individual Project GUID&gt;"<br />
</code><br />
So, I needed a way for the project object inside of Visual Studio to return its project type GUID, so I could determine what type of project I&#8217;m dealing with.</p>
<p>At this point, I was at the limit of the Extensibility API. A quick Googling revealed that I would have to use the VSPackage interfaces, the underlying API of Visual Studio. Originally, I had thought that you could not do this without downloading super-secret APIs from the Visual Studio Integration Partner (VSIP) program, but according to <a rel="nofollow" target="_blank" href="http://blogs.msdn.com/craigskibo/archive/2003/10/15/51692.aspx">Craig Skibo</a>, the SDK is now free. You just have to access the <a rel="nofollow" target="_blank" href="http://www.microsoft.com/downloads/details.aspx?familyid=51A5C65B-C020-4E08-8AC0-3EB9C06996F4&amp;displaylang=en">Visual Studio SDK</a>.</p>
<p>The MZ-Tools <a rel="nofollow" target="_blank" href="http://www.mztools.com/resources_vsnet_addins.aspx">HOW-TO</a> series has a nice <a rel="nofollow" target="_blank" href="http://www.mztools.com/Articles/2007/MZ2007016.aspx">article on how to access the project GUID for a project</a> throught the <code>IVsHeirarchy</code> and <code>IVsAggregatableProject</code> interfaces. The two problems are that it relies on using the <code>project.UniqueName</code> property, which throws a NotImplemented exception in my case; and that some projects won&#8217;t implement the <code>IVsAggregatableProject</code> interface. I added a quick work-around for it, which is not perfect, but seems to do the trick. (Sorry for the weird formatting).</p>
<pre>
private static String getProjectTypeGuids( EnvDTE.Project proj )
{ String sProjectTypeGuids = ""; String name; Object objService; EnvDTE.Solution sln = proj.DTE.Solution; Microsoft.VisualStudio.Shell.Interop.IVsSolution objIVsSolution; Microsoft.VisualStudio.Shell.Interop.IVsHierarchy objIVsHierarchy = null; Microsoft.VisualStudio.Shell.Interop.IVsAggregatableProject objIVsAggregratableProject = null; int iResult; objService = _getService(proj.DTE, typeof(Microsoft.VisualStudio.Shell.Interop.IVsSolution)); objIVsSolution = (Microsoft.VisualStudio.Shell.Interop.IVsSolution) objService; try { name = proj.UniqueName; iResult = objIVsSolution.GetProjectOfUniqueName(name, out objIVsHierarchy); if (iResult == 0) { objIVsAggregratableProject = objIVsHierarchy as Microsoft.VisualStudio.Shell.Interop.IVsAggregatableProject; iResult = objIVsAggregratableProject.GetAggregateProjectTypeGuids(out sProjectTypeGuids); } } catch { // Since UniqueName is not implemented, try looping over the // project files in the solution to see if we get a match on the // project.Name. It's not ideal, as the project.Name might not // be part of the project Filename. // call once to get size uint nProjects; iResult = objIVsSolution.GetProjectFilesInSolution( (uint) Microsoft.VisualStudio.Shell.Interop.__VSGETPROJFILESFLAGS.GPFF_SKIPUNLOADEDPROJECTS, (uint) 0, null, out nProjects); // Call again once we know the size string[] projectFiles = new string[nProjects]; iResult = objIVsSolution.GetProjectFilesInSolution( (uint) Microsoft.VisualStudio.Shell.Interop.__VSGETPROJFILESFLAGS.GPFF_SKIPUNLOADEDPROJECTS, nProjects, projectFiles, out nProjects); name = proj.Name; foreach ( string projectFile in projectFiles) { if ( ! String.IsNullOrEmpty(projectFile) &amp;&amp; projectFile.Contains( proj.Name) ) { name = projectFile.Remove( 0, sln.FullName.LastIndexOf("&#92;")+1); break; } } iResult = objIVsSolution.GetProjectOfUniqueName(name, out objIVsHierarchy); if (iResult == 0) { Microsoft.VisualStudio.Shell.Interop.IVsProject objIVsProject = objIVsHierarchy as Microsoft.VisualStudio.Shell.Interop.IVsProject; if (objIVsProject != null) { // cast the project to get its Moniker Name string projFile; iResult = objIVsProject.GetMkDocument(Microsoft.VisualStudio.VSConstants.VSITEMID_ROOT, out projFile); if (iResult == 0) { uint dwReserved = 0; Guid pGuidProjectType; iResult = objIVsSolution.GetProjectTypeGuid(dwReserved, projFile, out pGuidProjectType); if (iResult == 0) { sProjectTypeGuids = pGuidProjectType.ToString().ToUpperInvariant(); } } } } } return sProjectTypeGuids;
} private static Object _getService( Object serviceProvider, System.Type type)
{ return _getService(serviceProvider, type.GUID);
}
private static Object _getService(Object serviceProvider, System.Guid guid)
{ Object objService = null; Microsoft.VisualStudio.OLE.Interop.IServiceProvider objIServiceProvider; IntPtr objIntPtr; int hr; Guid objSIDGuid; Guid objIIDGuid; objSIDGuid = objIIDGuid = guid; objIServiceProvider = (Microsoft.VisualStudio.OLE.Interop.IServiceProvider) serviceProvider; hr = objIServiceProvider.QueryService(ref objSIDGuid, ref objIIDGuid, out objIntPtr); if (hr != 0) { System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(hr); } else if (!objIntPtr.Equals(IntPtr.Zero)) { objService = System.Runtime.InteropServices.Marshal.GetObjectForIUnknown(objIntPtr); System.Runtime.InteropServices.Marshal.Release(objIntPtr); } return objService;
}</pre>
<p>So far, so good. I can now identify and differentiate database projects from web deployment projects based on GUIDs. The next step is to figure out how to instantiate the sub APIs for the web deployment projects so I can get at the real data I need.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=IgreRJ3cegY:Zi8oAhTTgHY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=IgreRJ3cegY:Zi8oAhTTgHY:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=IgreRJ3cegY:Zi8oAhTTgHY:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=IgreRJ3cegY:Zi8oAhTTgHY:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=IgreRJ3cegY:Zi8oAhTTgHY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=IgreRJ3cegY:Zi8oAhTTgHY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=IgreRJ3cegY:Zi8oAhTTgHY:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=IgreRJ3cegY:Zi8oAhTTgHY:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
      <feedburner:origLink>http://openmakesoftware.com/insights/?p=30</feedburner:origLink></item>
      <item>
         <title>Upgrading Microsoft Team Foundation Server 2008</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/lA0EYNoH6WY/</link>
         <description>On Friday I tried to upgrade from Team Foundation Server 2008 Beta 2 to TFS Release to Market (RTM) Workgroup edition on a virtual machine. I wanted to get a running RTM version of TFS Workgroup, for which we are licensed through MSDN. But why on the Virtual PC image from the Beta 2 period, [...]</description>
         <guid isPermaLink="false">http://openmakesoftware.com/insights/?p=29</guid>
         <pubDate>Mon, 14 Apr 2008 07:54:51 -0700</pubDate>
         <content:encoded><![CDATA[<p>On Friday I tried to upgrade from Team Foundation Server 2008 Beta 2 to TFS Release to Market (RTM) Workgroup edition on a virtual machine. I wanted to get a running RTM version of TFS Workgroup, for which we are licensed through MSDN. But why on the Virtual PC image from the Beta 2 period, which expired in February? Two reasons:</p>
<ul>
<li>Due to <a rel="nofollow" target="_blank" href="http://blogs.msdn.com/jeffbe/archive/2007/10/25/vs2008-beta2-vpcs-expiring-prematurely.aspx">a bad VPC image</a>, the Windows 2003 R2 Server license on the VPC expired early. We had to burn one of our own W2k3 Licenses just to keep the VPC running. Since I understand as much Microsoft licensing as much as the next guy (i.e. not at all), I wanted to upgrade on our own licensed W2K3 machine.</li>
<li>I wanted to see how hard it was to upgrade.</li>
</ul>
<p>Well, it turns out, it&#8217;s really hard. Even without updating SQL Server or Sharepoint, and keeping the application tier and the data tier on the same machine, and upgrading Workgroup to Workgroup, it still didn&#8217;t work.</p>
<p>First, I had to uninstall all of these <a rel="nofollow" target="_blank" href="http://www.microsoft.com/express/support/uninstall/default.aspx">products</a>. That&#8217;s a long list. The last install was the actual server install. And of course, it failed. The failure seems to be related to the <a rel="nofollow" target="_blank" href="http://blogs.blackmarble.co.uk/blogs/rfennell/archive/2008/01/23/fun-upgrading-from-visual-studio-tfs-2008-beta2-to-rtm.aspx">user account</a> doing <a rel="nofollow" target="_blank" href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2048187&amp;SiteID=1">the uninstall</a>, but after three hours, I couldn&#8217;t get it to work, so I now have a junked install. I can&#8217;t uninstall the old version, and cannot install the new version without uninstalling the old one.</p>
<p>So, I&#8217;m now pulling down the new Virtual PC image for <a rel="nofollow" target="_blank" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=c7a809d8-8c9f-439f-8147-948bc6957812&amp;DisplayLang=en">TFS RTM</a> that runs until Dec 31, 2008 (the ever-helpful Martin Woodward has a <a rel="nofollow" target="_blank" href="http://www.woodwardweb.com/vsts/000423.html">list of all the URLs</a> if you use a download manager). We can evaluate the RTM there.</p>
<p>- Jim</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=lA0EYNoH6WY:4_GcBn2yPkA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=lA0EYNoH6WY:4_GcBn2yPkA:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=lA0EYNoH6WY:4_GcBn2yPkA:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=lA0EYNoH6WY:4_GcBn2yPkA:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=lA0EYNoH6WY:4_GcBn2yPkA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=lA0EYNoH6WY:4_GcBn2yPkA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=lA0EYNoH6WY:4_GcBn2yPkA:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=lA0EYNoH6WY:4_GcBn2yPkA:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
         <category>Team Foundation Server</category>
      <feedburner:origLink>http://openmakesoftware.com/insights/?p=29</feedburner:origLink></item>
      <item>
         <title>Three Eclipse Tweaks</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/CINVMjUH7Mw/</link>
         <description>Small post here. I&amp;#8217;ve been tweaking some Eclipse settings and wanted to pass them on.
Show Annotated
I don&amp;#8217;t know how long this has been in the Eclipse Editor, but turning on the Editor Presentation action set and then selecting the Show Annotated is really cool. You can highlight a function or method and then only [...]</description>
         <guid isPermaLink="false">http://openmakesoftware.com/insights/?p=25</guid>
         <pubDate>Thu, 10 Apr 2008 12:21:56 -0700</pubDate>
         <content:encoded><![CDATA[<p>Small post here. I&#8217;ve been tweaking some Eclipse settings and wanted to pass them on.</p>
<h3>Show Annotated</h3>
<p>I don&#8217;t know how long this has been in the Eclipse Editor, but turning on the Editor Presentation<strong> </strong>action set and then selecting the Show Annotated is really cool. You can highlight a function or method and then only work on that section of code in the editor.</p>
<p><a rel="nofollow" target="_blank" href="http://openmakesoftware.com/insights/wp-content/uploads/2008/04/eclipse_show_annotated.png" title="Eclipse Show Annotated"><img src="http://openmakesoftware.com/insights/wp-content/uploads/2008/04/eclipse_show_annotated.thumbnail.png" alt="Eclipse Show Annotated"/></a></p>
<h3>AnyEdit</h3>
<p>The <a rel="nofollow" target="_blank" href="http://andrei.gmxhome.de/anyedit" title="AnyEdit Plugin">AnyEdit</a> plugin adds some really useful features to the Editor window for coding, like</p>
<ul>
<li>Convert tabs to spaces and back,</li>
<li>Convert CamelCase to underscores,</li>
<li>Convert to and from HTML,</li>
<li>etc, etc</li>
</ul>
<p>It&#8217;s already part of most of the <a rel="nofollow" target="_blank" href="http://easyeclipse.org">EasyEclipse</a> installs, but I just didn&#8217;t know about it. Here it is in action</p>
<p><a rel="nofollow" target="_blank" href="http://openmakesoftware.com/insights/wp-content/uploads/2008/04/eclipse_anyedit.png" title="AnyEdit Context Menu"><img src="http://openmakesoftware.com/insights/wp-content/uploads/2008/04/eclipse_anyedit.thumbnail.png" alt="AnyEdit Context Menu"/></a></p>
<h3>Compare With Outline</h3>
<p>I never understood why the Eclipse Compare view always created the &#8220;structured compare&#8221; panel in the top of the compare editor. It seemed to just waste a lot of real estate, especially since there was the Outline view just sitting there waiting to be utilized. I even thought about opening a bug on it &#8230; Well, don&#8217;t I feel dumb; it&#8217;s a preference</p>
<p><a rel="nofollow" target="_blank" href="http://openmakesoftware.com/insights/wp-content/uploads/2008/04/eclipse_compare.png" title="Compare Preferences"><img src="http://openmakesoftware.com/insights/wp-content/uploads/2008/04/eclipse_compare.thumbnail.png" alt="Compare Preferences"/></a></p>
<p>Hope these help.</p>
<p>&#8211; Jim</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=CINVMjUH7Mw:bRvtqWT_C8g:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=CINVMjUH7Mw:bRvtqWT_C8g:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=CINVMjUH7Mw:bRvtqWT_C8g:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=CINVMjUH7Mw:bRvtqWT_C8g:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=CINVMjUH7Mw:bRvtqWT_C8g:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=CINVMjUH7Mw:bRvtqWT_C8g:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=CINVMjUH7Mw:bRvtqWT_C8g:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=CINVMjUH7Mw:bRvtqWT_C8g:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
      <feedburner:origLink>http://openmakesoftware.com/insights/?p=25</feedburner:origLink></item>
      <item>
         <title>C and .NET Unit Testing</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/P7ELdOUOCaI/</link>
         <description>I&amp;#8217;ve been working on our command line client (CLC) for a long time now, and I used to build it with the old 6.3 release of the OpenMake product. Now that we have the really useful Build Workflows and Build Activities setup in Meister 7, we can start to push out our build and test [...]</description>
         <guid isPermaLink="false">http://openmakesoftware.com/insights/?p=24</guid>
         <pubDate>Thu, 27 Mar 2008 07:22:07 -0700</pubDate>
         <content:encoded><![CDATA[<p>I&#8217;ve been working on our command line client (CLC) for a long time now, and I used to build it with the old 6.3 release of the OpenMake product. Now that we have the really useful Build Workflows and Build Activities setup in Meister 7, we can start to push out our build and test process.</p>
<p>For unit testing, we&#8217;ve added two simple post build steps to our CLC builds: C Unit tests and .NET Unit tests.</p>
<p>For .NET, we use the extremely easy <a rel="nofollow" target="_blank" href="http://www.nunit.org">NUnit</a> framework. This framework is really trivial to set up and use, and we can easily use it inside the Visual Studio IDE (before checkins) and during the build process. <a rel="nofollow" target="_blank" href="http://www.tertullian.org/rpearse/RightToLeft_Syriac/nUnitVBNet.htm">This post</a>, towards the end (point #12), shows how to set up an &#8220;External Tool&#8221; in Visual Studio to run NUnit tests. You can also go with <a rel="nofollow" target="_blank" href="http://www.testdriven.net">TestDriven.NET</a>, (I think it&#8217;s free for personal use and $95 for a professional copy) which will integrate and consolidate NUnit, <a rel="nofollow" target="_blank" href="http://msdn.microsoft.com/vstudio/teamsystem/">MSTest</a>, <a rel="nofollow" target="_blank" href="http://www.ncover.org/">NCover</a>, <a rel="nofollow" target="_blank" href="http://www.ncoverexplorer.org/">NCoverExplorer</a> and all the great unit-testing frameworks out there. We could also run MSTest, the Microsoft testing frameworks, but that&#8217;s not easily integrated into Visual Studio 2005 Professional. Since we&#8217;re just ramping up, and getting the unit tests up and running is my first goal, NCover will come later, as we push our unit testing coverage up to a respectable number.</p>
<p>For our C and C++ development, picking a unit testing framework was harder, as there is no clear leader in the space. After some Googling, I found this <a rel="nofollow" target="_blank" href="http://www.gamesfromwithin.com/articles/0412/000061.html">blog post</a> by Noel Llopis from a few years back that compared the leaders in the space. One of his highest recommendations was for <a rel="nofollow" target="_blank" href="http://cxxtest.sourceforge.net/">CxxTest</a>, an incredibly simple unit test framework that only uses C++ header files. All the tests are written as header files, and are extremely easy to set up. Trust me, if I can do it, anyone can. It requires Perl or Python to auto-generate the .cpp code from your test headers, but since Openmake requires Perl, not much of a problem. It was so easy that I added a CxxTest rule to our standard MSVC Console Build Service so that everything is built and run in the same workflow.</p>
<p>&#8211; Jim</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=P7ELdOUOCaI:WLZ5QK7kYUA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=P7ELdOUOCaI:WLZ5QK7kYUA:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=P7ELdOUOCaI:WLZ5QK7kYUA:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=P7ELdOUOCaI:WLZ5QK7kYUA:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=P7ELdOUOCaI:WLZ5QK7kYUA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=P7ELdOUOCaI:WLZ5QK7kYUA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=P7ELdOUOCaI:WLZ5QK7kYUA:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=P7ELdOUOCaI:WLZ5QK7kYUA:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
      <feedburner:origLink>http://openmakesoftware.com/insights/?p=24</feedburner:origLink></item>
      <item>
         <title>Setting up a Minimal Windows XP System</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/0Q_bSwficL4/</link>
         <description>In my last post, I wrote about putting Windows XP on my MacBook Pro Bootcamp partition. After that, I had to install some software and get it running!
My XP partition isn&amp;#8217;t going to be a full step-up. I am mostly going to run virtual machine images for our demos, and maybe do a bit of [...]</description>
         <guid isPermaLink="false">http://openmakesoftware.com/insights/?p=23</guid>
         <pubDate>Thu, 27 Mar 2008 06:55:31 -0700</pubDate>
         <content:encoded><![CDATA[<p>In my last post, I wrote about putting <a rel="nofollow" target="_blank" href="http://openmakesoftware.com/insights/?p=22">Windows XP on my MacBook Pro Bootcamp partition</a>. After that, I had to install some software and get it running!</p>
<p>My XP partition isn&#8217;t going to be a full step-up. I am mostly going to run virtual machine images for our demos, and maybe do a bit of coding on the side. So here&#8217;s a list of what I put on the machine, and how I did it.</p>
<p>The most important thing I wanted to do was to set it up in a safe manner. As <a rel="nofollow" target="_blank" href="http://www.codinghorror.com">Jeff Atwood</a> points out, the single biggest issue with Windows security is <a rel="nofollow" target="_blank" href="http://www.codinghorror.com/blog/archives/000891.html">running as an Adminstrator</a>. On my desktop, I run as an Admin, and I&#8217;m too far gone in terms of switching back to a regular user. But on the laptop, I wanted to see if I could run only as a regular user.</p>
<p>First I created two users, &#8220;jim&#8221; and &#8220;root&#8221;. &#8220;Root&#8221; is an admin account, and &#8220;jim&#8221; is my day to day account. I needed the admin account so that I could install the .NET 2.0 framework before installing the next piece.</p>
<p>The most critical piece was installing <a rel="nofollow" target="_blank" href="http://www.lostcreations.com/sudowin/sudowin">Sudowin</a>, a <a rel="nofollow" target="_blank" href="http://en.wikipedia.org/wiki/Sudo">sudo</a> clone for Windows. This allows you to run certain programs (or all programs, if configured that way) as an Administrator, without being an admin. In the Sudowin <a rel="nofollow" target="_blank" href="http://www.lostcreations.com/sudowin/about">About page</a>, there is a long discussion why this is a different, and better, solution to running with elevated privileges than the native &#8220;Run as ..&#8221; or Vista UACs. This install allowed me to install the remainder of my software while still running in my local account. It also has a command-line &#8220;sudo&#8221; tool.</p>
<p>The remaining software that I installed was</p>
<ul>
<li><a rel="nofollow" target="_blank" href="http://www.microsoft.com/windows/downloads/virtualpc/default.mspx">Microsoft Virtual PC</a> and <a rel="nofollow" target="_blank" href="http://www.vmware.com/products/player/">VMWare VM Player</a> &#8212; for our demos,</li>
<li>A text editor (I&#8217;m switching between <a rel="nofollow" target="_blank" href="http://www.textpad.com/">Textpad</a> and <a rel="nofollow" target="_blank" href="http://www.activestate.com/Products/komodo_ide/komodo_edit.mhtml">Activestate&#8217;s Komodo Edit</a>) &#8212; for simple text editing,</li>
<li><a rel="nofollow" target="_blank" href="http://www.7-zip.org/">7-Zip</a> &#8212; free zip/unzip,</li>
<li><a rel="nofollow" target="_blank" href="http://www.activestate.com/Products/activeperl/">Perl</a> &#8212; needed for day-to-day scripting,</li>
<li><a rel="nofollow" target="_blank" href="http://www.cutepdf.com/">CutePDF</a> &#8212; for printing to PDFs,</li>
<li>Microsoft Visual Studio 2005 and 2008, and <a rel="nofollow" target="_blank" href="http://www.nunit.org">NUnit</a>, <a rel="nofollow" target="_blank" href="http://code.msdn.microsoft.com/codeanalysis">FxCop</a>, and <a rel="nofollow" target="_blank" href="http://www.aisto.com/roeder/dotnet/">Reflector</a> &#8212; for when I want to actually write code,</li>
<li><a rel="nofollow" target="_blank" href="http://www.mozilla.com/firefox">Firefox</a>,</li>
<li>Microsoft <a rel="nofollow" target="_blank" href="http://www.microsoft.com/windowsxp/downloads/powertoys/xppowertoys.mspx">PowerToys for XP</a>&#8211; to tweak the UI the way I like it,</li>
<li><a rel="nofollow" target="_blank" href="http://www.randyrants.com/sharpkeys/">Sharp Keys</a> &#8212; to tweak the keyboard the way I like it,</li>
<li><a rel="nofollow" target="_blank" href="http://technet.microsoft.com/en-us/sysinternals/default.aspx">Sysinternals Process Explorer</a> &#8212; to see what&#8217;s running,</li>
<li><a rel="nofollow" target="_blank" href="http://openmakesoftware.com/insights/wp-admin/www.winpatrol.com/">Winpatrol</a> &#8212; to keep tabs on anything that might get surreptitiously installed or run,</li>
<li><a rel="nofollow" target="_blank" href="http://www.chiark.greenend.org.uk/~sgtatham/putty">PuTTY</a> &#8212; to SSH into the VM Ware Linux images.</li>
</ul>
<p>So far, so good. I&#8217;ve been really impressed with my laptop as a Windows box, and more so with running the VPC and VM images for our demos. See you at VS Live!</p>
<p>&#8211; Jim</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=0Q_bSwficL4:5bcciIq1pW0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=0Q_bSwficL4:5bcciIq1pW0:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=0Q_bSwficL4:5bcciIq1pW0:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=0Q_bSwficL4:5bcciIq1pW0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=0Q_bSwficL4:5bcciIq1pW0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=0Q_bSwficL4:5bcciIq1pW0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=0Q_bSwficL4:5bcciIq1pW0:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=0Q_bSwficL4:5bcciIq1pW0:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
         <category>Development Environment</category>
      <feedburner:origLink>http://openmakesoftware.com/insights/?p=23</feedburner:origLink></item>
      <item>
         <title>Setting up a Mac for Windows</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/CQyTv7mMazM/</link>
         <description>I am in the process of preparing for a trip to VS Live at the end of the month. Part of that trip will be demonstrating our Team Foundation integrations to OpenMake, and I&amp;#8217;ve had to prepare a laptop for that.
I moved to a Macbook Pro as my laptop about six months ago, and I [...]</description>
         <guid isPermaLink="false">http://openmakesoftware.com/insights/?p=22</guid>
         <pubDate>Fri, 21 Mar 2008 06:22:14 -0700</pubDate>
         <content:encoded><![CDATA[<p>I am in the process of preparing for a trip to <a rel="nofollow" target="_blank" href="http://vslive.com/">VS Live</a> at the end of the month. Part of that trip will be demonstrating our Team Foundation integrations to OpenMake, and I&#8217;ve had to prepare a laptop for that.</p>
<p>I moved to a Macbook Pro as my laptop about six months ago, and I really enjoy it. I also like the fact that I&#8217;m working in multiple environments. Mac OSX on the laptop, Windows XP on the desktop, and Linux on our servers.</p>
<p>But for our Microsoft demos, I have to run Windows on the laptop. Fortunately, some have said a MacbookPro is some of the <a rel="nofollow" target="_blank" href="http://gizmodo.com/gadgets/irony/macbook-pro-is-the-fastest-windows-vista-notebook-317060.php">best</a> <a rel="nofollow" target="_blank" href="http://www.reghardware.co.uk/2006/03/22/mac_fastest_core_duo_laptop/">hardware </a>to run Windows! My plan was to use <a rel="nofollow" target="_blank" href="http://www.apple.com/macosx/features/bootcamp.html">Boot Camp</a> to create a separate Windows partition (because I will want to run our demos at native speed), and then use <a rel="nofollow" target="_blank" href="http://www.vmware.com/products/fusion/">VMWare Fusion</a> to run off that partition if I want to run OSX and Windows simultaneously.</p>
<p>Preparing for the partition was difficult. Because I have been using my laptop for six months, I already have lots of kruft on the disk. The folklore is that Mac drives don&#8217;t get fragmented, but this is just not true. Boot Camp could not create the partition, and on occasion would go into kernel panic mode and bomb out. This thread <a rel="nofollow" target="_blank" href="http://discussions.apple.com/thread.jspa?messageID=6626910?">discusses some ideas</a> why I couldn&#8217;t partition. Based on their suggestions, I downloaded the demo version of <a rel="nofollow" target="_blank" href="http://www.coriolis-systems.com/iDefrag.php">iDefrag</a> to have a peek at my HD. Files were scattered over the drive, and I needed a good 1/3 of the disk free at the end. I tried lots of manual moving of files, deleting unnecessary files, and running Disk Utility and fsck -f from single user mode. Quite a pain. After a few hours late Tuesday night, I decided my time was worth $35 and purchased the full iDefrag. Good thing I did &#8212; it ran for 26 hours compacting my disk! But it all worked out, and Boot Camp worked like a charm after that.</p>
<p>I elected to go with a 32Gb NTFS partition. NTFS is a bit quicker and more robust than FAT32, and the downside of not being able to write to the NTFS partition from the Mac didn&#8217;t seem like a big deal, because I have external drives that I use for big files.</p>
<p>Funny to be back to the dual-boot days of when I ran Windows 2000 and Red Hat on my desktop. But the VMWare Fusion technology is great &#8212; it&#8217;s the best of both worlds. In my next post I&#8217;ll detail how I set up the Windows machine, as I wanted to try to keep it clean.</p>
<p>&#8211; Jim</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=CQyTv7mMazM:FNEXZwrRueE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=CQyTv7mMazM:FNEXZwrRueE:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=CQyTv7mMazM:FNEXZwrRueE:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=CQyTv7mMazM:FNEXZwrRueE:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=CQyTv7mMazM:FNEXZwrRueE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=CQyTv7mMazM:FNEXZwrRueE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=CQyTv7mMazM:FNEXZwrRueE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=CQyTv7mMazM:FNEXZwrRueE:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
      <feedburner:origLink>http://openmakesoftware.com/insights/?p=22</feedburner:origLink></item>
      <item>
         <title>Another compiled language - JavaFX</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/GdMmHAAnnqE/</link>
         <description>Technorati Tags: JavaFX
I ran across a newer compiled Java language, JavaFX. Check out:
Developing Your First Compiled JavaFX Script Program
— The next JavaFX Puzzler will be posted at 18:00 GMT (1:00PM EST) on Wednesday, November 28, 2007. It will be a compiled JavaFX Script puzzler, so you&amp;#8217;ll need to build the JavaFX Script Compiler [...]</description>
         <guid isPermaLink="false">http://openmakesoftware.com/build/?p=23</guid>
         <pubDate>Fri, 14 Mar 2008 03:10:53 -0700</pubDate>
         <content:encoded><![CDATA[<p style="text-align:right;font-size:10px;">Technorati Tags: <a rel="nofollow" target="_blank" href="http://technorati.com/tag/JavaFX">JavaFX</a></p>
<p>I ran across a newer compiled Java language, JavaFX. Check out:</p>
<blockquote><p><a rel="nofollow" target="_blank" href="http://java.sys-con.com/read/465182.htm">Developing Your First Compiled JavaFX Script Program</a><br />
— The next JavaFX Puzzler will be posted at 18:00 GMT (1:00PM EST) on Wednesday, November 28, 2007. It will be a compiled JavaFX Script puzzler, so you&#8217;ll need to build the JavaFX Script Compiler in order to participate in the Puzzler. To help prepare you for the Puzzler, I&#8217;d like to you to develop a very basic &#8216;Hello World&#8217; style program.</p></blockquote>
<p>This is interesting since they decided to write their own command line compiler instead of just sticking with Ant Tasks. Looks just like another pre-processor for Java code. </p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=GdMmHAAnnqE:Jw6HilP0ljM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=GdMmHAAnnqE:Jw6HilP0ljM:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=GdMmHAAnnqE:Jw6HilP0ljM:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=GdMmHAAnnqE:Jw6HilP0ljM:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=GdMmHAAnnqE:Jw6HilP0ljM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=GdMmHAAnnqE:Jw6HilP0ljM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=GdMmHAAnnqE:Jw6HilP0ljM:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=GdMmHAAnnqE:Jw6HilP0ljM:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
         <category>Build</category>
      <feedburner:origLink>http://www.openmakesoftware.com/build/?p=23</feedburner:origLink></item>
      <item>
         <title>Cross Platform Team Builds on MS Team Foundation</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/ZmxPaq0s1Fw/</link>
         <description>As I&amp;#8217;ve posted before, we&amp;#8217;re working hard on getting a tight integration into Team Foundation Server&amp;#8217;s Team Build, so that one can execute Meister Workflows from Team Build on OpenMake remote build servers. This means you can do Java builds on Linux from within Team Foundation and have all the goodness of your work items [...]</description>
         <guid isPermaLink="false">http://openmakesoftware.com/insights/?p=21</guid>
         <pubDate>Thu, 21 Feb 2008 07:19:32 -0800</pubDate>
         <content:encoded><![CDATA[<p>As I&#8217;ve posted before, we&#8217;re working hard on getting a tight integration into Team Foundation Server&#8217;s Team Build, so that one can execute Meister Workflows from Team Build on OpenMake remote build servers. This means you can do Java builds on Linux from within Team Foundation and have all the goodness of your work items updated and preserving your regular process. To see it in action, take a look at <a rel="nofollow" target="_blank" href="http://www.openmakesoftware.com/flashdemo/MeisterTFS/TFS_demo_flash.html">this Flash demo</a> I created.</p>
<p>We&#8217;re obviously not the only ones interested in a thriving Team Foundation cross-platform community. Microsoft wants Team Foundation Server to be an SCM tool for all shops, not just .NET shops. <a rel="nofollow" target="_blank" href="http://www.teamprise.com">Teamprise</a> got the ball rolling by creating a cross-platform client for Team Foundation, so that one can to check-ins and check-outs from TFS (kinda important). They are also getting interested on the build front, too. Martin Woodard posted an <a rel="nofollow" target="_blank" href="http://www.woodwardweb.com/teamprise/000406.html">extension for running Ant Builds</a> from TFS. This is a important first step &#8212; it allows you to reuse existing scripts from within TFS on a Windows machine. We go further; we support builds on multiple OSs and all kinds of legacy builds and other compilers as well as Java, as we should given that it&#8217;s our primary focus, whereas SCM is Teamprise&#8217;s primary focus.</p>
<p>The next release of Teamprise (3.0, now in preview), allows the Teamprise clients to access the Team Build management functionality of TFS, what was previously only available in Visual Studio Team Suite. I&#8217;m looking forward to accessing this functionality to see how we can plug into it and leverage our plugins to automate adding the OpenMake integration to Team Build.</p>
<p>&#8211; Jim</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=ZmxPaq0s1Fw:-nsTr3ZcoRE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=ZmxPaq0s1Fw:-nsTr3ZcoRE:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=ZmxPaq0s1Fw:-nsTr3ZcoRE:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=ZmxPaq0s1Fw:-nsTr3ZcoRE:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=ZmxPaq0s1Fw:-nsTr3ZcoRE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=ZmxPaq0s1Fw:-nsTr3ZcoRE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=ZmxPaq0s1Fw:-nsTr3ZcoRE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=ZmxPaq0s1Fw:-nsTr3ZcoRE:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
      <feedburner:origLink>http://openmakesoftware.com/insights/?p=21</feedburner:origLink></item>
      <item>
         <title>Some Buzz about Meister Builds</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/JGUKzBvfm0M/</link>
         <description>We&amp;#8217;ve been working hard on our cross-platform builds for Microsoft Team Foundation Server, as I&amp;#8217;ve blogged about previously. I&amp;#8217;ve been doing the bulk of the development work with our Team Build and Team Foundation Server integrations, and Mark and the rest of the management team are working in depth with some folks at Microsoft. It&amp;#8217;s [...]</description>
         <guid isPermaLink="false">http://openmakesoftware.com/insights/?p=20</guid>
         <pubDate>Tue, 19 Feb 2008 12:46:37 -0800</pubDate>
         <content:encoded><![CDATA[<p>We&#8217;ve been working hard on our cross-platform builds for Microsoft Team Foundation Server, as I&#8217;ve blogged about <a rel="nofollow" target="_blank" href="http://openmakesoftware.com/insights/?p=14">previously</a>. I&#8217;ve been doing the bulk of the development work with our Team Build and Team Foundation Server integrations, and Mark and the rest of the management team are working in depth with some folks at Microsoft. It&#8217;s a really exciting topic to be working on, and I&#8217;ve got to interact with some smart folks; for example Jim Lamb at Microsoft, and <a rel="nofollow" target="_blank" href="http://www.woodwardweb.com">Martin Woodward</a> and Ben Pryor at <a rel="nofollow" target="_blank" href="http://www.teamprise.com">Teamprise</a>.</p>
<p>Our hard work is starting to get noticed. <a rel="nofollow" target="_blank" href="http://www.microsoft.com/presspass/exec/techfellow/harry/default.mspx">Brian Harry</a> blogged about our <a rel="nofollow" target="_blank" href="http://blogs.msdn.com/bharry/archive/2008/02/01/some-good-screencasts.aspx">&#8220;X-plat builds&#8221;</a>. Feels good to get noticed at that level.</p>
<p>- Jim</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=JGUKzBvfm0M:pPdSkn7AM74:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=JGUKzBvfm0M:pPdSkn7AM74:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=JGUKzBvfm0M:pPdSkn7AM74:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=JGUKzBvfm0M:pPdSkn7AM74:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=JGUKzBvfm0M:pPdSkn7AM74:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=JGUKzBvfm0M:pPdSkn7AM74:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=JGUKzBvfm0M:pPdSkn7AM74:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=JGUKzBvfm0M:pPdSkn7AM74:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
      <feedburner:origLink>http://openmakesoftware.com/insights/?p=20</feedburner:origLink></item>
      <item>
         <title>RelGen Plugin</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/blvI6qwREHE/</link>
         <description>So after some more research it looks like the org.eclipse.relgen plugin is the one that is needed in order to build Eclipse. At least according to the doc for the relgen plugin. Downloaded it as an update for 3.3.1 SDK. Still don&amp;#8217;t understand how the map files that relgen uses is related [...]</description>
         <guid isPermaLink="false">http://openmakesoftware.com/build/?p=22</guid>
         <pubDate>Tue, 22 Jan 2008 10:04:27 -0800</pubDate>
         <content:encoded><![CDATA[<p>So after some more research it looks like the org.eclipse.relgen plugin is the one that is needed in order to build Eclipse. At least according to the doc for the relgen plugin. Downloaded it as an update for 3.3.1 SDK. </p>
<p>Still don&#8217;t understand how the map files that relgen uses is related to CVS. I was looking at the CVS tags and I can see the ones for major release out there, ie R_3_3_1_1 and ones based on dates. But the map files are referring to other version tags such as the date tags. I looks like its a pick and hope type of layout for the map file when choosing versions of dependent source to pull from CVS. </p>
<p>Relgen has a buildAll.xml file that I am going to try to run. Any takers on wether its going to work?</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=blvI6qwREHE:kkvLSSUqomg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=blvI6qwREHE:kkvLSSUqomg:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=blvI6qwREHE:kkvLSSUqomg:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=blvI6qwREHE:kkvLSSUqomg:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=blvI6qwREHE:kkvLSSUqomg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=blvI6qwREHE:kkvLSSUqomg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=blvI6qwREHE:kkvLSSUqomg:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=blvI6qwREHE:kkvLSSUqomg:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
      <feedburner:origLink>http://www.openmakesoftware.com/build/?p=22</feedburner:origLink></item>
      <item>
         <title>Building Eclipse Gaynamede</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/40pETWQnjOo/</link>
         <description>Technorati Tags: Eclipse, Build, Openmake, Meister
I started trying to build Eclipse today. I knew it would be a big project. As I was suspecting, finding where to start is hard. I know I need to check out the source but how. Looks like you need to use .map files that then [...]</description>
         <guid isPermaLink="false">http://openmakesoftware.com/build/?p=21</guid>
         <pubDate>Mon, 21 Jan 2008 09:08:30 -0800</pubDate>
         <content:encoded><![CDATA[<p style="text-align:right;font-size:10px;">Technorati Tags: <a rel="nofollow" target="_blank" href="http://technorati.com/tag/Eclipse">Eclipse</a>, <a rel="nofollow" target="_blank" href="http://technorati.com/tag/Build">Build</a>, <a rel="nofollow" target="_blank" href="http://technorati.com/tag/Openmake">Openmake</a>, <a rel="nofollow" target="_blank" href="http://technorati.com/tag/Meister">Meister</a></p>
<p>I started trying to build Eclipse today. I knew it would be a big project. As I was suspecting, finding where to start is hard. I know I need to check out the source but how. Looks like you need to use .map files that then reference the appropriate CVS tag and repositories. </p>
<p>I am trying to do this from the command line so I can automate the process. The goal I am trying to get to is a step by step process of building Eclipse not a bunch of pasted together processes from each project. Looks like there is no one way of pulling all the pieces together.</p>
<p>Stay tuned to see if I actuallt get the source checked out.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=40pETWQnjOo:sje4tQCEujM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=40pETWQnjOo:sje4tQCEujM:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=40pETWQnjOo:sje4tQCEujM:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=40pETWQnjOo:sje4tQCEujM:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=40pETWQnjOo:sje4tQCEujM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=40pETWQnjOo:sje4tQCEujM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=40pETWQnjOo:sje4tQCEujM:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=40pETWQnjOo:sje4tQCEujM:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
      <feedburner:origLink>http://www.openmakesoftware.com/build/?p=21</feedburner:origLink></item>
      <item>
         <title>Visual Studio CVS &amp; Subversion — TamTam CVS</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/6uHipv1NpCI/</link>
         <description>As I&amp;#8217;ve said in other posts, I tend to use Eclipse for the bulk of my C development, along with Java and Perl. There are two places where Visual Studio is, for me, an absolute necessity. Running the debugger: we compile the Windows versions of our apps using the native Microsoft compilers, which Eclipse CDT debugging [...]</description>
         <guid isPermaLink="false">http://openmakesoftware.com/insights/?p=19</guid>
         <pubDate>Fri, 18 Jan 2008 07:33:45 -0800</pubDate>
         <content:encoded><![CDATA[<p>As I&#8217;ve said in other posts, I tend to use Eclipse for the bulk of my C development, along with Java and Perl. There are two places where Visual Studio is, for me, an absolute necessity.</p>
<ol>
<li>Running the debugger: we compile the Windows versions of our apps using the native Microsoft compilers, which Eclipse CDT debugging doesn&#8217;t yet support. So to run the debugger, I switch into Visual Studio. This is the one place where I wish the Eclipse debugger keyboard shortcuts matched Visual Studio&#8217;s (yes, I know I can remap them, just haven&#8217;t done it yet!).</li>
<li>C# development. In the last year or so, we&#8217;ve been working hard on our Microsoft integrations, through the MSBuild API on the client side, and a Visual Studio Addin. Here it would be crazy to attempt to use Eclipse.</li>
</ol>
<p>However, I still need to check into CVS, which is trivial to do from Eclipse, but not natively supported in Visual Studio. I was back to the bad old days of switching out of Visual Studio to Windows Explorer and firing up TortoiseCVS or WinCVS &#8230; until I found <a rel="nofollow" target="_blank" href="http://www.daveswebsite.com/software/tamtam/index.shtml" title="TamTam CVS">TamTam CVS</a>.</p>
<p>TamTam CVS is a great little ($10) add-on to Visual Studio that provides, as <a rel="nofollow" target="_blank" href="http://www.daveswebsite.com">Dave </a>says:</p>
<blockquote><p>&#8230; a Microsoft Source Code Control (MSSCCI) compliant implementation that seamlessly integrates Concurrent Versions System NT (CVSNT) client with Microsoft Visual Studio / Visual Studio.NET 2002/2003/2005, MatLab, FoxPro, 3D Studio Max and other MSSCCI compliant applications.</p></blockquote>
<p>I&#8217;m also using it in Visual Studio 2008.</p>
<p>TamTam &#8220;just worked&#8221; when I installed it, giving me 95% of the functionality I wanted right away. I felt there was one feature missing (the ability to store &#8220;template&#8221; commit comments, which we use to link commits back to the issues that we are fixing), and I asked Dave if that feature were possible. He added it in under a week! (See version 1.2.1). Thanks Dave!</p>
<p>For $10, less than you might spend on lunch, you&#8217;re avoid tons of seemingly minor annoyances that really add up during the day. And the support was excellent. I haven&#8217;t used <a rel="nofollow" target="_blank" href="http://www.daveswebsite.com/software/tamtamsvn/">TamTam SVN</a>, but I bet it&#8217;s of similar quality.</p>
<p>&#8211; Jim</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=6uHipv1NpCI:0JnTrkdPcxE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=6uHipv1NpCI:0JnTrkdPcxE:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=6uHipv1NpCI:0JnTrkdPcxE:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=6uHipv1NpCI:0JnTrkdPcxE:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=6uHipv1NpCI:0JnTrkdPcxE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=6uHipv1NpCI:0JnTrkdPcxE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=6uHipv1NpCI:0JnTrkdPcxE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=6uHipv1NpCI:0JnTrkdPcxE:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
         <category>Uncategorized</category>
      <feedburner:origLink>http://openmakesoftware.com/insights/?p=19</feedburner:origLink></item>
      <item>
         <title>Impact of Agile processes on development</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/CiK6ld5S_ME/</link>
         <description>It seems that the &amp;#8220;agile development&amp;#8221; methodology is getting more and more press. Some of that press is asking the question &amp;#8220;does agile really work&amp;#8221;. I certainly cannot answer that question, but I know for one thing, Agile processes have brought the build state of the development cycle to front and center, where it should [...]</description>
         <guid isPermaLink="false">http://openmakesoftware.com/trend/?p=24</guid>
         <pubDate>Tue, 15 Jan 2008 15:51:25 -0800</pubDate>
         <content:encoded><![CDATA[<p>It seems that the &#8220;agile development&#8221; methodology is getting more and more press. Some of that press is asking the question &#8220;does agile really work&#8221;. I certainly cannot answer that question, but I know for one thing, Agile processes have brought the build state of the development cycle to front and center, where it should be. Even if Agile development methodologies do not improve the requirements gathering effort, or improve testing results, I can say one thing is for sure - Agile has improved the build process because it is uncovering how unsophisticated the build process is on the distributed platform. My prediction is that as the Agile process blooms and grows, the build process will bloom and grow as well. Developers will begin to see how important it is to automatically synchronize IDE Builds with external team builds in order to accomplish consistent and continuous integration. As this occurs, the answer to the question &#8220;has Agile has really improved development&#8221; will be clear - an emphatic YES!</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=CiK6ld5S_ME:3zVmYD1cY7o:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=CiK6ld5S_ME:3zVmYD1cY7o:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=CiK6ld5S_ME:3zVmYD1cY7o:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=CiK6ld5S_ME:3zVmYD1cY7o:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=CiK6ld5S_ME:3zVmYD1cY7o:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=CiK6ld5S_ME:3zVmYD1cY7o:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=CiK6ld5S_ME:3zVmYD1cY7o:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=CiK6ld5S_ME:3zVmYD1cY7o:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
         <category>Uncategorized</category>
      <feedburner:origLink>http://openmakesoftware.com/trend/?p=24</feedburner:origLink></item>
      <item>
         <title>Where is the build transparency in SCM tools?</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/_JNFUFuqZQw/</link>
         <description>As a vendor of build management tools, it gets a bit frustrating when I read articles that glorify the transparency of any SCM tool. An SCM tool cannot provide an audit of the build that shows all of the artifacts used in the build. PERIOD!! Yes, you can run a bill of material report, but [...]</description>
         <guid isPermaLink="false">http://openmakesoftware.com/trend/?p=23</guid>
         <pubDate>Tue, 08 Jan 2008 15:53:51 -0800</pubDate>
         <content:encoded><![CDATA[<p>As a vendor of build management tools, it gets a bit frustrating when I read articles that glorify the transparency of any SCM tool. An SCM tool cannot provide an audit of the build that shows all of the artifacts used in the build. PERIOD!! Yes, you can run a bill of material report, but that is simply a report of what was checked into the SCM tool at the time of the build. The build scripts that execute the build can point to code anywhere on your network, so a BOM report is at best a guess. I&#8217;m sort of surprised that as sophisticated we have become in our development practices that this simple fact is so misrepresented and misunderstood. The build, meaning the creation of the pre-production binaries, is the decider when it comes to assembling the binaries. The SCM tool is just a filing cabinet where code may or may not reside and referenced during the build. Just because the code is in the local build directory does not mean that the build used the local code. In many cases it does not. How many developers check out rt.jar into the local build directory and then writes a script that ensures that rt.jar is found there. I know this sound like bits and bytes and why does it matter - well it does, and without a real audit of the build by a process that monitors the calling of build engines, the SCM tool is nothing more than a repository of changes, that may or may not have been used when the build executed.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=_JNFUFuqZQw:Sjx_EEWZ4p0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=_JNFUFuqZQw:Sjx_EEWZ4p0:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=_JNFUFuqZQw:Sjx_EEWZ4p0:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=_JNFUFuqZQw:Sjx_EEWZ4p0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=_JNFUFuqZQw:Sjx_EEWZ4p0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=_JNFUFuqZQw:Sjx_EEWZ4p0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=_JNFUFuqZQw:Sjx_EEWZ4p0:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=_JNFUFuqZQw:Sjx_EEWZ4p0:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
      <feedburner:origLink>http://openmakesoftware.com/trend/?p=23</feedburner:origLink></item>
      <item>
         <title>Build Services - New term in Build Management</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/8g5_6XOhkKg/</link>
         <description>Because we have been doing build management for the last 14 years, we seem to have the honor of defining new terms to describe what we do only to have our competitors, borrow and redefine the term. In a recent competitors webinar, they began talking about &amp;#8220;building services&amp;#8221;, around SOA. Now this competitor does not [...]</description>
         <guid isPermaLink="false">http://openmakesoftware.com/trend/?p=22</guid>
         <pubDate>Wed, 02 Jan 2008 10:23:21 -0800</pubDate>
         <content:encoded><![CDATA[<p><span style="font-family:Georgia;"><font size="2">Because we have been doing build management for the last 14 years, we seem to have the honor of defining new terms to describe what we do only to have our competitors, borrow and redefine the term. In a recent competitors webinar, they began talking about &#8220;building services&#8221;, around SOA. Now this competitor does not do Builds, they simply manage workflows and perform job scheduling, they build nothing and rely on developers to write the build scripts that actually do builds. </font></span><span style="font-family:Georgia;"><font size="2">So for clarification, Build Services is the process of creating reuse around the execution of the Build engines. Build engines, such as Ant, Make and MSBuild, call compiler and linkers that assemble the application. A Build Service does builds - so don&#8217;t be fooled when you hear build tools say they offer build services when they do not even attempt to manage the build engines. </font></span></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=8g5_6XOhkKg:YI6xqOMJg94:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=8g5_6XOhkKg:YI6xqOMJg94:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=8g5_6XOhkKg:YI6xqOMJg94:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=8g5_6XOhkKg:YI6xqOMJg94:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=8g5_6XOhkKg:YI6xqOMJg94:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=8g5_6XOhkKg:YI6xqOMJg94:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=8g5_6XOhkKg:YI6xqOMJg94:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=8g5_6XOhkKg:YI6xqOMJg94:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
         <category>Uncategorized</category>
      <feedburner:origLink>http://openmakesoftware.com/trend/?p=22</feedburner:origLink></item>
      <item>
         <title>Shouldn’t Continuous Integration Servers support iterative builds?</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/WW_xO6Ej7ts/</link>
         <description>Going through a review of build products that support Continuous Integration builds, it became very clear that few of them support iterative builds, meaning executing builds that re-builds only the changes, not doing full builds every time. I find this ironic. Continuous Integration is intended to support agile development processes where change is encouraged. But if a [...]</description>
         <guid isPermaLink="false">http://openmakesoftware.com/trend/?p=21</guid>
         <pubDate>Mon, 31 Dec 2007 12:43:17 -0800</pubDate>
         <content:encoded><![CDATA[<p style="margin:0pt;" class="MsoNormal"><span style="font-family:Georgia;"><font size="3">Going through a review of build products that support Continuous Integration builds, it became very clear that few of them support iterative builds, meaning executing builds that re-builds only the changes, not doing full builds every time. I find this ironic. Continuous Integration is intended to support agile development processes where change is encouraged. But if a build is taking several hours, than the builds are really not continuous. They are just done more often than once every two weeks - which is certainly a big improvement, but just not enough. Continuous Integration builds are only &#8220;continuous&#8221; when they can support incremental builds. A build that understands how to re-build your application incrementally takes agile development to where it needs to be – integration on a continuous basis, meaning everytime source code changes, it can be built and tested immediately. </font></span></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=WW_xO6Ej7ts:NadoZJ1-JwE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=WW_xO6Ej7ts:NadoZJ1-JwE:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=WW_xO6Ej7ts:NadoZJ1-JwE:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=WW_xO6Ej7ts:NadoZJ1-JwE:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=WW_xO6Ej7ts:NadoZJ1-JwE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=WW_xO6Ej7ts:NadoZJ1-JwE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=WW_xO6Ej7ts:NadoZJ1-JwE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=WW_xO6Ej7ts:NadoZJ1-JwE:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
         <category>Uncategorized</category>
      <feedburner:origLink>http://openmakesoftware.com/trend/?p=21</feedburner:origLink></item>
      <item>
         <title>Creating your own build system vs. Commercial build tools</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/7Kvm-VRdqZw/</link>
         <description>The build tool market has gone insane. Our competitors who in the past criticized us for providing a system that replaces ad-hoc scripts, now brag that it is one of the features they provide. They say this but still do not address the ad hoc build scripts that actually run the builds. So think twice before you [...]</description>
         <guid isPermaLink="false">http://openmakesoftware.com/trend/?p=20</guid>
         <pubDate>Wed, 19 Dec 2007 13:05:51 -0800</pubDate>
         <content:encoded><![CDATA[<p><span style="font-family:Georgia;">The build tool market has gone insane. Our competitors who in the past criticized us for providing a system that replaces ad-hoc scripts, now brag that it is one of the features they provide. They say this but still do not address the ad hoc build scripts that actually run the builds. So think twice before you drink their cool-aid. If you are looking at a build workflow systems to run your build automation between check-in, check-out, make, ant, maven, testing and deployment - consider using free tools such as OpenMake Mojo or CruiseControl. When looking at build systems, you need to look at tools that integrate into your Development IDEs, support refactoring, builds from the Project IDEs without you having to write manual ad-hoc scripts, and can do build avoidance to support incremental continuous integration builds. Workflow is important so workflow should be included as part of the solution, but should not be the only solution. In other words, if a build management tool still relies on you writing your build system, then is it really a build management solution or is it simply a job scheduler?</span></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=7Kvm-VRdqZw:j_lDHmgVqB0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=7Kvm-VRdqZw:j_lDHmgVqB0:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=7Kvm-VRdqZw:j_lDHmgVqB0:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=7Kvm-VRdqZw:j_lDHmgVqB0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=7Kvm-VRdqZw:j_lDHmgVqB0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=7Kvm-VRdqZw:j_lDHmgVqB0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=7Kvm-VRdqZw:j_lDHmgVqB0:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=7Kvm-VRdqZw:j_lDHmgVqB0:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
         <category>Uncategorized</category>
      <feedburner:origLink>http://openmakesoftware.com/trend/?p=20</feedburner:origLink></item>
      <item>
         <title>Omission of Dependency Analysis in Development Tools</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/ilKX5LT5VSI/</link>
         <description>In the November issue of RedmondDeveloper, Peter Varhol wrote an article called &amp;#8220;Code Dependency Analysis&amp;#8221;. In this article he states &amp;#8220;It appears that tools to analyze and correct dependencies are few and far between&amp;#8221;. Well Peter, you may be correct when it comes to standard debuggers and code analysis tools; however, the place to look for [...]</description>
         <guid isPermaLink="false">http://openmakesoftware.com/trend/?p=19</guid>
         <pubDate>Tue, 27 Nov 2007 13:40:40 -0800</pubDate>
         <content:encoded><![CDATA[<p><span style="font-family:Georgia;">In the November issue of RedmondDeveloper, Peter Varhol wrote an article called &#8220;Code Dependency Analysis&#8221;. In this article he states &#8220;It appears that tools to analyze and correct dependencies are few and far between&#8221;. Well Peter, you may be correct when it comes to standard debuggers and code analysis tools; however, the place to look for these types of features is in build management tools. Unlike debuggers and code analysis tools, a build management tool must perform this level of dependency analysis - otherwise it cannot create the binaries. Maybe this is the reason why so many of our competitors, calling themselves build management tools, really don&#8217;t do builds. Instead they have the developers write scripts that the so called build management tool can call to execute the real build process. And unfortunately, these scripts do not have the scanners capable of performing the required level of dependency analysis.</span><span style="font-family:Georgia;">So yes, build management is where to look for code-dependency analysis tools. And if your build management tool is not offering you these features, maybe it is not managing binaries and instead just executing the scripts that the developers have provided.<span> </span>Don&#8217;t be fooled by tools that call themselves build management tools but cannot create a binary without the heavy lifting performed by the <span> </span>developers custom scripts.</span></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=ilKX5LT5VSI:9ShqpYwM88M:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=ilKX5LT5VSI:9ShqpYwM88M:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=ilKX5LT5VSI:9ShqpYwM88M:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=ilKX5LT5VSI:9ShqpYwM88M:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=ilKX5LT5VSI:9ShqpYwM88M:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=ilKX5LT5VSI:9ShqpYwM88M:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=ilKX5LT5VSI:9ShqpYwM88M:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=ilKX5LT5VSI:9ShqpYwM88M:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
         <category>Build</category>
      <feedburner:origLink>http://openmakesoftware.com/trend/?p=19</feedburner:origLink></item>
      <item>
         <title>Looking for a cross platform socket toolkit?</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/uYLTtf0sU8w/</link>
         <description>I was struggling with an http connection to a Websphere App Server. I was getting incomplete data back. Look at my programing books to see where I may have gone wrong. No Luck. I re-wrote the test program in PERL and it worked. So I knew it was something with [...]</description>
         <guid isPermaLink="false">http://openmakesoftware.com/build/?p=20</guid>
         <pubDate>Wed, 14 Nov 2007 02:25:15 -0800</pubDate>
         <content:encoded><![CDATA[<p>I was struggling with an http connection to a Websphere App Server. I was getting incomplete data back. Look at my programing books to see where I may have gone wrong. No Luck. I re-wrote the test program in PERL and it worked. So I knew it was something with the way we were handling the socket. I found the Apache libapr project. Downloaded it and modified the test program from http://dev.ariel-networks.com/apr/apr-tutorial/html/apr-tutorial.html (client.c) and it worked. </p>
<p>It appears that the libapr is using the WSARecv, WSASend etc functions instead of the recv and send functions. Also, it setup the connection a little differently than I was. But it was very easy to use. I need to test on Unix but I don&#8217;t suspect too many problems.</p>
<p>Check it out at: http://apr.apache.org/</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=uYLTtf0sU8w:UIxm0ikIhL8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=uYLTtf0sU8w:UIxm0ikIhL8:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=uYLTtf0sU8w:UIxm0ikIhL8:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=uYLTtf0sU8w:UIxm0ikIhL8:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=uYLTtf0sU8w:UIxm0ikIhL8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=uYLTtf0sU8w:UIxm0ikIhL8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=uYLTtf0sU8w:UIxm0ikIhL8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=uYLTtf0sU8w:UIxm0ikIhL8:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
      <feedburner:origLink>http://www.openmakesoftware.com/build/?p=20</feedburner:origLink></item>
      <item>
         <title>Handling chunked http data</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/yDaQg95ONR8/</link>
         <description>In HTTP 1.1 the client and server can send chunked data. This is done so you don&amp;#8217;t need to send the Content-Length. When working with Java the Java HTTP classes handle Transfer-Encoding: chunked, but if you are using the native C code you need to handle this on your own. Here&amp;#8217;s the step [...]</description>
         <guid isPermaLink="false">http://openmakesoftware.com/build/?p=19</guid>
         <pubDate>Thu, 01 Nov 2007 04:19:56 -0700</pubDate>
         <content:encoded><![CDATA[<p>In HTTP 1.1 the client and server can send chunked data. This is done so you don&#8217;t need to send the Content-Length. When working with Java the Java HTTP classes handle Transfer-Encoding: chunked, but if you are using the native C code you need to handle this on your own. </p>
<p>Here&#8217;s the step to handle reading chunked data.</p>
<p>1. Read the http headers from the socket looking for the Transfer-Encoding: chunked header<br />
2. After the headers, there will be a new line chr(13) and then a line with only a single number on it. This number is the length of the next chunk of data in hex (use strtol()) to change the hex to decimal)<br />
3. Read from the socket the number of bytes in step #2<br />
4. Next is a possible new line chr(13) or not (depending upon the server) and then the hex number on the next line.<br />
5. You then repeat step #3 until the hex number is 0</p>
<p>Make sure you test against several different servers/clients since the format (extra newlines or not) are not consistent between the servers.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=yDaQg95ONR8:XtnAzlmY4oE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=yDaQg95ONR8:XtnAzlmY4oE:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=yDaQg95ONR8:XtnAzlmY4oE:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=yDaQg95ONR8:XtnAzlmY4oE:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=yDaQg95ONR8:XtnAzlmY4oE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=yDaQg95ONR8:XtnAzlmY4oE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=yDaQg95ONR8:XtnAzlmY4oE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=yDaQg95ONR8:XtnAzlmY4oE:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
         <category>Uncategorized</category>
      <feedburner:origLink>http://www.openmakesoftware.com/build/?p=19</feedburner:origLink></item>
      <item>
         <title>Executing Command Line Compilers from Openmake Mojo</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/i740w1Ec71U/</link>
         <description>One of the nice features of Mojo is the ability to execute any command line compiler. The issue that I have seen is that most people do not understand how to make the compiler run from the command line. The key is to get the inputs and outputs correct for the compiler. [...]</description>
         <guid isPermaLink="false">http://openmakesoftware.com/build/?p=17</guid>
         <pubDate>Tue, 23 Oct 2007 09:22:15 -0700</pubDate>
         <content:encoded><![CDATA[<p>One of the nice features of Mojo is the ability to execute any command line compiler. The issue that I have seen is that most people do not understand how to make the compiler run from the command line. The key is to get the inputs and outputs correct for the compiler. Most compilers have a -h or -? parameter that will give you a list of flags that it expects and how to pass in the input file names. Another place to look is at the documentation, on Unix the manpage command man. Look for examples on how to run the compiler from the command line. Most of the time just a few flags are needed, since the defaults will work.</p>
<p>Also, look under the covers to see whats happening. For example, the WebSphere deploy script is really a shell/batch script that wrappers a call to a Java class. Inside the script you can get a better idea of what it expects as inputs and outputs.</p>
<p>The compilers will sometimes use a response file in which all of the inputs and parameters are put into and then the response file is passed to the compiler. Compilers that use response files are great since they avoid the problem of limited command line character limits.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=i740w1Ec71U:inWaTaYQgTs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=i740w1Ec71U:inWaTaYQgTs:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=i740w1Ec71U:inWaTaYQgTs:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=i740w1Ec71U:inWaTaYQgTs:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=i740w1Ec71U:inWaTaYQgTs:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=i740w1Ec71U:inWaTaYQgTs:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=i740w1Ec71U:inWaTaYQgTs:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=i740w1Ec71U:inWaTaYQgTs:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
         <category>Build</category>
      <feedburner:origLink>http://www.openmakesoftware.com/build/?p=17</feedburner:origLink></item>
      <item>
         <title>The Mysterious Case of the Disappearing Mojo</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/tC3ntlVZeNk/</link>
         <description>While doing support calls for Mojo in the last few weeks, I ran into some mysterious behavior. One day everything about Mojo would be running fine (no, that&amp;#8217;s not the mysterious behavior) - the workflows would run flawlessly, logging would display, etc. But, the next day, after the machine had been restarted, several .jar files [...]</description>
         <guid isPermaLink="false">http://openmakesoftware.com/support/?p=14</guid>
         <pubDate>Fri, 19 Oct 2007 14:43:40 -0700</pubDate>
         <content:encoded><![CDATA[<p>While doing support calls for Mojo in the last few weeks, I ran into some mysterious behavior. One day everything about Mojo would be running fine <span style="font-size:9px;">(no, that&#8217;s not the mysterious behavior)</span> - the workflows would run flawlessly, logging would display, etc. But, the next day, after the machine had been restarted, several .jar files that belong to the Knowledge Base server would disappear from the machine, hence the KB server could not be started.</p>
<p>I asked the customer to reinstall, and once again, everything would be working fine&#8230; until the machine was restarted. This went on for a few days, until we figured out that the Mojo Uninstaller that was deleting the files. However, it was the Mojo Uninstaller from a previous install that was deleting the files. It was deleting files from beyond the grave! (or the Recycle Bin)</p>
<p>The Mojo Uninstaller is based on a third-party software that stores a list of files that need to be deleted in an obscure location on the file system. Normally, this list is cleared once all files are deleted. However, in the customer&#8217;s case, not all files were deleted: the Knowledge Base server was still running during the uninstall, so any .jar files used by the KB Server could not be deleted. Therefore, the &#8220;files to delete&#8221; list still had these jar files listed. Once these files were freed up (i.e. on restart of the machine) the uninstaller jumped in and deleted the files. Since this list of files is stored in an obscure, relatively inaccessible place, we could not tell the uninstaller to quit uninstalling these files.</p>
<p>So, DO NOT use uninstall.exe when uninstalling Mojo on Windows. Unless of course you like headaches.</p>
<p>&#8220;So, Mr. Support Guy, how do I uninstall Mojo?&#8221; you ask?</p>
<p>Glad you asked. It&#8217;s a simple process:</p>
<p>1. Stop the Knowledge Base server - this will free up the KBServer jar files for uninstalling<br />
2. delete all the files from the directory where you installed Mojo.<br />
3. Delete the <a rel="nofollow" target="_blank" href="http://openmakesoftware.com/support/?p=13">omenvironment.properties</a> file.</p>
<p>If you have already uninstalled Mojo using uninstall.exe, and files are mysteriously disappearing from your Mojo install, then we recommend you do the following:</p>
<p>1. Uninstall mojo using the above process.<br />
2. Reinstall Mojo in a different directory, so the uninstaller cannot find the .jar files it wants to delete.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=tC3ntlVZeNk:UMuQfgpD_ug:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=tC3ntlVZeNk:UMuQfgpD_ug:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=tC3ntlVZeNk:UMuQfgpD_ug:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=tC3ntlVZeNk:UMuQfgpD_ug:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=tC3ntlVZeNk:UMuQfgpD_ug:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=tC3ntlVZeNk:UMuQfgpD_ug:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=tC3ntlVZeNk:UMuQfgpD_ug:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=tC3ntlVZeNk:UMuQfgpD_ug:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
      <feedburner:origLink>http://openmakesoftware.com/support/?p=14</feedburner:origLink></item>
      <item>
         <title>The omenvironment.properties file</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/fwy1Koi7NqA/</link>
         <description>In order to properly run builds with OpenMake Software products, there are a few environmental prerequisites that need to be met, such as Java, Perl and a number of environment variables (e.g. the OPENMAKE_SERVER variable mentioned in an earlier post).
To simplifiy operation in Mojo and Meister, we have introduced the omenvironment.properties file to help manage [...]</description>
         <guid isPermaLink="false">http://openmakesoftware.com/support/?p=13</guid>
         <pubDate>Fri, 19 Oct 2007 14:08:09 -0700</pubDate>
         <content:encoded><![CDATA[<p>In order to properly run builds with OpenMake Software products, there are a few environmental prerequisites that need to be met, such as Java, Perl and a number of environment variables (e.g. the OPENMAKE_SERVER variable mentioned in an earlier post).</p>
<p>To simplifiy operation in Mojo and Meister, we have introduced the omenvironment.properties file to help manage your Mojo/Meister environment. This file contains OpenMake specific environment configuration and is automatically set up for you upon install of an OpenMake Software product. For Windows users, this file is found in two locations: the &#8220;openmake&#8221; directory under your user&#8217;s &#8220;Application Data&#8221; folder (C:&#92;Documents and Settings&#92;USERNAME&#92;Application Data&#92;openmake) and the client&#92;bin directory. For those of you on UNIX or GNU/Linux, the file is found under the &#8220;.openmake&#8221; directory under your user&#8217;s home directory, as well as the client/bin directory. The purpose of having multiple files is so that different users could have different environment settings, by using the file in their user home directories, or the environment can be managed globally with the file in the client&#92;bin directory. If the file exists in the user&#8217;s home directory, then that file will take precedence. Otherwise, the file from client&#92;bin will be used.</p>
<p>The main function of this file is to insure that when the Mojo or Meister interfaces are used to kick off a Workflow, these core variables required by Mojo/Meister are guaranteed to be part of the environment. Also, by setting OPENMAKE_SERVER, it insures that you can connect to the KB server when you start the Mojo/Meister workbench.</p>
<p>There is another place where the omenvironment.properties file comes into play and sometimes causes problems: upgrading or reinstalling Mojo or Meister. I will take on that topic in my next post.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=fwy1Koi7NqA:CazhuS28n2k:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=fwy1Koi7NqA:CazhuS28n2k:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=fwy1Koi7NqA:CazhuS28n2k:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=fwy1Koi7NqA:CazhuS28n2k:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=fwy1Koi7NqA:CazhuS28n2k:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=fwy1Koi7NqA:CazhuS28n2k:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=fwy1Koi7NqA:CazhuS28n2k:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=fwy1Koi7NqA:CazhuS28n2k:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
      <feedburner:origLink>http://openmakesoftware.com/support/?p=13</feedburner:origLink></item>
      <item>
         <title>What does Build Management mean?</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/r5WzDl1SzWc/</link>
         <description>Build Management, Build Automation, dependency scanning - I hear these terms tossed around by vendors who sell &amp;#8220;build tools&amp;#8221;, but no one uses the terms in a standard manner. This inconsistency is a reflection of the build space in general. Builds are so &amp;#8220;black box&amp;#8221; that most people really don&amp;#8217;t know what &amp;#8220;build management&amp;#8221; means. Having [...]</description>
         <guid isPermaLink="false">http://openmakesoftware.com/trend/?p=18</guid>
         <pubDate>Thu, 18 Oct 2007 14:33:53 -0700</pubDate>
         <content:encoded><![CDATA[<p>Build Management, Build Automation, dependency scanning - I hear these terms tossed around by vendors who sell &#8220;build tools&#8221;, but no one uses the terms in a standard manner. This inconsistency is a reflection of the build space in general. Builds are so &#8220;black box&#8221; that most people really don&#8217;t know what &#8220;build management&#8221; means. </p>
<p>Having worked in the field for close to 15 years, I feel I have earned the right to comment on what these terms mean:</p>
<p>Build Management - The ability to manage the creation of binaries including the enforcement of source file locations, third party library usage and compile flags. It also must include the ability to track all artifacts used to create the binary, not just show what was checked into a SCM tool. </p>
<p>Build Automation - The ability to run automatic builds, without the need to baby sit ad hoc scripts. Build Automation is not the process of scheduling scripts or executing scripts from some sort of workflow tool. This is just &#8220;script scheduling&#8221; - not build automation. There is nothing automatic about writing build scripts, or babysitting build scripts.</p>
<p>Dependency Scanning - This is the process of watching the compiler and scanning source code for nested references to source code and libraries. It is not running a &#8220;check-out&#8221; report against a SCM tool to determine what was checked out to the local build directory prior to a build, referred to as a Bill of Material (BOM) report. A BOM report cannot tell you what it does not know, and many artifacts there are used to create your binary come from places other than the local build directory. Dependency Analysis is just that, a thorough review of what occurred in the build, even if an SCM tool is not used. So if your build relies on an SCM tool for &#8220;dependency scanning&#8221;, it is not doing dependency analysis.</p>
<p>This list can go on for some length, but I will stop here. The point is that the Build Management market can be as confusing as builds themselves. This is proof that we, as an IT community, have not spent enough time discussing, improving and standardizing this critical component of application development.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=r5WzDl1SzWc:DqVZxFf7PzI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=r5WzDl1SzWc:DqVZxFf7PzI:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=r5WzDl1SzWc:DqVZxFf7PzI:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=r5WzDl1SzWc:DqVZxFf7PzI:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=r5WzDl1SzWc:DqVZxFf7PzI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=r5WzDl1SzWc:DqVZxFf7PzI:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=r5WzDl1SzWc:DqVZxFf7PzI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=r5WzDl1SzWc:DqVZxFf7PzI:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
         <category>Uncategorized</category>
      <feedburner:origLink>http://openmakesoftware.com/trend/?p=18</feedburner:origLink></item>
      <item>
         <title>Build scripting - born from the waterfall lifecycle model</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/j9QFYpnn7pc/</link>
         <description>Yes, I have not blogged in a bit - but I&amp;#8217;m back. I&amp;#8217;ve had some time to think about the question people most commonly ask me about builds, and my personal mission to minimize ad hoc build scripts. Well the answer is really simple. The practice of writing build scripts sprang from the traditional waterfall model [...]</description>
         <guid isPermaLink="false">http://openmakesoftware.com/trend/?p=17</guid>
         <pubDate>Tue, 16 Oct 2007 15:10:37 -0700</pubDate>
         <content:encoded><![CDATA[<p>Yes, I have not blogged in a bit - but I&#8217;m back. I&#8217;ve had some time to think about the question people most commonly ask me about builds, and my personal mission to minimize ad hoc build scripts. Well the answer is really simple. The practice of writing build scripts sprang from the traditional waterfall model of software development. Developers worked on their unique .exe or .dll file. They used a makefile that compiled their individual &#8220;Unit&#8221; binary. When they were done, the turned over their source and makefile to the Build Meister. The Build Meister than incorporated that makefile into a &#8220;System&#8221; level build.</p>
<p>Well guess what - developers don&#8217;t really work that way anymore, but they continue to rely on this waterfall approach to builds. What developers do is work within IDEs where their builds are nicely managed for them. They then try to setup a continuous integration build, or nightly build process, and find themselves falling back into the waterfall process model and calling on a build expert to create an Ant, Maven or Make script. If you are trying to improve your process, automate the creation of your build script, in the same way that you use IDEs to perform automatic code creation. You cannot do agile development without streamlining the build step. Developers should be able to build inside or outside the IDE without the overhead of a manual scripted process designed for a waterfall approach to application development. I&#8217;m not saying scripting is bad, just that done ad hoc, it is highly redundant and forces agile development into a waterfall phase of build management. Just some thoughts to chew on.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=j9QFYpnn7pc:RHVJ_tD_naE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=j9QFYpnn7pc:RHVJ_tD_naE:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=j9QFYpnn7pc:RHVJ_tD_naE:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=j9QFYpnn7pc:RHVJ_tD_naE:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=j9QFYpnn7pc:RHVJ_tD_naE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=j9QFYpnn7pc:RHVJ_tD_naE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=j9QFYpnn7pc:RHVJ_tD_naE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=j9QFYpnn7pc:RHVJ_tD_naE:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
         <category>Uncategorized</category>
      <feedburner:origLink>http://openmakesoftware.com/trend/?p=17</feedburner:origLink></item>
      <item>
         <title>Eclipse Foundation</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/g1BzdR4Q-QY/</link>
         <description>Sat in marketing meeting listening to presentation on how to market to developers.&amp;#160; Developers = irrational monkeys that want respect!&amp;#160; Best way to market to them is to have a product with no alternative available.&amp;#160; The things we spend our time doing - Best way to get word out to developers is to provide best [...]</description>
         <guid isPermaLink="false">http://openmakesoftware.com/vision/?p=5</guid>
         <pubDate>Wed, 19 Sep 2007 12:24:41 -0700</pubDate>
         <content:encoded><![CDATA[<p>Sat in marketing meeting listening to presentation on how to market to developers.&nbsp; Developers = irrational monkeys that want respect!&nbsp; Best way to market to them is to have a product with no alternative available.&nbsp; The things we spend our time doing - Best way to get word out to developers is to provide best product and to get them talking about it.&nbsp; No wonder developers are dismissive of marketing!</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=g1BzdR4Q-QY:mjckpTwNdhI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=g1BzdR4Q-QY:mjckpTwNdhI:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=g1BzdR4Q-QY:mjckpTwNdhI:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=g1BzdR4Q-QY:mjckpTwNdhI:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=g1BzdR4Q-QY:mjckpTwNdhI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=g1BzdR4Q-QY:mjckpTwNdhI:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=g1BzdR4Q-QY:mjckpTwNdhI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=g1BzdR4Q-QY:mjckpTwNdhI:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
         <category>Uncategorized</category>
      <feedburner:origLink>http://openmakesoftware.com/vision/?p=5</feedburner:origLink></item>
      <item>
         <title>A little about Openmake licensing…</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/BEBv8jDOeHI/</link>
         <description>Often times support receives calls about how Openmake Remote Build licensing works, in particular, whether or not build machine definition files are required. For those that don&amp;#8217;t know, machine definition files are simply xml files that are stored on the central Knowledge Base server containing network information about how to locate licensed Remote Build machines. [...]</description>
         <guid isPermaLink="false">http://openmakesoftware.com/support/?p=3</guid>
         <pubDate>Mon, 20 Aug 2007 16:36:43 -0700</pubDate>
         <content:encoded><![CDATA[<p>Often times support receives calls about how Openmake Remote Build licensing works, in particular, whether or not build machine definition files are required. For those that don&#8217;t know, machine definition files are simply xml files that are stored on the central Knowledge Base server containing network information about how to locate licensed Remote Build machines. While these files are still used in Openmake, since 6.3, there has been no need to have them generated and provided as part of a Remote Build license. This is because the Remote Build Servers are now intelligent enough to send this machine definition information over to the KB Server on their initial startup. So now when you want an Openmake Remote Build Server licensed, you just need the license.kb generated and nothing else. This license file is stored on the KB Server and simply contains the host names/ip addresses of the licensed Remote Build Servers as well as a hardware specific hostid for the KB Server itself.</p>
<p>All license requests now need the following information to generate a proper license.kb:</p>
<p>- hostid of the KB Server (see installation guide for how to obtain this for the different OS&#8217;s. On windows it&#8217;s vol c: and most unix flavors, a derivative of the uname command)</p>
<p>- host names of any Remote Build Servers that are licensed, if any.</p>
<p>- number of named licensed users.</p>
<p>- contact information (name, e-mail and phone number is sufficient)</p>
<p>- whether or not you have a permanent license or are just requesting a demo version.</p>
<p>For more information about licensing, you may also always contact our Openmake sales team.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=BEBv8jDOeHI:Xbz3Anorzmo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=BEBv8jDOeHI:Xbz3Anorzmo:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=BEBv8jDOeHI:Xbz3Anorzmo:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=BEBv8jDOeHI:Xbz3Anorzmo:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=BEBv8jDOeHI:Xbz3Anorzmo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=BEBv8jDOeHI:Xbz3Anorzmo:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=BEBv8jDOeHI:Xbz3Anorzmo:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=BEBv8jDOeHI:Xbz3Anorzmo:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
         <category>Licensing</category>
      <feedburner:origLink>http://openmakesoftware.com/support/?p=3</feedburner:origLink></item>
      <item>
         <title>Running your programs on Vista (signed exes)</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/djZEIB6Ters/</link>
         <description>Now that Vista is out, some of your existing programs don&amp;#8217;t run like they use to. The User Access Control interface of Vista gets in the way causing messages to pop up unexpectedly. Microsoft wants to run only &amp;#8220;signed&amp;#8221; executables without the annoying messages. I think Microsoft did this as a way to combat the [...]</description>
         <guid isPermaLink="false">http://openmakesoftware.com/build/?p=3</guid>
         <pubDate>Mon, 20 Aug 2007 10:33:26 -0700</pubDate>
         <content:encoded><![CDATA[<p>Now that Vista is out, some of your existing programs don&#8217;t run like they use to. The User Access Control interface of Vista gets in the way causing messages to pop up unexpectedly. Microsoft wants to run only &#8220;signed&#8221; executables without the annoying messages. I think Microsoft did this as a way to combat the security issues they have been hit with.</p>
<p>So to get your Windows exes signed you need a certificate from Thawte, Verisign or a like. We have a certificate that we use for signing our jar files that run via a Java Applet. (Only way to make a Java Applet talk to multiple machines and the file system).</p>
<p>The certificate is stored in the key3.db and cert7.db Netscape data files. The trick was to get the certificate from there into something Microsoft would recognize, since you need to use the Microsoft signing tools instead of the Netscape ones to sign a Windows exe.</p>
<p>Here are the steps I did to get me over to a Microsoft certificate store</p>
<p>1. Download the Netscape tools from:<br />
http://www.mozilla.org/projects/security/pki/nss/tools/index.html</p>
<p>An awesome set of tools and documentation for Cryto stuff!!!</p>
<p>2. Since my cert was stuck in a cert7.db instead of a cert8.db I had to go back and get the version of the tools to handle that.<br />
I used the nss-3.6.1.zip and nspr-4.2.2.zip pre-built packages for Windows.</p>
<p>3. I used pk12util to pull the certificate out of the cert7.db</p>
<div class="codecolorer-container text " style="overflow:auto;white-space:nowrap;width:0px;"><div class="text codecolorer" style="font-family:Monaco, Lucida Console, monospace;">pk12util -d &amp;lt;path to db dir&amp;gt; -n &amp;lt;cert name&amp;gt; -o mycert.p12</div></div>
<p>It prompts you for the password to the DB and then another password for the .p12 file</p>
<p>4. At this point I had the certificate in the PKCS12 format in the mycert.p12. Next was to add it to the Microsoft certificate store.</p>
<p>Just run certmgr.exe and a GUI will walk through getting the certificate imported. I just took the defaults. Used my password that<br />
I saved the .p12 file with and Marked the private key as exportable. I left enable strong private key encrytion off. Took the default<br />
of Automatically picking the store. And your done.</p>
<p>5. Now that its in the Microsoft store you can sign your exes. You need to use the signcode.exe or signtool.exe (depending on the version of the Microsoft SDK) to do the signing.</p>
<div class="codecolorer-container text " style="overflow:auto;white-space:nowrap;width:0px;"><div class="text codecolorer" style="font-family:Monaco, Lucida Console, monospace;">signcode -cn "&amp;lt;Certificate Name&amp;gt;" &amp;lt;executable name&amp;gt;</div></div>
<p>Note: Use a timestamp server /t option</p>
<p>6. To check that it was signed correctly, run signtool.exe verify or chktrust.exe</p>
<p>Thats it!!</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=djZEIB6Ters:WlRndeqkBlo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=djZEIB6Ters:WlRndeqkBlo:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=djZEIB6Ters:WlRndeqkBlo:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=djZEIB6Ters:WlRndeqkBlo:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=djZEIB6Ters:WlRndeqkBlo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=djZEIB6Ters:WlRndeqkBlo:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=djZEIB6Ters:WlRndeqkBlo:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=djZEIB6Ters:WlRndeqkBlo:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
         <category>Windows</category>
      <feedburner:origLink>http://www.openmakesoftware.com/build/?p=3</feedburner:origLink></item>
      <item>
         <title>fgets() uses 99% CPU</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/-h4zceoB3T4/</link>
         <description>I had the following code snippet use 99% CPU on AIX.
if &amp;#40;fstat&amp;#40;fileno&amp;#40;fp&amp;#41;,&amp;#38;amp;st&amp;#41; == 0&amp;#41;
&amp;#123;
iStr = &amp;#40;char *&amp;#41;malloc&amp;#40;st.st_size&amp;#41;; memset&amp;#40;iStr,'?',st.st_size&amp;#41;; while &amp;#40;fgets&amp;#40;iStr,st.st_size,fp&amp;#41; != NULL&amp;#41; &amp;#123; safecat&amp;#40;logtext,iStr&amp;#41;; safecat&amp;#40;logtext,&amp;#34; &amp;#34;&amp;#41;; if &amp;#40;fpout != NULL&amp;#41; fprintf&amp;#40;fpout,&amp;#34;%s &amp;#34;,iStr&amp;#41;; &amp;#125;
&amp;#125;
if &amp;#40;fp != NULL&amp;#41;
fclose&amp;#40;fp&amp;#41;;
It appears that the first fgets() would get all of data except the EOF. The next time around fgets() should return NULL since EOF would be read. But [...]</description>
         <guid isPermaLink="false">http://openmakesoftware.com/build/?p=4</guid>
         <pubDate>Sun, 19 Aug 2007 10:33:26 -0700</pubDate>
         <content:encoded><![CDATA[<p>I had the following code snippet use 99% CPU on AIX.</p>
<div class="codecolorer-container php " style="overflow:auto;white-space:nowrap;width:0px;"><div class="php codecolorer" style="font-family:Monaco, Lucida Console, monospace;"><span class="kw1">if</span> <span class="br0">&#40;</span><a rel="nofollow" target="_blank" href="http://www.php.net/fstat"><span class="kw3">fstat</span></a><span class="br0">&#40;</span>fileno<span class="br0">&#40;</span>fp<span class="br0">&#41;</span><span class="sy0">,&amp;</span>amp<span class="sy0">;</span>st<span class="br0">&#41;</span> <span class="sy0">==</span> <span class="nu0">0</span><span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
iStr <span class="sy0">=</span> <span class="br0">&#40;</span>char <span class="sy0">*</span><span class="br0">&#41;</span>malloc<span class="br0">&#40;</span>st<span class="sy0">.</span>st_size<span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
memset<span class="br0">&#40;</span>iStr<span class="sy0">,</span><span class="st_h">'?'</span><span class="sy0">,</span>st<span class="sy0">.</span>st_size<span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
<span class="kw1">while</span> <span class="br0">&#40;</span><a rel="nofollow" target="_blank" href="http://www.php.net/fgets"><span class="kw3">fgets</span></a><span class="br0">&#40;</span>iStr<span class="sy0">,</span>st<span class="sy0">.</span>st_size<span class="sy0">,</span>fp<span class="br0">&#41;</span> <span class="sy0">!=</span> <span class="kw2">NULL</span><span class="br0">&#41;</span><br />
<br />
<span class="br0">&#123;</span><br />
<br />
safecat<span class="br0">&#40;</span>logtext<span class="sy0">,</span>iStr<span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
safecat<span class="br0">&#40;</span>logtext<span class="sy0">,</span><span class="st0">" "</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
<span class="kw1">if</span> <span class="br0">&#40;</span>fpout <span class="sy0">!=</span> <span class="kw2">NULL</span><span class="br0">&#41;</span><br />
<br />
fprintf<span class="br0">&#40;</span>fpout<span class="sy0">,</span><span class="st0">"<span class="es6">%s</span> "</span><span class="sy0">,</span>iStr<span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
<span class="br0">&#125;</span><br />
<span class="br0">&#125;</span><br />
<span class="kw1">if</span> <span class="br0">&#40;</span>fp <span class="sy0">!=</span> <span class="kw2">NULL</span><span class="br0">&#41;</span><br />
<a rel="nofollow" target="_blank" href="http://www.php.net/fclose"><span class="kw3">fclose</span></a><span class="br0">&#40;</span>fp<span class="br0">&#41;</span><span class="sy0">;</span></div></div>
<p>It appears that the first fgets() would get all of data except the EOF. The next time around fgets() should return NULL since EOF would be read. But what happens is that the program uses 99% CPU and gets stuck there. I didn&#8217;t go into the debugger to see exactly what was going on but the fix was to allocate the buffer bigger than the file size. And use that larger size on the fgets().</p>
<p>Fixed Code</p>
<div class="codecolorer-container php " style="overflow:auto;white-space:nowrap;width:0px;"><div class="php codecolorer" style="font-family:Monaco, Lucida Console, monospace;"><span class="kw1">if</span> <span class="br0">&#40;</span><a rel="nofollow" target="_blank" href="http://www.php.net/fstat"><span class="kw3">fstat</span></a><span class="br0">&#40;</span>fileno<span class="br0">&#40;</span>fp<span class="br0">&#41;</span><span class="sy0">,&amp;</span>amp<span class="sy0">;</span>st<span class="br0">&#41;</span> <span class="sy0">==</span> <span class="nu0">0</span><span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
iStr <span class="sy0">=</span> <span class="br0">&#40;</span>char <span class="sy0">*</span><span class="br0">&#41;</span>malloc<span class="br0">&#40;</span>st<span class="sy0">.</span>st_size<span class="sy0">+</span><span class="nu0">1024</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
memset<span class="br0">&#40;</span>iStr<span class="sy0">,</span><span class="st_h">'?'</span><span class="sy0">,</span>st<span class="sy0">.</span>st_size<span class="sy0">+</span><span class="nu0">1024</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
<span class="kw1">while</span> <span class="br0">&#40;</span><a rel="nofollow" target="_blank" href="http://www.php.net/fgets"><span class="kw3">fgets</span></a><span class="br0">&#40;</span>iStr<span class="sy0">,</span>st<span class="sy0">.</span>st_size<span class="sy0">+</span><span class="nu0">1024</span><span class="sy0">,</span>fp<span class="br0">&#41;</span> <span class="sy0">!=</span> <span class="kw2">NULL</span><span class="br0">&#41;</span><br />
<br />
<span class="br0">&#123;</span><br />
<br />
safecat<span class="br0">&#40;</span>logtext<span class="sy0">,</span>iStr<span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
safecat<span class="br0">&#40;</span>logtext<span class="sy0">,</span><span class="st0">" "</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
<span class="kw1">if</span> <span class="br0">&#40;</span>fpout <span class="sy0">!=</span> <span class="kw2">NULL</span><span class="br0">&#41;</span><br />
<br />
fprintf<span class="br0">&#40;</span>fpout<span class="sy0">,</span><span class="st0">"<span class="es6">%s</span> "</span><span class="sy0">,</span>iStr<span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
<span class="br0">&#125;</span><br />
<span class="br0">&#125;</span><br />
<span class="kw1">if</span> <span class="br0">&#40;</span>fp <span class="sy0">!=</span> <span class="kw2">NULL</span><span class="br0">&#41;</span><br />
<a rel="nofollow" target="_blank" href="http://www.php.net/fclose"><span class="kw3">fclose</span></a><span class="br0">&#40;</span>fp<span class="br0">&#41;</span><span class="sy0">;</span></div></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=-h4zceoB3T4:Xmw622lY5o0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=-h4zceoB3T4:Xmw622lY5o0:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=-h4zceoB3T4:Xmw622lY5o0:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=-h4zceoB3T4:Xmw622lY5o0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=-h4zceoB3T4:Xmw622lY5o0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=-h4zceoB3T4:Xmw622lY5o0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=-h4zceoB3T4:Xmw622lY5o0:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=-h4zceoB3T4:Xmw622lY5o0:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
      <feedburner:origLink>http://www.openmakesoftware.com/build/?p=4</feedburner:origLink></item>
      <item>
         <title>Virtual Build Systems</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/9EZLa97h1xY/</link>
         <description>I ran into a Build Meister at a conference and he asked me how to speed up builds. He was wondering if Virtual Build Systems would work. I told him no.
The Virtual Build System that they setup was to have many VMWare images running and have each image run a subset of the build. I [...]</description>
         <guid isPermaLink="false">http://openmakesoftware.com/build/?p=5</guid>
         <pubDate>Sat, 18 Aug 2007 11:26:04 -0700</pubDate>
         <content:encoded><![CDATA[<p>I ran into a Build Meister at a conference and he asked me how to speed up builds. He was wondering if Virtual Build Systems would work. I told him no.</p>
<p>The Virtual Build System that they setup was to have many VMWare images running and have each image run a subset of the build. I theory it looks like it would work well. Each VMWare image dedicated to running a slice of the whole build, so the compiles should run faster. But this is not that case, VMWare actually is getting in the way. No, matter how well VMWare works there are 2 things getting in the way. First, the I/O (network and disk). Secondly, the number of machine instructions executed is high. When the compiler runs, VMWare is running the compiler instructions and passing the instructions on to the Real OS. For VMWare to do this the processor must execute the instructions for VMWare itself as well as the compiler instructions. Therefor, no matter what you do the build is going to be slower.</p>
<p>The Virtualization does buy you a level of abstraction to move a build from one machine to another. But this begs the question, why is the build machine dependent? Shouldn&#8217;t a build be able to be recreated on any machine at any time? Openmake was designed with that requirement in place. To repeat a build on another machine you need a OS to run on. Does it need to be the same OS?, no. Running a build on Windows 2000 and Windows XP will produce the same resullts if the compiler version and source code are the same. The compiler can be checked in with the source and checked out with the source if you choose to do so to get a completely traceable build.</p>
<p>Most shops have a standard that they install for the compiler so checking it in and out is usually not need. I recommend just putting the CD on a shelf or off to Off-site storage for disaster recover and archival purposes.</p>
<p>I will get to the first bottle neck and solutions in a future post.</p>
<p>BTW, the Build Meister did confirm that Virtual Build System was slower in the testing that they have been doing. I just reconfirmed their findings.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=9EZLa97h1xY:xadNGmA8bBs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=9EZLa97h1xY:xadNGmA8bBs:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=9EZLa97h1xY:xadNGmA8bBs:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=9EZLa97h1xY:xadNGmA8bBs:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=9EZLa97h1xY:xadNGmA8bBs:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=9EZLa97h1xY:xadNGmA8bBs:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=9EZLa97h1xY:xadNGmA8bBs:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=9EZLa97h1xY:xadNGmA8bBs:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
      <feedburner:origLink>http://www.openmakesoftware.com/build/?p=5</feedburner:origLink></item>
      <item>
         <title>The OPENMAKE_SERVER environment variable</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/zpC6cV8rlhI/</link>
         <description>The OPENMAKE_SERVER environment variable is very important in all versions of OpenMake Software products. The reason it is so important is that it is used by our executables and other components to find your OpenMake Knowledge Base (KB) Server and communicate with it. Now if you know OpenMake well, you that if you can&amp;#8217;t communicate [...]</description>
         <guid isPermaLink="false">http://openmakesoftware.com/support/?p=5</guid>
         <pubDate>Sun, 12 Aug 2007 16:58:42 -0700</pubDate>
         <content:encoded><![CDATA[<p style="margin-top:0pt;">The OPENMAKE_SERVER environment variable is very important in all versions of OpenMake Software products. The reason it is so important is that it is used by our executables and other components to find your OpenMake Knowledge Base (KB) Server and communicate with it. Now if you know OpenMake well, you that if you can&#8217;t communicate with the Knowledge Base Server, you can&#8217;t do much of anything with any of our products.</p>
<p style="margin-top:0pt;">OPENMAKE_SERVER will normally be set automatically whenever you install an OpenMake product. The form of the variable is as follows:</p>
<p style="margin-top:0pt;">http://&lt;KB SERVER HOSTNAME&gt;:&lt;KB SERVER PORT&gt;/openmake</p>
<p style="margin-top:0pt;">Where people often run into problems is the hostname part of the variable. The problem is there is sometimes difficulty in resolving the hostname to find the machine, in particular when your machine is part of a domain that uses a name server. The way to work around this is to have OPENMAKE_SERVER use the IP address of the machine.</p>
<p>In the past few weeks, I have encountered about three different support cases where this fixed whatever error was reported (and they were completely different errors that were reported). Since the errors that come from this problem are often misleading, the best policy is to set OPENMAKE_SERVER to use the IP address instead of the hostname whenever possible.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=zpC6cV8rlhI:JjssXy-r7og:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=zpC6cV8rlhI:JjssXy-r7og:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=zpC6cV8rlhI:JjssXy-r7og:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=zpC6cV8rlhI:JjssXy-r7og:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=zpC6cV8rlhI:JjssXy-r7og:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=zpC6cV8rlhI:JjssXy-r7og:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=zpC6cV8rlhI:JjssXy-r7og:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=zpC6cV8rlhI:JjssXy-r7og:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
         <category>Environment</category>
      <feedburner:origLink>http://openmakesoftware.com/support/?p=5</feedburner:origLink></item>
      <item>
         <title>Herding Cats</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/TNX2wObLkKQ/</link>
         <description>Workflow or process automation has taken pride of place in the application lifecycle (ALM) arena of late, and quite rightly.&amp;#160; Customers and vendors have realized there is more to managing code than tracking and versioning. Overtime the underlying development languages and environments have moved towards the user and minimized the need to know the details [...]</description>
         <guid isPermaLink="false">http://openmakesoftware.com/vision/?p=4</guid>
         <pubDate>Thu, 02 Aug 2007 08:51:06 -0700</pubDate>
         <content:encoded><![CDATA[<p>Workflow or process automation has taken pride of place in the application lifecycle (ALM) arena of late, and quite rightly.&nbsp; Customers and vendors have realized there is more to managing code than tracking and versioning. </p>
<p>Overtime the underlying development languages and environments have moved towards the user and minimized the need to know the details of the underlying machine. Object oriented techniques and IDE&#8217;s are examples of this, and most developers today work in such a space.</p>
<p>This virtualization has not taken place in the build area and it remains a magic art at many unenlightened&nbsp; companies, outside the bounds of control. Many project plans ignore or even forget the build, config and deploy steps in their program time an resource estimates, causing last minute panics and over-time at the end of many projects! But why fix it - we have all lived with this for years.</p>
<p>It matters today for three reasons:</p>
<blockquote><ol>
<li>New programming techniques such as Agile are increasing demand for non-redundant, repeatable, automatic builds.</li>
<li>Internal audit is oft uncovering the fact that build / release management is not repeatable, traceable nor is there separation of duties.</li>
<li>One key test of the ability of an organization to manage its home grown software is how quickly it can respond to production issues.&nbsp;These can often be more costly than missing a delivery commitment in the first place. Every configuration in production needs to directly point not only to the source code that produced it, or the environment in which it resides but also the libraries (application, opensource etc) that it utilized. Only the actual build step&nbsp;really knows what is in the binaries.</li>
</ol>
</blockquote>
<p>These three problems can be addressed by virtualizing scripts up to a template / build method that is abstracted to a degree that minimizes the environment and hardware and for that matter the compilers. By using build methods the management software (<em>build management</em>)&nbsp; inherently achieves the benefits of build reuse, auditability and dependency discovery. </p>
<p>Some vendors claim that these benefits can be achieved with a process automation tool - most notably IBM / Build Forge and Electric Cloud. This is a step in the right direction but amounts to trying to herd cats, for if you do not virtualize the build scripts you are attempting to manage chaos with a process - it may look good for a while but will surely break.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=TNX2wObLkKQ:uvdAu8BNWB0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=TNX2wObLkKQ:uvdAu8BNWB0:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=TNX2wObLkKQ:uvdAu8BNWB0:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=TNX2wObLkKQ:uvdAu8BNWB0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=TNX2wObLkKQ:uvdAu8BNWB0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=TNX2wObLkKQ:uvdAu8BNWB0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=TNX2wObLkKQ:uvdAu8BNWB0:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=TNX2wObLkKQ:uvdAu8BNWB0:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
         <category>Uncategorized</category>
      <feedburner:origLink>http://openmakesoftware.com/vision/?p=4</feedburner:origLink></item>
      <item>
         <title>Mojo installation</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/-bEU7SlmR9M/</link>
         <description>We have had a few people out there who want instructions for how to install Mojo on Windows but we havent yet put together a fancy looking install document because its really simple: unzip the mojo zipfile and run mojo.exe. The only non-trivial part of installation are these system requirements:
1. Windows2000, Windows XP, or Windows [...]</description>
         <guid isPermaLink="false">http://openmakesoftware.com/support/?p=6</guid>
         <pubDate>Wed, 01 Aug 2007 17:00:08 -0700</pubDate>
         <content:encoded><![CDATA[<p>We have had a few people out there who want instructions for how to install Mojo on Windows but we havent yet put together a fancy looking install document because its really simple: unzip the mojo zipfile and run mojo.exe. The only non-trivial part of installation are these system requirements:</p>
<p>1. Windows2000, Windows XP, or Windows 2003 server.</p>
<p>2. Active State distibution of Perl installed, with &#8220;bin&#8221; folder of the installation included in the PATH environment variable; 5.8.8 is the current preferred Perl version, though 5.6.1 is supported.</p>
<p>3. Any Java Runtime Environment version from 1.4.2_05 up to the latest 1.5.0 revision.</p>
<p>4. User must have privileges to edit the registry.</p>
<p>Once these conditions are met, the installation is merely a matter of unzipping the supplied zip file into its own directory and running mojo.exe.</p>
<p>Also, please note that these instructions are for new users who have not installed other OpenMake products. If you are an existing OpenMake Software customer and have problems with installing Mojo, please contact your OpenMake support representative.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=-bEU7SlmR9M:WGNrPCZlTPs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=-bEU7SlmR9M:WGNrPCZlTPs:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=-bEU7SlmR9M:WGNrPCZlTPs:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=-bEU7SlmR9M:WGNrPCZlTPs:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=-bEU7SlmR9M:WGNrPCZlTPs:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=-bEU7SlmR9M:WGNrPCZlTPs:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=-bEU7SlmR9M:WGNrPCZlTPs:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=-bEU7SlmR9M:WGNrPCZlTPs:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
      <feedburner:origLink>http://openmakesoftware.com/support/?p=6</feedburner:origLink></item>
      <item>
         <title>The wonderful world of blogging</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/7w2-6n38v-Q/</link>
         <description>Great thing about the Mac is that spell checker is part of the O/S. In Microsoft this is not the case so when you use a blogging tool like Blogg-X you end up giving the impression that you cant spell!!
Now with Live Writer front ended to WordPress I&amp;#160;am set to go.</description>
         <guid isPermaLink="false">http://openmakesoftware.com/vision/?p=3</guid>
         <pubDate>Tue, 24 Jul 2007 14:28:07 -0700</pubDate>
         <content:encoded><![CDATA[<p>Great thing about the Mac is that spell checker is part of the O/S. In Microsoft this is not the case so when you use a blogging tool like Blogg-X you end up giving the impression that you cant spell!!</p>
<p>Now with <a rel="nofollow" target="_blank" href="http://windowslivewriter.spaces.live.com/">Live Writer</a> front ended to WordPress I&nbsp;am set to go.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=7w2-6n38v-Q:abUvxpCYZhU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=7w2-6n38v-Q:abUvxpCYZhU:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=7w2-6n38v-Q:abUvxpCYZhU:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=7w2-6n38v-Q:abUvxpCYZhU:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=7w2-6n38v-Q:abUvxpCYZhU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=7w2-6n38v-Q:abUvxpCYZhU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=7w2-6n38v-Q:abUvxpCYZhU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=7w2-6n38v-Q:abUvxpCYZhU:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
         <category>Uncategorized</category>
      <feedburner:origLink>http://openmakesoftware.com/vision/?p=3</feedburner:origLink></item>
      <item>
         <title>Bypassing omsubmit</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/f4FCctfYWmw/</link>
         <description>With the release of Openmake version 6.4, we introduced the omsubmit utility to manage the spawning of various processes during builds. By default, when bldmake and om run, they submit themselves to omsubmit which then handles their execution, logging and cleanup. When om runs, omsubmit will check to see if there are build steps that [...]</description>
         <guid isPermaLink="false">http://openmakesoftware.com/support/?p=7</guid>
         <pubDate>Tue, 01 May 2007 09:01:59 -0700</pubDate>
         <content:encoded><![CDATA[<p>With the release of Openmake version 6.4, we introduced the omsubmit utility to manage the spawning of various processes during builds. By default, when bldmake and om run, they submit themselves to omsubmit which then handles their execution, logging and cleanup. When om runs, omsubmit will check to see if there are build steps that are independent and execute multiple steps in parallel, up to the limit of threads specified by the OMSUBMIT_MAX_USER_PROC variable. Omsubmit also handles reporting of build activities to the new Build Manager, providing real time information on builds accross the network.</p>
<p>While most people liked the new features of omsubmit, we still found that some customers wanted things to behave like they did in 6.3, before omsumbit came to be. One particular reason people asked for this is that when running builds through omsubmit, the logging is written to a local log file instead of appearing directly at the console.</p>
<p>Anyway, if you want to bypass omsubmit, all that is needed is to pass the -l flag to bldmake or om. This will cause the build to effectively run as it did in 6.3. Note that this means that non-dependent build steps will not execute in parallel and that the build activities will not be logged to the Build Manager.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=f4FCctfYWmw:-TKDNdC-DG0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=f4FCctfYWmw:-TKDNdC-DG0:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=f4FCctfYWmw:-TKDNdC-DG0:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=f4FCctfYWmw:-TKDNdC-DG0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=f4FCctfYWmw:-TKDNdC-DG0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=f4FCctfYWmw:-TKDNdC-DG0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=f4FCctfYWmw:-TKDNdC-DG0:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=f4FCctfYWmw:-TKDNdC-DG0:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
         <category>Omsubmit</category>
      <feedburner:origLink>http://openmakesoftware.com/support/?p=7</feedburner:origLink></item>
      <item>
         <title>Openmake 6.3 now supports Visual Studio 2005</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/MbVoxj04tAA/</link>
         <description>Though it is getting to be outdated, we still have many customers using Openmake 6.3. Because of this, ever since we released support for Visual Studio 2005 with Openmake 6.41.1 last year, many customers have been asking if VS2005 support would be rolled back to Openmake 6.3.
As of a few weeks ago, Openmake version 6.3 [...]</description>
         <guid isPermaLink="false">http://openmakesoftware.com/support/?p=9</guid>
         <pubDate>Wed, 25 Apr 2007 09:03:47 -0700</pubDate>
         <content:encoded><![CDATA[<p>Though it is getting to be outdated, we still have many customers using Openmake 6.3. Because of this, ever since we released support for Visual Studio 2005 with Openmake 6.41.1 last year, many customers have been asking if VS2005 support would be rolled back to Openmake 6.3.</p>
<p>As of a few weeks ago, Openmake version 6.3 can be used to build Visual Studio 2005 applications, though the full feature set of the 6.41.1 Add-in is not available. With the latest update, 6.3 versions will be able to have Openmake automatically generate the Visual Studio 2005 Target Definition (.tgt) files and run VS2005 builds. The main deficiency however, is that Openmake 6.3 cannot run Openmake builds from inside the VS2005 IDE, which is something that can be done with the 6.41.1 Add-in. For more information on running VS2005 builds with Openamke 6.3 or 6.41.1, please contact an Openmake support representative</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=MbVoxj04tAA:pXHe2MifmSc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=MbVoxj04tAA:pXHe2MifmSc:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=MbVoxj04tAA:pXHe2MifmSc:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=MbVoxj04tAA:pXHe2MifmSc:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=MbVoxj04tAA:pXHe2MifmSc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=MbVoxj04tAA:pXHe2MifmSc:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=MbVoxj04tAA:pXHe2MifmSc:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=MbVoxj04tAA:pXHe2MifmSc:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
         <category>Visual Studio</category>
      <feedburner:origLink>http://openmakesoftware.com/support/?p=9</feedburner:origLink></item>
      <item>
         <title>Right in front of your nose: Perl</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/mz48r7B7J6Q/</link>
         <description>Some issues are so basic, they take several weeks to debug.
From time to time, I will be involved in a support case that will stump me for hours, days, or even weeks. These are cases in which absolutely nothing seems to work. The most basic step of the most basic build will crash and burn, [...]</description>
         <guid isPermaLink="false">http://openmakesoftware.com/support/?p=8</guid>
         <pubDate>Wed, 25 Apr 2007 09:02:50 -0700</pubDate>
         <content:encoded><![CDATA[<p>Some issues are so basic, they take several weeks to debug.</p>
<p>From time to time, I will be involved in a support case that will stump me for hours, days, or even weeks. These are cases in which absolutely nothing seems to work. The most basic step of the most basic build will crash and burn, leaving me with no place to even begin looking for clues as to what went wrong.</p>
<p>When nothing seems to work, my first instinct is to look for the most complicated explanation - the issue must lie deep in the guts of Openmake, the dark hinterlands of Openmake code that I haven&#8217;t touched in my two years as support person. In reality, the most catastrophic problems often have the most basic explanations.</p>
<p>One of the basic elements of an Openmake installation is the Perl libraries in the command line client. These libraries power nearly every aspect of an build, from dependency analysis to logging. Openmake&#8217;s Perl libraries are automatically installed during Command Line Client installation. However, if Perl itself isn&#8217;t installed, these libraries are useless, and a build will fall apart at the seams&#8230; literally nothing will work.</p>
<p>Now, one of the first things I check for when nothing seems to work (instead of trying to pick apart the innards of Openmake), is a working installation of Perl.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=mz48r7B7J6Q:6c7k8lyVp30:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=mz48r7B7J6Q:6c7k8lyVp30:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=mz48r7B7J6Q:6c7k8lyVp30:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=mz48r7B7J6Q:6c7k8lyVp30:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=mz48r7B7J6Q:6c7k8lyVp30:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=mz48r7B7J6Q:6c7k8lyVp30:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=mz48r7B7J6Q:6c7k8lyVp30:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=mz48r7B7J6Q:6c7k8lyVp30:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
         <category>Perl</category>
      <feedburner:origLink>http://openmakesoftware.com/support/?p=8</feedburner:origLink></item>
      <item>
         <title>Running the Openmake WebClient on IE7</title>
         <link>http://feedproxy.google.com/~r/OpenmakeFullFeed/~3/GHmASvb2oGo/</link>
         <description>A small change to your index.html.template file is all that is needed to get Openmake running with IE7.
Due to changes in how Internet Explorer handles JavaScript, the Openmake Web Client will not load in Internet Explorer 7 without a small fix.
In order to allow the Web Client to load in IE7, you need to comment [...]</description>
         <guid isPermaLink="false">http://openmakesoftware.com/support/?p=10</guid>
         <pubDate>Sun, 15 Apr 2007 09:04:41 -0700</pubDate>
         <content:encoded><![CDATA[<p>A small change to your index.html.template file is all that is needed to get Openmake running with IE7.</p>
<p>Due to changes in how Internet Explorer handles JavaScript, the Openmake Web Client will not load in Internet Explorer 7 without a small fix.</p>
<p>In order to allow the Web Client to load in IE7, you need to comment out a line of code in the index.html.template file in your &lt;KNOWLEDGE BASE SERVER&gt;/tomcat/webapps/openmake.ear/openmake.war directory.</p>
<p>Open the index.html.template file in a text editor, and do a search for the following line: if (_ie == true)</p>
<p>Two lines beneath this conditional (between curly brackets) is a line that starts with: document.writeln(&#8217;&#8230;</p>
<p>Comment out this line by typing two forward slashes (&#8221;//&#8221;). Restart your Knowledge Base server, and you will be ready to use Openmake with Internet Explorer 7.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=GHmASvb2oGo:DZsJq5qX1HY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=GHmASvb2oGo:DZsJq5qX1HY:4LveS58M_Zg"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=GHmASvb2oGo:DZsJq5qX1HY:4LveS58M_Zg" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=GHmASvb2oGo:DZsJq5qX1HY:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=GHmASvb2oGo:DZsJq5qX1HY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?i=GHmASvb2oGo:DZsJq5qX1HY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=GHmASvb2oGo:DZsJq5qX1HY:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?a=GHmASvb2oGo:DZsJq5qX1HY:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/OpenmakeFullFeed?d=l6gmwiTKsz0" border="0"></img></a>
</div>]]></content:encoded>
         <category>IE7</category>
      <feedburner:origLink>http://openmakesoftware.com/support/?p=10</feedburner:origLink></item>
   <lastBuildDate>Sat, 15 Aug 2009 00:00:00 PDT</lastBuildDate></channel>
</rss><!-- fe8.pipes.sp1.yahoo.com uncompressed/chunked Sun Nov  8 09:06:08 PST 2009 -->
