Vincent Gable’s Blog

April 1, 2009

Microsoft Excel Does Not Excel at Graphing

Filed under: Design,Quotes,Usability | , , , ,
― Vincent Gable on April 1, 2009

I gripe about Excel a lot, as we’re more or less forced to use it for data analysis in the intro labs (students who have taken the intro engineering course supposedly are taught how to work with Excel, and it’s kind of difficult to buy a computer without it these days, so it eliminates the “I couldn’t do anything with the data” excuse for not doing lab reports). This is a constant source of irritation, as the default settings are carefully chosen so as to make it difficult for students to do a good job of data presentation.

Now, you might be saying “Well, of course Excel isn’t appropriate for scientific data analysis. It’s not really for scientists, though.” Which is true, but here’s the thing: the things I’ve complained about here aren’t good for anything. The color schemes and axis settings lead to illegible plots no matter what sort of data you’re working with. And I’m completely at a loss as to the purpose of the “Line” plot, or making it difficult to find uncertainties in fitted quantitites.

Professor Chad Orzel, Why Does Excel Suck So Much?

There’s no question in my mind that a lot of serious analysis is done in(spite) Excel. I’ve worked with some very smart programmers, with PhDs in experimental science, who have “numerics” in their job description, and used Excel to make quick graphs.

The best solution I can recommend is reading The Visual Display of Quantitative Information. It’s probably the best guide to honestly presenting data graphically.

Unfortunately I don’t have a good recommendation for a better software program. The excellent redrawings at the chartjunk blog were done in Adobe Illustrator (more info in this comment). But Illustrator costs $599, and is a complex drawing program. Honestly the sticker price, and ease of use, have kept me from trying it.

What do you use to draw graphs?

March 13, 2009

A Chair for Design

Filed under: Design,Quotes | , ,
― Vincent Gable on March 13, 2009

Alan Kay explained why he liked beanbag chairs at PARC,

And one of the reasons we used them was that we discovered it was almost impossible to leap to your feat to denounce someone once you had sat in a bean bag chair, because you tended to sink into it further and further. So it had a way of relaxing people and it was very good for design.

From Doing With Images Makes Symbols

What seating arrangement do you think works best for creativity, both individual and group? Personally I like pacing when I’m thinking alone.

March 10, 2009

Dashboards on Steering Wheels Are Complicated

Filed under: Design,Quotes,Usability | ,
― Vincent Gable on March 10, 2009

Given that all 11 F1 teams have converged on a remarkably similar UI (for a dashboard on a steering wheel), independently, you would think that (the style) was a rational design, however its complexity possibly caused Lewis Hamilton the 2007 F1 championship, when he accidentally pressed the neutral button …

825b387026c6c81ef5a96970ccd12ee8-orig.png

What is clear is that there is no clear accentuation of features (color, size) by how often the are used, merely by position. Even if drivers like Hamilton are experts and fully familiar with the UI, there is a tiny percentage chance of error. Our guess is that this trend in car UI would be a mistake if it filters through to everyday cars, and that F1 cars will revert to a more simple UI over time.

oobject.com (article includes a gallery of F1 steering wheels)

Certainly I have made mistakes with traditionally mounted dashboards in every car I have owned. But the mistakes haven’t significantly impaired by driving. Accidentally turning on the air conditioner or radio aren’t a big deal — even with my old Volvo that couldn’t accelerate as well with the AC on.

March 7, 2009

Don’t Work Against Yourself

Filed under: Quotes | , , ,
― Vincent Gable on March 7, 2009

Reaganite conservatism axiomatically disdains government, and that creates a perverse incentive for conservative politicians to run government badly (or at least not to run it well), since the failure of government confirms conservative prejudices and (in theory) provides the movement with additional evidence in favor of its ideology. We just saw a particularly vivid example of this pathologically self-destructive dynamic at work in Bobby Jindal’s otherwise inexplicable attempt to turn the Bush administration’s utter ineptitude after Hurricane Katrina into a GOP talking point.

Damon Linker

I generally try to keep politics out of my blog, because political discussion on the internet isn’t productive. But I think there is a good lesson in this bit of history, and it’s very applicable to software development.

March 4, 2009

Professionals Check What They Broke

Filed under: Quotes |
― Vincent Gable on March 4, 2009

Mark Chu-Carroll, on how to tell if someone defining division-by-zero is a competent mathematician,

One good way of recognizing a crank is by looking at what they do with their new division-by-zero defining system. A serious mathematician starts working out what affect their definition has on the basic axioms, and what still works. A crank defines division by zero, and then proceeds to continue working as if they haven’t broken anything.

Mark Chu-Carroll

There are parallels in most every profession.

Retest Your (Low Level) Optimizations

Filed under: Programming,Quotes | , ,
― Vincent Gable on March 4, 2009

(Measuring before and after applying an optimization is) more important these days. With optimizing compilers and smart virtual machines, many of the standard optimizing techniques are not just ineffective but also counterintuitive. Craig Larman really brought this home when he told me about some comments he received after a talk at JavaOne about optimization in Java. One builder of an optimizing virtual machine said, in effect,

“The comments about thread pools were good, but you shouldn’t use object pools because they will slow down our VM.”

Then another VM builder said,

“The comments about object pools were good, but you shouldn’t use thread pools because they slow down our VM.”

Not only does this reinforce the need to measure with every optimization change, it also suggests that you should log every change made for optimization (a comment tag in the source code is a good option) and retest your optimizations after upgrading your compiler or VM. The optimization you did six months ago could be your bottleneck today.

Martin Fowler (PDF), 2002

I’ve written before about the decay of machine-specific optimization. Even if your code isn’t run by a VM, I think it’s reasonable to expect that (at least some of it) might be run on a smartphone in the near future.

February 20, 2009

Bad Apples

Filed under: Quotes,Research | ,
― Vincent Gable on February 20, 2009

What they found, in short, is that the worst team member is the best predictor of how any team performs. It doesn’t seem to matter how great the best member is, or what the average member of the group is like. It all comes down to what your worst team member is like. The teams with the worst person performed the poorest.

Jeff Atwood

February 19, 2009

Security vs? Usability

Filed under: Design,Programming,Quotes,Security,Usability |
― Vincent Gable on February 19, 2009

In most cases, how an authentication system works when a legitimate user tries to log on is much more important than how it works when an impostor tries to log on. No security system is perfect, and there is some level of fraud associated with any (authentication method). But the instances of fraud are rare compared to the number of times someone tries to log on legitimately.

Bruce Schneier on balancing security and usability

I like thinking about security. But, inspite of all the dramatic headlines, I believe bad usability causes far more damage then the bad security.

A more usable system should make recovering from a security breech easier. It’s easier to make things right, when it’s easier to make things.

Usability limits what people can do with something. Is it just coincidence, or does that sound like a partial definition of security?

February 18, 2009

Competing Software Engineering Approaches

Filed under: Cocoa,Programming,Quotes,UNIX | , , , , ,
― Vincent Gable on February 18, 2009

Tim Bray,

…Palm’s approach is
radically different from both Android’s and Apple’s. Since they’re all here
at more or less the same time, running the
same Web browser on roughly
equivalent hardware, this represents an unprecedented experiment in
competitive software-engineering approaches.

Language Framework Notes
Apple Objective-C Cocoa Old-school object-oriented language compiled to the metal; general-purpose UI
framework with roots reaching back to NeXT.
Android Java Android Java language, custom VM, built-from-scratch UI
framework aimed at small-form-factor devices, fairly abstraction-free, based
on “Actions” and “Intents”.
web OS JavaScript “Mojo” All Web technology all the time. Innovative and visually-impressive
“card”-based UI.

(I think it’s interesting to see Windows Mobile on the list:

Windows Mobile C/C++ Windows CE/.NET Micro Philosophically tries to bring Windows to the phone. When I did WinCE development it felt like doing C++ for a Windows OS from the past.

)

I see way too many other factors to attribute success/failure of the devices to the language. So I wouldn’t call this an experiment.

But it is interesting how much development for each platform diverges at a fundamental level!

Historically most operating systems —
UNIX, OS/2, Linux, Windows, Solaris, Mac (Classic and OS X) — were predominantly, written in C/C++. While each platform has it’s own frameworks, they all have strong support for C++ development. (Although Mac OS X has is slowly dropping support for it’s C/C++ “Carbon” API, and Windows wants to be moving to C# .NET)

It’s really cool to see mobile platforms doing something radically different from each other. There are good arguments for each approach — may the best one win.

February 16, 2009

Simplifying by Adding Features

Filed under: Accessibility,Design,Programming,Quotes,Usability | , , ,
― Vincent Gable on February 16, 2009

One of the oldest canards in the interface business is the one that says “Maximizing functionality and maintaining simplicity work against each other in the interface” (Microsoft 1995, p.8). What is true is that adding ad hoc features works against simplicity. But that’s just bad design. It is often, but not always, possible to increase functionality without increasing difficulty at a greater rate. Often, added functionality can be had without any added interface complexity; note the difference between interface complexity and task complexity. If the added functionality unifies what had previously been disparate features, the interface can get simpler.

— Jeff Raskin, The Humane Interface (page 201)

Examples of this are the exception, not the rule. Usually, more features means more complexity.

The best example I can think of is Coda, an award-winning web development IDE.

text editor + file transfer + svn + css + terminal + books + more = whoah.

The story of Coda.

So, we code web sites by hand. And one day, it hit us: our web workflow was wonky. We’d have our text editor open, with Transmit open to save files to the server. We’d be previewing in Safari, adjusting SQL in a Terminal, using a CSS editor and reading references on the web. “This could be easier,” we declared. “And much cooler.”

(To really get a sense of Coda you should check out the website, or try it for free).

Even though Coda’s interface is more complicated because it does more then just edit code, it simplifies the task of web-design, by unifying tasks that used to be done in different applications with different interfaces.

What other examples of things becoming simpler through added functionality can you think of? Please share in the comments below.

« Newer PostsOlder Posts »

Powered by WordPress