Wednesday, February 25, 2009

Words of wisdom from Ron Jeffries

Via Patrick Logan Think you are doing Scrum and/or XP? Then read this. My take away is that yet again people want to latch on to a silver bullet instead of working out what is really wrong with their organisation.

Acceptance Testing Silverlight with white

I've used White to acceptance test WPF applications a few times so was pleased to discover it just works with Silverlight. It seems that IE passes the usability api calls into the contained Silverlight app so to an outside caller the app just looks like extra controls within IE. There were a few things I had to make sure were in place though 1. You need to make sure you start IE in a way White can 'find', so if you just pass the URL as the executable name IE (or your default browser) will start but White will not then be able to find that application and window. Obviously you'll need to alter the values to match your install and set up. const string internetExplorer = @"C:\Program Files\Internet Explorer\IEXPLORE.EXE"; const string url = "http://localhost:1138/"; const string windowTitle = "silverlightApp - Microsoft Internet Explorer"; var ie = new ProcessStartInfo(internetExplorer, url); var application = Core.Application.Launch(ie); var window = application.GetWindow(windowTitle, Core.Factory.InitializeOption.NoCache); 2. Make sure you set the automation name property. <TextBox Name="textBox1" Text="some text" AutomationProperties.Name="textbox"/> 3. Use the same Name when you try to find the control. var textBox = window.Get("textbox"); That is it. You'll need to make sure the names you use don't clash with the names of the IE controls, I'd suggest using GUI Spy for that but I've not been able to find a working link to download that tool for about 6 months now. I'm using IE version 6.0 and Silverlight 2. I've not tried this with any other browsers.

Tuesday, February 17, 2009

The Tyranny of corporate licences

I often hear enterprise architects say "we can use product X as it is free", as I know X is actually quite pricey I ask "wow, XYZ is giving you X for free?" To which they reply "No, we have a corporate license and that comes out of someone elses budget" So this is a special kind of free which I'd not come across before, one that actually means "free, as in we don't care about the cost to the company as a whole". This sort of individualism is revealed as doubly corrosive when you talk to the developers who find product X is way more complex than they need and actually increases development costs by requiring specialist skills and damaging developer productivity. This disconnect between people who actually have to use software and those who make the purchasing decisions is not at all unusual. The fact there is a corporate licenses leads to some nasty behaviors as well, it is argued that the software is "free" when someone raises cost as an objection and it is argued as "highly expensive" when someone questions how much value it really adds (i.e. an erroneous equation of expensive and high ROI). The other things that gets thrown into the mix is standards - I just ask people go and look if the standards are being driven and defined by companies that make big complex enterprise software products. They can then draw their conclusion on how much value those particular standards have and whether they truly help avoid lock in. All of these things allow an easy defense for those purchasers who failed to exercise due diligence in their decision and create a a situation that is almost impossible for the people who have to use those products day-to-day to challenge. I suggest projects that use a license pay a proportion of its costs and any loss (or gain) the developers see is carefully tracked. Before you comment you may want to check that your friendly enterprise software vendor hasn't placed you under a gagging order, no really, I'm not joking.

Tuesday, February 03, 2009

problems with ./configure and make on osx

I've been trying out various AMQP implementations, most still require a build from source on OSX. So the usual ./configure make I'm sure others have seen this error before /bin/sh: line 0: cd: someDirNameHere: No such file or directory
More of a reminder for me than anything else, the solution is usually

export CONFIG_SHELL=/bin/bash
./configure
make