{
  "_kommentar": "Namen, Fassungen und Kanäle sind gegen F-Droid, PyPI, npm und die GitHub-Release-API geprüft. Der Prüfung dient test.mjs, das bei Abweichung fehlschlägt.",
  "stuecke": [
    {
      "name": "Secret Link",
      "sprache": "web",
      "lizenz": "MIT",
      "kanal": "web",
      "fassung": "in Betrieb",
      "ton": "live",
      "flaeche": "s2x1",
      "was": "Ein Kennwort, in einen Link gelegt, der das Geheimnis selber trägt, so daß nichts davon jemals auf einem Server niedergeschrieben wird.",
      "wohin": "https://secretlink.kaleve.dev/"
    },
    {
      "name": "sucher",
      "sprache": "rust",
      "lizenz": "MIT",
      "kanal": "homebrew",
      "fassung": "v0.9.4",
      "ton": "tool",
      "flaeche": "s2x1",
      "was": "Ein Betrachter für das Terminal, und zwar für jene Dateien, die dort zu öffnen sonst umständlich ist.",
      "wohin": "https://github.com/john-athan/sucher",
      "befehl": "brew install john-athan/tap/sucher"
    },
    {
      "name": "taurine",
      "sprache": "swift",
      "lizenz": "MIT",
      "kanal": "homebrew",
      "fassung": "v1.7.0",
      "ton": "tool",
      "flaeche": "s2x1",
      "was": "Es hält den Mac wach und sagt einem auch, weshalb, was die übrigen niemals taten.",
      "wohin": "https://github.com/john-athan/taurine",
      "befehl": "brew install john-athan/tap/taurine"
    },
    {
      "name": "Minesweeper",
      "sprache": "kotlin",
      "lizenz": "GPL-3.0",
      "kanal": "f-droid",
      "fassung": "v1.9",
      "ton": "tool",
      "flaeche": "s2x1",
      "was": "Für das Telephon. Es bittet um keinerlei Berechtigungen und kommt dem Netz nicht nahe.",
      "wohin": "https://f-droid.org/packages/io.github.johnathan.minesweeper"
    },
    {
      "name": "Nonius",
      "sprache": "kotlin",
      "lizenz": "GPL-3.0",
      "kanal": "f-droid",
      "fassung": "v1.4",
      "ton": "tool",
      "flaeche": "s2x1",
      "was": "Acht Meßwerkzeuge, die im Telephon längst stecken und die es keinem zeigt. Nach dem Mikrophon fragt es erst, wenn man es hören heißt.",
      "wohin": "https://f-droid.org/packages/dev.kaleve.nonius"
    },
    {
      "name": "Uncropped",
      "sprache": "javascript",
      "lizenz": "MIT",
      "kanal": "chrome",
      "fassung": "v1.1.2",
      "ton": "tool",
      "flaeche": "",
      "was": "Es photographiert die ganze Seite, auch jenen Teil, den der Browser die ganze Seite nennt.",
      "wohin": "https://chromewebstore.google.com/detail/uncropped/jbmldbdipagojpopeadahbnbeidiiiej"
    },
    {
      "name": "Muscle Memory",
      "sprache": "javascript",
      "lizenz": "MIT",
      "kanal": "chrome",
      "fassung": "v1.0.2",
      "ton": "tool",
      "flaeche": "",
      "was": "Es gibt dem Browser die Griffe zurück, die Figma ihm stillschweigend genommen hatte.",
      "wohin": "https://chromewebstore.google.com/detail/muscle-memory/kdgadmmgencajhaikjhmoalccfabklgp"
    },
    {
      "name": "Carrier Pigeon",
      "sprache": "javascript",
      "lizenz": "MIT",
      "kanal": "chrome",
      "fassung": "v1.1.2",
      "ton": "tool",
      "flaeche": "",
      "was": "Es ersetzt die Nachstellungszeichen an einem Link durch andere, die es sich selber ausdenkt.",
      "wohin": "https://chromewebstore.google.com/detail/carrier-pigeon/dblffmdgkefdgboeodpfdcnkcnimojcl"
    },
    {
      "name": "Unescaped",
      "sprache": "javascript",
      "lizenz": "MIT",
      "kanal": "github",
      "fassung": "v0.1.0",
      "ton": "tool",
      "flaeche": "",
      "was": "Es zeigt eine Seite, von der man bisher nur den Quelltext zu sehen bekam, so, wie ihr Verfasser sie gemeint hatte, gleichviel ob er markiert, im Drive abgelegt oder als bloßer Text ausgeliefert war.",
      "wohin": "https://github.com/john-athan/unescaped"
    },
    {
      "name": "cqrs-bus",
      "sprache": "python",
      "lizenz": "MIT",
      "kanal": "pypi",
      "fassung": "0.3.1",
      "ton": "lib",
      "flaeche": "s2x1",
      "was": "Ein Bus für Befehle und Fragen, der seine Verwalter selber findet und aus ihren Typen erschließt, was sie brauchen.",
      "wohin": "https://pypi.org/project/cqrs-bus/",
      "befehl": "pip install cqrs-bus"
    },
    {
      "name": "sse-coordinator",
      "sprache": "typescript",
      "lizenz": "MIT",
      "kanal": "npm",
      "fassung": "0.3.2",
      "ton": "lib",
      "flaeche": "s2x1",
      "was": "Eine einzige Verbindung, unter allen offenen Reitern verteilt, wobei der Anführer unter ihnen gewählt wird.",
      "wohin": "https://www.npmjs.com/package/sse-coordinator",
      "befehl": "npm i sse-coordinator"
    },
    {
      "name": "Podcast Automation",
      "sprache": "python",
      "lizenz": "MIT",
      "kanal": "github",
      "fassung": "v3.0.5",
      "ton": "tool",
      "flaeche": "s4x1",
      "was": "Eine Nachrichtensendung, die sich selber schreibt und sich hernach selber vorliest, auf der Maschine, die vor einem steht, und ohne daß irgend etwas fortgeschickt würde.",
      "wohin": "https://github.com/john-athan/Podcast-Automation",
      "befehl": "git clone https://github.com/john-athan/Podcast-Automation"
    }
  ]
}
