I wrote a post last month about how impressed I was with Virtual PC 2007 and how it has changed the way I work. This is a follow-up about a networking problem that I didn't discover until it was almost too late, as well as how to fix it.
I decided to install Vista Business on my laptop a few months ago, and aside from a few application compatibility issues, I've been pretty happy with it so far. One of the main problems is that Oracle 9i doesn't work with Vista, and that's a database we need to develop against. So, I fired up my Windows XP virtual machine, installed Oracle, and then connected to Oracle on the virtual machine just like I would if it were installed on another server. Everything was working smoothly, or so I thought.Read More
I approach continuous integration (CI) servers in the same way I do my IDE -- as a tool of convenience for performing tasks I could choose to perform manually. I would no more have a build system reliant upon a specific CI server than I would write code that was only recognized by a specific IDE. Thankfully the CI servers with which I've worked conform to my philosophy. They do not seek to replace your build system as much as provide much needed automation. There is one area, though, where I feel CI servers violate this ideal, and that's creating a unique build/version label.
Out-of-the-box, most CI servers provide a simple numbering scheme in order to produce a unique label for each build. Generating a build/version label is a task I prefer to happen within the build itself, so that the build is truly self-contained. Take our builds, for example. I've made use of the ant task buildnumber, so, upon a build, ant reads and increments a build-number property file and appends it to the project's "base version," the result being a label like "126.96.36.199", where "6" would be the build number. I imagine this is a common scenerio -- indeed its why the
Whenever I hear about a government agency indefinitely postponing their upgrade to IE7, I cringe. We web developers plan on supporting IE6 for at least the foreseeable future, but any setback that delays the natural browser upgrade progress always stings a little. Yes, under the hood IE6 can do most of the stuff that IE7 can, but it does it badly and incompletely.
On Friday I blogged about the disconnect between Theory and Reality in software development. This disconnect is a perfect example of development debt, a topic that Scott blogged about in January. As we continue building our software, we keep building up more and more development debt. Lately I've been wondering: when is it going to be time for us to start paying down our debt?
The best thing I can think of is that t here are 2 cases where it's appropriate to start working on development debt: 1) When there aren't any urgent new feature requests or bug reports that need to be addressed 2) When a bit of development debt starts to rear its head and manifest itself as one or more bugsRead More