@BRicker @Boston_PM my favourite C portability screw up is #bzip2 which insists that `short` be 16 bits.

Getting that to work on a platform where short, int and long were all 64 bits, and where you only had C89, no fancy C99 data types like `int16_t`, was "fun".

Archivierung und Kompression mit tar: Grundlagen, Optionen und Beispiele

tar (Tape Archiver) ist das Standard-Archivierungswerkzeug unter Linux, das mehrere Dateien und Ordner zu einem einzigen Archiv bündelt. Im Gegensatz zu gzip, bzip2 und xz komprimiert tar nicht selbst, sondern arbeitet mit Kompressionstools zusammen (z, j, J). Es erhält vollständige Metadaten inklusive Berechtigungen und SELinux-Kontexte. Wichtige Optionen von tar -c (create) : Erstellt ein neues Archiv. -f (file name). : Gibt den Dateinamen des Archivs an. # Einen Ordner […]

https://andreas-moor.de/archivierung-und-kompression-mit-tar-grundlagen-optionen-und-beispiele/

Kompression mit zip: Grundlagen, Optionen und Beispiele

zip ist das universellste Archivierungs- und Kompressionswerkzeug, das unter Linux, Windows und macOS funktioniert. Es kombiniert Archivierung und Kompression in einem Schritt und kann Ordner direkt verarbeiten – im Gegensatz zu gzip, bzip2 und xz. Ideal für plattformübergreifenden Dateiaustausch. Wichtige Optionen von zip -r : Rekursiv: Komprimiert Ordner und alle Unterordner (einzigartig bei zip). zip -r backup.zip ordner/ -d oder unzip : Entpackt eine .zip-Datei. unzip ist ein […]

https://andreas-moor.de/kompression-mit-zip-grundlagen-optionen-und-beispiele/

Kompression mit bzip2 Linux: Grundlagen, Optionen und Beispiele

bzip2 ist ein leistungsstarkes Kompressionswerkzeug unter Linux, das den Burrows-Wheeler-Algorithmus nutzt. Es erreicht eine deutlich bessere Kompressionsrate als gzip, benötigt dafür aber mehr Rechenzeit. Ideal für Speicherplatz-kritische Szenarien wie große Textdateien oder Logs. Wichtige Optionen von bzip2 -k : Originaldatei nach Kompression behalten. Standardmäßig wird die Eingabedatei gelöscht. bzip2 -k datei.txt -d oder bunzip2 (Alias) : Dekomprimiert eine .bz2-Datei. bunzip2 […]

https://andreas-moor.de/kompression-mit-bzip2-linux-grundlagen-optionen-und-beispiele/

Kompression mit gzip: Grundlagen, Optionen und Beispiele

gzip ist eines der meistgenutzten Kompressionswerkzeuge unter Linux, das einzelne Dateien mit dem schnellen DEFLATE-Algorithmus komprimiert. Es ist besonders nützlich für alltägliche Kompressionsaufgaben, bei denen Geschwindigkeit wichtiger ist als maximale Speicherersparnis. Wichtige Optionen von gzip -k : Originaldatei nach Kompression behalten. Standardmäßig entfernt gzip die Eingabedatei nach Kompression. gzip -k datei.txt -d oder gunzip (Alias): Dekomprimiert eine .gz-Datei. […]

https://andreas-moor.de/kompression-mit-gzip-grundlagen-optionen-und-beispiele/

Vergleich von Archivierung und Kompression unter Linux: tar/star, gzip, bzip2, xz und zip

Archivierungs- und Kompressionstechniken sind wichtige Werkzeuge, um Dateien und Verzeichnisse unter Linux effizient zu speichern. Dabei unterscheidet man zwischen der Archivierung, bei der mehrere Dateien zu einer Einheit gebündelt werden, und der Kompression, bei der die Datenmenge verkleinert wird. Archivierung und Kompression: tar als Pflicht für Ordner tar ist das Standardwerkzeug für die Archivierung von Ordnern unter Linux. Es bündelt Dateien und Verzeichnisse in einem Archiv, […]

https://andreas-moor.de/vergleich-von-archivierung-und-kompression-unter-linux-tar-star-gzip-bzip2-xz-und-zip/

WARNING

TIL that bunzip2 in Linux / Debian / MX Linux deletes, I repeat, DELETES the original archive when you run it in vanilla form

`bunzip2 dfly-x86_64-6.4.2_REL.iso.bz2`

resulted in the iso being unpacked with deletion of the original WITHOUT WARNING

Since I'm on expensive LTE+ 4G internet that is significant.

I have not used bunzip2 in years, but should have remembered this hostile default. It was not that way IIRC
Do I need to read the manpages of commands I have not used in years in Linux now? Why was the default changed

Luckily I have copies of the bzip2 iso on multiple partitions of HDD and SSD

#bzip2 #bunzip2 #sh #bash #warning #TIL #Linux #OpenSource #POSIX

Ok #Rust #bzip2 implementation done … in principle 😄 The compression test ran on a #LoremIpsum text file. A more realistic sample would have probably resulted in a much worse ratio. The BWT encoding step is ultra slow because I chose a naive approach instead of using a runtime-optimized but more complex algorithm. I'm also producing only one #Huffman tree for the whole file, which will also significantly degrade compression performance in longer and less homogeneous inputs.

Ok this is fun!

My #bzip2 implementation in #Rust is coming along nicely and I've been loosely following a #TestDrivenDevelopment approach which makes working with LLMs a breeze. If an AI assisted rework turns tests red you can immediately start debugging, tuning and optimizing, which is nice and focused.

I'm done with everything including the Move-To-Front Transform encoding and am already getting text file sizes down by 25 to 30%.

Next up: Huff huff huff!

How to get back into a programming language?

"Do small hobby projects", they said.

"It will be fun!", they said.

So here I am reading university lecture notes about how to build suffix arrays in O(n) so I can optimize a Burrows-Wheeler-Transform for the #bzip2 implementation I inexcusably started writing so I could get back into #Rust.