Team City 4.0 supports relative URL in the svn:externals property of Subversion 1.5

In my September post, I wrote that we upgraded our development environment from Subversion 1.4 to Subversion 1.5. We were hoping to use relative URL's in svn:externals property - the feature introduced in Subversion 1.5. We use svn:externals to connect to shared non-compilable release units, such as common styles, images, script libraries, content, etc. We immediately found out that although Team City 3.2, our build and integration server at the time, supported Subversion 1.5, it did not recognize relative URL's in svn:externals. We have recently upgraded our build server to Team City 4.0 and it does support relative URL's in svn:externals!

Contact me if you have any questions on how to structure your Subversion repository. Happy coding!

December book review: The Goal

Eliyahu M. Goldratt
The Goal: A Process of Ongoing Improvement

I will finish this year by reviewing another very entertaining and thought-provoking business novel: The Goal. It tells a story of Alex Rogo, a manufacturing plant manager, whose personal and professional lives are quickly falling apart. In fact, Alex has only 90 days to save his plant and his job, and even less time to save his marriage. How is he going to do it?

The book slowly introduces Alex to the principles of the theory of constraints (TOC). The principles are common-sense and very simple to understand. Occasionally, they may even feel overly simplistic, but they are exactly what Alex needs to know at the right point of time. The TOC ideas allowed Alex to see beyond false productivity metrics accepted at his organization and start measuring and improving his plant performance in terms of throughput, inventories, and operating expenses.

The settings of the book is a manufacturing plant, but even if you are not a plant manager, the chances are you will enjoy reading this book and should have no problem applying the principles described there in your organization.

Happy reading!

FDF Toolkit 6, SSL, ASP.NET 2.0 Handler, and Internet Explorer cannot display the webpage

We run into an interesting problem today while working with FDF Toolkit 6 inside ASP.NET 2.0 HttpHandler. Internet Explorer 7 refused to open a pre-populated PDF form produced by the handler when communicating with the server over SSL.

We could see data coming to the client and AcroRd32.exe starting... however the browser continued to display "Internet Explorer cannot display the webpage" message. The same code worked well in IE without SSL or in FireFox with or without SSL.

The problem was related to caching. For some reason, any of the lines below cause IE not to be able to open an FDF form:

context.Response.CacheControl = "no-cache";
context.Response.AddHeader("pragma", "no-cache");

Removing these lines fixed the problem. Happy coding!

OTUG LinkedIn Group

We have created a group on LinkedIn professional network for all past, current, and future members of OTUG. Please, join at

December event at OTUG

Do not miss the OTUG meeting tomorrow night:

Who: Slava Pestov
What: The Factor Programming Language
When: Tuesday, December 16, 2008, 5:30 pm
Where: McNeely Hall Room 238, University of St. Thomas, St. Paul, MN

As usual, check for more information. See you all there!

November book review: Beyond Bullet Points

Cliff Atkinson
Beyond Bullet Points: Using Microsoft® Office PowerPoint® 2007 to Create Presentations That Inform, Motivate, and Inspire.

If you are tired of making the same old presentations again and again, take a look at the "Beyond Bullet Points" book by Cliff Atkinson. In this book, the author describes an approach on how to use Hollywood-style storytelling techniques to transform a set of bullet-pointed slides into a rich, engaging, and powerful presentation.

How can you capture the interest of your audience during one of your first slides? How can you maintain this interest to the very end? Cliff answers these questions and offers a structure and process for creating effective PowerPoint® slide presentations.

I have had excellent results taking the ideas described in this book and applying them in my own presentations. Will this approach work for you? Will this approach work for your audience? Rather than applying ideas blindly, consider the goals, assumptions, and expectations of your audience. This book gives you an interesting way to structure your presentations. But it is only one of the options you have.

To find more information about this book, click here. Happy reading!

October book review: Ready, Set, Dominate

Michael Kennedy, Kent Harmon, Ed Minnock
Ready, Set, Dominate: Implement Toyota's set-based learning for developing products and nobody can catch you.

This is a continuation of the book I reviewed earlier this year: Product Development for the Lean Enterprise. The authors pick up the story of the Infrared Technologies Corporation (IRT) a year later. The company has piloted bits and pieces of the Toyota System with various levels of success. The progress is visible but it is not sufficient to achieve the company goals. To make matters worse, the Board of Directors has run out of patience with IRT's poor financial performance and has hired a new Chief Financial Officer to improve profits fast. The new CFO does not believe in product development transformation efforts and recommends a different strategy: selling non-profitable side of business, outsourcing manufacturing, reducing cost through an across-the-board workforce reduction, and using profits to buy high-growth and high-profit companies...

No doubt, IRT faces serious challenges: market share is shrinking, overhead is increasing, and profits are deteriorating. Will the company be able to turn the situation around? Read this book to find out!

In the form of a business novel, the authors allow us to experience a journey towards Lean Product Development with the focus on Lean Knowledge Management. They point out common implementation mistakes and show how to effectively integrate the flow of innovative knowledge into a planned cadence of product releases.

Included with the book are case studies of two companies that have been successful at understanding and applying Toyota principles. I would like to quote one of them: "... once the desired specification was put on paper, it was viewed as an absolute requirement. No variance from the goal was acceptable. Since the requirements were not a variable, the only variables left were time and money. That meant missed schedules and cost overrruns."

Happy reading!

October event at OTUG: XRX Application Architecture

Do not miss the OTUG meeting tomorrow night:

Who: Dan McCreary
What: The XRX Web Application Architecture
When: Tuesday, October 21, 2008, 5:30 pm
Where: McNeely Hall Room 238, University of St. Thomas, St. Paul, MN

As usual, check for more information. See you all there!

September book review: Design Patterns

Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
Design Patterns: Elements of Reusable Object-Oriented Software

Design Patterns is one of my favourite technical books of all time. It has been highly influential on my understanding of object-oriented design and software engineering principles in general. It helped me hone my skills as a software architect early in my career and now serves as a reference material for many of my training sessions.

This book catalogs 23 commonly used design patterns:

  • Creational
    Abstract Factory, Builder, Factory Method, Prototype, and Singleton
  • Structural
    Adapter, Bridge, Composite, Decorator, Facade, Flyweight, and Proxy
  • Behavioral
    Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method, and Visitor

For each pattern, the authors describe the design problem addressed, the circumstances in which the pattern is applicable, and the consequences of using the pattern to solve the problem.  Each pattern is supplied with relevant UML diagrams and simple C++ examples.

As design patterns are becoming mainstream, more and more books are published on this subject. You can easily find resources with examples in C#, Java, VB.NET, and other programming languages. My recommendation is to read the original book first.  I find it less prescriptive and more thought-provoking, leaving you with options for implementing design patterns in practice. Do not fall into the trap of thinking about patterns as prescriptive solutions to common design problems. Instead, think about each pattern as a multiple-step journey. At each step, you can and should review your design problem at hand as well as the trade-offs associated with using the pattern. You can stop, move to the next step, or to continue with implementation in a different direction. The choice is yours.

This is a must-read book for any software engineer and is highly recommended for first-line managers. As a minimum, it will allow you to speak with your team at a higher level of design abstraction.

To find more information about this book, click here. Happy reading!

From Subversion 1.4 to Subversion 1.5

Last week, we upgraded our development environment from Subversion 1.4 running on Apache 2.0 to Subversion 1.5 running on Apache 2.2. The primary reason for this upgrade is the support of relative URLs in the svn:externals property introduced in the new version of Subversion. 

The upgrade process was smooth and easy. Here are the steps we followed:   

  1. Stopped our existing Apache Server
  2. Backed up our Subversion repository 
  3. Downloaded and installed Apache 2.2.9
  4. Downloaded and installed Subverstion 1.5.2
  5. Configured httpd.conf configuration file for our new Apache server and started the server
  6. Upgraded our repository by executing svnadmin upgrade
  7. Upgraded our indexes by executing svn-populate-node-origins-index
  8. Upgraded client tools - we installed Tortoise 1.5.3 and Ankh 2.0
  9. Upgraded Team City automated build and continuous integration server to the latest version 3.1.2
A couple of notes... 
  • In the past, in order to use Windows authentication with Subversion we had to write a custom We did not have to do anything for 1.5. Loading modules in the correct order and referencing them from the Subversion application folder did the trick for us:     
LoadModule sspi_auth_module modules/
LoadModule dav_module modules/
LoadModule dav_svn_module C:/Apps/svn-win32-1.5.2/bin/
LoadModule authz_svn_module C:/Apps/svn-win32-1.5.2/bin/               
<Location /svn>
DAV svn
SVNPath C:\Dev\Repository

     AuthName "SVN Server"
     AuthType SSPI
     SSPIAuth On
     SSPIAuthoritative On
AuthzSVNAccessFile "C:/Repository/conf/authz"
     SSPIOfferBasic on
     Require valid-user     

  • Team City 3.1.2 does support Subversion 1.5, but unfortunately does not support relative URL's in the svn:externals property. 

Welcome to ModelBlog

Thank you for visiting ModelBlog. We hope the time you spend with us will be both entertaining and worth your while. Have fun!