顯示具有 design of everyday things 標籤的文章。 顯示所有文章
顯示具有 design of everyday things 標籤的文章。 顯示所有文章

DesignOfEverydayThings - What I learned as a developer


I only notes part of "Fundamental Principles of Interaction"
It's just a small unit of this book, but already help me A LOT.
Whenever I'm confused of designing, I re-read this book to get more ideas.

Because I'm a developer, so the most important thing it taught me is:
Why we need write clean code, how a clean code look like? How to know a design is good or bad.

  • Affordance and Signifier: That's why we need good naming.
    • Ex. visible signifier
StringUtils.trimToEmpty
StringUtils.substringBetween
    • Ex. Invisible
String dateString = PrivateDateUtils.toDateString( date ); // What is the format?

@SuperAnnotation // Things become invisible when there are many decision made at runtime, developer won't know.
public class NormalClass {}
  • Mapping and Conceptual Models: Developers always handling mapping and conceptual models
PersonDao.persist( person ); // Clear model, dev expect it will persist
Person.save(); // May be a little confuse
personService.find( id ); // When a find method persist data due to other reason such as queue full or statistics, it become confusing
  • Feedback: We need many feedback, no matter in code or in performance tunning or monitoring
personService.find( id ); // It's better to response quickly
personService.find( id, timeout, TimeUnit ); // It's better to provide timeout when things may become long

public void find(String id) {
    try {
        personDao.someErrorMayHappen(); 
    } catch (Exception ex) {
        // Eveything is find, treat as no data
    }
}
    • When there are too many error, we even unable to know the feedback is valid or not


DesignOfEverydayThings - Conceptual Models


  • A conceptual model is an explanation, usually highly simplified, of how something works.
  • Ex. There are folders in screen, but it doesn't means there is really a folder in disk
  • Ex. User browse data in PC and think it's a data in PC, but data is in cloud actually.
  • Ex. User browse a page and think there is a real page, but it's runtime generated
  • A product has many kinds of conceptual models
    • Ex. User's conceptual model
      ãåè»ãçåçæå°çµæ
    • Ex. Advanced driver's conceptual model
    • Ex. Engineer's conceptual model
    • Ex. Designer's conceptual model
  • Conceptual models are often inferred from the device itself. Some models are passed on from person to person. Some come from manuals.
  • Some conceptual models come from experience, so wrong conceptual models let devices hard to use
  • How things work come from user perceived structure
    • Signifier
    • Affordance
    • Mappings
  • Ex. Scissors
    • The number of actions are limited
    • Holes for putting something into
    • Only fit for finger(s)
    • Only accept possible fingers
    • Only one thing can do after putting fingers
    • Actions are visible
  • Anti-Ex. Digital Watch
    • Many buttons, unable to know conceptual models
    • Not visible, need read manual
    • Sometimes click longer time, sometimes need press more than one button at the same time
  • Conceptual models provide a way to predicate what things will going to behave and what will not happen
  • A bad conceptual model let user can only try to remember what will happen in every actions
  • Anti-Ex. Freezer control. It shows deepfreeze and fresh food are separated when it's not.
    It may provided wrong conceptual model when freezer may affect refrigerator

DesignOfEverydayThings - Feedback


  • Anti-ex. or repeatedly push the pedestrian button at a street crossing? => Because user doesn't know whether system got his request or not.
  • Feedback—communicating the results of an action—is a well-known concept from the science of control and information theory.
  • You can't hit a ball without seeing the target
  • You can't pick up a glass with hand without the feedback.
  • Feedback must be immediate: even a delay of a tenth of a second can be disconcerting. If the delay is too long, people often give up, going off to do other activities. 
  • It wastes resource to do one thing that user doesn't wait for it anymore.
  • Too much feedback become annoying. 
  • Ex. When performance tuning, we need major number to alarm. It will be useless if we alarm everything
  • Backseat driver: too much feedback to driver. May distract people or just turn it off
  • Use one simple signal producer to reduce cost, let people not easy to remember (Beep code)
  • Beep code definition may be different in different machines. We'll be confused when those machines beep together.
  • Feedback has to be planned and prioritized. 
  • Feedback is essential, but it has to be done correctly. Appropriately.


DesignOfEverydayThings - Mapping


  • Mapping is the relationship between the elements of two sets of things
  • Ex. Switch mapping Lights in office 
  • Mapping the layout of controls and displays
  • Ex. Steeling a car, rotate the steering wheel clockwise to cause the car to turn right.
  • Ex. Tank is different,its designed to control wheel speed because it uses track
  • It doesn't matter whether these conceptual models are accurate: what matters is that they provide a clear way of remembering and understanding the mappings.
  • Natural mapping leads to immediate understanding.
  • Ex. to move an object up, move the control up.
  • Ex. Make light control mapping same as lights in room
  • Ex. Automobile Seat Adjustment control
  • Note the "natural" is specific to a particular culture. 



DesignOfEverydayThings - Signifier

Need separate to 7 posts, because image become huge base64 in Blogger, unable to upload.... Orz
  1. https://www.isaacnote.com/2019/06/designofeverydaythings-signifier-1.html
  2. https://www.isaacnote.com/2019/06/designofeverydaythings-signifier-2.html
  3. https://www.isaacnote.com/2019/06/designofeverydaythings-signifier-3.html
  4. https://www.isaacnote.com/2019/06/designofeverydaythings-signifier-4.html
  5. https://www.isaacnote.com/2019/06/designofeverydaythings-signifier-5.html
  6. https://www.isaacnote.com/2019/06/designofeverydaythings-signifier-6.html
  7. https://www.isaacnote.com/2019/06/designofeverydaythings-signifier-7.html

DesignOfEverydayThings - Signifier - 7


  • When facing a device, we seeking for clue about how to use. Designer need provide it.
    Otherwise, we need use our own creativity and imagination.
  • Misleading signifier: a row of vertical pipes across a service road in a public park
    • Pipes blocks cars
    • Park vehicle go through the pipes
  • Affordances: possible interactions between people and environment.
  • Perceived affordance often acts as signifier, but they can be ambiguous
  • Signifiers signal things, indicate what actions are possible and how to be done. Signifier must be visible.

DesignOfEverydayThings - Signifier - 6


Ex. The sink that would not drain

Lessons Learned While Benchmarking vLLM with GPU

Recently, I benchmarked vLLM on a GPU to better understand how much throughput can realistically be expected in an LLM serving setup. One ...