UI Design and Consultation – Komodo 6 Projects Debacle

I’ve used ActiveState Komodo as my IDE for Python and Ruby for a while, starting when I found Eclipse and PyDev irritating especially for debugging.

They recently decided to significantly redesign the Projects feature within Komodo, as part of version 6, and it serves as a great negative example of what happens when you don’t consult your users or put out prototypes but just inflict a design on people. For many users, including myself, the new approach loses functionality and makes the program significantly more painful to use, as you can see in the discussion forum.

Continue reading

Using xUnit.Net console runner with VS2008

A blog post by Bembeng Arifin describes how to use xUnit.Net’s console test runner but I wanted to clarify one important point and simplify his recommendations.

I am using xUnit.net with C++/CLI invoking native DLLs and so I need to have the working directory set to where these reside. The settings I use are (note the fixed directory for Command, obviously changing to that of your local install).

Command: C:\thirdparty\xUnit_net\1_6_0\xunit.console.exe
Arguments: $(TargetPath)
Initial Directory: $(BinDir)
Use Output Window: checked

Shown in context in the dialog:

Tool definition window in Visual Studio 2008 showing above settings to use xUnit.net test runner

In case anyone’s curious about the appearance of the above dialog, it was captured on a Mac using Remote Desktop into my Windows 7 box so the rendering lacks a bit of Aero gloss.

We have a standard environment variable pointing to the location of thirdparty code which I wanted to use but the tool definition dialog refused to accept a path for the Command like $(thirdparty)\xUnit_net\blah.exe.

It also refuses to accept just an executable name, even when it’s on the PATH and can be run in a command window with just that executable name.

Bembeng’s post showed using the longer way to compose the Arguments of $(BinDir)$(TargetName)$(TargetExt) but I prefer simply $(TargetPath) which is easier to type and read.

If anyone’s curious, I eventually picked xUnit.net over NUnit and mbUnit/Gallio because it allows for similar parameterised testing but has a GUI test runner that copes with C++/CLI and I like their style and rationale.

GraphViz for UI Flow

I created this diagram (mainly by hand) for a client last year but don’t have permission to post a non-obfuscated version. As I’ve been talking recently on Stack Overflow about using GraphViz for casually tracking logic, I wanted a good sample. It is an accounting application and this shows how different buttons and menu options take you to other screens.

The image below was created by sizing a preview to fit at a non-readable text level and then taking a snapshot. The original PDF is 72KB and allows you to cleanly zoom in to see the flow.

Clicking the image will let you see a larger version but still obfuscated.
Continue reading

Git Started

I’ve recently started using git for a project with a local client who has Perforce in their office. The move to git was driven by a desire to have version control whilst away from my office’s file-system-based svn repository and by a minor disaster with the svn directories clashing with Perforce.

I am more impressed with git than I expected to be.
Continue reading

Considering Visual Diff/Merge Tools

I was just prompted by Araxis Merge to renew support for USD 49. Whilst I appreciate its features, mainly on Windows, I’m not totally in love with the UI and so had a quick look around for alternatives. Prices below are for professional users, I’ve not bothered recording who offers what academic discounts or free versions for open source projects.

I found a 2004 comparison on Coding Horror which had quite a few people raving about Araxis but Jeff and others pointing out that Beyond Compare is much more affordable and others suggesting ECMerge from Ellié Computing. Continue reading

Is DOT too hard for Normal Users?

I’ve been a huge fan of AT&T’s GraphViz graph-generating language for years.  I use it Doxygen with the automatically-generated class and collaboration diagrams as well as many casual diagrams I specify for workflow. I love the way I can quickly enter some text and have a diagram appear with automatic layout as I change the content. The plain text of DOT files also works very well with version-control, allowing me to very easily see what changed on complex diagrams from between releases, instead of eyeballing binary pictures.

In a discussion on the Instaviz (GraphViz for iPhone) users list, a question came up about similar usability for desktop users.

Continue reading

Hosted Issue Tracker Prices

At one client, we’ve been using Basecamp which I’ve fairly swiftly decided doesn’t scale to be a proper issue tracker for a software development team. It’s pretty and nice for managing casual tasks and discussions. It doesn’t replace a Wiki either because their Writeboard facility is somewhat bolted-on and lacks search.

So, I’ve been looking around a bit for other hosted solutions, just to compare prices without suggesting things are necessarily of equal perceived value. Ironically, we’re probably only interested in a relatively small fraction of what this various tools can provide. I started working on this posting because I couldn’t find an easy summary table. Continue reading

Postgresql Puzzles and Invisible Users on OS/X

In which Andy proves he really doesn’t know as much about Unix and particularly OS/X as he probably should and certainly wishes!
This is one of my rambling streams of semi-conscious tinkering to get something working. Yes it has actually been edited for brevity but I’m keeping all the weird error messages on here so search engines will help some other poor sod.

At first I thought it was because I was tired but even after a few hours sleep, the following doesn’t make sense:
su -l postgres
su: Sorry
Why doesn’t that make sense? Because I don’t know the password to the postgres user because it was added during the installation and I am pretty sure I didn’t supply the password at installation. I don’t know the account and don’t know how to change its password.
Continue reading

Dimensioning a Bathroom with Google Sketchup

In another example of Andy finally gets around to using something he bought a book about, I’m using Google Sketchup v6 to work out some dimensions in a bathroom we’re upgrading. This is partly an exercise in saving money, as the Ceramilite sheets we’re gonna use are expensive. It’s also a training exercise for me before modeling the entire library. This lengthy post discusses the SketchUp features I used for modeling the bathroom, complete with pictures.

Continue reading