<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Blog on Jesper Zedlitz</title>
    <link>https://zedlitz.de/posts/</link>
    <description>Recent content in Blog on Jesper Zedlitz</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>de-de</language>
    <copyright>© 2022 - Dr. Jesper Zedlitz</copyright>
    <lastBuildDate>Sat, 05 Apr 2025 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://zedlitz.de/posts/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>gemeinsames Arbeiten mit git</title>
      <link>https://zedlitz.de/posts/2025/04/gemeinsames-arbeiten-mit-git/</link>
      <pubDate>Sat, 05 Apr 2025 00:00:00 +0000</pubDate>
      <guid>https://zedlitz.de/posts/2025/04/gemeinsames-arbeiten-mit-git/</guid>
      <description>Wie arbeitet man mit git bei einem Open-Source-Projekt mit? Welche Branches braucht es, wann wird ein Merge durchgeführt, und wie entstehen dabei ordentliche Pull-Requests? Vor allem als Merkzettel für mich selbst habe ich mein Vorgehen dazu aufgeschrieben.&#xA;Das Projekt, bei dem mitgearbeitet wird, soll https://github.com/example/coole-software sein. Statt github.com kann es auch ein beliebiger anderer Dienst sein.&#xA;Als ersten Schritt erstelle ich mir davon einen Fork. Der heißt dann https://github.com/jze/coole-software. Den Code checke ich lokale aus und füge das Original als weitere Quelle hinzu:</description>
    </item>
    <item>
      <title>minimale ODS-Datei</title>
      <link>https://zedlitz.de/posts/2025/01/minimale-ods-datei/</link>
      <pubDate>Fri, 10 Jan 2025 00:00:00 +0000</pubDate>
      <guid>https://zedlitz.de/posts/2025/01/minimale-ods-datei/</guid>
      <description>Im Zusammenhang mit meinem ods-reader, einer Java-Bibliothek zum effizienten Lesen von OpenDocument-Tabellen, fragte jemand nach dem Schreiben von ODS-Dateien. Das habe ich mir mal angesehen. Es ist gar nicht so schwer, eine minimale Tabelle zu erstellen.&#xA;Inhalt einer ODS-Tabel Eine ODS-Datei ist ein ZIP-Archiv mit bestimmten Dateien drin. Im Minimalfall sind es diese drei Dateien:&#xA;. ├── content.xml ├── META-INF │ └── manifest.xml └── mimetype Der Clou ist, dass zwei Dateien einen festen Inhalt haben:</description>
    </item>
    <item>
      <title>genealogische ASCII-Diagramme</title>
      <link>https://zedlitz.de/posts/2023/01/genealogische-ascii-diagramme/</link>
      <pubDate>Mon, 16 Jan 2023 00:00:00 +0000</pubDate>
      <guid>https://zedlitz.de/posts/2023/01/genealogische-ascii-diagramme/</guid>
      <description>Vielleicht erinnert sich noch die eine oder der andere noch daran, wie man früher Grafiken am Computer erstellt hat - zusammengesetzt aus einzelnen Zeichen. Das war auch unter dem Begriff ASCII-Art bekannt. Diese „gute alte Kunst“ kann man auch heute noch verwenden. Damit lassen sich nämlich Diagramme erstellen, die ziemlich sicher auch nach langer Zeit noch betrachtet werden können.&#xA;Zudem gibt es Programme, die daraus auch optisch ansprechendere Grafiken erstellen können.</description>
    </item>
    <item>
      <title>Kirchenbuchverkartung Seitendorf</title>
      <link>https://zedlitz.de/posts/2021/04/kirchenbuchverkartung-seitendorf/</link>
      <pubDate>Mon, 05 Apr 2021 00:00:00 +0000</pubDate>
      <guid>https://zedlitz.de/posts/2021/04/kirchenbuchverkartung-seitendorf/</guid>
      <description>Mit der Verkartung des Kirchenbuches Seitendorf, Kreis Schönau, Schlesien und der Erstellung eines Ortsfamilienbuches geht es langsam aber stetig voran. In einer Tabelle haben mein Vater und ich schon vor Jahren bereits alle 2.603 Taufen, 737 Trauungen und 2.207 Beerdigungen aus den Zweitschriften der Tauf-, Trau- und Beerdigungsbücher der evangelischen Kirche Seitendorf, Kreis Schönau, Schlesien von 1794 bis 1870 erfasst. Diese einzelnen Einträge führe ich nun nach und nach im Gramps zu Familien zusammen.</description>
    </item>
    <item>
      <title>Gefälschter PGP-Schlüssel</title>
      <link>https://zedlitz.de/posts/2020/11/gef%C3%A4lschter-pgp-schl%C3%BCssel/</link>
      <pubDate>Thu, 12 Nov 2020 00:00:00 +0000</pubDate>
      <guid>https://zedlitz.de/posts/2020/11/gef%C3%A4lschter-pgp-schl%C3%BCssel/</guid>
      <description>Gestern bekam ich eine verschlüsslete E-Mail, die mir mein E-Mail-Programm nicht entschlüsseln wollte:&#xA;Zunächst dachte ich an eine defekte Enigmail-Konfiguration durch ein Update. Andere verschlüsselte E-Mail ließen sich aber problemlos im Klartext anzeigen. Also habe ich mir die Fehlermeldung von Engimail genauer angesehen:&#xA;Da ich mir bestimmte Zahlenmuster gut merken kann, habe ich gleich geahnt, dass das nicht mein PGP-Schlüssel ist. Ein Aufruf von gpg -K zum Auflisten der privaten Schlüssel bestätigte die Vermutung:</description>
    </item>
    <item>
      <title>Neue Homepage mit Jekyll</title>
      <link>https://zedlitz.de/posts/2020/10/neue-homepage-mit-jekyll/</link>
      <pubDate>Sun, 25 Oct 2020 00:00:00 +0000</pubDate>
      <guid>https://zedlitz.de/posts/2020/10/neue-homepage-mit-jekyll/</guid>
      <description>Schon lange hatte ich vor, meine Homepage komplett zu überarbeiten. In den letzten Tagen bin ich dazu gekommen. Als Ziele hatte ich mir vorgenommen:&#xA;Wechsel auf einen static website generator, um PHP-Sicherheitslücken ein für alle Mal hinter mir zu lassen bessere Darstellung auf Tablets und Smartphones Einbau eines Blogs Webseite mit https Als static website generator habe ich mich für Jekyll entschieden. Damit könnte ich meine Seiten auch als GitHub Page betreiben.</description>
    </item>
    <item>
      <title>OCRopus check groundtruth</title>
      <link>https://zedlitz.de/posts/2017/06/ocropus-check-groundtruth/</link>
      <pubDate>Fri, 09 Jun 2017 00:00:00 +0000</pubDate>
      <guid>https://zedlitz.de/posts/2017/06/ocropus-check-groundtruth/</guid>
      <description>When training a character model for OCRopus you need a good selection of ground truth data for training and testing. To be able to recognize a certain charater it must be included in the training data. Otherwise the neuronal network has no chance to detect the character’s appearance. Although not strictly required, it is also a good idea to include every possible character at least once in the ground truth data used for testing.</description>
    </item>
    <item>
      <title>Testing OCRopus character models</title>
      <link>https://zedlitz.de/posts/2017/03/testing-ocropus-character-models/</link>
      <pubDate>Wed, 15 Mar 2017 00:00:00 +0000</pubDate>
      <guid>https://zedlitz.de/posts/2017/03/testing-ocropus-character-models/</guid>
      <description>After you have trained an OCRopus character model or selected an existing character model you want to measure its character recognition accuracy. Do measure it you need ground truth data (images and text) that has not been used in the training for the model. If you would use images that have been used in the training process you might only measure and overfitting of the model (i.e., the character models ‘knows’ the solution for exactly this image).</description>
    </item>
    <item>
      <title>Ready2Power Multimedia 3D All in One</title>
      <link>https://zedlitz.de/posts/2017/02/ready2power-multimedia-3d-all-in-one/</link>
      <pubDate>Fri, 10 Feb 2017 00:00:00 +0000</pubDate>
      <guid>https://zedlitz.de/posts/2017/02/ready2power-multimedia-3d-all-in-one/</guid>
      <description>A couple of days ago I bought an interesting piece of hardware: &amp;ldquo;Ready2Power Multimedia 3D All in One&amp;rdquo; - a pair of VR glasses with a built-in computer and monitor. My main motivation to buy the device is my 3D photo camera. I have many 3D photographs and 3D films but no device to watch them properly. It is very difficult to find any information on the glasses online. Therefore, I decided to write some blog posts about the device.</description>
    </item>
    <item>
      <title>Optimizing Binarization for OCRopus</title>
      <link>https://zedlitz.de/posts/2017/02/optimizing-binarization-for-ocropus/</link>
      <pubDate>Fri, 03 Feb 2017 00:00:00 +0000</pubDate>
      <guid>https://zedlitz.de/posts/2017/02/optimizing-binarization-for-ocropus/</guid>
      <description>In many hours of work and frustration I have learned that page segmentation and character models have a strong influence on the result of OCR. However, I always underestimated the effects of the initial step – the binarization.&#xA;Now I have looked at the binarization step more closely. Starting material are rather poor scans of the Austrian-Hungarian casualty lists. The scans themselves are not so bad. However, the paper is more than 100 years old and yellowed.</description>
    </item>
    <item>
      <title>Schriftchaos unter Ubuntu beseitigen</title>
      <link>https://zedlitz.de/posts/2016/12/schriftchaos-unter-ubuntu-beseitigen/</link>
      <pubDate>Sat, 10 Dec 2016 00:00:00 +0000</pubDate>
      <guid>https://zedlitz.de/posts/2016/12/schriftchaos-unter-ubuntu-beseitigen/</guid>
      <description>Habt ihr euch auch schon darüber geärgert, dass unter Ubuntu die Liste der Schriften so unglaublich unübersichtlich ist, weil sie viele Schriften enthält, die man in Europa nie braucht? Hier am Beispiel von LibreOffice bei der Auswahl der Schriftart „Noto“.&#xA;Das liegt daran, dass die Debian-Pakete die Schriften für eine Vielzahl von Regionen enthalten. Warum man das nicht mit verschiedenen Paketen gelöst hat, ist mir ein Rätsel.&#xA;Mit&#xA;dpkg -L fonts-noto-hinted kann man sich anzeigen, was alles mit dem Paket der Schriftart Noto installiert wurde.</description>
    </item>
    <item>
      <title>Practical Expercience with OCRopus Model Training</title>
      <link>https://zedlitz.de/posts/2016/10/practical-expercience-with-ocropus-model-training/</link>
      <pubDate>Tue, 04 Oct 2016 00:00:00 +0000</pubDate>
      <guid>https://zedlitz.de/posts/2016/10/practical-expercience-with-ocropus-model-training/</guid>
      <description>In this blog posts I would like to share some of my experience in training models for the outstanding OCR program OCRopus.&#xA;Keep training and test data seperated. Inseparable from the training of a model is testing. I put my training and test data into two directories, training and testing. That makes it easy to add more test data later. And it also simplifies scripts like the one below.&#xA;Choose good training data.</description>
    </item>
    <item>
      <title>OCRopus</title>
      <link>https://zedlitz.de/posts/2016/03/ocropus/</link>
      <pubDate>Fri, 18 Mar 2016 00:00:00 +0000</pubDate>
      <guid>https://zedlitz.de/posts/2016/03/ocropus/</guid>
      <description>One of the most underestimated programs for OCR (Optical Character Recognition) is OCRopus. The reason for this may lie in its sophisticated operation with several command line programs. You have to know the correct order to invoke the programs and the effects of OCRopus&amp;rsquo; various options. You can achieve very good recognition rates (&amp;gt;99% correct characters) with OCRopus. However, you have to train a recognition model for your sources. A very good introduction to the use of OCRopus and the training of models is given in these two blog posts:</description>
    </item>
    <item>
      <title>Class or individual that is the question</title>
      <link>https://zedlitz.de/posts/2014/12/class-or-individual-that-is-the-question/</link>
      <pubDate>Fri, 12 Dec 2014 00:00:00 +0000</pubDate>
      <guid>https://zedlitz.de/posts/2014/12/class-or-individual-that-is-the-question/</guid>
      <description>Immer wieder kommt es vor, dass man bei der Erstellung von Taxonomien bzw. Ontologien vor der Frage steht, ob man etwas als Klasse oder Individuum modellieren soll. Das mag auf ersten Blick sonderbar erscheinen, sind doch Klasse und Individuum so völlig verschieden.&#xA;Betrachten wir als Beispiel die Modellierung von Berufen. Der Einfachheit halber seien die Berufe in drei große Gruppen eingeteilt: Berufe in der Landwirtschaft, Berufe in der Industrie und Berufe im Dienstleistungssektor (im Folgenden ist aber nur kurz von Landwirtschaft, Industrie und Dienstleistung die Rede).</description>
    </item>
    <item>
      <title>OpenStreetMap-Suche leicht gemacht</title>
      <link>https://zedlitz.de/posts/2013/07/openstreetmap-suche-leicht-gemacht/</link>
      <pubDate>Sat, 27 Jul 2013 00:00:00 +0000</pubDate>
      <guid>https://zedlitz.de/posts/2013/07/openstreetmap-suche-leicht-gemacht/</guid>
      <description>Als Ergänzung zu meinem vorherigen Post zu den Gedenksteinen in OpenStreetMap: Es gibt eine grafische Benutzeroberfläche, die die Suche nach Gedenksteinen viel einfacher macht: http://overpass-turbo.eu. Besonders hübsch ist dabei, dass man sich um die Bestimmung der boundind box keine Gedanken mehr machen muss - die wird automatisch vom aktuell angezeigten Kartenausschnitt übernommen.&#xA;Über das Problem, dass alle möglichen Dinge als &amp;ldquo;historic=memorial&amp;rdquo; gekennzeichnet sind, hatte ich ja schon berichtet. In Städten sind das besonders eine große Anzahl von Stolpersteinen, in deren Menge die übrigen Gedenksteine fast untergehen.</description>
    </item>
    <item>
      <title>Gedenksteine in OpenStreetMap</title>
      <link>https://zedlitz.de/posts/2013/07/gedenksteine-in-openstreetmap/</link>
      <pubDate>Fri, 19 Jul 2013 00:00:00 +0000</pubDate>
      <guid>https://zedlitz.de/posts/2013/07/gedenksteine-in-openstreetmap/</guid>
      <description>Da ich Gedenksteine der Weltkriege (vor allem des Ersten Weltkriegs) fotografisch dokumentiere, bin ich immer auf der Suche nach Gedenksteinen in der Umgebung. In OpenStreetMap sind bereits zahlreiche Gedenksteine verzeichnet. Diese sind mit dem Schlüssel &amp;ldquo;historic=memorial&amp;rdquo; markiert. Leider werden auch diverse andere Dinge mit diesem Schlüssel gekennzeichnet, so dass man entweder am Bildschirm einen genaueren Blick auf weitere Werte in OpenStreetMap werfen oder sich direkt vor Ort ein Bild machen muss.</description>
    </item>
    <item>
      <title>Makrozwischenringe</title>
      <link>https://zedlitz.de/posts/2012/05/makrozwischenringe/</link>
      <pubDate>Sun, 06 May 2012 00:00:00 +0000</pubDate>
      <guid>https://zedlitz.de/posts/2012/05/makrozwischenringe/</guid>
      <description>Heute möchte ich mal etwas über Fotografieren schreiben. Als Geburtstagsgeschenk habe ich drei Makrozwischenringe (13mm, 21mm und 31mm) für meine Kamera bekommen. Schon die ersten Probeaufnahmen waren beeindruckend.&#xA;Doch ich wollte genauer herausfinden, was sich abbilden lässt. Dazu habe ich folgenden simplen Versuchsaufbau verwendet:&#xA;Das Objektiv ist ein 50mm Festbrennweiteobjektiv, die Blende wurde fest auf 22 eingestellt, um noch etwas Spielraum beim Scharfstellen zu haben. Mit den Zwischenringen funktioniert zwar auch der Autofokus, zum Experimentieren habe ich jedoch auf manuelle Fokussierung umgeschaltet und dann über den Abstand von Kamera zu Lineal scharf gestellt (mit allen Zwischenringen sind es am Ende nur noch wenige Millimeter).</description>
    </item>
    <item>
      <title>Video-Konvertierung FLV➙DVD</title>
      <link>https://zedlitz.de/posts/2012/03/video-konvertierung-flvdvd/</link>
      <pubDate>Mon, 12 Mar 2012 00:00:00 +0000</pubDate>
      <guid>https://zedlitz.de/posts/2012/03/video-konvertierung-flvdvd/</guid>
      <description>Manchmal ist es ganz nett, Filme, die im FLV-Format vorliegen, mit dem DVD-Player (unser kann auch DivX abspielen) anzusehen. Unter Linux geht das Konvertieren und Brennen auf DVD mit ein paar einfachen Befehlen:&#xA;ffmpeg -i film.flv -f avi -b 3000k -vcodec libxvid -vtag DIVX -ab 128k film.avi growisofs -dvd-compat -Z /dev/dvdrw2 -R -J film.avi </description>
    </item>
    <item>
      <title>abgerufene URLs mitloggen</title>
      <link>https://zedlitz.de/posts/2012/03/abgerufene-urls-mitloggen/</link>
      <pubDate>Sun, 11 Mar 2012 00:00:00 +0000</pubDate>
      <guid>https://zedlitz.de/posts/2012/03/abgerufene-urls-mitloggen/</guid>
      <description>Manchmal ist es ganz interessant zu sehen, welche URLs vom Browser abgerufen werden. Gerade bei Flash-Plugins ist das nicht so einfach herauszubekommen. Hier ist ein Befehl für die Linux-Kommandozeile, die passenden Adressen zu ermitteln:&#xA;sudo ngrep -d eth0 -s 600 -W byline |egrep &amp;#34;^GET|Host&amp;#34; Eventuell muss man die Netzwerkschnittstelle noch an seine Bedürfnisse anpassen.&#xA;Das lässt sich sicherlich noch optimieren, um hübschere URLs zu bekommen, aber für den Hausgebrauch reicht es auch so.</description>
    </item>
  </channel>
</rss>
