Insights

Insights on Software Production Management

I’m in the middle of evaluating and comparing continuous integration tools, and thought that my interim results were interesting enough to warrant posting. I put the first part of the analysis on my blog. The comparison includes Mojo, Hudson, TeamCity and Bamboo.

 Check out the full results on technistas.com.

- Matt Laudato

Director, Customer Solutions

matt.laudato@openmakesoftware.com

  • 0 Comments
  • Filed under: Build
  • The Build Engineer’s Desktop

    Those of you who use Meister or Mojo on a daily basis know what I’m talking about - as a build engineer, Meister gives you a command center that puts you in control of your build, test and deploy environment. This short post on my personal blog Technistas, reminds you why you love Meister - and why OpenMake will continue to serve you, the build engineer - our most valued customer.

    http://technistas.com/2010/03/22/the-build-engineers-desktop/

    Happy Building!

    - Matt 

  • 0 Comments
  • Filed under: Build, Meister

  • We announced today that we have become a member of the CollabNet technology partner program adding OpenMake Meister and Mojo to the collabXchange, an online integration marketplace.  CollabNet TeamForge with Subversion and OpenMake Meister are ideal solutions for improving distributed software development practices, particularly around agile methods from check-in through build and release.  

     

    Meister extends the centralization features of the CollabNet framework into the critical step of compiling and linking the Subversion-managed source code.  Meister allows the CollabNet framework to orchestrate the complexities of the software build, improving software quality and minimizing costly bottlenecks due to broken or ‘bad’ builds. Together, Meister and CollabNet offer a complete solution to enterprise ALM challenges.

     

    “This partnership furthers our commitment to delivering industry-leading solutions to our customers.  OpenMake Software was added to our list of technology partners for two reasons.  First, their Meister technology improves and accelerates the Continuous Integration process for Agile developers” states Jim Ensell, VP Business Development, CollabNet. “In addition, it delivers intelligent, enterprise level audit controls around the build and release process.”

     

    “OpenMake Meister integrates with Subversion to deliver accelerated builds for both .Net and Java improving continuous integration by eliminating build bottlenecks.  It also exposes all Subversion managed source used during the build and release process providing a complete enterprise level audit trail” explains Tracy Ragan, COO and Co-founder, OpenMake Software.   OpenMake Software also offers a free Continuous Integration Server, called Mojo that integrates with the CollabNet framework.

     

    CollabNet provides the industry’s most open and extensible platform for distributed ALM, enabling CollabNet Technology Partners to rapidly and easily create integrated products for distribution on collabXchange, expanding their potential customer bases to include the millions of software developers using the CollabNet platform today.

     

  • 0 Comments
  • Filed under: Uncategorized
  • As long as we are on the topic of Build Avoidance, lets bring up how critically important Build Avoidance is to your Continuous Integration process.  Remember - your Continuous Integration process is only as good as your build scripts.  To improve your CI process the engine that drives your compile and link process must be “smart.”  What does “smart” mean you ask.  A smart build knows more than you do about how your application is put together. This means that is understands the dependencies (compile, provided, system scope, etc). With those dependencies is can accurately rebuild your application by only updating what has been changed.

    Yes, you can do this for Java, .Net or any native language such as C/C++.  What does this buy you. First, in most cases your CI compile and link step will execute in less than a few minutes.  Secondly, you are given a platform for doing pre-flight builds where any developer can re-compile the entire application, locally, without wasting an hour (or a few hours).

    If you want your CI process to run really fast and accurately, make your builds “smart” so you don’t have to run “clean all” every time you execute a pre-flight or CI build.  Hey it is 2010 already. Start using your computer to orchestrate your compile and link process and stop writing static scripts that lack the ability to support your development process without your constant attention.  This is real build automation.

    For more information on how Meister’s builds are “smart” see “Smart Builds for Fast Continuous Integration” found at http://www.openmakesoftware.com/build-management-white-papers/

  • 0 Comments
  • Filed under: Uncategorized
  • “Build Avoidance” not a new term

    In a recent article, the term “Build Avoidance” was referenced as if it was something new and improved.  NEWS Flash!  Build Avoidance was a term coined by IBM and referenced the way in which ClearMake handles Incremental Build processing, meaning only re-compile what has been updated and AVOID the rest.

    “Build Avoidance” should be a primary function of your Build and Release Management solution.  It is not “new” by any means.  The biggest challenge with “Build Avoidance” is to support it for all languages from Unix C to .Net and Java. For example,  the “gnumake” based scripting languages only supports C/C++ languages. Ant/Maven scripting supports “pseudo incremental builds” which really is the opposite of what you would think.  Maven’s “pseudo incremental builds” does a “clean all” on the Projects that have changed, not on just the source code that has changed.  Doing a “clean all” is not avoiding a build it is making sure that objects will be rebuilt by deleting them.

    Meister has supported Build Avoidance for all languages for over 15 years.  Only OpenMake Meister can actually make the claim for C/C++, .Net, Java and yes even COBOL.

    So the moral of the story is, if your build management tool is not supporting Build Avoidance, or some how touts that this is a new concept, you should look for a better Build and Release Management solution.

  • 0 Comments
  • Filed under: Uncategorized
  • People ask me all the time about build and SCM issues - possibly because I work for a build company and used to work for an SCM company. So it’s fun to be able to put both of these interests together, as I did in this short demo. It shows how to put togther a highly functional continuous integration system using Subversion for SCM and OpenMake Meister for build and workflow automation.

    The demo can be viewed from the OpenMake site here. If you’re interested in a writeup of the technical details, you can also visit my blog Technistas, where I talk about this system in a recent blog post.

     Happy building!

     - Matt

    Practical Salesforce Programming

    This is a cross post of a blog I wrote on my personal site techinistas.com. A few days ago I needed to figure out how to use the Salesforce.com API to bulk update some records. A few hours and a bit of perl code later, I had a functioning app that did the trick. If you are interested in web services programming, perl and Salesforce, take a look here:

    http://technistas.com/2009/12/09/practical-salesforce-programming/

    Happy deploying!

     - Matt

    Hello OMer’s!

    Java builds have been on my mind lately. This is a cross post of a blog I did on my personal site, http://technistas.com, that reviews an article from SD Times. The article tells us that Java developers spend around 5 weeks per year starting at their screens waiting for builds to occur. Needless to say, my Meister radar went off and I just had to respond. As you already know, Meister gives you a standard platform from which to perform builds and development workflows - from within Eclipse - and does true incremental builds that reduce the unproductive waiting times.

    Here’s the permalink to the blog post:

    http://technistas.com/2009/12/03/speedy-java-builds-slow-down-productivity/

    Happy Building!

     - Matt

    I recently posted an article on my blog Technistas (http://technistas.com) on how to integrate Meister with Apache Archiva. Meister as you all know is the leading build automation solution, but you might be less familiar with Archiva, an SCM system designed for binaries.

     It’s worth checking out the post on Technistas if you are interested in how to integrate Meister with this up and coming binary repository tool.

     Happy building!

    - Matt

    Matt Laudato

    Director, Customer Solutions

    OpenMake Software, Inc.

    As Steve wrote last year, we’ve been using SQLite as a backend for some of our datatypes in our omsubmit and om command line executables. And it seems we’re in good company: here are a few products that are also using SQLite

    • It’s the Ruby on Rails default DB
    • Adobe Air
    • Mozilla Firefox
    • Mac OS X

    It’s such a popular tool, that its creator, Dr. D. Richard Hipp, won a 2005 Open Source Award from Google and O’Reilly. About a year later, Dr. Hipp gave a Google Tech Talk introducing SQLite to Google. In that talk, he remarked on a number of features and benefits of SQLite:

    • SQLite is designed to be embedded, it can be less than 250 KB in size.
    • Some uncommon SQLite uses:
      • stand-in for client-server DBMS during testing/debugging.
      • Local database caching.
      • Implementing complex data structures.
      • Sorting large amounts of data.
      • Configuration files.
      • IPC via database.
      • Application file formats.
    • SQLite is very convenient to use as a tool to teach basics of SQL, as it just works.

    Of the uncommon uses for SQLite, I can speak to at least two of them, because that’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 “persist binary trees to disk” and one of the hits said “use SQLite”. Steve took this idea further and used the database as a way to do interprocess communication between the main omsubmit 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.

    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 use a database. With the big “enterprise” 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’t have two threads updating the database or you’ll get a deadlock. Furthermore, if you do a big SELECT with a bunch of processing for each row on a worker thread, you’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’t introduce new timing issues using SQLite, since our goal was to reduce timing issues.

    We’ve also used SQLite in our om build engine executable to do more efficient wildcard matching and we’re seeing really good speed improvements there. That improvement will be available in our upcoming release.

    Here are some tools to investigate SQLite:

    Hope this helps you get into using SQLite.

    - Jim