Während meiner Doktorarbeit über Infochemikalien in Biofilmen habe ich hautnah erfahren, wie nützlich Automatisierung, digitale Dokumentenverwaltung, statistische Programmierung und Wissenschaftskommunikation sein kann. Ich helfe, all dies zugänglicher und nützlicher zu machen.

Frachtsegler unterstützen

Werbung für eine gute Sache

Liste von Frachtsegel-Shops

  • Timbercoast/Avontuur: Das erste derartige StartUp, von dem ich gehört habe. Sie verkaufen Kaffee, Schokolade und Rum und haben ihren Heimathafen in Bremen.
  • TOWT betreibt mehrere moderne Frachtsegler, aus modernen Baustoffe wie Kohlefaser. Sie verkaufen ebenfalls Kaffee, Schoki, Rum, aber auch Olivenöl und Bier. Zudem bemühen sie sich um die Ausbildungsmodernisierung für Seeleute.
  • Fairtransport betreibt ebenso wie Timbercoast ein restauriertes Holzschiff. Neben ähnlichen Produkten gibt es hier auch Kleidung und Gebrauchsgegenstände.
  • SailCargo/AstilleroVerde Shipyard scheinen v.A. ein CrowdFunding-Projekt zu sein, das Frachtschiffe aus Holz neu baut. Der Vollständigkeit halber liste ich es hier mal auf.

Segelurlaub gefällig?

Die meisten der o.g. Firmen bieten auch bezahlte Mitfahrten an. Bei “Kost und Logie” sind die Preise zwar noch nicht angekommen, aber wer schon immer mal ohne CO2-Emissions eine Kreuzfahrt machen wollte (sowie dabei an Bord mithelfen und ins Segelhandwerk reinschnuppern), hat hier einige Möglichkeiten.

[Read More]

A Summary of Command Line Interface Guidelines

CLIs are stable and versatile, thus enabling creativity.

Your software will become a part in a larger system. Your only choice is over whether it will be a well-behaved part.
CLIg.dev

Philosophy
  1. Design for humans, because usage by other programs is less common nowadays.
  2. Keep following UNIX conventions: stdin/out, exit codes, plain lines for text output, JSON when structure is needed.
  3. Consistency with other tools, because efficiency comes from transferrable experience.
  4. Just enough output to avoid impatience.
  5. Help users discover help texts, examples, etc.
  6. CLI usage often resembles a conversation. The tool should therefore suggest corrections with errors, clarify progress in multi-step processes, etc.
  7. Robustness by graceful failure, idempotency, explaining problems, rather than barfing stacktraces, and generally: simplicity.
  8. Being a kind, emphatic helper.
  9. Abandon standards when harm is demonstrated.
Guidelines
  1. Use an argument parser. Return numeric exit codes, with 0 for success. Send output to stdout to support |ing. Send log and error messages to stderr to not pipe those.
  2. Help texts for: no option, -h or --help. Help links back to project repo or website. Put example into help texts. Structure help texts into a logical order and with formatting. Suggest corrections in error messages. Don’t wait silently for sdtin (like cat does).
  3. Document what a tool is for and not for separately from help texts, in terminal and on the web.
  4. Output: Prioritise its human- over machine-readability, if necessary with --plain/--json flags. Report success only briefly and offer -quiet option. Report state changes to the user and offer a status subcommand that suggests next steps. Use ASCII art, color, emojis, etc. where appropriate. Show log levels or debug info only in a -verbose mode. Use less -FIRX or other pager for outputting more than 1 page of text.
  5. Errors should be caught internally and rewritten for humans. Increase signal-to-noise ratio with grouping, and putting most relevant guidance to the end. Support bug reporting by writing stacktraces to logfiles, and link to a form/template.
  6. Args & flags: Prefer (named) flags to (positional) arguments. Use 1-letter flags sparingly and stick to existing terms.
  7. Subcommands: help reduce complexity, when they enable discovery of related tools and use consistent nounds, verbs, flags, etc.
  8. Robustly handle user input: early, with understandable errors. Respond within 100ms and before longer operations. Network operations should have timeouts. Parallelism is useful, but makes output 10x harder.
  9. Interface changes should be additive, rather than breaking existing behaviour. Follow SemVer conventions to announce unavoidable breaking changes. Don’t allow abbreviations or catch-all in the first place.
  10. Respect signals like Ctrl+c and inform user about ongoing cleanup operations.
  11. Configuration options should be informed by specificity, stability and complexity. Varying for each invocation: flags. Stable within a project but not for each user: flags & env vars. Stable for all users within a project: config file, according to XDG. Never append to system-wide config file, unless you also date & comment your addition. Use this order also for precedence: flags to sys-wide.

CoVID? Nein Danke!

Persönliche Schutzmaßnahmen für das 21. Jahrhundert

Um den immer wieder mal privat verteilten Hinweisen ein zentrales Zuhause zu geben, hier die CoVID-Vermeidungstrategien meines Haushalts. Keine davon ist perfekt, aber jede davon ist besser als keine (Schweizer-Käse-Modell).

  1. FFP2/3-Masken in der Nähe von Menschen aus anderen Haushalten tragen, sowie in allen Innenräumen, in denen nicht mess- oder sichtbar die Luft gereinigt oder mit Frischluft verdünnt wird (siehe 3. & 4.).
    • Auch Made in Germany & Made in Europe gibt es.
    • Wer Bock auf Masken als buntes Fashion-Accessoire hat: MaskLab.global
    • Sammelbestellung im Nachbarschafts-, Familien- & Freundeskreis organisieren! Das wird alles noch ein paar Jährchen dauern, und Masken helfen ja auch gegen Luftverschmutzung, echte Erkältungen, usw. 🤷‍♀️
  2. Vor und nach einem Risikokontakt CPC-haltiges Mundwasser nutzen. “Cetyl-Pyridinium-Chlorid” ist nicht in allen Mundwässern im Drogeriemarkt drin, aber z.B. in dm Dontodent antibakteriell.
    • “Risikokontakt” hier heißt wie in 1.: “[Innenräume mit] Menschen aus anderen Haushalten”.
    • Für längere CPC-Versorgung (Bus, Bahn, Veranstaltungen, etc.) gibt es Lutschtabletten.
  3. Einen HEPA+UV-basierten Luftreiniger zuhause nutzen, insb. wenn Besuch da ist. Beim Essen mit Gästen wird der Luftauslass so positioniert, dass die gereinigte Luft möglichst quer über den Tisch pustet.
    • Baulich ideal wären Kombigeräte aus normaler Deckenleuchte und nach oben gerichteten UV-Strahlern (UVGI; idealerweise plus Ventilator).
  4. PlusLife-Testgerät nutzen, statt Antigen-Schnelltests. Es ist beinahe so sensitiv wie PCR und Proben von 2, 3 oder 4 Personen können gemischt werden. Letztendlich ist egal, wer im Haushalt positiv ist, denn bei dem Ergebnis sollten sich alle erstmal schützen, und getrennte Folgetests in den nächsten Tagen klären die Situation dann schon noch auf.
  5. CO2-Sensor (z.B. Aranet) im Blick haben und durchlüften, Lüftungsempfehlungen gegen Schimmel laufen im Herbst/Winter auf dasselbe hinaus: mehrmals täglich, sobald es sich dem gelben Bereich (800ppm) nähert. Bei >15ºC Außentemperatur: einfach gegenüberliegende Fenster gekippt lassen.
    • Baulich ideal wäre Frischluftzufuhr über einen Wärmetauscher.
    • Ab 800ppm CO2 kann von stundenlangem Rumwabern der Viren ausgegangen werden. So, wie Zigarettenrauch ja auch lange im Raum hängt. Daher: FFP2, auch wo Jemandes vorherige Ausatemluft noch vorhanden sein könnte.

Informationsquellen zu aktuellen CoVID-Situation

Ja, die muten zeitweise wie eine Echokammer an, aber vom Echo der Vorsicht wird mensch eben nicht krank. Vom Echo der Verharmlosung in vielen (auch öffentlich-rechtlichen) Medien dagegen schon, siehe Tagesschau.de/thema/krankenstand.

[Read More]
CoVID 

A blogging workflow based on transcribing audio notes with Whisper

The problem

When you want to preserve your privacy, using cloud-based speech-to-text services is probably not a good idea. But how to still benefit from the user experience of quickly recording a (blog post) idea on your (Android) smartphone, and having it transcribed into a (markdown) file?

The solution

  1. Android’s Sound Recording app (in high quality mode to create .wav files).
  2. Syncthing, to get the recordings from the smartphone directly into the ~/blog/content/posts/ folder.
  3. Georgi Gerganov’s whisper.cpp repo.
  4. A bit of Bash-scripting, see below.

Without any previous experience in AI/LLM usage, but having read Google’s “We Have No Moat” memo, I was positively surprised about how easy implementing my workflow idea was.

[Read More]

Ein unverpacktes, minimalistisches und billiges ZeroWaste-Ökosystem für deinen Haushalt

Das Problem

Für regelmäßiges Einkaufen in Unverpackt-Läden benötigen wir viele Vorratsgefäße. Oft sind diese auch aus Plastik, was ein wenig der ZeroWaste-Idee entgegensteht, auch wenn haltbare Plastikgefäße natürlich langfristig wenig problematisch sind. Kurzfristig können allerdings die Anschaffungskosten beachtenswert sein, insb. wenn wir ein zusammenpassendes System eines bewährten Herstellers nutzen.

Wenn wir dagegen alle möglichen Gefäße nutzen, die sich im Laufe der Jahre im Haushalt angesammelt haben, muss ich gestehen, dass mich die resultierende Unordnung nervt: Je mehr verschiedenen Plastik- und Glasgefäße, desto schwieriger werden Transport, Befüllung, Säuberung, und Aufbewahrung. Kurzum: Regale, die Tetris-Spielfeldern gleichen, bringen Unruhe in die Küche.

[Read More]

Erosion prevention with benefits

One upon a time, there was a plot of land at the Catalan Mediterranean coast. It was situated on a North slope approx. 100m above sea level. Its half-funnel topology and serpentine dirt road lead to rainwater run-off. Drought and sheep grazing had additionally caused noticeable soil erosion risks.

For reference, the wide part of that trench easily held a large adult’s foot.

Three hints

An artificial soil and sand catchment was already being used in a water canal:

[Read More]