Marquee de Sells: Chris's insight outlet via ATOM 1.0 csells on twitter

You've reached the internet home of Chris Sells, who has a long history as a contributing member of the Windows developer community. He enjoys long walks on the beach and various computer technologies.




My Day With Edward Tufte

Friday, June 25, 2004

I spent most of Thursday in a seminar given by Edward Tufte, the author of several seminal books in the area of data analysis and presentation (with another, Beautiful Evidence, in the works). I enjoyed it thoroughly and here's what I was able to capture:

Tufte's Grand Principles

The goal of good information design is to minimize the amount of time spent figuring out the design of the presentation of information (or even admiring it) and maximize the time spent reasoning about the information. Good designs should be as nearly invisible as possible.

Tufte: "The point of an information display is to assist thinking. Good design is clear thinking made visible. Bad design is stupidity in action. Chart junk is a good sign of statistical stupidity."

My favorite Tufte term is what he calls designers brought in to make boring numbers look interesting: "chartoonists."

Ed's Grand Principles of Analytical Design

  1. Show comparisons (this is big theme of Tufte's)
  2. Show causality
  3. Show more than 2 variables, as the world we're trying to understand is multivariate
  4. Integrate word, number and image (this is another big theme)
  5. Say from where the data came
  6. The value of an information presentation comes from the quality, the relevance and the integrity of the content, i.e. good design won't fix bad content.
  7. Use small multiples, e.g. showing multiple pictures of sunspots on the sun over time
  8. Show and embed scales of measurement because it's an essential part of the context
  9. Annotate everything and if the audience reads ahead great, they're reading your material
  10. Use proven design templates (like those in Tufte's books)

Tufte: "Don't let the marketing people corrupt your presentations by eliminating detail. Chances are, the people looking at the information know more than the marketing people. People haven't suddenly gotten stupid just because they come to hear you talk. If people can read the financial tables and the sports tables from the paper, they can get read data from you." (The last point assumes a good design.)

In my own work, I often remove detail for clarity, but I'm very careful to leave enough details to keep context. I admit, it's a fine like to walk and hard to get right.

As a way to pack more data into a small space (and in an attempt to secure his immortality, imo), Tufte was inspired by Galileo's work to create a new kind of graphic meant to be integrated into a sentence as yet another word. He calls them "sparklines" (the sparkline is the graphic before each word):

Sparklines pack a lot of information into a small space and are a cool alternative to graphics that break the flow of thought and need to be called out with a phrase like "as seen in Figure 3." I have a mind to implement them in Avalon when I get a chance.

90% Content

Tufte hates most kinds of user interfaces because they spend too much of the already low resolution screen on "fluff," e.g. menu bars, captions, navigation, etc, and too little on the content itself. As an example, he showed a screenshot of a photo display app that used only 18% of the screen for the actual photos. He wants nearly invisible operating systems and apps and 90% of the screen used for the content. He's a big fan of Google News as a way to pack in a lot of information and he's a big fan of scrolling. For web sites, Tufte recommends only a small set of links at the top of each page for navigation and nothing else. His own site is like this and I have to admit, I like it.

Design For High Resolution

Ed hates low resolution. He wants everyone to design for high resolution to be viewed at 22 inches so you can pack a lot of information in, showing comparisons and causality. He hates PowerPoint because it's made to be viewed from 22 feet and doesn't provide a lot of room for showing dense data, comparisons or causality. It's far easier for humans to make judgments when they can see everything at once instead of sequenced one slide after another (or "one damn thing after another," as Tufte says : ). In general, he believes everything should be printed and that PowerPoint should only be used for showing pictures to an art class. I see his point, but ironically, when he wrote a paper on the problem of PowerPoint to be read at 22", after 3 pages of him blaming PowerPoint for sloppy thinking, I put it down in disgust. If he had had his thoughts put together into PowerPoint-style format, I could have skipped ahead to find his real point, i.e. low resolution makes it hard to do serious analysis.

As a point for Tufte, when producing this summary of my day listening to him, I'm mixing prose, images and references, but I'm not producing it in PowerPoint. According to Tufte, 4 pages of prose is equivalent to between 50-250 PowerPoint slides and I have to admit, it would be hard to convey what I want to say about him in a PowerPoint deck without using a lot of slides and throwing away the subtleties. In general, I believe that PowerPoint is best for reminding the presenter what they want to say and is very poor for the audience. Instead of a slide presentation, Tufte recommends providing the audience 4 pages of prose, which they read 3-5x as fast as you could say it, and then having a conversation. Interestingly, he allowed no conversation during his own presentation but instead talked to various parts of his books and hand-outs.

 On the other hand, has anyone even read this far? Would you have gotten farther if I'd have summarized everything in slides, skipping ahead to the juicy bits when you got bored?

Giving Presentations

Tufte has a great deal of advice about how to prepare for and give presentations. To prepare, you must have great content (no amount of design or practice will fix bad content) and spend a great deal of time practicing (especially important if you're not using PPT to remind you what to say). When presenting, follow these rules (these aren't all of my rules, but I agree with them):

  1. Show up early to avoid problems and greet everyone at the door to learn their names, introduce yourself and begin advancing your cause
  2. Start talks with The Problem, Why They Should Care and The Solution
  3. Never start your talk with an apology, as it just make you look pitiful
  4. Use Particular/General/Particular when presenting information, e.g. start with a particular example of something, generalize it and then show another particular example that shows the same general characteristics (I use this technique all the time and it's very effective)
  5. Use first person singular only to express opinion, i.e. this isn't a talk about you but about a serious topic
  6. Give everyone at least one piece of paper (Ed prefers a single 11" x 17" folded in half with 4 sides of content)
  7. Knowing your content and respecting your audience is more important than knowing your audience if by "knowing" them, you "dumb down" your talk for them
  8. Avoid project slides (aka PowerPoint or the equivalent)
  9. Use humor as appropriate, e.g. hyperbole to make a point, but don't tell jokes. "Don't alienate your audience because of a joke. Alienate your audience on the merits on your content!"
  10. Avoid the use of "he" or "she," e.g. "The user, he takes his mouse and moves it to his menu bar where he makes his manly choice." Use "they" instead.
  11. Make sure folks know you believe what you're saying by getting out from behind the podium, getting close to people and use appropriate gestures. If you don't believe what you're saying, they're not going to believe it.
  12. Finish early and something good will happen. No one will ever look at their colleague, commenting on how they wish you had gone on for another 20+ minutes.

I think that Ed has enough good things to say about how to approach the presentation and analysis of data that I would recommend that pretty much anyone involved in the presentation and analysis of information take the time and attend his day-long seminar.

Discuss

0 comments




My Experiments in Social Video

June 25, 2004

Because I'm a rarity at Microsoft, a remote employee, I've been conducting experiments in social video to increase my presence from afar.

Experiment #1: Mini-Me

My first experiment was a dedicated laptop for IM audio and video that sits on my desk in building 5. The idea was that anyone that wanted to chat with me could wander by my office and start an a/v chat w/ me nearly as easily if I was actually in the office. And then, when I'm supposed to be in a meeting, instead of requiring someone to bring their laptop, with a web-cam installed, and give it up to me for the duration of the meeting so that I could see folks, they could just grab the "mini-me" laptop from my desk and bring it to the meeting.

Sounds nice, eh?

Doesn't work.

The reason mini-me doesn't work as a stand-in for me in my office is because there's no standard account I can login with on my desktop, e.g. redmond\guest. The reason a standard account would be nice is so that I can leave it logged in all the time, tie its own .NET Passport to the account and put a shortcut on the desktop to make it IM me in video conference mode (I actually wrote an app that does just that). Unfortunately, it has to be an MS domain account so it has network access and if I leave an anonymous domain account logged in on a laptop all the time, that's an enormous security hole. And if I make folks that want a quick chat with me log in themselves, they'll will have to wait for their domain settings to migrate to the laptop, they'll have to login with their own IM account, they'll have to configure the web cam before using it and they'll have to remember to logout when they leave for the next person. Frankly, I'm not worth all that trouble when they could just call, IM or email me.

So, the mini-me laptop is a bust unless I can figure out a way to get Internet access without Intranet access inside the MS corporate Intranet without requiring everyone to log in w/ their own account to get it. Oh, and it has to be in a way that works with wireless so that they can haul mini-me to a meeting without having to haul along a cable, too.

Experiment #2: Maxi-Me

My 2nd experiment in social video went quite a bit better. Last week I gave two 1-hour talks back to back to the AZ .NET User Group, but the trick was, I gave them from my house. The setup was two computers on each side. One was for NetMeeting app-sharing (using MSN Messenger to request Remote Assistance works, too, but I can never get MSN Messenger app-sharing going). The second is for the video (the CPU load was too heavy to do both on one computer). Voice was done over the phone, which they put through their PA system. They also had two computers, both attached to video projectors, broadcasting my screen using one projector and my image using another (can you imagine how disturbing it must have been to see the giant, pixelated maxi-me? I shudder at the thought : ).

The app-sharing worked well, as I was able to easily switch between PowerPoint and a Terminal Services session to my Longhorn box. The audio worked well because I insisted on 2-way audio so I could hear them ask questions (I hate talking into silence). The video was cool, because I could see them raise their hands, drift off, laugh, etc, but it required somebody sweeping the room on their end periodically (talking without seeing your audience is slow death).

Overall, it seems like folks were able to enjoy a remote presenter without too much trouble. Once I got 'em warmed up, the speaker phone and roving camera made Q&A very natural. I would try maxi-me again, although I'd love it if I could get mini-me working, too.

In general, I believe that ubiquitous a/v conferencing is inevitable. I just I'm just a bit ahead of the curve. : )

Discuss

0 comments




Richard Turner On Building Web Services Today

Richard Turner, a PM on the Indigo team, has some advice about how to build web services while we wait for Indigo. He didn't mention WSE2 specifically, but I assume he means for you to use it when you hit the wall on ASMX for web services implementations, e.g. when you need WS-Security support.

0 comments




It's Almost Always Option B

Choose an existing technology Foo and imagine a newer, better way of doing the same thing called Bar that's coming in some number of days/weeks/years. Sean and Scott say that you have the following choices:

A. Blissfully continue to use Foo.
B. Continue to use Foo, but research Bar, and architect for its use once it's available.
C. Don't touch Foo with a 10 foot pole. It's dead after all. Touching it is probably illegal in 46 states.

Some folks hold onto option A too long, while some jump into option C too soon. The answer is almost always B within some delta of "it's available" that's appropriate for your business.

Sean and Scott call Foo and Bar "Windows Forms" and "Avalon," but as they point out, these are the decisions we're always making on new technologies. What's the best judge of the delta around "it's available" for adoption? That's all about your specific business needs and don't let peer pressure sway you either way.

0 comments




RobertM On Consuming XAML From A Web Server

Robert McLaws makes an interesting observation about the possibility of consuming XAML from a web server:

"So, if Microsoft wants to blur the lines between a web site and an client-side application, what makes you think that the next version of IIS will not support serving up XAML to the client. Instead of getting a limited browser experience at http://www.longhornblogs.com/default.aspx, what if you could get a super-interactive experience with the full power of the client at http://www.longhornblogs.com/default.xaml? What if, on a mobile device, you could use web services to allow location-aware applications ultra-dynamic, serving up XAML UI code along with data? A thick thin-client? Talk about a contradiction in terms. The possibilities become greatly expanded if you beging looking at what's in front of you instead of looking behind your shoulder at what's behind you."

The future is unwritten.

0 comments




Swag for the June 29 Portland Nerd Dinner

I was doing my periodic t-shirt down-sizing and have gathered a couple dozen t-shirts that I thought I'd donate to my local geeks instead of to my local Good Will (who just don't seem to appreciate them). The pile includes a bunch of DevelopMentor t-shirts, including some of the vintage COM Is Love t-shirts (although I'm keeping Essential Marketing and I'm With CAFEBABE). I'll bring the t-shirts to the June 29th Portland Nerd Dinner.

And if you're attending the PND, don't forget to ask me for the letter I wrote to the CEOs of AOL and CompUSA. It made Rory repeatedly gasp in amazement.

0 comments




Time Running Out; Submit XML Dev.Conf. Abstracts!

If you haven't yet submitted your abstract to the Applied XML Developer's Conferences, don't wait much longer; I'm only accepting submissions 'til the end of June, 2004.

I've already gotten a ton of abstracts, including submissions from folks like Sam Rub, Tim Bray, Tim Ewald and Don Box, but that doesn't mean that your talk won't bubble up to the top; as much as I like to have the polished speakers, I like even more to have the folks from the trenches.

According to current thinking, the conference is likely to be 9/30 - 10/1 within an hour of the Portland Airport, although details are still being finalized.

Submit your abstract today!

0 comments




More On The VC# 2005 Key Bindings

Joe Nalewabau has one very important addition point to make about the new key bindings in Visual C# 2005: while the VC# team will be providing a bunch of key bindings based on how things are arranged, e.g. Ctrl+W, S to show the Solution Explorer from the Window menu, 90+% of the old key bindings will continue to work, e.g. Ctrl+Alt+L to show the Solution Explorer. I worry that the 90% coverage won't be like uptime, where 90% is generally just fine, but more like speech recognition, where anything less than 99.9% just bugs people. I'm keeping my key bound fingers crossed...

0 comments




Chris Anderson on Avalon Visual Extensibility

Chris Anderson just did a fabulous job describing what makes Avalon more extensible than existing popular UI frameworks. What Avalon allows is the ability to have a Button instance like so:

<Window>
  <Button>Hello</Button>
<Window>

And then, somewhere else, using Styles, setting the VisualTree of what a Button looks like to be whatever you like, e.g.

<Style>
  <Button />
  <Style.VisualTree>
    <FlowPanel>
      <!-- anything you like in here, e.g. <Text>, <Video>, <Rectangle>, whatever -->
      <ContentPresenter />
    </FlowPanel>
  </Style.VisualTree>
</Style>

Two interesting things about this button style. The first is that you can make a Button look however you want it to look, without worrying whether the Avalon team had that in mind up front. Two, when you want to drop in the content inside the Button tag, e.g. "Hello", you drop in the ContentPresentor and it knows how to display what was placed in the Button (again, which could be anything). Simple and flexible: two things that I'm finding to be true more and more about Avalon the further I dig.

0 comments




Longhorn 4074, MSBuild + GetOutputAssembly

If you're using Longhorn 4074 and MSBuild is telling you this, 'The target "GetOutputAssembly" does not exist in the project.', then try these steps to solve the problem:

0 comments




The VS Keybinding Randomizer Is An Actual Person

Joe Nalewabau, a Lead PM on the Visual C# team, admitted today that he was responsible for the VC# keyboard randomization process for Visual Studio 2005 and describes the thought process that he went through to get there. I admit that Joe makes a good case for changing the key bindings, but I hate the idea of learning a whole new set (especially since, because I'm a keyboard boy, I'll be crippled until I learn the new bindings). If Joe would swear on a stack of user manuals that the key bindings would never, ever change again, I'd be happier about it. (Rocky: "Again? That trick never works!" Bullwinkle: "This time fur shure!")

Of course, what I think doesn't matter (it stopped mattering when I signed that damned employment contract : ). It's what you think that matters and you should feel free to let him know what you think about the new VC# 2005 key bindings.

0 comments




Avalon Data Binding Talk, PADNUG, Thurs, 6/24/04

"If you're familiar with data binding in Windows Forms or ASP.NET, you ain't seen nothin' yet. In this presentation, Chris Sells, Content Strategist for the MSDN Longhorn Developer Center Web site, will cover data binding in Avalon, the new UI stack in Longhorn, Microsoft's next OS. Chris will cover the basics of data binding and then move into transformers, filters and styling. If you're going to build UIs in Avalon, you'd be crazy not to use data binding to do it."

Data Binding in Avalon
6/24/2004, 6:30pm
Portland Community College Auditorium, Room 104
1626 SE Water Avenue
Portland, OR

0 comments




Whoa. I'm A Banner Ad.

If you hit the Microsoft-Watch web site often enough (it's been on 3 of my last 4 visits), you'll see my smiling face as a giant banner ad. Hell, I don't even put my picture up on my own site (well, except this one...)! Maybe they've got too many hits on their web site and instead of taking it down without warning, they're using my picture to scare folks away. ; )

0 comments




Anders On Integrating Database Support Into C#

Some quotes from Anders on Channel9:

"On of the things that we are trying to think about deeply in C# 3.0 is this big gap that I still see between general purpose languages and databases... Anyone who's building an enterprise app is using both worlds... There's certainly a lot of progress we can make by truly marrying these worlds... It's nothing but mismatch. We gotta do away with that."

Now that we've removed memory management from my code and between InitializeComponent and XAML, we've removed the need to write UI layout code, the next big chunk that gums up the works is data integration code. To have Anders thinking about how to extend C# 3.0 to mitigate this problem has me all a tingle!

0 comments




Chris Anderson on XAML "Aha" Moments

Chris Anderson, Architect on the Avalon team, shows the first XAML "Hello, World" code and then describes two big "aha" moments to which XAML programmers can look forward. I've been to both of the moments that Chris describes and have had one more he doesn't mention: data binding in Avalon changes everything about how I build my UI.

0 comments




1600 older posts       1035 newer posts