Bericht vom Treffen der FSFE Community Bonn am Montag, 2020-10-12

Michael Kesper mkesper at schokokeks.org
Di Okt 13 07:15:39 UTC 2020


Hallo zusammen,

vielen Dank für das nette Treffen gestern Abend!
Dass wir nur zu viert waren ließ Raum für anregende Gespräche.

Was wir zuerst behandelt haben:

- Einlesen großer CSV (5 Millionen Zeilen) und Aufsummieren einer Zeile mit Python
  - nur mit Standardbibliothek
  - mit Pandas

Dabei wurde deutlich, dass die Pandas-Lösung nur die halbe Zeit benötigt, aber
standardmäßig sehr viel Speicher (doppelte Datenmenge) und man daher für große Dateien
die Verarbeitung in "chunks" aufteilen muss.

Außerdem haben wir uns über Fallstricke dynamischer Programmierung unterhalten bzw.
auch gleich ausprobiert (Merke: nenne nie ein Python-Modul so wie etwas das
du importieren willst...  )

Danach kamen wir dann noch kurz zum Thema Rust.
Ich habe vorgestellt, was ich daran interessant finde:

- hardwarenah
- keine Garbage Collection
-> performant, einbettbar
- Verhindern von Speicherfehlern (Überwiegender Anteil der CVEs) durch Borrow Checker
- Hilfreiche Compiler-Meldungen!
- keine Exceptions
- Sum Types (Option), Beispiel Division liefert:
  Some(Dividend / Divisor) bzw.
  None, wenn Divisor 0 ist
- Mögliche Fehler müssen verarbeitet werden (match ist vollständig)
- Immutable by Default
- Safe by default, "unsafe" wo wirklich nötig (besser prüfbar)

Im Gegensatz zu Python hat Rust nur eine sehr schlanke Standardbibliothek (aber immer noch
größer als C). Dies ist Absicht, da Teile der Standardbibliothek praktisch nie mehr geändert
werden können ("where modules die"). Es erfordert aber einen Zugriff auf externe Quellen
("crates"), mit dem bekannten Problem des Vertrauens auf Dritte.

Nützliche Links:

- https://www.rust-lang.org/learn - Getting started... 

    - https://doc.rust-lang.org/book/ - "The book", Einführung
    - https://github.com/rust-lang/rustlings/ - Übungen zu Rust
    - https://doc.rust-lang.org/stable/rust-by-example/ - durch Beispiele lernen

  ...und "Bücher" zu einzelnen Themen, z.B.:

    - https://rust-cli.github.io/book/index.html - CLI
    - https://doc.rust-lang.org/embedded-book - Embedded

- https://www.infoq.com/presentations/rust-tradeoffs/ - Was macht Rust aus?, Kernmerkmale (mit Transkript)

- https://github.com/sger/RustBooks - Liste von Büchern

- https://www.manning.com/bundles/getting-started-with-rust?query=rust
  Manning, Bundle "Getting started with Rust", beim Livevideo sind nach jedem Kapitel kleine Übungen, z.B.
  https://livevideo.manning.com/module/42_1_3/rust-in-motion/introduction-to-the-course-and-rust-syntax/variables?#

- https://rust-lang-nursery.github.io/rust-cookbook/ - Wie mache ich... ?

- https://github.com/rust-unofficial/awesome-rust - Was nehme ich für welches Thema?

- https://github.com/getzola/zola - Static site generator 

Demnächst mehr Praktisches dazu! 

Am Schluss haben wir uns noch ganz kurz TIC-80 angesehen, eine "Fantasy-Konsole".

Die Idee: In den 80ern gab es Homecomputer. Man schaltete sie an und konnte loslegen.
Neben einem mehr oder weniger gelungenen Basic gab es sogar noch eine Anleitung zum Einstieg
in die Bedienung und ins Programmieren:
10 PRINT "HALLO WELT!"
20 GOTO 10
https://archive.org/details/Personal_Computing_On_The_VIC-20_1982_Commodore (Seite 4ff.)
(war mein erster eigener Computer)
Mit wenigen Kilobyte Speicher und niedriger Auflösung war es möglich, als Einzelner
komplette Spiele zu entwerfen (meist musste man allerdings Assembler können...).

Moderne Ansätze versuchen die Vorteile dieser Beschränkungen mit modernen Sprachen (und ohne
Datasette) zu kombinieren.
Es gibt mittlerweile etliche davon:

https://github.com/paladin-t/fantasy

https://tic80.com/ fand ich spannend, weil es komplett frei verfügbar ist (nur Kompilieren
erforderlich für die Features der "PRO"-Version, ansonsten Finanzierungsansatz) und weil es
- im Gegensatz zu den 80ern - zahlreiche Editoren direkt integriert, für Karten, Grafik, Sound
und Code.

Ich freue mich schon aufs nächste Treffen!

Eine Idee war, ob wir zusammen Smartphones mit freieren Alternativen (Linageos, postmarketos)
versehen können.

Liebe Grüße
Michael

-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 659 bytes
Beschreibung: OpenPGP digital signature
URL         : <http://lists.fsfe.org/pipermail/fsfe-de/attachments/20201013/9b7edc42/attachment.sig>


Mehr Informationen über die Mailingliste FSFE-de