Skip to main content

Book Review: Design of Everyday Things by Donal A. Norman


It is pretty old book. It was published in 1988. Computers were much more clumsy and hard to use but at the same time they were changing really fast. Fortunately author picked everyday things as the main theme of the book. You can read about faucets or doors but what you learn in the process will work in every context.

First idea from a book is about blame. When we see some strange faucet we feel stupid for not knowing how to use it, but we are not to blame. Design of the faucet should be blamed, maybe even designer. Our everyday things should be designed to make them easy to use and understand. One important idea from a book is to think about ease of use when we are buying any kind of objects.

Natural Mapping
It is one of several important factors of great design. Controls should be aligned exactly the same way that things they control. If you want to see it violated look at controls of your burner in the kitchen.

Perceived Affordances
How things look like suggest how they can be used. If you put the button on the page it will make people press it not drag it to some other place on the page.

Feedback
Watch Inventing of Principle by Bret Victor for this idea in newer form.

Constraints
Sometimes taking out control and creating constraints will make product easier to use and understand.

Many of the ideas in the book are 'obvious' and 'common wisdom' for me, but still it was really good to read more about them and put them into more precise ideas.

Recommended: 9/10

Why I picked up this old book? Mostly because it is on Bret Victor list: http://worrydream.com/#!/Links

Comments

Popular posts from this blog

How to simulate slow connection (developer proxy in Node.js)

Update: If you use Chrome then you can use "Throttling" so simulate slow network for all your assets. This should be easier than proxy.


Toggle device modeChoose Network type.Refresh the page




https://developer.chrome.com/devtools/docs/device-mode 



Proxy:



For some time I wanted to use some proxy for development and testing of eg. slow internet connection, but it was hard to find something useful and free. I know there is Charles but buy it to use it at most one in a month is not for me.

I started thinking about Node.js, maybe I can write proxy for me? But fortunately I found one.

https://github.com/nodejitsu/node-http-proxy

With this module I can write really short code to create slow server:


var http = require('http'), httpProxy = require('http-proxy'); httpProxy.createServer(function (req, res, proxy) { var buffer = httpProxy.buffer(req); setTimeout(function () { proxy.proxyRequest(req, res, { host: 'localhost', port: 8080, …

How to use NPM packages from private repositories on bitbucket

Using Node.js you want to use NPM packages for reusable parts of the apps you create, that is a common sense. At the same time not everything makes sense as a public module unfortunately. Right now we are using Bitbucket at work for private repositories but there is a problem. How to use them as NPM modules? We do not want to publish them to the public npmjs.org but still want to have an ability to install them easily.

After googling and experimenting I have found simple solution.
First create new user in your organization with obscure password and give it read access to the repo. It is best to assign really obscure password but do not fool yourself. This is convenient but you must sacrifice security a bit. You should always consider how in your context that would be important.

Change example from below to:
user - username
PASS - password of the user
organization - owner of the project (you can find it in bitbucket url to your project)
project - your project name

"dependencies&…