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
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