Tuesday, October 31, 2006

Laddered Skills - Democracy example

Just quick jotting...
The capabilities or properties of purposeful/designed systems are all laddered. Think of what is required for a country to be a successful democracy. You have to build up through a number of levels.. e.g. it's economics and other instituions have to be developed to a certain stage. It emerges through these things. You can't install democracy simply by things like changing laws. And it's not just a matter of tyring hard enough.

Monday, October 30, 2006

The design process used by Apple’s chief designer, Johnathan Ive

The 37signals blog Signal vs. Noise mentions a Business Week article on Johnathan Ive “the man behind Apple’s design magic.” The article says:

His design process revolves around intense iteration — making and remaking models to visualize new concepts. “One of the hallmarks of the team I think is this sense of looking to be wrong,” said Ive at Radical Craft. “It’s the inquisitiveness, the sense of exploration. It’s about being excited to be wrong because then you’ve discovered something new.”
And the referring (Signal vs. Noise) post says:
Getting Real is all about iterations too. “Be excited to be wrong because then you’ve discovered something new” is a neat way to put it (btw, so is Fail early, fail often).
So lots of trying things out and revision, always trying to find where things could be improved.

Why programming gives you unique skills for understanding the world


Subjective elements in your understanding of something are just ways to gloss over the details how things actually happen. They’re a particular problem because we’re prone to unconsciously using them and they’re hard to spot.

Learning to program helps you develop important skills - in spotting and avoiding subjective elements. Subjective elements have no place in programming. You have to make things happen by writing a descripton that doesn't contain subjective elements.

You start with your picture of something, invariably containing subjective elements, and you have to make it into something fully concrete. The discipline of programming builds your ability to do this. You get better at spotting subjective elements in descriptions, and more agile at thinking of things and situations in terms of their concrete details.

When it comes to think about how things happen in the world, you may or not be able to think about the concrete details of what is going on, and how they bring it about, but you can certainly be better at spotting subjective glossing in descriptions of it.

Visually referencing web-page elements

Think of instructions for setting up something on the computer, like setting an internet connection, or something on the web, like setting up an eBay account so you can sell items.

There are a number of different ways these instructions could be presented. You can have a fully textual description, giving the person instructions on where to go and what to do.

An improvement on this is to include pictures so people can more easily see what they should be looking at.

Even better is to explicitly, visually reference elements of the pictures from the description. So, for example, if there are a number of things a person needs to change on a dialog, visually highlighting each of these items on the picture and number them, so they can be referenced from the text. Or draw an arrow from the text to the item.

What would be even better is if the instructions could directly guide you through the process, and bring up the actual dialogs, rather than showing pictures of them, and highlight the actual items on that dialog. A sophisticated system could detect your state of progress and automatically open up the next dialog/page/etc - as a kind of worlflow.

Essentially, this is about being direct - showing rather than telling. You don’t have to see the instructions in one context and then switch to a different context to the actual web-page/program and then implement what they say. That context-switching requires you to reorient yourself and map what you saw in that description into what you’re seeing in the actual thing.

To do this on the web, you’d need the following sorts of things. A way of directly referencing elements within pages, such as input fields. Ways of visually highlighting these, such as putting a red drop-shadowed border around them. And a way to draw an arrow between a bit of text or an image and one of these items.

I recently saw this post on the 37Signals blog Signal vs. Noise, on the idea of showing things as directly as possible - referencing a page element with a visual annotation. I can't say it was actually the inspiration for the ideas in this post, but it reminded me to write about it.

The post is about how they used direct visual reference on a particular page - or rather, the design process that led them to do this. Rather than describing how you could use the links in the link bar at the top of the page to populate a blank site, and saying what those links were, they just drew a bit arrow to those links saying "Use these links to fill your page".

Saturday, October 28, 2006

Article on the myth of prodigy

An article in the Association for Psychological Science's Observer

“I think we take it as an article of faith in our society that great ability in any given field is invariably manifested early on, that to be precocious at something is important because it’s a predictor of future success,” Gladwell said.
Precociousness is a slipperier subject than we ordinarily think, Gladwell said. And the benefits of earlier mastery are overstated. “There are surprising numbers of people who either start good and go bad or start bad and end up good.”
The other way to look at precocity is of course to work backward — to look at adult geniuses and see what they were like as kids. A number of studies have taken this approach, Gladwell said, and they find a similar pattern. A study of 200 highly accomplished adults found that just 34 percent had been considered in any way precocious as children. He also read a long list of historical geniuses who had been notably undistinguished as children — a list including Copernicus, Rembrandt, Bach, Newton, Beethoven, Kant, and Leonardo Da Vinci (“that famous code-maker”). “None of [them] would have made it into Hunter College,” Gladwell observed.
And when it comes to musicians, the strongest predictor of ability is the same mundane thing that gets you to Carnegie Hall: “Really what we mean … when we say that someone is ‘naturally gifted’ is that they practice a lot, that they want to practice a lot, that they like to practice a lot.”

Automating Optimized Information Display

Ideally, we want to optimise the display of information. Or at least, most non-fiction information.

This is a matter of good communication, and that is largely a matter of efficiency. The information should be direct, concise and relevant. Unnecessary detail should be filtered out.

To do this effectively, you need to understand the target 'readership'. For example, knowing what they already know, so you can filter out details that are unnecessary to them.

Edward Tufte talks about this kind of stuff a bit.

Here's a simple example of optimizing information display - and automating that process: optimized cut-and-paste.

Much of the information you display is originally sourced from other places. I'd like to be able to automate the task of optimising the display of that information for the particular purposes it is being put to.

Say that I want to go to local hardware stores this weekend, so I search for them on the yellow pages website and add the details into my organiser software. The search results would look something like this:

store name
120 Sir Fred Schonell Drive
suburb, postcode
ph: (07) xxxx xxxx
fax: (07) 3371 xxxxx
website: xxxxxxxx.com.au

store name
street address
indooroopilly, postcode
ph: (07) 3371 xxxx
fax: (07) xxxx xxxxx
website: xxxxxxxx.com.au
But as far as my needs go, I can put an optimised version of this into my organiser program like:
store name, 3371 xxxx, street address
store name, 3371 xxxx, street address, indro
I don't need to know the fax or web details, so I filter them out. As for the phone number, in this context, I just need to put the number itself -- I don't need the 'ph:' bit or the area code.

And for the address, I just need to know the suburb, so I can filter out the postcode. And I can abbreviate 'Indooroopilly' as 'indro'. If the street is familiar and I know what suburb it is in -- as with 'Sir Fred Schonell Drive' -- I can omit the suburb name.

Since I can fit all the details of a store on a single line, I do so. And there's no need for here for line spaces between the entries for the different stores, so I get rid of them.

It doesn't come out so much in this small example, but when you're dealing with lots of info, condensing it like this can make things much easier to deal with. The more you can see at once, the easier it is to see the whole and the properties it has, to manage it, and to see any paterns within it.

What I'd like is the computer to help automate this optimization task.

When I cut and then paste something, the program would provide options for optimizing the display of the information.

To do this, it would have to know a bit about how things could be optimized as well as knowing things about me. It could learn the kinds of optimizations I do - like replacing Indooroopilly with Indro. It could learn about what I know, in order to figure out what details I don't need to know - such as that I know all Queensland phone numbers have the '07' prefix, so it can omit them.

To do it well would be quite a difficult task. This post is not about the current feasability of such automation, but just to communicate the idea of it.

I think such automated optimizing of information display is a major area in which software can become much smarter and useful, essentially by becoming better communicators.

Here's some discussion / notes.

Ideally, when it filtered out information in a particular display, it wouldn't actually remove the information, but just not show it - so you could bring it up if you wanted to. Better, at any time you could tell it to adjust the type and amount of condensing you wanted.

Another sort of optimisation is dynamic optimisation to adjust to changes in the display area. If less space is available to display the information, the more condensed it makes it. For example, using 'heavier' abbreviations. Jorn Barger has talked a bit about doing this kind of thing (the above link is to his blog. After a bit of searching I haven't found the specific posts where he talks about this kind of thing).

For example, imagine a widget displaying the progress of a particular task you are undertaking, such as scanning your computer for viruses. You may want to keep track of this progress as you are doing other tasks. How much attention you want to give to it will depend upon what other things you are doing, and, for example, how much spare real-estate there is on your desktop. So you can resize the scanning-widget window to different sizes and it will adapt. Abbreviating things in various ways, and filtering how less relevant details.

Another optimization technique is clearly saying what you're saying, with techniques like 'heads', 'decks' and 'leads'. This makes it easier to find relevant information.

Friday, October 27, 2006

No one wants truly random play lists

Say we’re developing an MP3 player and want it to be able to mix up the order it plays songs. What comes to mind is a randomness -- having a random-play feature. But in fact, what we would really like is not literal randomness, but something more subtle.

A truly random playlist would do things like play the same song a twice in close proximity, or even twice in a row. What people really want is a subjective sense of variety. They want the songs jumbled up, but with repeats a bit more ‘evenly spaced’ so they don’t tend to come across the same song again until most of the other's have already been played.

When we first think of the feature we want, ‘random’ just seems to jumps into our head. Even if we wanted to deliberately think through exactly what we wanted in the feature, the notion of random would come to us well before we were finished.

The seems to happen through some sort of automatic assocition process. Our brains just seems to pick the closest general concept. It seems to be a kind of heuristic.

In such situations, I think you need to expect such things to just come to mind, and to be mindful that they’re often only approximations. And that means not just accepting it as true, and thinking about whether it really fits the situation.

If we do that for the MP3 player example, we can see that we’re after a feature that affects the listener’s listening experience. And if we have that in mind, and think about randomness, and how it will include sequences of same item more than once in a row, and reflect on this in terms of the listener’s experience, we can see that they are unlikely to want that.

This means not just considering what the player is doing, and that feature itself, but also the perception of it -- which is a key consideration here. That’s harder to do, as our thinking is usually directed at what’s there in the world, and it takes effort to also consider the perception of what’s out there.

What I’ve talked about here is an example of the ‘laddered skills’ I spoke a bit about a number of months back. It’s an example of how mental capabilities are laddered.

Skills are ‘laddered’ in the sense that in developing a particular skill, you have to pass through various ‘rungs’ that are pretty inherent to that skill. I had been intending to write about mental capabilities as laddered skills, but that turned out to be a far larger task that I’d expected, and I just haven’t had the time to work on it.

It's an example of it because, at one skill rung, there is just accepting whatever concept jumps to mind, and rung up there is recognising that this concept may be only an approximation and thus in need of evaluation. Also a rung up, is realising that the concepts that jump to mind tend to overlook roles that perception may play in the situation.

Thursday, October 26, 2006

Better support for 'touch typing' on mobile phones

I often type SMSs or notes on my phone while I’m walking. Soemtimes because it’s some spare time to do stuff, but also because walking frees up my mind and I often think of things when doing it. I’d like it if I could type them without having to continually look down to the phone to see what I’m doing.

Part of it is having to look down to see what keys I’m pressing. I can usually move my thumb to right area without looking, but not quite accurately enough. It’d help there was tactile identification of the different keys. Perhaps they could have different texture patterns on each of them. Perhaps even the braile codes for the numbers on the keys.

The other part of it is in getting feedback on what you have typed. Rather than having to look down at the screen to see what character I’ve entered, it'do help if the phone could give me auditory feedback and read out that character. This would be particularly useful if I was using the handsfree headset.

Wednesday, October 25, 2006

Daniel Dennett's policy recommendation

Advice Goddess Blog writes:

"Dennett’s one policy recommendation –- education on world religions (for kids):
Education on world religions for /all/ our children,

in public and private schools, and home schooling
Dennett explained:

Toxic religions depend on enforced ignorance of the young –- and a religon that can flourish in an informed (citizenry) is a benign religion.

Malcolm Gladwell: unfamiliar- and expert- tasks are harder than you'd think

Malcolm Gladwell argues that outsiders tend to underestimate the difficulty involved unfamiliar tasks, especially those involving expertise.

Tuesday, October 24, 2006

Favourite Recipes: Milanese-style Osso Buco

Milanese-style Osso Buco

This is adapted from an Antionio Carluccio cookbook (can't recall which, though the recipe is on pg 130 of it).

It's richly flavoured, and is much better after a reheat when the flavours have integrated fully.

Osso Buco[1] are cross sections cut from veal leg bones. So they're disc-shapes, a few centemeters thick, with meat surrounding the central bone. He reccomends getting a butcher to cut the pieces "from the middle of the skin where the bone is rounded on both sides and the meat is dense".

  • osso buco (veal marrow-bone), 4 x 4cm thick pieces
  • seasoned plain flour, for dusting
  • olive oil, 4 tbsp
  • small onion, 1, diced
  • peeled roma tomatoes, 800g can, strained of half their juices
  • juice of 1 large orange, and finely grated rind of ½ orange
  • dry red wine, 150ml
  • salt and pepper to taste
  • Gremolata
    • flat-leaf parsley, finely chopped, 4 tbsp
    • finely grated lemon zest, 1 tbsp
    • small garlic clove, 1, crushed
  • Frying the osso buco
    • Dust the osso buco with seasoned flour.
    • Heat the olive oil in a cast-iron casserole
    • Fry the osso buco two at a time on both sides
      taking care not to damage the marrow in the centre of the bone or allow it to fall out.
    • Remove the osso bucco from the casserole and put to one side.
  • The rest of the prep before simmering
    • In the same oil, fry the onion until transparent
    • Add the tomatoes, and cook for five minutes, breaking them up
      in the casserole with a wooden spoon while cooking.
      Keep the heat up high so that the tomatoes reduce.
    • Add the orange juice, the grated rind and the wine.
      Continue to cook fast.
    • Return the osso buco to the sauce.
    • Season the sauce with salt and pepper.
  • Simmer
    • Reduce the heat, cover the casserole and simmer for 1-1/2 hours
      until the meat has begun to come away from the bone.
  • Make the gremolata
    • simply mix the ingredients together.
  • Sprinkle each osso buco portion with gremolata, and serve with a risotto.

[1]It seems that 'osso buco' is actually the name of the dish, and 'veal shanks' are the proper name for the cut of meat, even though they seem to be commonly referred to as 'osso buco'.

Sunday, October 08, 2006

Article on working from third-places

USA Today has an article on people working out of 'third-places' like coffee shops. I was interested to see it, as for the past two years, I've been doing almost all of my PhD writing at a coffee shop in Toowong. I usually spend about one and a half hours in there each day, and I find it a pretty good place to work. From the article:

"Working from a place like this is less stressful than being in an office, and I find I get a lot more done," says Karsch, general manager of Spanish Sales Force, a Spanish-language marketing consultancy. "If you can make this work for you, you'll love it." ...

An estimated 30 million Americans, or roughly one-fifth of the nation's workforce, are part of the so-called Kinko's generation, employees who spend significant hours each month working outside of a traditional office.
Some of what the interviewed people say about their experience of it is similar to what I've found:
Akiba Lerner, 35, [is] a Stanford doctoral candidate working on his dissertation on religious philosophy. Although there's an Internet cafe close to his house, he makes the 20-minute trek here for "the good lighting, the right chair and the vibe of the people."
Noah Lichtenstein:
"What I love is that you can dial into the white noise here and focus on work, or pull your head up and people-watch."
And this:
"It's an energy issue," says Katara, founder of Pavia Systems, a company that provides online training programs. He has a home office but prefers to work here exclusively. "At home, I'm isolated. This, it's sort of a surrogate coworker environment."