code prole


coding for the proletariat since 1977

Trac Rockz

Recently, the pre-pre-startup team I am working with decided to start using Trac, from Edgewell Software. It is amazingly simple to use, and provides exactly the level of SCM and Project Management we want – minimal, agile, and unobtrusive.

Within minutes of having our site up we had modified the wiki, added new pages, and started tracking tasks through the ticket system.  With the integration to Subversion we now have an industrial strength SCM solution that just plain works. As a professional I am work within the confines of the clients local software environment, and  usually this means costly (in terms of both capital outlay and learning curve/backend maintenance) softwre suites. Henceforth, when I am asked for tools to use my answer will be Trac, Subversion, and MyEclipse.

Filed under: Project Management, Software

Pragmatic Bookshelf

Several years ago I discovered the seminal volume from Andrew Hunt and Dave Thomas, The Pragmatic Programmer: From Journeyman to Master, and it immediately became one of my favorite books about programming. In the last couple of years I have started to collect more and more “Pragmatic” books and each subsequent volume has been a delight. The topics, the coverage, the style, everything about Pragmatic Bookshelf is dead on target.

Over the weekend I picked up Ship It! A Practical Guide to Successful Software Projects, and just last week I purchased a beta copy of Pragmatic Ajax: A Web 2.0 Primer. The Ajax volume is excellent, even for a beta book, and I am enjoying learning a new UI skill. The description of Ship It! is what caught my eye, “This isn’t a book about a methodology. It’s better than that. It’s the stuff culled from a range of methodologies that together just works.”

I cannot recommend these books and this publisher enough. Quite simply some of the best technical volumes available today.

Filed under: Ajax, Pragmatic Bookshelf, Project Management

Active Record

The Crossing Borders: Exploring Active Record article, from Bruce Tate, is a great introduction into the difference between Hibernate’s mapping paradigm, and the wrapping paradigm of Active Record. I also completely agree that exploring other development plaftorms will only strengthen your understand of your primary technology, be it Java, Ruby, PHP, or COBOL.

Filed under: Ruby, Ruby on Rails

Model Management

As a professional consultant I use the tools provided by the client. On occasion, when allowed, I make suggestions and try to steer the tool set towards what I am familiar with, and what I think works best. My present engagement is heavy into the IBM/Rational suite of software development tools. The trinity of WSAD, XDE, and ClearCase allows us to develop collaboratively, a large scale application. There are times however when this industrial strength solution leaves me wanting more.

The weakest piece of his trio is ClearCase. It is intrusive, sluggish performing, and occasionally cantankerous. The layered architecture we are using for this application results in extremely long package names, which combined with any kind of decent path name in the files system, overruns the 256 character limit imposed by ClearCase. In other words, it is possible to create a new package in XDE, fill it with objects and save your work, only to have ClearCase truncate the path/file name to 256 characters WITHOUT TELLING YOU. The next time you open your model, you get missing unit errors. Very messy to resolve. We are in the midst of a migration to a later release of CC, which should expand our file name limit to 1000 characters.

We are also in preparation to migrate to RSM/RAD, or Rational Software Modeler and Rational Application Developer – WSAD 6 and XDE++. (I know about RSA, Rational Software Architect, and it would be ideal to have and use. Licensing costs make it prohibitive for this client, unfortunately.) This is not as easy and simply opening new software and importing your model. It seems that XDE, in trying to be all things to all people, supports multiple model types whereas RSM supports only one. The RSM model is pure UML, which is a Good Thing. However, since we were utilizing the code generation feature of XDE (auto sync on), we were using Java Code Models. In a JCM an interface is really a Java class with a special stereotype. In a UML model (or Basic as it is called in XDE) an interface is represented by, well, an interface. Converting to RSM will result in all the interfaces being converted to java classes, that happen to have a stereotype of interface. We will have to either convert the model and then clean up all the now broken interface touch points, or convert the model to UML in XDE and then import it into RSM.

Both XDE and RSM support configurable transforms that would allow the correction of our interfaces to be scripted. However, this is not a trivial task itself, and we are under tight deadlines. As we sort out the steps, and the transforms required, I’ll try to post a guideline here. Maybe we are the only ones in this pickle, but I suspect not.

Filed under: Software