Jack of all trades and a master of some

Figuring out the WhatApp database format

I’m currently fiddling with the WhatsApp ChatStorage.sqlite database that I extracted from a recent local iOS backup. I want to parse the contents into properly marked-up HTML files, and store them outside of the iOS backup. To become more independent from the iOS backup and WhatsApp itself

I already got pretty far (massively improving my SQL skills in the process), but of course I want to add as much context to the messages as possible. WhatsApp saves the metadata for media items (namely links, replies, image thumbnails) for messages in the ZWAMEDIAITEM.ZMETADATA column of the database. On iOS this column contains blobs of binary property lists, that can be inspected on MacOS using the plutil tool. Still there is some figuring-out for me to do, and I’d like your help for that.

Read more …

ZFS all the things! Manually building a zpool on Linux from scratch

Eversince I started building my own homeserver and backup infrastructure I’ve been a huge fan of the Zettabyte Filesystem, ZFS. It has been in development for quite a while, is considered incredibly stable, and offers all the features you’ll want in a filesystem for long-term file storage: built-in data compression, copy-on-write, snapshots, checksumming, block-level incremental send and receive functionality, etc.

Until recently ZFS was limited to Solaris and FreeBSD almost exclusively, however with the advent of the OpenZFS project and its intention of bundling efforts to provide stable ZFS support to a variety of operating systems there are more options available. At work I am tied to using Linux, and I recently (after a few months of distro hopping) arrived back at a vanilla Ubuntu, which meant: ZFS support almost out-of-the-box, and I thought I’d give it a show in favor or my previous thumblings with btrfs. Since I forget quite quickly about how I go about such things, I thought about writing it down for future reference—and yours!

Read more …

Backt mehr Brot!

Vor genau zwei Monaten erschien in der Podcastreihe “CRE – Technik, Kultur, GesellschaftFolge 213 zum Thema Brot. Brot? Ist doch irgendwie langweilig. Kauf ich im Supermarkt. Mag ich gar nicht so gern. Kann man keine drei Stunden Sendung von machen.

Kann man doch. Mit Lutz Geißler vom Plötzblog spricht Tim zwei Stunden und 55 Minuten lang über Brot und hat auch direkt den Nachmachwunsch in mir geweckt. Der erste Versuch für ein Anstellgut verlief vor ein paar Wochen leider im Sande. Hab es einfach vergessen. Aber nachdem Freund Julian (den der CRE auch animiert hat) mich mit bereits präpariertem Anstellgut ausstattete, hab ichs dann hinbekommen – und heute das erste Mal gebacken. Ein Konsumbrot nach Bäcker Süpke ist es geworden, was man bei uns wohl Graubrot nennen würde.

Read more …

Properly granting access to datasets in Jails and Plugins on FreeNAS

Recently I wanted a FreeNAS plugin (which are running inside FreeBSD jails) to access data on my storage pool. Reading is generally less of a problem with the default settings but when it comes to writing, problems may occur. By default, my media datasets are running with 775 permissions, therefore:

  • The owner can read-write-execute
  • The group can read-write-execute
  • Others can read-execute.

The owner is janwillhaus, since I do all the management of the data and don’t want to run around sudo-ing all the time. The group on the other hand media, which may contain any other user that requires write-permissions to the files. All other users can at least read the files and that is fine.

Read more …