owned this note
owned this note
Published
Linked with GitHub
# Library Carpentry 2019-11-18/2019-11-19 @ UB Frankfurt
Zeitplan, Installationshinweise etc.: https://evamarik.github.io/2019-11-frankfurt/
## Abendessen ab 19 Uhr:
Restaurant Eppstein (traditionelle Frankfurter Küche) Eppsteiner Str. 26, 60323 Frankfurt am Main: https://www.google.com/maps/place/Eppstein/@50.120612,8.667246,15z/data=!4m5!3m4!1s0x0:0x8d71de5cb0df90fe!8m2!3d50.120612!4d8.667246
## Organisatorisches
- [x] Link zu diesem pad: https://hackmd.io/tcLa_w3UT1mLXxieF5TVGg
- [x] kürzerer link zu diesem pad: https://bit.ly/2OgUhoT
- [x] Vorstellung der Instructor und Helfer
- [x] Anrede
- [x] Vorstellung der Teilnehmer*innen
- [x] Was sind "The Carpentries"
- [x] Motivation für die Carpentry workshops
- Automatisierung
- Reproduzierbarkeit / Transparenz
- größere Handlungsfähigkeit
- [x] Lebenslanges Lernen
- [x] Kennenlernspiel (Ice breaker) - Beteiligte nach Eigenschaften aufstellen
- [x] Klebezettel (Sticky notes)
- [x] Bitte bei Unklarheiten sofort fragen; Es gibt keine doofen Fragen.
- [x] Verhaltenskodex https://docs.carpentries.org/topic_folders/policies/code-of-conduct.html => Seid nett zu einander (Be excellent to each other!)
- [x] Fotos und Twitter, Jahresbericht OBIB?
- [x] Wifi
- [x] Pausen
- [x] Kaffee/Tee
- [x] Give-aways
- [x] Sanitäre Einrichtungen/Toiletten
- [x] Pad erklären
- [x] Übung - eigenen Namen zur Teilnehmerliste hinzufügen
- [ ] Kursmaterialien
## TeilnehmerInnen
- Andy Dirkmann
- Birgit Frenz
- Christina Lorenz
- Anette Knop
- Anna Hallauer
- Ariane Retzar
- Nora Chibani
- Anna Küffner
- Sylvia Hamann
- Jessica Iser
- Ursula Winter
- Maria Nüchter
- Lydia Glorius
- Annette Wolf
- Christiane Oehlke
- Jutta Lotz
- Tanja Kindt
- Tina Lorenz
- Julian Häckelmann
- Ekaterina (Katja) Gabrovska
- Sabine Müller
- Katharina Eck
- Sarah Eimer
## Offizielle Library Carpentry-Lektionen
- [Jargon Busting](https://librarycarpentry.org/lc-overview/03-jargon-busting/index.html)
- [Regular Expressions](https://librarycarpentry.org/lc-data-intro/)
- [Shell](https://librarycarpentry.org/lc-shell/)
- [Python](https://librarycarpentry.org/lc-python-intro/)
- [OpenRefine](https://librarycarpentry.org/lc-open-refine/)
### Jargon Busting
Welche Begriffe, Phrasen oder Ideen rund um Programmieren, Code oder Software-Entwicklung sind euch schon begegnet? Bei welchen habt ihr das Gefühl, dass ihr mehr darüber wissen solltet?
- Datenbereinigung
- "IT-Sprech"
- xml - brauchen wir das? was genau ist es? Wer wendet das an (Forschungsdatenmanagement)?
- mit Orcid-Daten umgehen (z.B. Implementierung in Kataloge und Forschungsinformationssysteme)
- Git?
- Shell – Benutzerschnittstelle unter Unix
- Metadatenmanagement & Harvesting inkl. Protokolle dafür
- Versionierung
- Lemmatizer and Stemmer
- Rechteverwaltung (welche Beschränkungen liegen auf Materialien und wie kann man sie automatisiert verwalten)
- Datenkonversion (von einem Format ins andere)
-
### Regular Expressions
RegEx Cheat Sheet: https://librarycarpentry.org/lc-data-intro/reference
[Textdatei zum Üben](https://raw.githubusercontent.com/LibraryCarpentry/lc-data-intro/gh-pages/data/swcCoC.md)
[Online RegEx Tester](https://regex101.com/)
Zum Üben: [Regex Crossword](https://regexcrossword.com/challenges/beginner/puzzles/1)
Noch mehr Übungen: [https://regexone.com/lesson/introduction_abcs]
### OpenAPC-Übung
* html: https://github.com/OpenAPC/openapc-de/blob/master/data/fuberlin/APC_FU_Berlin_2015.csv
* Raw: https://raw.githubusercontent.com/OpenAPC/openapc-de/master/data/fuberlin/APC_FU_Berlin_2015.csv
```
open_apc_url = "https://raw.githubusercontent.com/OpenAPC/openapc-de/master/data/fuberlin/APC_FU_Berlin_2015.csv"
```
### DOI-Metadaten-Übung
https://api.crossref.org/works/
```
# Einzelner DOI
10.1371/journal.pcbi.1004668
```
```
# Liste mit DOIs
dois = ["10.1371/journal.pcbi.1004668",
"10.21105/joss.01035",
"10.1038/35057062",
"10.21105/joss.01006"]
```
### Fertige Lösungen zu den Übungen
- [OpenAPC-Analyse mit Pandas](https://github.com/konrad/Bits_and_pieces_for_the_carpentries_workshops/blob/master/python/Intro_to_pandas_with_OpenAPC_data.ipynb)
- [Metadaten von CrossRef beziehen](https://github.com/foerstner-lab/Bits_and_pieces_for_the_carpentries_workshops/blob/master/python/Metadata_via_DOI_from_CrossRef.ipynb)
### Die UNIX-Shell
#### Cheat Sheet
**`pwd`** - print working directory
**`ls`** - list contents of a directory
- `ls -l` - list file information
- `ls -lh` - list human readable file information
- `ls -F` - list files and directories (directories will have a trailing `/`)
- `ls -a` - list all files, including hidden files
- `ls *.txt` - list all files that end with `.txt`
**`cd`** change directory
`cd pathname` - takes you to the directory specified by `pathname`
`cd ~` - takes you to your home directory
`cd ..` - takes you up one directory
**`history`** - displays the history list with line numbers, use `n` to limit the list
**`cat`** print to shell or send file or files to output
**`head`** output first 10 lines of a file or files
**`tail`** output last 10 lines of a file or files
**``less``** interactive file reader
**`mv`** rename or move a file or files. Syntax for renaming a file: `mv FILENAME NEWFILENAME`
**`cp`** make a backup copy of a file or files. Syntax: `cp FILENAME NEWFILENAME`
**`mkdir`** make a directory
**`>`** redirect output. Syntax with `cat`: `cat FILENAME1 FILENAME2 > NEWFILENAME`
**`>>`** redirect output by appending to the filename specified. Syntax with `cat`: `cat FILENAME1 FILENAME2 >> NEWFILENAME`
**`rm`** remove a file or files. NB: **USE WITH EXTREME CAUTION!!!**
**`rmdir -r`** will delete a directory, even if it is not empty. **USE WITH EXTREME CAUTION!!!**
**`rmdir -r-i`** will delete a directory, even if it is not empty, but will ask you to confirm each deletion.
**`touch`** will update timestamp information on files. And creates empty files.
**`wc`** word count
**``sort``** sort input
#### Aufgabenblock 1
1. Erforschen Sie ihr Dateisystem! (Tipp: Wer das Verzeichnis nochmal im Explorer sehen möchte ``explorer .``) Wie werden unterschiedliche Dateitypen dargestellt?
2. Sehen Sie sich die Einträge in der Hilfe der Werkzeuge an. (Bspw. ``ls --help``)
2.1 Finden Sie heraus, wie Sie Dateien nach Größe ordnen können!
2.2 Im Anschluss sortieren Sie Dateien nach ihrem letzten Modifikationsdatum.
#### Aufgabenblock 2
1. Legen Sie ein Backup von ``gulliver.txt`` an mit dem Namen ``gulliver-backup.txt``
Wie gehen sie vor?
2. ``mv`` kann auch Verzeichnisse umbenennen. Bennen Sie ``firstdir`` zu ``backup``
um. Wie gehen Sie vor?
3. Wenn das letzte Argument an ``mv`` ein Verzeichnis ist, wird die Datei dort
hin verschoben. Verschieben sie ``gulliver-backup.txt`` in das Verzeichnis ``backup``
Wie gehen sie vor?
#### Aufgabenblock 3
Füllt die Leerstellen so, dass das Skritp den Dateinamen, sowie die Erste und die Letzte Zeile aller Textdatein im Verzeichnis ausgibt.
Loop-Lückentext füllen.
```
___ file in *.txt
__
echo "_file"
head -n 1 _______
____ __ _ _______
____
```
#### Aufgabenblock 4
Zählt die Wörter der tsv Datein und sortiert sie. Nutzt pipes!
Extra: Sortiert in aufsteigender Reihenfolge.
### Wie man Python in Windows startet
In der Bash
ZBMED-Konfiguration:
```
$ /c/ProgramData/Anaconda3/python
```
ZBIW-Konfiguration:
$ winpty /c/Users/SWCarpentry/Anaconda3/python.exe
### Links
- [Python 3 Quick Tip: The easy way to deal with file paths on Windows, Mac and Linux](https://medium.com/@ageitgey/python-3-quick-tip-the-easy-way-to-deal-with-file-paths-on-windows-mac-and-linux-11a072b58d5f)
### Leseempfehlungen
- [Automate boring stuff with Python](https://automatetheboringstuff.com/)
### OpenRefine
#### Übungsdatei herunterladen
[doaj-article-sample.csv](https://github.com/LibraryCarpentry/lc-open-refine/raw/gh-pages/data/doaj-article-sample.csv)
(Rechtsklick => Ziel/Link speichern unter)
Programm openrefine.exe im OpenRefine Ordner starten (Win), Browserfenster öffnet sich automatisch mit der Adresse http://127.0.0.1:3333
**Create Project** => Get data from **This Computer** => Durchsuchen und *doaj-article-sample* auswählen => Next
#### Aufgabe Zellen aufsplitten / wieder zusammenfügen
* Welches Trennzeichen wird in den "Subjects"-Zellen verwendet?
* Wie lassen sich die "Subjects" in einzelne Zellen aufteilen?
* Jetzt wieder die "Subjects" zusammenbringen. Welche alternativen Trennzeichen sind sinnvoll?
#### Aufgabe Filter
* Wie viele Datensätze enthalten das Wort "laser" im Titel?
* Wie viele Datensätze enthalten das Wort "x-ray" im Titel?
Anmerkung: Hier können auch Regular Expressions genutzt werden.
#### Aufgabe Facetten
* Welche Lizenz kommt am häufigsten in dieser Datei vor?
* Wie viele Artikel haben keine Lizenz?
#### Aufgabe "Customized Facet"
* Findet alle Publikationen in dieser Datei, die keine DOI haben.
#### Clustering
Mehr Information zu den Clustering-Algorithmen:
https://github.com/OpenRefine/OpenRefine/wiki/Clustering-In-Depth
#### Transformationen
GREL: General Refine Expression Language
https://github.com/OpenRefine/OpenRefine/wiki/General-Refine-Expression-Language
#### Datumsumwandlungen
Zusätzliche Infos findet man hier: https://github.com/OpenRefine/OpenRefine/wiki/GREL-Date-Functions
#### Webservice mit Crossref API
Beispiel http://api.crossref.org/journals/1422-0067
Doku unter https://github.com/CrossRef/rest-api-doc
#### Reconciliation Service GND
Reconcilation-Service URL https://lobid.org/gnd/reconcile
Anleitung http://blog.lobid.org/2018/08/27/openrefine.html
## Gesamt-Feedback
### One-Up, One-Down
Was war gut?
- viel Übungsaufgaben
- gute / schnelle Hilfestellungen
- "enthusiatische" Vermittlung
- nette Instruktoren :-), gute Atmosphäre
- alle Fragen konnten gestellt werden, immer Helfer zur Verfügung
- gute Orga (Kaffee, Raum usw.)
- viele weiterführende Materialien, Ressourcen usw. vorgeführt
- gut, wenn Ziele der Übung immer klar aufgezeigt werden
Was war nicht gut? Was könnten wir verbessern?
- sehr viel Stoff, viel Aufmerksamkeit nötig
- zu wenig Zeit für die einzelnen Themen
- nicht immer Bezug zur eigenen Arbeit klar
- etwas zu lang am ersten Tag
- noch mehr Hilfe
- mehr Übersicht zu allen behandelten Themen bieten
- zu wenig Beinfreiheit
- ein konkretes praktisches Arbeitsbeispiel
Welche Themen oder Beispiele wären interessant?
- noch mehr Beispiele mit Bezug zur eigenen, praktischen Arbeit
- auch Kurse "Library Carpentry für Fortgeschrittene" anbieten?
Danke für Euer Feedback!
Alle behandelten Stoffe, Lektionen, Beispiele usw. sind verfügbar unter: https://librarycarpentry.org
https://librarycarpentry.org/lc-data-intro/
https://librarycarpentry.org/lc-shell/
https://librarycarpentry.org/lc-python-intro/
https://librarycarpentry.org/lc-open-refine/