Archive for the ‘Uncategorized’ Category

Let’s try again: Castalia 2008.4.2

Posted on January 6th, 2009 in Uncategorized | 3 Comments »

Castalia 2008.4.2 is now available, which fixes a couple more bugs:

  • Fixed: Delphi 2007 library precompiler activates at the wrong time under some circumstances
  • Fixed: Delphi crashes when started with the /NOCASTALIA command line option
  • Fixed: Esc doesn’t close Code Insight windows when there are no bookmarks in the bookmark stack.

Castalia 2008.4.2 is available for current customers at the Customer Service Site, or for everyone else at http://www.twodesk.com/castalia.

Released: Castalia 2008.3

Posted on September 12th, 2008 in Uncategorized | No Comments »

Castalia 2008.3 is now available.

Current customers can get it at http://subscribe.twodesk.com

Everyone else can try a free trial at

http://www.twodesk.com/castalia/download.html

What’s new in Castalia 2008.3:

* Support for Delphi 2009 IDE

* Parser Support for Unicode source files in Delphi 2009

* Bugfix: Inline variable declaration fires on Ctrl+Space

* Bugfix: Embedded text search doesn’t take selected text

* Bugfix: “Rename Parameter” refactoring doesn’t work for procedures
and functions that are not members of a class: The parameter¬† isn’t
renamed in the method declaration.

* Keyboard hints in embedded text search can be turned off

* Bugfix: “Extract Method” and other refactorings format code with a
begin/end/else/if/end structure incorrectly.

* Improvements in member name recognition for the “Eliminate With”
refactoring

* Improved identifier resolution for all refactorings

* Improved handling of compiler “define” directives in parser

* Support for parameterized type (aka “generics”) syntax

* Support for anonymous method syntax

Hello world!

Posted on February 6th, 2008 in Uncategorized | 1 Comment »

New server… switching blog software.¬† Will add back some of the more interesting posts.

Discoverability turns deadly

Posted on May 17th, 2007 in Uncategorized | 1 Comment »

Some time ago, I blogged a bit about the concept of “discoverability.” That is, how does a user know that your software can do something for her unless you tell them? How do you tell them?

Yesterday, I was practicing work avoidance when I came across a short documentary (about 10 minutes) clip on YouTube about a certain airliner crash in Russia in 1994. In short, a series of mistakes results in the airplane stalling (which happens when the airflow over the wings isn’t fast enough) and then spinning. Spins are a big enough problem in a small plane, but in a large airliner, they’re almost unheard of.

We won’t go into the mistakes made that led to this condition, but the end result is Aeroflot 593 slamming into a hillside in Siberia and killing all 75 people on board.

Later investigation and simulation showed something incredible: The Airbus A310 they were flying had a built-in stall recovery feature. The pilots struggled and struggled to control the airplane throughout the ordeal, when all they needed to do was let go of the control column and let the airplane’s design save them. All of their work to save the airplane was fighting against the airplane’s own survival features, and the end result was disaster.

If the pilots had known of the stall recovery features of the airplane, it would have saved their lives. But they didn’t know. They may have read about it in a manual somewhere or heard about it in training, but for whatever reason, it wasn’t in their immediate memory of the tools they had at their disposal.

So, while the mistakes made by the pilots are obvious, what I’d ask is what mistakes were made by the designers? Could better discoverability of this feature have saved the people on the plane? What would that discoverability look like?

clippy-crashIt probably wouldn’t involve a talking paper clip giving piloting advice.

Discoverability in software tools is very important. Lack of good discoverability can be anything from mildly annoying (in the case of my Ruby on Rails experience the first time I wrote about this) to disastrously fatal.