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

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
FSFE-de mailing list
FSFE-de@lists.fsfe.org
https://lists.fsfe.org/mailman/listinfo/fsfe-de

Diese Mailingliste wird durch den Verhaltenskodex der FSFE abgedeckt.
Alle Teilnehmer werden gebeten, sich gegenseitig vorbildlich zu
behandeln: https://fsfe.org/about/codeofconduct

Antwort per Email an