diff --git a/lectures/user-experience/slides.qmd b/lectures/user-experience/slides.qmd index 6cb7c735ebdeb56acc584bc27411a9b8ca2efa56..a6e734384b3711c65af5255c1ae542918fc4aa0d 100644 --- a/lectures/user-experience/slides.qmd +++ b/lectures/user-experience/slides.qmd @@ -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 font size ## 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. * [POSIX](https://en.wikipedia.org/wiki/POSIX) (and GNU) * [UNIX return codes](https://stackoverflow.com/questions/1101957/are-there-any-standard-exit-status-codes-in-linux) (e.g. 0 - no error, everything else - error) * [CF conventions](https://cfconventions.org/) * coding styles, e.g. PEP8 -## File formats -use standard formats, preferrably machine readable +## File formats +use standard formats, preferably machine readable * [YAML](https://yaml.org/), [JSON](https://www.json.org/), [netCDF](https://www.unidata.ucar.edu/software/netcdf/), [Zarr](https://zarr.readthedocs.io), ... -* YAML, JSON for machinereadable text file +* YAML, JSON for machine readable text file * netCDF, Zarr for binary data ::: {.notes} @@ -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) [UHH Library System](https://katalogplus.sub.uni-hamburg.de/vufind/Record/80685877X) * *Dead programs tell no lies* (Topic 24 in Ch 4 of *The pragmatic programmer* [UHH Library system](https://katalogplus.sub.uni-hamburg.de/vufind/Record/168729271X) | [MPS ebooks](https://ebooks.mpdl.mpg.de/ebooks/Record/EB001950880) | [German ebook via UHH](https://katalogplus.sub.uni-hamburg.de/vufind/Record/1755846843)) * *Defensive Programming and “Fail Fastâ€* (in Ch 13 of *Fluent Python*). * *with, match, and else Blocks* (Ch 18 of *Fluent Python*). -# What's your UX with this lecture series? {.special} \ No newline at end of file +# What's your UX with this lecture series? {.special}