@@ -8,7 +8,7 @@ author: "Theresa Mieslinger and Florian Ziemen"
## Definition
> **User experience (UX)** is how a user interacts with and experiences a product, system or service. It includes a person's perceptions of **utility**, **ease of use**, and **efficiency**. -Wikipedia
## Where do you encouter UX design in your everyday life? {.special}
## Where do you encounter UX design in your everyday life? {.special}
::: {.notes}
* app handling / interaction with touch screens
...
...
@@ -51,7 +51,7 @@ a user actually wants to have a product
## Colors {.leftalign}
* use common color codes (e.g. <span style="color:green;">green = OK</span>, <span style="color:red;">red = Problem</span>)
* be inclusive and dont't fully rely on colors
* be inclusive and don't fully rely on colors
](static/gui_example.png){width="50%"}
...
...
@@ -60,13 +60,13 @@ see also [Apple Design Guidelines](https://developer.apple.com/design/human-inte
:::
::: {.notes}
* maybe you all got it right away that the blue font markes a link to the doku ;-)
* maybe you all got it right away that the blue font marks a link to the doku ;-)
:::
## Typography {.leftalign}
> Typography is the art and technique of arranging type to make written language legible, readable and appealing when displayed. [- Wikipedia](https://en.wikipedia.org/wiki/Typography)
* Use readable fonts and fontsize
* Use readable fonts and fontsize
## Layout {auto-animate=true}
```{python}
...
...
@@ -289,7 +289,7 @@ t_hamburg = ds.tas.sel(...)
::: {.notes}
* a dataset is a way to communicate information
* "normalised" dataset without redundant info, e.g. exactly one info on time and space
* balancing clarity and efficiency: sometimes duplicate information ("denormalised") can have a performance advantange, e.g. hierarchy in high-res model output
* balancing clarity and efficiency: sometimes duplicate information ("denormalised") can have a performance advantage, e.g. hierarchy in high-res model output
* bad example: WALES flight altitude is time-dependent, but was a constant reference height. Bad variable name and misleading info
* -> the structure and type of the data / array holds important information
...
...
@@ -312,7 +312,7 @@ t_hamburg = ds.tas.sel(...)
## Why should we care?
::: {.incremental}
* lower risk of wrong usage and wrong results
* it saves time and ressources and reduces information overload
* it saves time and resources and reduces information overload
* a positive user experience can lead to collaborations and more fun :)
:::
...
...
@@ -320,20 +320,20 @@ t_hamburg = ds.tas.sel(...)
* example: when running ICON scientists usually don't look at the source code, but merely the config file. You need to trust that parameters do the right thing.
:::
# Specific guidlines in Earth System Informatics
# Specific guidelines in Earth System Informatics
## Standards
Standards are commonly known, they help guiding intuition, and also help implementors.
Standards are commonly known, they help guiding intuition, and also help implementers.
@@ -349,8 +349,7 @@ use standard formats, preferrably machine readable
## What is configuration? {.special}
::: {.notes}
* if you install microsoft word, your text (config) is not yet there. Default fonts are included, but if you have a special corporate design, you expect that to be separate
*
* if you install Microsoft word, your text (config) is not yet there. Default fonts are included, but if you have a special corporate design, you expect that to be separate
:::
## Hierarchy of configurations
...
...
@@ -459,10 +458,10 @@ def do_things():
* Use the [with](https://docs.python.org/3/reference/compound_stmts.html#with) statement in python.
## Write decent error messages
* Tell what happend why and where
* Tell what happened why and where
* Exit with non-zero exit code
* Make sure things can't continue (if that's relevant)
## Hands-on {.handson}
Take safe_copy.py and add useful error messages and return codes.
...
...
@@ -472,7 +471,7 @@ Take safe_copy.py and add useful error messages and return codes.
* stdout is for ouput somebody else might want to process
`grep bash /etc/bashrc | wc `
* stderr is for *error* messages
* stderr is for *error* messages
`grep bash file_that_does_not_exist |wc`
## Datasets
...
...
@@ -497,16 +496,16 @@ Take safe_copy.py and add useful error messages and return codes.
* "Don't lie" :)
:::{.notes}
* don't return a result if an error occured
* don't return a result if an error occurred
* don't change user input within the code without communicating the change
:::
# Further reading
* Edward Tufte: *Beautiful Evidence* (and other books)
* Edward Tufte: *Beautiful Evidence* (and other books)