Awesome JSON Tools

JSON ist ein leichtgewichtiges, textbasiertes Format zum Datenaustausch. Als ECMA-404 wird es mittlerweile von einer Vielzahl an Bibliotheken in allen möglichen Programmiersprachen unterstützt und hat sich zum de-facto Standard für REST APIs etabliert. Die Syntax von JSON erinnert an JavaScript und ist auch ein Subset davon. Oftmals findet man JSON auch neben YAML in Konfigurationsdateien.

Im Workshop möchten wir einige (Commandline-)Tools präsentieren, die für das Arbeiten mit JSON entwickelt wurden. Angefangen bei fx und jsoncrack zum Visualisieren von komplexen JSON-Dokumenten bis hin zum Schweizer Taschenmesser jq (und seinem Clone, jaq) ist alles dabei.

jq erlaubt das effektive Filtern und Transformieren von JSON-Dokumenten, ähnlich wie awk, grep und sed das für Text tun. Die etwas ungewöhnliche Syntax mag anfangs abschreckend wirken, kann aber schnell erlernt werden und ist danach durchaus intuitiv.

Was: Awesome JSON Tools (Workshop)
Wann: Montag, 22. Mai 2023, ab 19:00 (Live-Stream unter https://fhLUG.at/meet)
Wo: XORTEX LBS3, FH3
Wer: Daniel Knittl-Frank

Wer den Vortrag versäumt hat, kann den Asciicast online nachsehen.

Go-Workshop

Wer öfter mit Cloud- und Containerumgebungen zu tun hat, ist sicherlich schon einmal über die Programmiersprache Go gestolpert. Dort wird sie verwendet, um vor allem Microservices und Datenbanken zu implementieren. Doch warum wird Go dort so extensiv benutzt, wo kann man Go sonst noch einsetzen und was sind die Vorteile gegenüber anderen Programmiersprachen? Diese Fragen werden in diesem Workshop beantwortet.

Dieser Workshop ist aufgeteilt in zwei Teile: zuerst wird Go erläutert und in der Theorie erklärt, darauffolgend wird eine kurze Coding-Session abgehalten, um Go auch in der Praxis kennenzulernen.

Der erste Teil behandelt die Grundlagen von Go, wie z.B. dessen Syntax, aber auch gewisse Eigenheiten der Sprache, wie z.B. das Duck-Typing und die in Go 1.18 eingeführte Generizität. Im zweiten, praktischen Teil des Workshops werden zwei Programme implementiert, davon eines angelehnt an den vorhergehenden Rust Workshop.

  • Eine CLI-Anwendung, die JSON/YAML-Dateien verarbeitet.
  • Eine Fortune-as-a-Service Anwendung, welche uns kluge Sprüche über das Web zurückliefert.

Für den praktischen Teil wird der Go Compiler benötigt; endweder lokal am PC installieren oder über einen Docker Container (docker pull golang:1.20.3) ausführen.

Was: Go-Workshop
Wann: Montag, 17. April 2023, ab 19:00
Wo: XORTEX LBS3, FH3
Wer: Konstantin Papesh

Links zur Präsentation und zum Source-Code gibt es nach dem Workshop auf https://fhlug.at.

Rust Workshop

Rust wird gerne als System-Programmiersprache (d.h. für Kernel und Betriebssysteme) bezeichnet, weil die Garantien des Rust-Compilers hier besonders wichtig sind (Stichwort: Memory Safety). Aber nicht nur im Bereich der Kernel und Betriebssysteme kann Rust punkten: durch ein solides Sprachdesign und guten Tooling-Support konnte Rust auch in viele andere Bereiche vordringen (wie zum Beispiel CLI-Anwendungen, Web, Spieleentwicklung oder selbst im Browser über WebAssembly).

Der Workshop selbst gliedert sich in zwei Teile: in einen theoretischen Teil und einen zweiten praktischen Teil.

Im ersten Teil werden wir uns mit der grundlegenden Syntax der Sprache auseinandersetzen und die wichtigsten semantischen Konzepte (Ownwership) besprechen. Hier werden wir uns natürlich auch mit Kontrollstrukturen und eigenen Datentypen beschäftigen. Im zweiten Teil des Workshops werden wir zwei Anwendungen schrittweise erstellen. Diese sind kurz zusammengefasst:

  • Eine CLI-Anwendung, die JSON/YAML-Dateien verarbeitet (clapserde)
  • Einen einfachen Editor in Form einer Desktop-Anwendung mit einem Web-Frontend (TauriMonaco)

Den Funktionsumfang und die Detailverliebtheit der beiden Anwendungen werden wir dann konkret am Termin selbst ausarbeiten. Hier wäre dann eine gute Gelegenheit, seine eigenen Ideen/Fragen zu einzubringen.

Was: Rust-Workshop
Wann: Montag, 20. März 2023, ab 19:00
Wo: XORTEX LBS3, FH3 (Live-Stream unter https://fhLUG.at/meet)
Wer: Martin Hochstrasser

Wer beim zweiten praktischen Teil mitmachen möchte, sollte bitte rustup auf seinem System installieren. Für die Desktop-Anwendung wird ein aktuelles Node.JS benötigt (≥ 18.14)

Die fertigen Programme des Workshops finden sich in Martins GitHub-Account: https://github.com/highstreeto/rust-workshop

Starry, Starry Byte

Das Jahresende rückt näher und im November haben wir noch Software in Docker Container verpackt. In der besinnlichen Zeit wollen wir die Geschenke diverse Dateiformate auspacken.

An diesem Themenabend wollen wir uns gemeinsam anschauen, welche vielfältigen Methoden eingesetzt werden, um Daten in allen möglichen Quellformaten platzsparend zu speichern oder zu übertragen. Dazu werden den Hexeditor und andere hilfreiche Werkzeuge einsetzen, um in die Untiefen der Dateiformate vorzudringen und diese zu sezieren. Achtung: Nerd-Sniping-Gefahr!

Der Abend ist als “Nerd-Slam” (so wie ein Science-Slam oder Poetry-Slam) gedacht und alle sind eingeladen, ihre Lieblingsdateiformate oder Datenencodings zu präsentieren. Beim ersten Brainstorming haben wir bereits folgende Formate ins Auge gefasst:

  • Zahlensysteme: Hexadezimal, Dezimal, Oktal, Binär
  • Big-Endian und Little-Endian
  • IEEE-Standard für Fließkommazahlen
  • ASCII, Unicode und UTF-8
  • Bitmaps
  • TCP
  • HTTP
  • Webassembly
  • .NET und Java Byte-Code
  • X.509
  • ASN.1
  • Docker Layers
  • FAT32
  • tar-Archive
  • PKZIP (WinZip)
  • Linker Scripts
  • ELF file format
  • Intel HEX
  • Git

Die Liste ist lang und wir werden dann spontan abstimmen, wie weit wir uns welche Formate im Detail ansehen werden.

Was: Starry, Starry Byte: dissecting encodings and file formats
Wann: Montag, 19. Dezember 2022, ab 19:00
Wo: XORTEX LBS3, FH3 (Live-Stream auf https://fhLUG.at/meet)
Wer: fhLUG and friends

Stay tuned and visit https://fhLUG.at for more infos.

Build it. Ship it. docker run -it

Container sind aus modernen Produktivsystem kaum mehr wegzudenken und werden zur Virtualisierung und Isolierung von Anwendungen eingesetzt. Durch leichtgewichtige Container wird der Ressourcen-Overhead verglichen mit einer vollständigen VM-Lösung verringert.

Docker ist ein Werkzeug und gehört zu den bekanntesten im Containerumfeld.
Mit Docker lassen sich Images erzeugen und Container starten. Weiters bietet Docker eine Reihe weiterer Funktionalitäten, die beim Entwicklen von Software unterstützen.

Dieser Workshop richtet sich vor allem an Anfänger:innen, die bis jetzt nur wenig oder gar nicht mit Docker gearbeitet haben. Anhand von praktischen Beispielen werden die Grundlagen von Docker gezeigt und direkt angewendet. Anschließend werden Dockerfiles für eigene Applikationen geschrieben und mit Docker Compose Container-Verbunde hochgefahren. Außerdem wird noch gezeigt, wie man Docker sinnvoll für eigene Anwendungen und im Studium einsetzen kann.

Was: Container-Workshop
Wann: Montag, 28. November 2022, ab 19:00
Wo: XORTEX LBS3, FH3 (eingeschränkter Live-Stream auf https://fhLUG.at/meet)
Wer: Stefan Schöberl

Wer während des Workshops mitmachen möchte, soll bitte vorher Docker installieren.
Anleitungen zur Installation finden sich für Docker hier: https://docs.docker.com/install/.