All posts by jackie

[0x0C] Versionskontrolle mit git (2021-06-22)

Quasi pünktlich zum Sommerstart greifen wir das Thema Versionskontrolle auf, damit wir unsere Files und Projekte auch allesamt gut unter Dach und Fach haben, bevor es dann hoffentlich unbeschwert in das Sommerloch geht, das gern mal das ein oder andere File verschlingt (zumindest wurde das bereits auch schon vor zwei Sommern beim Backup-Talk thematisiert). Diesmal wird uns Lusy etwas zu git erzählen, und wie wir damit Änderungen an Files tracken und auch gemeinsam an ihnen arbeiten können:

In den letzten 10-15 Jahren hat sich git als die verbreitetste Versionskontrolle-Software durchgesetzt. Mittlerweile wird sie für die Mehrheit von Code-Projekten benutzt, an denen mehrere Menschen gleichzeitig arbeiten, kann allerdings auch darüber hinaus für Text im allgemeinen eingesetzt werden.

In diesem Workshop erzähle ich kurz wie diese Versionierung in Theorie funktioniert und wir nehmen uns zusammen ein praktisches Beispiel in einem geteilten Repository an und gehen dabei typische git-Workflows durch:

  • vom basic „Wie schaue ich nach neuen Änderungen und wie füge ich was zum Repo hinzu? Wie erstelle ich einen merge (oder pull)-Request“
  • über „Wie werde ich Zeug los, das kaputt ist und ich eigentlich gar nicht commiten wollte?“
  • bis zu „Wie kann ich meine Änderungen auf einen anderen Branch/Commit umziehen?“

Je nachdem wie viel Vorwissen ihr mitbringt und wie schnell wir da durchkommen, erzeugen und lösen wir auch 1-2 merge-Konflikte oder schauen uns an, wie git rebase funktioniert und wofür es gut ist.

Wir tauschen uns auch darüber aus, welche Tools wir benutzen, um mit git zu arbeiten.

Legt euch einen github-Account an, falls ihr noch keins habt — diesen werden wir für den praktischen Teil brauchen.

Im Anschluss wird dann geplaudert und (socially) genetworked, so wie die kommenden Meetups auf Schiene gebracht. Auch diesmal werden wir in einer virtuellen BigBlueButton Konferenz zusammenkommen. Alle weiteren Details findest du unten.

Continue reading

Next up: 22. Juni 2021

Save the Date! Am Di., 22. Juni um 19 Uhr, wird uns Lusy etwas zu git erzählen
und wie wir damit Versionskontrolle betreiben können (nicht nur
von Code, sondern auch von Text und allerlei), garniert mit ein
paar praktischen Beispielen zu denen wir gleich gemeinsam an
einem Repository arbeiten können.

Die eigentliche Ankündigung folgt, sobald der Text steht.

[0x0B] Die Kommandozeile und ihre Lieblingsbefehle (2021-05-26)

Ende Mai ist es wieder so weit, es gibt ein Feminist Linux Meetup, und zwar unser elftes!!!11!1ELF1! Da trifft es sich auch ganz vorzüglich, dass wir uns der ungeschönten Interaktion mit dem Betriebssystem zuwenden, und zwar der Kommandozeile. katrin wird uns dazu einige praktische und vielgenutzte Kommandozeilen-Befehle vorstellen und zeigen, dass auch die Shell / das Terminal ganz schöne (und vor allem praktische) Interaktionen ermöglicht:

Egal welche Linux Distribution du nutzt, oder wieviel Erfahrung du mitnimmst, der Terminal (oder die Konsole, Shell, Bash,..) ist ein vielgenutztes Werkzeug.

Wir fangen an mit den wichtigsten Befehlen mit denen wir uns auf der Kommandozeile bewegen können und probieren das gleich gemeinsam aus.

Dann schauen wir, was vielleicht nicht die wichtigsten, aber unsere meistgenutzten Befehle sind und welche Workflows sich dahinter verstecken.

Es sind keine Vorkenntnisse nötig. Vielleicht hast du schon mal den Terminal geöffnet oder davon gehört, oder es interessiert dich einfach wie andere damit arbeiten.

Im Anschluss wird dann geplaudert und (socially) genetworked, so wie die kommenden Meetups auf Schiene gebracht. Auch diesmal werden wir in einer virtuellen BigBlueButton Konferenz zusammenkommen. Alle weiteren Details findest du unten.

Continue reading

Next up: 27. April 2021

Am 27. April um 19:00 geht unser Feminist Linux Meetup in die 10. Runde. Sabine wird uns ihre Debian Umgebung mit den diversen Anwendungsprogrammen, die sie verwendet und die viele Leute im Alltag benötigen, zeigen. Als Zugabe stellt sie einige Programme vor, die sie für ihre Arbeit im Entwicklungsbereich verwendet.

Also, save the date! Eine offizielle Ankündigung mit allen weiteren Infos zu Einladungspolitik und Link folgt in ca. zwei Wochen.

[0x09] reboot sequence 2021

Mit unserem achten feminist linux meetup starteten wir am 10.3.2021 nach eine mehr als einjährigen Pause unsere reboot sequence. Zugleich sind wir pandemie-bedingt in den digitalen Raum ausgewichen, mit vielen positiven Nebeneffekten. So hatten wir zum Beispiel auch Besuch aus Berlin und Graz, sowie auch von Leuten die es bisher nie zum Meetup geschafft haben, für die aber so ein digitaler Besuch leichter in ihren Alltag integrierbar war.

Screenshot der Titelfolie zum Ankommen im BBB-Raum
Der Welcomescreen um mal im BBB Raum anzukommen

Nach einer ersten Ankommphase, wo Leute auch die Gelegenheit hatten den BigBlueButton Raum auszuchecken, den wir auf dem Server der Initiative senfcall.de einfach und spontan anlegen konnten, haben wir mit eine kurzen Begrüßung, dem Vorstellen des groben Ablaufs und einer Kennenlernrunde gestartet. Danach haben Maria und Jackie ein bisschen von der Geschichte dieses Meetups erzählt – also wie es dazu kam, dass wir es im März 2019 ins Leben gerufen haben, unter anderem inspiriert vom feminist python meetup als Schwesternprojekt, was wir bei den weiteren Meetups dann so gemacht haben, und wieso es nach unserem letzten Meetup im November 2019 dann nicht mehr weiterging.

Screenshot der Folie 4 zur Geschichte des Meetups, mit zeitlichen Eckdaten
Folie 4 als Hintergrund zur Geschichte des Meetups

Nachdem das Meetup noch 2019 wieder eingeschlafen war, primär weil wir nach und nach weniger Teilnehmer*innen wurden und sich dir Orga nicht von alleine gemacht hat, kam dann auch erstmal die Pandemie. Da hatten die meisten von uns erstmal genug andere Dinge um die Ohren und es gab länger keinen Impuls mal wieder ein Meetup zu starten. Nun, im neuen Jahr, wo wir uns schon richtig gut in die pandemische (Ab)Normalität eingelebt haben – und wo wir auch ein bisschen auf ein absehbares Ende und neue (Ab)Normalitäten hoffen – haben wir aber dann doch einen Impuls zur Wiederbelebung aufgegriffen und dachten, so rund um den 8. März als feministischem Kampftag, wär’s doch auch ganz gut hier im feministischen Linux-Lager mal wieder zusammenzukommen.

Gesagt, getan, so haben Maria und Jackie ein bisschen überlegt und erstmal eine Ankündigung im Februar ausgeschickt. Nachdem wir dann doch mehr als 10 Voranmeldungen hatten, haben wir uns auch für BigBlueButton anstatt für Jitsi entschieden. Retrospektiv würde das selbst für weniger Teilnehmer*innen Sinn machen, da BBB doch einige interaktive Features integriert, wo wir bei Jitsi auf externe Tools setzen hätten müssen. Zum Meetup aufgetaucht sind dann letztlich so um die 15 bis 20 Leute (da unser privacy mindset schon geprimed war haben wir auch ganz darauf vergessen zwischendurch mal die Teilnehmer*innenliste zu Dokuzwecken zu speichern und unser wetware storage (aka The Brain) ist in mancher Hinsicht dann doch fast so flüchtig wie klassischer RAM).

Folie 3 zur Kennenlernrunde mit der Frage: Was bringt dich zu diesem Meetup und was magst du sonst noch von dir erzählen?
Folie 3 mit der Frage an die Kennenlernrunde

Dabei hatten wir viele neue Gesichter dabei, als auch ein paar wenige die auch schon früher mal bei einem analogen Meetup dabei waren. Insgesamt hatten sich hier eine ganz neugierig bis motivierte Crowd an Linüxen versammelt, was auf jeden Fall eine Wiederbelebung unserer regelmäßigen Meetups verspricht. In unserer Präsentationsvorlage haben wir auch ein paar Fragen versammelt, die wir dann als Gruppe interaktiv beantwortet haben, um ein Gefühl für die Gruppe und ihre Anliegen, Interessen und Potentiale zu bekommen. Für interessierte gibt es hier das PDF (ohne unsere gesammelten Antworten):

Während sich in der Gruppe unterschiedliche Betriebssystemhintegründe in der Alltagsnutzung spiegelten waren die ersten Erfahrungen mit Linux für alle bereits vor mehr als 3 Jahren. Bei unseren älteren Linüxen (nicht notwendigerweise mit dem physischen Alter korreliert, dieses haben wir nämlich als nicht relevant genug erachtet um es auch zu erheben) lag der First Contact sogar bereits um die 20 Jahre in der Vergangenheit. Spannend wurde es aber vor allem bei den Zugängen und Themen. Der Bedarf an ganz konkreten und praktischen Tipps & Tricks scheint hier ähnlich groß (wenn nicht sogar ein bisschen größer) zu sein als an theoretischem Hintergrundwissen. Zugleich haltet sich das Interesse an „grafischen Alltagsanwendungen“ und „text(konsolen)basierter Systemverwaltung“ ziemlich die Waage.

An konkreten Themen fanden sich folgende (und diese überschneiden sich zum Teil mit jenen, die wir beim allerersten Meetup gesammelt haben):

  • die Basis des Systems begreifen
  • Shell scripts und warum sie so praktisch sind
  • allerlei coole Anwendungen die ich noch nicht kenne
  • Blender
  • (automatisierte) Backups
  • Security
  • was machen andere Leute so mit Linux
  • basic commands & bash stuff
  • Was ist eigentlich ein feministischer Zugang zu Linux? (mit vielen +1 versehen)
  • Nextcloud
  • Fileserver
  • Docker, vagrant und so Virtualisierungsgedöns
  • WLAN & Netzwerk

Zudem haben auch bereits 5 Personen in unserer Runde konkrete Themen genannt, zu denen sie sich vorstellen könnten auch mal was vorzustellen. Der Rahmen ist dabei sehr offen. Ob es einfach eine kurze 10- bis 15-minütige Demo ist, wo ich einfach mal herzeige wie ich mit einem bestimmten Tool umgehe, oder gar ein ausführlicher Vortrag zu einem bestimmten Thema, ein mehrstündiger Workshop oder auch mal nur das Organisieren einer kleinen hack/auprobier/bastel-session.

Die nächsten Meetups können nun also in Planung gehen. Wir freuen uns aber auch über alle weiteren Themen und Tools die irgendjemensch vorstellen möchte. Also wenn du da etwas im Kopf hast, schreib uns doch bitte gleich an femlimup@diebin.at oder frage mal auf der Mailingliste nach. Auch wenn du gern einfach mal ausprobieren möchtest wie das so ist einen Input, Talk oder Workshop zu gestalten, aber gern zur Unterstützung noch eine zweite Person dabei hättest: melde dich, es findet sich dann bestimmt eine Person die da gerne mitmacht.

feminist linux meetup reboot sequence 2021

Liebe Linux-interessierte Frauen*, Non-Binary*, Trans* und Inter* Personen!

Fast ein Jahr ist nun schon vergangen, seit die meisten von uns Pandemie-bedingt
nur mehr digitale Meetups (wenn überhaupt) besuchen, und noch ein paar Monate
länger, seit das letzte feminist linux meetup stattgefunden hat. Wir finden,
das muss nicht länger so sein.

Daher wollen wir eine reboot sequence für die feminist linux meetups starten.
Bevor wir aber den neuesten Kernel laden können um dann später irgendwann die
spannendsten Befehle auf der Command Line oder die besten grafischen
Applikationen unter Linux unter die Lupe nehmen können, muss sich erst mal das
gute alte Basic Input/Output System um einen Systemcheck kümmern und schauen
welche Ressourcen überhaupt verfügbar und welche inhaltlichen Adressbereiche
ansprechbar sind.

Übersetzt wollen wir mit diesem letzten kryptonerdigen Absatz wohl sagen:
wir wollen mit all euch bisherigen feministischen Linüxen wieder reconnecten,
neue Interessierte dazuholen, schauen welche Themen gerade am meisten Bedarf
haben und gemeinsam überlegen wie wir wieder mit regelmäßigen Meetups (wohl
vorerst mal auf jeden Fall digital) weitertun wollen.

Wann und wo?

  • am Mittwoch, 10. März 2021
  • von 19:00 bis 20:30
  • in einer Videokonferenz per Jitsi oder BigBlueButton
    (Link bei femlimup@diebin.at erhältlich)

Yeah, pawsome (think cat memes)! Wie kann ich mitmachen?

Je nach Anzahl der Teilnehmer*innen werden wir am Tag des Meetups entweder
einen Jitsi- oder einen Big Blue Button Link ausschicken. Wenn du dabei sein
magst schreib uns einfach kurz an femlimup@diebin.at – auch wenn du dir noch
nicht sicher bist ob du dann wirklich Zeit hast. Aber damit wir ungefähr
abschätzen können obs eher 5 (dann eher Jitsi) oder doch mehr als 10 (dann
eher Big Blue Button) werden, brauchen wir ein bisschen Feedback.

Jitsi als auch BigBlueButton sind Freie Software und können auch selbst
gehostet werden. Um teilzunehmen brauchst du nur den Link und einen Webbrowser
wie Firefox oder Chrome/Chromium. Für Jitsi gibt es auch eine mobile App.

Wenn du noch nie mit den Tools gearbeitet hast und lieber vorher wissen
möchtest, ob die bei dir auch gut funktionieren, kannst du sie unter
den folgenden Links ausprobieren:

  • Jitsi: https://meet.jit.si/
  • BigBlueButton: https://senfcall.de/

Hinweis zur Verwendung von Audio/Video:
Wir freuen uns eure Gesichter zu sehen. Generell könnt ihr aber freilich
selbst entscheiden ob ihr mit Video und/oder Audio dabei sein wollt. Das
kann vor allem auch bei nicht so guten Internetverbindungen helfen trotzdem
noch etwas mitzubekommen.
Wir möchten euch nur bitten, dass ihr, wenn ihr euch ganz gegen Video
und Audio entscheidet, zumindest mal im Chat Hallo sagt, damit niemensch
das Gefühl haben muss hier womöglich von unbeteiligten Dritten beobachtet
zu werden.

Weitere Infos zum Meetup generell sowie Kontaktmöglichkeiten findet ihr
auch auf unserem Meetup Blog: https://feminist-linux.diebin.at

Bei Fragen vorab könnt ihr uns auch sehr gern immer an femlimup@diebin.at
schreiben, oder euch gleich bei der Mailingliste anmelden und mit anderen
Linüxen in Austausch gehen (Link siehe Blog).

Wir freuen uns schon auf das Meetup,
linuxliebe Grüße,
die leute von den pre-pandemic feminist linux meetups 2019

(*) Zu unserer Einladungspolitik:

Das meetup is offen für Frauen*, nicht-binäre*, inter* und trans* Personen, die
sich dafür interessieren mit anderen über Linux zu sprechen. Nicht-binär soll in
diesem Fall heißen, dass du dich weder als Frau, noch als Mann identifizierst.
Damit ist nicht gemeint, dass du nur in einer Fuzzylogik programmierst und keine
binären Ziffern verwendest. Es wär zwar grandiosest queer das so zu tun, aber
glaub uns, auch unsere Computer arbeiten die meiste Zeit nur mit binärem Code ?

Mit dem * markieren wir bestimmte Wörter um auch darauf aufmerskam zu machen,
dass all diese Kategorien sozial konstruiert sind. Das heißt, es gibt sie nicht
„in der Natur“ sondern wir Menschen interpretieren die Natur auf diese und jene
Art. Und daher ist es auch legitim, wenn Leute solche Kategorien für sich selbst
wählen wie es ihnen selbst am besten passt. Wenn dich das alles verunsichert
oder du mehr dazu erfahren willst, schau dir unsere detaillierte
Einladungspolitik an: https://feminist-linux.diebin.at/einladungspolitik/

[0x07] Inkscape and more

Unser siebentes Meetup war ein gemütliches Zusammensitzen und Diskutieren verschiedener Themen. Von den angekündigten Anwendungen haben wir uns am Ende aber nur Inkscape angeschaut, dafür gleich in Form eins kleinen Miniworkshops. Für die nächsten Meetups gab es vor allem an Audacity großes Interesse für einen eigenen Workshop.

Use Glimpse!

Außerdem wurden wir auf einen relativ neuen Fork des GNU Image Manipulation Program aufmerksam: der Glimpse Image Editor wurde sowohl aufgrund des Namens GIMP – der im angloamerikanischen Raum vor allem diskriminierend gegen Menschen mit dis_abilities in Verwendung ist – als auch aufgrund des toxischen Umfelds in der Entwickler*innen Community geforked. Mehr Hintergrundinfos finden sich auf der About Seite des Glimpse Projekts.

Weitere Meetups

Für ein mögliches näxtes Meetup haben wir bereits den Freitag, 24. Jänner 2020 fixiert. Allerdings ist sonst noch nicht viel geplant, und wir haben darüber diskutiert, dass wir gerade nicht genug Zeit und Energie haben um größere, inklusive und breit beworbene Meetups zu organisieren, die auch neugierige neue Menschen anlocken. Daher werden wir vorerst nur noch über unsere Mailingliste kommunizieren und ankündigen. Es sind aber nach wie vor alle Interessierten eingeladen sich dort anzumelden und mitzumachen.

Wer zwar neugierig aber unsicher ist ob und wie si*er mitmachen mag und kann, ihr könnt auch an unsere Kontaktadresse femlimup@diebin.at schreiben, die zur Zeit von Maria und Jackie gelesen und beantwortet wird.

[0x06] Mit der Shell kleine Alltagsprobleme lösen

Zur Intro hat uns l0rb eine kurze Intro in die Shell Syntax gegeben und dabei bereits einige Problemlösungen vorgestellt. Das ganze kann auch im Nachhinein gleich selbst interaktiv ausprobiert werden, in der eigenen Shell oder direkt im Webbrowser: https://repl.it/@l0rb/bash101

Danach hat uns Maria gezeigt, wie alle FLAC-Audiofiles (z.B. Musikstücke) im aktuellen Verzeichnis mit einer command line in MP3-Audiofiles konvertiert werden können. Und zwar lässt sich das so machen (vorausgesetzt lame und flac sind schon installiert, z.B. mit sudo apt install lame flac):

for f in *.flac; do flac -cd "$f" | lame -b 320 - "${f%.*}".mp3; done

Alternativ kann auch SoX verwendet werden, das für Sound eXchange steht und nach Eigenangaben in der manual page „the Swiss Army knife of audio manipulation“ ist (vorausgesetzt es ist z.B. mit sudo apt install sox schon installiert worden, wie auch die lame und flac libraries oben schon):

for f in *.flac; do sox ${f} ${f%.flac}.mp3; done

Abgesehen vom kürzeren Befehl, der ohne Pipe auskommt, ist der Vorteil von SoX, dass mit einem einzigen Programm gleich ganz verschiedene Formate konvertiert und bearbeitet werden können. Ein Nachteil hier ist jedoch, dass die jeweiligen Libraries schon installiert sein müssen, was je nach Distribution und Format bereits out-of-the-box installiert ist, einfach über ein Paket mit offensichtlicher Benamung installiert werden kann, oder sich eben erst nach mühsamer Webrecherche durch Installation bestimmter Library-Pakete löst.

Für besonders Wagemutige (oder einfach nur Geduldige und ausdauernde Doku-Leser*innen oder Websearcher*innen) empfiehlt sich das besonders mächtige ffmpeg, mit dem nicht nur Audio- sondern auch Videobearbeitung direkt von der command line gemacht werden kann. Auch hier müssen die relevanten Codecs (via entsprechender Library Pakete) installiert sein. Dann lassen sich mit folgender command line alle .flac files in einem Verzeichnis und allen Unterverzeichnis finden und per ffmpeg in .mp3 files konvertieren (die ursprünglichen .flac files bleiben dabei unverändert):

find -name "*.flac" -exec ffmpeg -i {} -acodec libmp3lame -ab 128k {}.mp3 \;

ffmpeg kann, sofern nicht bereits schon im System vorhanden, z.B. bei Debian basierten Distributionen mit sudo apt install ffmpeg installiert werden. Zum Codieren, je nachdem in welches Format, braucht ffmpeg auch die entsprechenden libraries.

Zum Abschluss des Abends hat uns jackie noch gezeigt wie wir unser Notebook aus der command line heraus schlafen legen können. Dazu gibt es je nach Distribution und verwendetem init system unterschiedliche Variante. Einen guten Überblick bietet der Quick Tip: How to Suspend from the Command Line in Andrew Powell’s The Linux Rain.

Demnach ist das in systemd-basierten Distributionen, also vor allem Ubuntu, Debian, Fedora und Arch, ziemlich einfach mit einem:

systemctl suspend

Für nicht systemd-basierte Distributionen (z.B. Gentoo, Devuan oder Void) oder auch für wesentlich ältere Versionen der oben genannten, ist das auch nicht viel komplizierter, benötigt aber root-Rechte:

sudo pm-suspend

Und schwupps, schon schlummert das Notebook im sleep mode, bzw. zu deutsch Bereitschaftsbetrieb, in der Fachsprache auch suspend to RAM. Nun wartet es darauf wieder aufgeweckt zu werden. Genauso einfach können mit einem systemctl poweroff und systemctl hibernate ein Herunterfahren des Systems oder der Tiefschlafmodus aktiviert werden, der eigentlich Ruhezustand, oder im englischen eben hibernation genannt wird, der zwar gar keinen Stromverbrauch mehr hat, dafür auch länger wieder zum hochfahren dauert. In der Fachsprache heißt letzterer suspend to disk. Das weist auch auf den fehlenden Stromverbrauch und die längere Ladezeit hin. Während bei suspend to RAM der aktuelle Systemzustand im RAM gespeichert wird, der als flüchtiger Speicher eben doch ein bisschen Strom braucht um die Information auf Dauer zu behalten, wird beim suspend to disk der komplette Systemzustand auf die Festplatte geschrieben. Letztere braucht als nicht-flüchtiger Speicher keinen Strom um die Daten dauerhaft zu speichern, ist aber langsamer als der RAM, wenn für das Hochfahren des Systems der gesamte Systemzustand wieder geladen werden muss.

Nun gut, jetzt können wir also unser Notebook von der command line aus (tief-)schlafen schicken und haben einen Klick gespart. Aber was bringt das wirklich?

Zuerst mal wollen wir vielleicht zum Schlafengehen noch Musik vom Notebook hören, wollen aber nicht, dass dieses dann die ganze Nacht noch durch läuft. Wenn wir also nun unseren Musikplayer laufen haben und das Notebook nach 30 Minuten von selbst schlafen gehen soll, brauchen wir nur folgendes:

sleep 30m && systemctl suspend

Genauso können wir ein Backup ausführen und das Notebook danach schlafen legen. Wex sich nach dem Juni-Meetup [0x03] zu Backups auch ein Backupscript, sagen wir unter /usr/local/bin/backup.sh eingerichtet hat, kann dies dann analog zum obigen Beispiel so tun:

backup.sh && systemctl suspend

Und wer zu später Stunde keine Lust mehr viel zu tippen hat, kann sich in der eigenen .bashrc, oder in den .bash_aliases, je nachdem wie eins das konfiguriert hat, noch folgende Zeile einrichten:

alias b='backup.sh && systemctl suspend'

Einfacher geht backuppen vor dem Schlafengehen nicht mehr:

b

Na dann, liebe Linüxe, guten Tag, guten Abend und gute Nacht!

[0x07] Verbreitete Linux-Anwendungsprogramme und -Distributionen

Für unser siebtes Meetup gastieren wir zum ersten mal in der Villa Vida und wollen uns die diversen freien Anwendungsprogramme anschauen, die unter Linux zur Verfügung stehen. Von klassischen Office-Programmen aus der LibreOffice Suite, über das Bildbearbeitungsprogramm GIMP, das Vektographikprogramm Inkscape oder der Desktop-Publishing-Anwendung Scribus. Ebenso wagen wir ein paar Blicke auf die Audioschnittsoftware Audacity und eventuell gibt es auch noch Zeit und Expertise zu Videoschnittprogammen.

Continue reading