<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>kollegen</title>
    <link>https://kollegen.uber.space/</link>
    <description>Recent content on kollegen</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>de</language>
    <lastBuildDate>Sun, 15 Dec 2024 00:00:00 +0000</lastBuildDate><atom:link href="https://kollegen.uber.space/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>X-Recipe: Golden Brown</title>
      <link>https://kollegen.uber.space/posts/x-recipe-golden-brown/</link>
      <pubDate>Sun, 15 Dec 2024 00:00:00 +0000</pubDate>
      
      <guid>https://kollegen.uber.space/posts/x-recipe-golden-brown/</guid>
      <description>&lt;p&gt;This recipe was created by chance and is based on Ritchie Roesch&amp;rsquo;s [Pushed CineStill 800T] (&lt;a href=&#34;https://fujixweekly.com/2023/07/22/pushed-cinestill-800t-fujifilm-x-t5-x-trans-v-film-simulation-recipe/%29&#34;&gt;https://fujixweekly.com/2023/07/22/pushed-cinestill-800t-fujifilm-x-t5-x-trans-v-film-simulation-recipe/)&lt;/a&gt;. When setting up the recipe in my camera, I swapped the signs of the colour settings for the white balance. Instead of red -9 and blue +5, I set red +9 and blue -5. I didn&amp;rsquo;t notice the mistake, but I was much more impressed by the photos that came out of it. The warm colouring creates a sepia-like character, but still leaves room for other colours. I only realised my mistake weeks later&amp;hellip;&lt;/p&gt;</description>
      <content>&lt;p&gt;This recipe was created by chance and is based on Ritchie Roesch&amp;rsquo;s [Pushed CineStill 800T] (&lt;a href=&#34;https://fujixweekly.com/2023/07/22/pushed-cinestill-800t-fujifilm-x-t5-x-trans-v-film-simulation-recipe/%29&#34;&gt;https://fujixweekly.com/2023/07/22/pushed-cinestill-800t-fujifilm-x-t5-x-trans-v-film-simulation-recipe/)&lt;/a&gt;. When setting up the recipe in my camera, I swapped the signs of the colour settings for the white balance. Instead of red -9 and blue +5, I set red +9 and blue -5. I didn&amp;rsquo;t notice the mistake, but I was much more impressed by the photos that came out of it. The warm colouring creates a sepia-like character, but still leaves room for other colours. I only realised my mistake weeks later&amp;hellip;&lt;/p&gt;
&lt;p&gt;As the recipe is often used in extreme lighting situations, the value for the dynamic range should be adjusted accordingly.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/x-recipe-golden-brown/frosty-leaf.jpg&#34; alt=&#34;Frosty Leaf&#34;&gt; Frosty Leaf - A shadow situation on a cold and clear morning (DR100).&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/x-recipe-golden-brown/nebelwerk.jpg&#34; alt=&#34;Nebelwerk&#34;&gt; Nebelwerk - Morning sun through dissolving veils of fog (DR200).&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/x-recipe-golden-brown/sawdust.jpg&#34; alt=&#34;Sawdust&#34;&gt; Sawdust - In the leaf shadow of the summer sun (DR400).&lt;/p&gt;
&lt;h1 id=&#34;settings&#34;&gt;Settings&lt;/h1&gt;
&lt;p&gt;Film Simulation: Eterna Bleach Bypass&lt;br&gt;
Grain Effect: Strong, Large&lt;br&gt;
Color Chrome Effect: Strong&lt;br&gt;
Color Chrome FX Blue: Weak&lt;br&gt;
White Balance: 7700K, +9 Red &amp;amp; -5 Blue&lt;br&gt;
Dynamic Range: DR400&lt;br&gt;
Highlight: -0.5&lt;br&gt;
Shadow: +1.5&lt;br&gt;
Color: +3&lt;br&gt;
Sharpness: 0&lt;br&gt;
High ISO NR: -4&lt;br&gt;
Clarity: -3&lt;br&gt;
ISO: Auto, up to ISO 6400&lt;br&gt;
Sensor: X-Trans V&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>X-Films Recipes</title>
      <link>https://kollegen.uber.space/posts/x-recipes/</link>
      <pubDate>Sat, 14 Dec 2024 00:00:00 +0000</pubDate>
      
      <guid>https://kollegen.uber.space/posts/x-recipes/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Recipes&lt;/strong&gt;&lt;br&gt;
There are many sources for recipes on the internet and in your local bookshop, such as the wonderful website &lt;a href=&#34;https://fujixweekly.com&#34;&gt;https://fujixweekly.com&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Also, here are my own recipes that I wouldn&amp;rsquo;t want to be without.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Scripting support&lt;/strong&gt;&lt;br&gt;
Would you like to add recipe information to your images? Or save your recipes as user settings in Fujifilm X RAW Studio? Maybe this Python script is your friend: &lt;a href=&#34;https://github.com/chs8691/recipetagger&#34;&gt;https://github.com/chs8691/recipetagger&lt;/a&gt;&lt;/p&gt;</description>
      <content>&lt;p&gt;&lt;strong&gt;Recipes&lt;/strong&gt;&lt;br&gt;
There are many sources for recipes on the internet and in your local bookshop, such as the wonderful website &lt;a href=&#34;https://fujixweekly.com&#34;&gt;https://fujixweekly.com&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Also, here are my own recipes that I wouldn&amp;rsquo;t want to be without.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Scripting support&lt;/strong&gt;&lt;br&gt;
Would you like to add recipe information to your images? Or save your recipes as user settings in Fujifilm X RAW Studio? Maybe this Python script is your friend: &lt;a href=&#34;https://github.com/chs8691/recipetagger&#34;&gt;https://github.com/chs8691/recipetagger&lt;/a&gt;&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Die Runde Stunde geht online</title>
      <link>https://kollegen.uber.space/posts/dierundestunde-zu-guter-erst/</link>
      <pubDate>Sat, 05 Feb 2022 00:00:00 +0000</pubDate>
      
      <guid>https://kollegen.uber.space/posts/dierundestunde-zu-guter-erst/</guid>
      <description>&lt;p&gt;Eine kurze Erläuterung zum Konzept der Website &lt;a href=&#34;https://kollegen.uber.space/dierundestunde/&#34;&gt;Die Runde Stunde&lt;/a&gt;&lt;/p&gt;
&lt;h1 id=&#34;was-zeigt-die-website&#34;&gt;Was zeigt die Website&lt;/h1&gt;
&lt;p&gt;Es ist die generierte Webseite meiner Fotos aus dem Format &lt;strong&gt;Die Runde Stunde&lt;/strong&gt;, eine Art sich selbst veränderndes Foto-Album. Mit jedem Hochladen eines neuen Bildes wird die Website neu erzeugt und die Bilder werden neu gruppiert.&lt;/p&gt;
&lt;h1 id=&#34;motivation&#34;&gt;Motivation&lt;/h1&gt;
&lt;p&gt;Das Sport-Format &lt;strong&gt;Die Runden Stunde&lt;/strong&gt; entstand durch das vermehrte Arbeiten im Home Office und der damit verbundenen extremen Bewegungsarmut (Schrittzähler lügen nicht). Es besteht aus einer morgendlichen Stunde Workout auf dem Rad bzw. mit den Laufschuhen. Im ersten Corona-Lockdown 2020 kam die Einschränkung auf 15 km-Bewegungsradius hinzu. Das entspricht so ziemlich genau dem maximalen Radius beim Radfahren. Das bedeutete für mich also keine Einschränkung, sondern machte mir im Gegenteil klar, wie wertvoll diese kleine Fläche Heimat ist. Und dass es galt, diese zu entdecken und dieses zu teilen.&lt;/p&gt;</description>
      <content>&lt;p&gt;Eine kurze Erläuterung zum Konzept der Website &lt;a href=&#34;https://kollegen.uber.space/dierundestunde/&#34;&gt;Die Runde Stunde&lt;/a&gt;&lt;/p&gt;
&lt;h1 id=&#34;was-zeigt-die-website&#34;&gt;Was zeigt die Website&lt;/h1&gt;
&lt;p&gt;Es ist die generierte Webseite meiner Fotos aus dem Format &lt;strong&gt;Die Runde Stunde&lt;/strong&gt;, eine Art sich selbst veränderndes Foto-Album. Mit jedem Hochladen eines neuen Bildes wird die Website neu erzeugt und die Bilder werden neu gruppiert.&lt;/p&gt;
&lt;h1 id=&#34;motivation&#34;&gt;Motivation&lt;/h1&gt;
&lt;p&gt;Das Sport-Format &lt;strong&gt;Die Runden Stunde&lt;/strong&gt; entstand durch das vermehrte Arbeiten im Home Office und der damit verbundenen extremen Bewegungsarmut (Schrittzähler lügen nicht). Es besteht aus einer morgendlichen Stunde Workout auf dem Rad bzw. mit den Laufschuhen. Im ersten Corona-Lockdown 2020 kam die Einschränkung auf 15 km-Bewegungsradius hinzu. Das entspricht so ziemlich genau dem maximalen Radius beim Radfahren. Das bedeutete für mich also keine Einschränkung, sondern machte mir im Gegenteil klar, wie wertvoll diese kleine Fläche Heimat ist. Und dass es galt, diese zu entdecken und dieses zu teilen.&lt;/p&gt;
&lt;h1 id=&#34;regeln-der-bilder&#34;&gt;Regeln der Bilder&lt;/h1&gt;
&lt;p&gt;Beim morgendlichen Laufen oder einer Radfahrt von ca. 1 Stunde Dauer. Mit Handy-Kamera oder der guten Fuji. GPS einschalten. Spontane Wahl von genau einem Spot oder auch vorher überlegt den Spot ansteuern. Bild(er) machen. Nach Hause ohne weiteren Halt. Nachbearbeitung erlaubt.&lt;/p&gt;
&lt;h1 id=&#34;funktionsweise-des-blogs&#34;&gt;Funktionsweise des Blogs&lt;/h1&gt;
&lt;p&gt;Der Inhalt wird aus den Bildern generiert. Dazu werden Aufnahmedatum und GPS-Position ausgelesen und jeweils neun Bilder zu einem Spot zusammengefasst (denn 9 ist eine gute Zahl für einen Spot). Der erste Spot besteht aus dem neusten Bild, was den Mittelpunkt des Spots bestimmt. Dann werden acht weiteren Bildern aus dessen Nähe gesucht. Das am weitest entfernte Bild bestimmt den Radius des Spots. Zum Spot wird noch eine Header-Grafik generiert: Jedes Bild wird als Punkt dargestellt und es wird eine Kreisfläche um das erste Bild mit dem ermittelten Radius gezeichnet. Je älter das Bild, desto verblasster sein Punkt. Der nächste Spot wird mit den verbleibenden Bildern genauso erzeugt.&lt;/p&gt;
&lt;p&gt;Die Header-Grafik besteht aus dem 15 km-Kreis meiner Heimat und den Spot-Kreisen. Auch hier gilt:
Ältere Spots verblassen&amp;hellip;&lt;/p&gt;
&lt;h1 id=&#34;technik&#34;&gt;Technik&lt;/h1&gt;
&lt;p&gt;Der Blog besteht aus der einen statischen Seite, welche mit dem Hugo-Framework generiert wird. Ein neues Bild, mit GPS-Koordinaten und ggf. einem Titel getaggt, wird mit einem lokalen Upload-Skript erst verkleinert und dann auf dem Webhost hochgeladen. Auf dem Server werden dann noch zwei weitere Skripte bemüht und die Bilder und Blog-Beiträge zu generieren: die Bilder werden neu in Beiträge (Spots) aufgeteilt und pro Spot je eine Yml-Datei mit dem dazugehörigen SVG-Bild neu generiert. Auch wird das Header-SVG neu erzeugt. Dann wird Hugo angeschmissen und der so erzeugte Content auf den Webspace kopiert. Eine genauere Anleitung und auch den Quellcode findet man über das Kollegen-eigene &lt;a href=&#34;https://kollegen.uber.space/gitea/website/website/src/branch/master/dierundestunde.md&#34;&gt;Gitea&lt;/a&gt;.&lt;/p&gt;
&lt;h1 id=&#34;reflektion&#34;&gt;Reflektion&lt;/h1&gt;
&lt;p&gt;Hiermit liegen die Bilder nun an ihrem dritten Ort im Netz, neben Instagram und Strava. Das macht sie nicht besser. Ganz im Gegenteil, es fühlt sich etwas &amp;rsquo;too much&amp;rsquo; an. Auch wegen des Ressourcenverbrauchs für Uberspace-Server und Plattenplatz und so. Außerdem muss ich das ganze ja am Laufen halten, was trotz der Helferskripte Lebenszeit benötigt. Aber so ist das mit einem Experiment: Es ist erstmal nicht schonend, und man weiß nicht unbedingt, wozu die Erfahrung noch gut sein wird.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Pendel Foto Leinwand</title>
      <link>https://kollegen.uber.space/posts/pendel-foto-leinwand/</link>
      <pubDate>Thu, 24 May 2018 00:00:00 +0000</pubDate>
      
      <guid>https://kollegen.uber.space/posts/pendel-foto-leinwand/</guid>
      <description>&lt;p&gt;Workflow vom Foto bis zur Pendel-Leinwand. Mit der Kamera unterwegs zur Arbeit und dann das Bild per Skript zum Plugin in  Wordpress hochladen.&lt;/p&gt;
&lt;p&gt;2017 habe ich mit dem &lt;a href=&#34;https://earls5.uber.space/pendel/&#34;&gt;Pendel-Projekt&lt;/a&gt; eine Website angefangen, welcher sukzessive um neue Fotos erweitert wird. Die Fotos entstehen auf dem Weg zur Arbeit, werden um Geo-Koordinaten und Beschriftung erweitert und dann, pro Foto, als Datei-Tripel in den Blog hochgeladen. Da das Projekt noch eine Weile laufen soll, also immer wieder eine neues Foto hochzuladen ist, soll der Prozess so einfach wie möglich durchgeführt werden können. Ich habe also überlegt, wie das Dateisystem zu organisieren ist und welche Arbeitsschritte ohne großen Zeitaufwand zu automatisieren sind.&lt;br&gt;
Herausgekommen ist der hier vorgestellte Workflow, der eher praktisch als perfekt ist. Er zeigt aber, wie man mit relativ wenig Aufwand so eine Aufgabe vereinfachen und strukturieren kann.&lt;/p&gt;</description>
      <content>&lt;p&gt;Workflow vom Foto bis zur Pendel-Leinwand. Mit der Kamera unterwegs zur Arbeit und dann das Bild per Skript zum Plugin in  Wordpress hochladen.&lt;/p&gt;
&lt;p&gt;2017 habe ich mit dem &lt;a href=&#34;https://earls5.uber.space/pendel/&#34;&gt;Pendel-Projekt&lt;/a&gt; eine Website angefangen, welcher sukzessive um neue Fotos erweitert wird. Die Fotos entstehen auf dem Weg zur Arbeit, werden um Geo-Koordinaten und Beschriftung erweitert und dann, pro Foto, als Datei-Tripel in den Blog hochgeladen. Da das Projekt noch eine Weile laufen soll, also immer wieder eine neues Foto hochzuladen ist, soll der Prozess so einfach wie möglich durchgeführt werden können. Ich habe also überlegt, wie das Dateisystem zu organisieren ist und welche Arbeitsschritte ohne großen Zeitaufwand zu automatisieren sind.&lt;br&gt;
Herausgekommen ist der hier vorgestellte Workflow, der eher praktisch als perfekt ist. Er zeigt aber, wie man mit relativ wenig Aufwand so eine Aufgabe vereinfachen und strukturieren kann.&lt;/p&gt;
&lt;p&gt;Zum Verständnis schauen wir kurz auf die Website.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/pendel-foto-leinwand/leinwand.png&#34; alt=&#34;Leinwand im Blog&#34;&gt; Leinwand&lt;/p&gt;
&lt;p&gt;Das Bild zeigt die Seite &lt;em&gt;Leinwand&lt;/em&gt; aus der Wordpress-Website. Man erkennt die Kacheln, welche anhand ihrer GEO-Koordinate auf der Seite platziert sind. Klickt man auf einen Kachel, wird das Bild in einem Viewer dargestellt.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/pendel-foto-leinwand/viewer.png&#34; alt=&#34;Einzelbild-Viewer&#34;&gt; Einzelbild-Viewer&lt;/p&gt;
&lt;p&gt;Ablauf und Tooling wird hier nun kurz vorgestellt; einerseits als Dokumentation für mich selbst und andererseits als Anregung für ähnliche Aufgabenstellung.&lt;/p&gt;
&lt;p&gt;Den Workflow führe ich auf einem Linux-Rechner durch, so dass Bash-Skripte verwendet werden können.&lt;/p&gt;
&lt;p&gt;Die hier verwendeten Skripte findet ihr auf &lt;a href=&#34;https://github.com/chs8691/pendel-workflow/&#34;&gt;github.com/chs8691/pendel-workflow&lt;/a&gt;. Das weiter unten erwähnte fow-Tool wird im Beitrag &lt;a href=&#34;https://kollegen.uber.space/posts/fow-foto-workflow-tool/&#34;&gt;fow - Foto-Workflow-Tool&lt;/a&gt; beschrieben. Das Wordpress-Plugin liegt ebenfalls auf Github unter &lt;a href=&#34;https://github.com/chs8691/pendel/&#34;&gt;github.com/chs8691/pendel&lt;/a&gt;.&lt;/p&gt;
&lt;h1 id=&#34;übersicht&#34;&gt;Übersicht&lt;/h1&gt;
&lt;p&gt;Folgende Schritte werden durchlaufen, um die Fotos von der Kamera in den Blog zu posten:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Import&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bilddateien von der Kamera auf den Rechner herunterladen&lt;/li&gt;
&lt;li&gt;Pro Fahrt die TCX-Datei von Polar Flow herunterladen&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Bildbearbeitung&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bilder nach Fahrten gruppieren und Fahrtennummer vergeben (z.B. 027)&lt;/li&gt;
&lt;li&gt;Je Fahrt Bilder aussortieren und ein Bild finalisieren&lt;/li&gt;
&lt;li&gt;Quadratischen Ausschnitt 500x500 für die Kachel erstellen&lt;/li&gt;
&lt;li&gt;Titel und Beschriftungen dem finalisierten Bild hinzufügen&lt;/li&gt;
&lt;li&gt;GPS-Koordinaten dem finalisierten Bild hinzufügen&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Out erstellen&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bild auf Blog-Größe verkleinern (1900x1200)&lt;/li&gt;
&lt;li&gt;Plugin-Datendatei um Eintrag ergänzen (GPS, Titel, Beschriftung)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Upload&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Nach Wordpress hochladen&lt;/li&gt;
&lt;li&gt;Wordpress-Datenbank aktualisieren&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Neben den erwarteten Tätigkeiten für Bildbearbeitung- und -organisation kommt hier also noch die Aufbereitung in das vom Plugin erwartetem Format nebst Datendatei hinzu. Diese Datendatei (gps.csv) enthält die relevanten EXIF-Daten der Bilder, da das Plugin selbst keine EXIF-Daten auswertet (Der Grund hierfür ist profan: die eingesetzte PHP-Version kann die EXIF-Daten von meiner Fujifilm-Kamera nicht auslesen).&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/pendel-foto-leinwand/workflow.png&#34; alt=&#34;Workflow&#34;&gt; Workflow&lt;/p&gt;
&lt;p&gt;Das Bild zeigt die vier Workflowschritte und darunter die wesentlichen Tools/Skripte. Im unteren Teil sieht man die Artefakte des jeweiligen Schritts und die Datensicherung auf dem lokalen Server.&lt;/p&gt;
&lt;p&gt;Schauen wir uns nun die Schritte etwas genauer an.&lt;/p&gt;
&lt;h1 id=&#34;import-und-bildbearbeitung&#34;&gt;Import und Bildbearbeitung&lt;/h1&gt;
&lt;p&gt;Die Verzeichnisstruktur für Import und Bildbearbeitung werden durch die Verwendung von fow vorgegeben. Pro Fahrt wird ein fow-Task angelegt, der aus einer dreistelligen Nummer besteht. Diese Nummer dient dann den folgenden Skripten als Argument, so dass immer genau eine Fahrt prozessiert werden kann. Man muss natürlich nicht zwingend fow einsetzen, wesentlich ist, dass es eine Verzeichnis mit der Fahrtnummer gibt. Den Verzeichnispfad im import-Skritpt wird man sowieso seiner Rechnerstruktur anpassen müssen, bei mir liegt fow unter ~/egh/photo.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/pendel-foto-leinwand/flow-verzeichnis.png&#34; alt=&#34;fow-Verzeichnis&#34;&gt; fow-Verzeichnis&lt;/p&gt;
&lt;p&gt;Für das Wordpress-Plugin wird pro Fahrt das finale Bild und eine quadratischer 500X500 Bildausschnitt für die Kacheldatei (100x100) benötigt. Als Bildbearbeitung kommt &lt;strong&gt;Darktable&lt;/strong&gt; zum Einsatz. Hier werden die Voreinstellung der jeweiligen Tools genutzt:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Zur Erstellung eines 500x500-Ausschnitts wird &lt;em&gt;Zuschneiden und drehen&lt;/em&gt; verwendet.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/pendel-foto-leinwand/darktable-schneiden.png&#34; alt=&#34;Darktable: Ausschnitt für Kachel zuschneiden&#34;&gt; Darktable: Ausschnitt für Kachel zuschneiden&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Finale-Datei wird unter /final abgelegt&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Kachel-Datei wird unter work abgelegt&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Fehlt noch die Trackdatei, welche mit der Polar M440 aufgezeichnet wird. Die Uhr muss per Windows-PC nach Polar Flow synchronisiert werden. Anschließend kann die TCX-Datei heruntergeladen und im work-Order des fow-Task abgelegt werden. Das erledige ich per Hand.
Am Ende besteht der fow-Task einer Fahrt dann aus folgenden Dateien:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/pendel-foto-leinwand/fow-ende.png&#34; alt=&#34;fow-Ergebnis&#34;&gt; fow-Ergebnis&lt;/p&gt;
&lt;p&gt;Diese drei Artefakte sind das Ergebnis der Bildbearbeitung. Sie dienen als Eingang für den nächsten Schritt &lt;em&gt;In/Out erstellen&lt;/em&gt;. Dazu gehört auch das ziehen eines Backups, da das fow-Verzeichnis nicht gesichert wird.&lt;/p&gt;
&lt;h1 id=&#34;inout-erstellen&#34;&gt;In/Out erstellen&lt;/h1&gt;
&lt;p&gt;Wie der Schrittname erkennen lässt, besteht das Erstellen der Dateien für das Wordpress-Plugin aus zwei Teilen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;IN ordnet die bisher erstellten Artefakte in eine feste Verzeichnisstruktur&lt;/li&gt;
&lt;li&gt;OUT beinhaltet die fertigen Dateien, die dann hochgeladen werden können&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Für beide Schritte gibt es je ein Skript, was die Arbeit erledigt. Alle Dateien dieses Schrittes (Fahrt-Artefakte und Skripte) liegen in einem eigens dafür vorgesehen Verzeichnis &lt;code&gt;~/pendel&lt;/code&gt;. Die Skripte werden aus diesem Verzeichnis heraus ausgeführt. Zusätzlich wird von dem gesamten Verzeichnis ein Backup auf den lokalen Server gemacht.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/pendel-foto-leinwand/pendel-verzeichnis.png&#34; alt=&#34;Verzeichnis für In/Out&#34;&gt; Verzeichnis für In/Out&lt;/p&gt;
&lt;h2 id=&#34;in&#34;&gt;IN&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Ziel&lt;/strong&gt;&lt;br&gt;
Kopieren der drei Dateien einer Fahrt aus dem fow-Task in ein gleichnamiges Unterverzeichnis. Dazu dient das Skript import.sh. Um z. B. die Fahrt 035 zu erstellen ruft man&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;./import.sh &lt;span style=&#34;color:#ae81ff&#34;&gt;035&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;auf, womit pendel/in/035 angelegt wird.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/pendel-foto-leinwand/import-035.png&#34; alt=&#34;import 035&#34;&gt; import 035&lt;/p&gt;
&lt;p&gt;In dem Skript sind absolute Pfade hinterlegt, die sind ggf. anzupassen.&lt;/p&gt;
&lt;h2 id=&#34;out&#34;&gt;OUT&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Ziel&lt;/strong&gt;&lt;br&gt;
Erzeugung/Ergänzung der drei Zieldateien für das Wordpress-Plugin.&lt;/p&gt;
&lt;p&gt;Das Plugin erwartet pro Fahrt ein Bild in einer Standardgröße von 1900x1200, die Kacheldatei (Teilauschnitt) als 100x100 und eine neue Zeile in der  gps.csv-Datei, mit folgendem Format (alle Werte sind TAB-getrennt:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dateiname&lt;/li&gt;
&lt;li&gt;Breitengrad&lt;!-- raw HTML omitted --&gt;Längengrad in Dezimalformat&lt;/li&gt;
&lt;li&gt;Titel&lt;/li&gt;
&lt;li&gt;Untertitel&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Z.B.:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;20180502-065848-DSCF6733.jpg  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;50.1852190088547 9.12886915360833  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Pendel XXXV  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Kleine Brücke, Meerholz
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Zur Durchführung ruft man das Skript create-out.sh mit der Fahrtnummer auf:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/pendel-foto-leinwand/create-out-035.png&#34; alt=&#34;create-out 035&#34;&gt; create-out 035&lt;/p&gt;
&lt;p&gt;Das Skript macht nun genau dies:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Kopieren der Bilddatei und konvertieren in die gewünschte Größe&lt;/li&gt;
&lt;li&gt;Kopieren der Kacheldatei&lt;/li&gt;
&lt;li&gt;Ergänzen der Datei gps.csv um eine neue Zeile&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Da hier keine absoluten Pfade benötigt werden, sollte das Skript ohne Anpassung laufen.&lt;/p&gt;
&lt;h3 id=&#34;backup&#34;&gt;Backup&lt;/h3&gt;
&lt;p&gt;Hat man out ergänzt, ist eine gute Gelegenheit, die Dateien zu sichern, da nun sowohl die Ausgangsdateien als als die Zielartefakte erstellt sind. Das Skript rsync-to-diskstation macht das per rsync auf den lokalen Server.&lt;/p&gt;
&lt;p&gt;Dieses Skript ist natürlich bzgl. des Zielpfades wieder anzupassen.&lt;/p&gt;
&lt;p&gt;Im letzten Schritt wird nun die Fahrt dem Wordpress-Plugin hochgeladen.&lt;/p&gt;
&lt;h2 id=&#34;upload&#34;&gt;Upload&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Ziel&lt;/strong&gt;&lt;br&gt;
Hochladen der relevanten Dateien einer Fahrt in das Wordpress-Uploads-Verzeichnis.&lt;/p&gt;
&lt;p&gt;Das Plugin erwartet die Dateien in einem Unterordner von uploads/pendel, hier  uploads/pendel/ffm (wird in der Plugin-Konfiguration eingestellt). Das Skript earls5sftp ist dafür eingerichtet. Es lädt die die drei unter OUT geänderten Dateien auf den Server hoch:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;./earls5sftp.sh &lt;span style=&#34;color:#ae81ff&#34;&gt;035&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/pendel-foto-leinwand/earls5sftp-035.png&#34; alt=&#34;Upload für Fahrt 035&#34;&gt; Upload für Fahrt 035&lt;/p&gt;
&lt;p&gt;Das Skript ist für den jeweiligen Blog anzupassen.&lt;/p&gt;
&lt;p&gt;Danach muss nur noch das Plugin refresht werden und das Ziel ist erreicht: Die neue Kachel ist auf der Leinwand platziert.&lt;/p&gt;
&lt;h1 id=&#34;fazit&#34;&gt;Fazit&lt;/h1&gt;
&lt;p&gt;Schnell und mit wenig Aufwand lästige Handarbeit automatisieren - dafür eignet sich Bash-Skripting gut. Der Workflow hilft mir, das Doing zu standardisieren, nur so ist ein effizientes Arbeiten möglich.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Pendel Zeitreise</title>
      <link>https://kollegen.uber.space/posts/pendel-zeitreise/</link>
      <pubDate>Tue, 10 Apr 2018 00:00:00 +0000</pubDate>
      
      <guid>https://kollegen.uber.space/posts/pendel-zeitreise/</guid>
      <description>&lt;h1 id=&#34;zeitreise&#34;&gt;Zeitreise&lt;/h1&gt;
&lt;p&gt;Pendel bietet nun die Möglichkeit, die Leinwand zu Blättern. Damit kann sich der Betrachter auf der Leinwand zeitlich vor- und zurück bewegen. Eine Zeitreise durch die Entstehung des Pendels&amp;hellip;&lt;/p&gt;
&lt;h1 id=&#34;überlegungen&#34;&gt;Überlegungen&lt;/h1&gt;
&lt;p&gt;Von Anfang hat beschäftigte mich die Frage, wie mit Bilder umzugehen ist, die am gleichen Ort entstehen. Also Bilder, die auf der Leinwand übereinander liegen würden. Soll es eine Fotoregel sein, nur ein Bild pro Kachel zu machen? Oder soll ein neues Bild das alte einfach ersetzen? Oder sollen ein altes Bild dem neuen durch verschieben auf der Leinwand Platz machen?&lt;/p&gt;</description>
      <content>&lt;h1 id=&#34;zeitreise&#34;&gt;Zeitreise&lt;/h1&gt;
&lt;p&gt;Pendel bietet nun die Möglichkeit, die Leinwand zu Blättern. Damit kann sich der Betrachter auf der Leinwand zeitlich vor- und zurück bewegen. Eine Zeitreise durch die Entstehung des Pendels&amp;hellip;&lt;/p&gt;
&lt;h1 id=&#34;überlegungen&#34;&gt;Überlegungen&lt;/h1&gt;
&lt;p&gt;Von Anfang hat beschäftigte mich die Frage, wie mit Bilder umzugehen ist, die am gleichen Ort entstehen. Also Bilder, die auf der Leinwand übereinander liegen würden. Soll es eine Fotoregel sein, nur ein Bild pro Kachel zu machen? Oder soll ein neues Bild das alte einfach ersetzen? Oder sollen ein altes Bild dem neuen durch verschieben auf der Leinwand Platz machen?&lt;/p&gt;
&lt;h1 id=&#34;story-telling&#34;&gt;Story Telling&lt;/h1&gt;
&lt;p&gt;All diese Ideen sind nicht überzeugend und fügen sich nach meinem Verständnis nicht gut in das Konzept ein. Die Idee einer zeitlichen Achse, gefällt mir um so besser. Darauf gestoßen, bin ich bei der wunderbaren Seite &lt;a href=&#34;http://atterwasch.net/&#34;&gt;atterwasch.net&lt;/a&gt;. Wie dort Blättern als Vortrieb für die Geschichte genutzt wird und damit der Betrachter in die Geschichte eintaucht ist echt beeindruckend und schön gemacht.&lt;/p&gt;
&lt;h1 id=&#34;zeitreise-1&#34;&gt;Zeitreise&lt;/h1&gt;
&lt;p&gt;Zurück zum Pendel-Projekt: Die Scrollleiste des Webbrowsers ist nun entfernt, die Leinwand wird stattdessen immer im Vollformat angezeigt. Der Besucher kann nun mit der Maus (bzw. durch Wischen) zurück und vor blättern. Und so bewegt man sich auf der Zeitachse des Pendels und sieht die Entstehungsreihenfolge der Bilder.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/pendel-zeitreise/leinwand-mit-scrolleiste.png&#34; alt=&#34;Leinwand mit Scrollleiste und Fußzeile&#34;&gt; Leinwand mit Scrollleiste und Fußzeile&lt;/p&gt;
&lt;h1 id=&#34;was-noch-geändert-wurde&#34;&gt;Was noch geändert wurde&lt;/h1&gt;
&lt;p&gt;Zur Orientierung beim Blättern wurde eine Fußleiste hinzugefügt. Diese zeigt neben dem Seitenname (&amp;lsquo;Leinwand&amp;rsquo;) die aktuelle Position und die Anzahl der Bilder an.
Das Laden der Kachelbilder erfolgt nun asynchron. Derzeit hat die Leinwand zwar nur 25 Bilder, bis diese vom Server geladen sind, kann es aber schon ein Weilchen dauern. Während des Ladens, zeigt die Fußleiste den Fortschritt an.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/pendel-zeitreise/landen-status.png&#34; alt=&#34;Ladebalken in der Fußzeile&#34;&gt; Ladebalken in der Fußzeile&lt;/p&gt;
&lt;p&gt;Auch der Bildbetrachter wurde überarbeitet und zeigt sich nun im schicken Schwarz. Das Einzelbild wird nun formatfüllend angezeigt und asynchron geladen.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/pendel-zeitreise/bildbetrachter.png&#34; alt=&#34;Bildbetrachter&#34;&gt; Bildbetrachter&lt;/p&gt;
&lt;p&gt;So, nun habe ich das schlechte Winterwetter mit programmieren überbrückt. Jetzt gibt es aber keine Ausrede mehr für&amp;rsquo;s Pendeln!&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Pendel Bildbetrachter</title>
      <link>https://kollegen.uber.space/posts/pendel-bildbetrachter/</link>
      <pubDate>Fri, 15 Dec 2017 00:00:00 +0000</pubDate>
      
      <guid>https://kollegen.uber.space/posts/pendel-bildbetrachter/</guid>
      <description>&lt;p&gt;Nachdem sich nun die ersten Plättchen auf der weißen Leinwand platziert haben, kam dann doch recht schnell der Wunsch auf, die eigentlichen Bilder in einem Bildbetrachter ansehen zu können. Das war ursprünglich nicht vorgesehen, schließlich geht es um die Plättchen auf der Leinwand; die zugrunde liegenden Bilder sind eher als Rohmaterial zu sehen.&lt;/p&gt;
&lt;p&gt;Andererseits ist die noch recht leere Leinwand auch nicht wirklich spannend - und auf einem Mobilgerät schon gar nicht. Also kann man nun auf die Plättchen klicken und sich das Bild ansehen. Man erkennt dann auch, dass das Plättchen keine reine Verkleinerung des Bildes ist, sondern vielmehr einen Ausschnitt zeigt (genau gesagt ein quadratischer Ausschnitt mit 500 Pixel Kantenlänge). Deshalb kann man die Erstellung des Plättchenbildes auch nicht automatisieren, es wird &amp;lsquo;von Hand&amp;rsquo; erstellt.&lt;/p&gt;</description>
      <content>&lt;p&gt;Nachdem sich nun die ersten Plättchen auf der weißen Leinwand platziert haben, kam dann doch recht schnell der Wunsch auf, die eigentlichen Bilder in einem Bildbetrachter ansehen zu können. Das war ursprünglich nicht vorgesehen, schließlich geht es um die Plättchen auf der Leinwand; die zugrunde liegenden Bilder sind eher als Rohmaterial zu sehen.&lt;/p&gt;
&lt;p&gt;Andererseits ist die noch recht leere Leinwand auch nicht wirklich spannend - und auf einem Mobilgerät schon gar nicht. Also kann man nun auf die Plättchen klicken und sich das Bild ansehen. Man erkennt dann auch, dass das Plättchen keine reine Verkleinerung des Bildes ist, sondern vielmehr einen Ausschnitt zeigt (genau gesagt ein quadratischer Ausschnitt mit 500 Pixel Kantenlänge). Deshalb kann man die Erstellung des Plättchenbildes auch nicht automatisieren, es wird &amp;lsquo;von Hand&amp;rsquo; erstellt.&lt;/p&gt;
&lt;p&gt;Unter dem Bild wird noch Titel, Beschreibung und GPS-Position angegeben, sowie ein Link zur OSM-Karte. Das gezeigt Bild hat eine Auflösung von 1900 Pixel, in voller Größe findet man die Bilder im flickr-Album Pendel.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Pendel Plugin</title>
      <link>https://kollegen.uber.space/posts/pendel-plugin/</link>
      <pubDate>Sat, 18 Nov 2017 00:00:00 +0000</pubDate>
      
      <guid>https://kollegen.uber.space/posts/pendel-plugin/</guid>
      <description>&lt;p&gt;Die erste Version der Leinwand mit den ersten acht Bildern ist nun online! Umgesetzt als WordPress-Plugin.&lt;/p&gt;
&lt;h1 id=&#34;was-bisher-geschah&#34;&gt;Was bisher geschah&lt;/h1&gt;
&lt;p&gt;In den letzten Wochen wurde der &amp;lsquo;Durchstich&amp;rsquo; des Plugins programmiert. Das Ziel war, ein minimales WordPress-Plugin zu erstellen, welches die Bilder als Kacheln anzeigt. Die Kacheln haben einen Schatten und bewegen sich leicht, wenn man mit der Maus bzw. dem Finger drübergeht. Außerdem musste ein passendes Theme gefunden und angepasst werden, damit die volle Browser-Seite genutzt werden kann. Ferner wurden Header und Footer minimalisiert.&lt;br&gt;
Leinwand in Version 1 des WordPress-PluginsAußerdem bin ich natürlich gependelt, so dass man überhaupt etwas auf der Leinwand zu sehen bekommt.&lt;/p&gt;</description>
      <content>&lt;p&gt;Die erste Version der Leinwand mit den ersten acht Bildern ist nun online! Umgesetzt als WordPress-Plugin.&lt;/p&gt;
&lt;h1 id=&#34;was-bisher-geschah&#34;&gt;Was bisher geschah&lt;/h1&gt;
&lt;p&gt;In den letzten Wochen wurde der &amp;lsquo;Durchstich&amp;rsquo; des Plugins programmiert. Das Ziel war, ein minimales WordPress-Plugin zu erstellen, welches die Bilder als Kacheln anzeigt. Die Kacheln haben einen Schatten und bewegen sich leicht, wenn man mit der Maus bzw. dem Finger drübergeht. Außerdem musste ein passendes Theme gefunden und angepasst werden, damit die volle Browser-Seite genutzt werden kann. Ferner wurden Header und Footer minimalisiert.&lt;br&gt;
Leinwand in Version 1 des WordPress-PluginsAußerdem bin ich natürlich gependelt, so dass man überhaupt etwas auf der Leinwand zu sehen bekommt.&lt;/p&gt;
&lt;h1 id=&#34;und-wie-gehts-nun-weiter&#34;&gt;Und wie geht&amp;rsquo;s nun weiter?&lt;/h1&gt;
&lt;p&gt;Die Leinwand soll nun etwas mehr Interaktion bekommen, mal schau&amp;rsquo;n, ich habe da so ein paar Ideen.
Außerdem muss natürlich fleißig gependelt werden&amp;hellip;&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Fow Foto Workflow Tool</title>
      <link>https://kollegen.uber.space/posts/fow-foto-workflow-tool/</link>
      <pubDate>Mon, 11 Sep 2017 00:00:00 +0000</pubDate>
      
      <guid>https://kollegen.uber.space/posts/fow-foto-workflow-tool/</guid>
      <description>&lt;p&gt;Ein Kommandozeilen-Tool für den digitalen Fotoprozess
Wie man auch bei mehreren Kameras und vielen Fotoprojekten den Überblick behält.&lt;/p&gt;
&lt;p&gt;In dem &lt;a href=&#34;https://kollegen.uber.space/posts/foto-workflow/&#34;&gt;Fotoworkflow-Blog&lt;/a&gt; wird der gesamte Ablauf für die Fotoentwicklung vorgestellt, so dass der Weg von der Kamera-Speicherkarte bis zur Veröffentlichung bzw. Archivierung beschrieben ist. Der Nachteil des so durchgeführten Workflows liegt auf der Hand: da ist einen Menge Handarbeit auf der Konsole bzw. mit dem Datei-Browser zu machen. Das ist zeitraubend, fehleranfällig und einfach nervig. Die Lösung für mich sind eine handvoll Kommandozeilenbefehle die genau die einzelnen Schritte als Befehl umsetzen. Dieses Tool, fow genannt, wird hier nun genauer vorgestellt.&lt;/p&gt;</description>
      <content>&lt;p&gt;Ein Kommandozeilen-Tool für den digitalen Fotoprozess
Wie man auch bei mehreren Kameras und vielen Fotoprojekten den Überblick behält.&lt;/p&gt;
&lt;p&gt;In dem &lt;a href=&#34;https://kollegen.uber.space/posts/foto-workflow/&#34;&gt;Fotoworkflow-Blog&lt;/a&gt; wird der gesamte Ablauf für die Fotoentwicklung vorgestellt, so dass der Weg von der Kamera-Speicherkarte bis zur Veröffentlichung bzw. Archivierung beschrieben ist. Der Nachteil des so durchgeführten Workflows liegt auf der Hand: da ist einen Menge Handarbeit auf der Konsole bzw. mit dem Datei-Browser zu machen. Das ist zeitraubend, fehleranfällig und einfach nervig. Die Lösung für mich sind eine handvoll Kommandozeilenbefehle die genau die einzelnen Schritte als Befehl umsetzen. Dieses Tool, fow genannt, wird hier nun genauer vorgestellt.&lt;/p&gt;
&lt;h1 id=&#34;technische-umsetzung&#34;&gt;Technische Umsetzung&lt;/h1&gt;
&lt;p&gt;Als Sprache wurde Python3 gewählt, da die Befehle damit schnell implementiert werden konnten. Die Befehle benötigen, neben Python 3, folgende Tools, welche aber in der Regel bereits installiert sind:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;exiv2&lt;/li&gt;
&lt;li&gt;exiftool&lt;/li&gt;
&lt;li&gt;rsync&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Das Projekt ist unter &lt;a href=&#34;https://github.com/chs8691/fow&#34;&gt;gitHub&lt;/a&gt; gehostet und steht als Open Source zur Verfügung. Vorschläge für Verbesserungen und Fehlermeldung sind willkommen und können dort erfasst werden. Wer aktiv mitentwickeln möchte, kann dies gerne tun.&lt;/p&gt;
&lt;h1 id=&#34;installation&#34;&gt;Installation&lt;/h1&gt;
&lt;p&gt;Voraussetzung: Linux-System, auf dem DEB-Pakete installierte werden können (Debian, Ubuntu, Lint etc.). Für Windows-PCs lässt sich fow in einer VirtualBox z. B. mit Lint/Mate betreiben.
Download: Neuestes Deb-Paket von gitHub-Projekt fow Unterverzeichnis /dist herunterladen und in einer Shell installieren mit z . B.:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ sudo dpkg -i fow_1.1.8_all.deb
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id=&#34;initialisierung&#34;&gt;Initialisierung&lt;/h1&gt;
&lt;p&gt;Man benötigt ein, am besten leeres, Unterverzeichnis und initialisiert das fow, indem man in diesem Verzeichnis ‚init‘ aufruft. Beispiel:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ mkdir ~/photo
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ cd ~/photo
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow init
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Damit wird die Verzeichnisstruktur aufgebaut und ein paar Konfigurationsvariblen initialisiert. Zur Erfolgskontrolle lässt man sich die Konfigurationswerte anzeigen:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow config
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;backup.path &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; None
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;gps.tracks &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; None
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;task &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; None
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Ok, dass sieht noch nicht wirklich eingerichtet aus. Dass erfolgt erst bei Bedarf der einzelnen Befehle, für den Anfang genügt es.
Hier ein paar grundlegende Tipps für den Anfang:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Das Wurzelverzeichnis hat keinen Einfluss auf fow und kann beliebig umbenannt und verschoben werden&lt;/li&gt;
&lt;li&gt;Man muss sich innerhalb der Verzeichnisstruktur befinden, um einen fow-Befehl ausführen zu können&lt;/li&gt;
&lt;li&gt;Fow-eigene Unterverzeichnisse dürfen nicht gelöscht/umbenannt werden&lt;/li&gt;
&lt;li&gt;Zusätzliche Unterverzeichnisse sind möglich&lt;/li&gt;
&lt;li&gt;Man kann beliebig viele fows nebeneinander betreiben&lt;/li&gt;
&lt;li&gt;fows können nicht geschachtelt werden&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&#34;prinzip&#34;&gt;Prinzip&lt;/h1&gt;
&lt;p&gt;Die Befehle sind so angelegt, dass sie mit möglichst wenig Tipparbeit einen Workflow-Schritt oder Befehl ausführen. Jedem Befehl geht das &amp;lsquo;fow&amp;rsquo; voraus. Ein Übersicht über die Befehle bekommt man mit help:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow help
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;fow commands:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;backup - save the fow to an external directory
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;config - show and change settings of the fow. A setting is a key value pair.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;exif - Set or show EXIF values &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; final images of the actual task
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;export - Copy final images to external destinations &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; the actual task
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;gps - add gps locations from gpx files
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;help - This help. Use &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;help &amp;lt;command&amp;gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; a specific command help
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;init - Creates new fow in the actual directory
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;load - Loads images from external destinations into 00_Inbox.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;rename - Move and rename files from 00_Inbox to 01_Import.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;show - reporting &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; processing steps
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;task - manage a fow&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;&amp;#39;&lt;/span&gt;s task
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Detaillierte Hilfe zu den einzelnen Befehlen bekommt man mit help &lt;!-- raw HTML omitted --&gt;, z. B.:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow help init
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Ein Befehl kann Optionen (beginnend mit 2 Bindestrichen) und Parameter haben. So habe z. B. viele Befehle eine verbose-Ausgabe (&amp;ndash;verbose). Ändernden Befehle bieten in der Regel eine Testoption (&amp;ndash;test), die keine Änderungen macht (Dry-run). Beispiele:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow rename --test
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Processing jpg 5: &lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Processing raw 3: &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Processing video 0: &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;8&lt;/span&gt; files will be moved and renamed.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow rename --verbose
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Processing jpg 5: &lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Processing raw 3: &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Processing video 0: &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  OK  jpg 20170720-181117-DSCF5339.JPG --&amp;gt; 20170720-181117-20170720-181117-DSCF5339.JPG
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  OK  jpg 20170720-184415-DSCF5343.JPG --&amp;gt; 20170720-184415-20170720-184415-DSCF5343.JPG
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  OK  jpg 20170720-184415-DSCF5344.JPG --&amp;gt; 20170720-184415-20170720-184415-DSCF5344.JPG
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  OK  jpg 20170720-184416-DSCF5345.JPG --&amp;gt; 20170720-184416-20170720-184416-DSCF5345.JPG
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  OK  jpg 20170720-184650-DSCF5346.JPG --&amp;gt; 20170720-184650-20170720-184650-DSCF5346.JPG
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  OK  raw 20170720-184415-DSCF5343.RAF --&amp;gt; 20170720-184415-20170720-184415-DSCF5343.RAF
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  OK  raw 20170720-184415-DSCF5344.RAF --&amp;gt; 20170720-184415-20170720-184415-DSCF5344.RAF
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  OK  raw 20170720-184416-DSCF5345.RAF --&amp;gt; 20170720-184416-20170720-184416-DSCF5345.RAF
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;8&lt;/span&gt; file&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;s&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt; moved.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Tipp: Eine Option hat auch eine Abkürzung, bestehend aus einem Bindestrich und dem Anfangsbuchstaben der Option, zum Beispiel kann statt –verbose auch einfach -v geschrieben werden. Zur besseren Lesbarkeit des Blogs wird hier aber nur die lange Schreibweise verwendet.&lt;/p&gt;
&lt;h1 id=&#34;die-einzelnen-workflowschritte&#34;&gt;Die einzelnen Workflowschritte&lt;/h1&gt;
&lt;p&gt;Das Workflow Diagramm, wie es schon im Fotoworkflow-Blog vorgestellt wurde, dient fow als Grundlage und wurde nur leicht angepasst.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/fow-foto-workflow-tool/Workflow.png&#34; alt=&#34;Workflow&#34;&gt; Workflow&lt;/p&gt;
&lt;p&gt;Folgende Schritte werden von fow nicht unterstützt, da es für sie vorhandene Tools gibt:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Develop: Nachbearbeitung der JPG- bzw. RAW-Bilder erfolgt mit dem jeweiligen Lieblingstool, z. B. Darktable. Ferner fällt hierunter auch das Hinzufügen von Titel, Beschreibung etc.&lt;/li&gt;
&lt;li&gt;Clean: Nicht mehr benötigte fow-Tasks sind manuell zu löschen&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;load&#34;&gt;LOAD&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Aufgabe&lt;/strong&gt;&lt;br&gt;
Laden aller Bilddateien (incl. aus Unterverzeichnissen) aus einer externen Quelle (wie z. B. SD-Karte oder Smartphone) in den Eingangsordner 00_Inbox.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Endzustand&lt;/strong&gt;&lt;br&gt;
Alle Bilddateien der externen Quelle wurden nach 00_Inbox kopiert bzw. verschoben und liegen nun in einem der Unterordner.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/fow-foto-workflow-tool/Load-Verzeichnis.png&#34; alt=&#34;Load-Verzeichnis&#34;&gt; Load-Verzeichnis&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Voraussetzung&lt;/strong&gt;&lt;br&gt;
Die SD-Karte ist gemountet.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Durchführung&lt;/strong&gt;&lt;br&gt;
Das Mount-Verzeichnis der SD-Karte wird einmal als config-Variable gesetzt:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow config -s&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;load.sd&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;/mount/sd-card
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Nun kann man sämtliche Bilddateien importieren lassen:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow load sd
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Processing jpg 3: &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Processing raw 1: &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Processing video 0: &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;All &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt; files copied &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt; existing files ignored&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Hinweise&lt;/strong&gt;&lt;br&gt;
Mit der Option &lt;em&gt;&amp;ndash;move&lt;/em&gt; werden die Dateien nach dem Kopieren aus der Quelle gelöscht. Das ist mit Vorsicht zu verwenden, schließlich hat man noch kein Backup der Bilddateien gemacht.
Mit der Option &lt;em&gt;&amp;ndash;force&lt;/em&gt; werden vorhandene Dateien überschrieben&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;BACKUP&lt;/strong&gt;&lt;br&gt;
Es wird einmalig ein Backup-Verzeichnis ausserhalb des fow-Vezeichnisses definiert. Mit Backup kann dann man zu einem beliebigen Zeitpunkt die Daten dorthin sichern. Ein guter Zeitpunkt ist direkt nach dem Load, damit hat man einen definierten Zustand des fow-Verzeichnisses und kann mit ruhigem Gewissen die Daten von der SD-Karte löschen.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Aufgabe&lt;/strong&gt;&lt;br&gt;
Sichern des gesamten fow-Verzeichnisses auf ein externes Verzeichnis, idealerweise eine externe Festplatte oder der lokale Server.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Endzustand&lt;/strong&gt;&lt;br&gt;
Eine Kopie das fow-Verzeichnisses liegt vor.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Voraussetzung&lt;/strong&gt;&lt;br&gt;
Das externe Medium muss gemountet sein.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Durchführung&lt;/strong&gt;
Es wird einmalig das Backup-Verzeichnis als Config-Wert definiert.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow config -s&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;backup.path&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;/media/diskstation/fow-backup
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Nun kann das Backup durchgeführt werden.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow backup  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Starting backup to &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;/media/diskstation/fow-backup&amp;#34;&lt;/span&gt;.  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sending incremental file list  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.fow/  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.fow/setting.pickle  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;00_Inbox/  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;00_Inbox/jpg/  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;00_Inbox/jpg/20170202-103548-DSCF4580.jpg  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;00_Inbox/jpg/20170720-181117-20170720-181117-DSCF5339.JPG  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;00_Inbox/jpg/20170720-184415-20170720-184415-DSCF5343.JPG  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;00_Inbox/jpg/20170720-184650-20170720-184650-DSCF5346.JPG  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;00_Inbox/jpg/DSCF4580.jpg  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;00_Inbox/jpg/DSCF4593.jpg  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;00_Inbox/raw/  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;00_Inbox/raw/20170202-103548-DSCF4580.raf  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;00_Inbox/video/  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;01_Import/  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;01_Import/jpg/  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;01_Import/raw/  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;01_Import/raw/20170720-184416-20170720-184416-DSCF5345.RAF  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;01_Import/video/  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;02_Progress/  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;02_Progress/blog/  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;02_Progress/blog/labels/  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;02_Progress/blog/labels/final/  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;02_Progress/blog/labels/final/20170226-103222-DSCF4702.jpg  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;...  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Number of files: &lt;span style=&#34;color:#ae81ff&#34;&gt;95&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;reg: 45, dir: 50&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Number of created files: &lt;span style=&#34;color:#ae81ff&#34;&gt;95&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;reg: 45, dir: 50&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Number of deleted files: &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Number of regular files transferred: &lt;span style=&#34;color:#ae81ff&#34;&gt;45&lt;/span&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;...  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sent 124,487,247 bytes  received 1,106 bytes  1,791,199.32 bytes/sec  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;total size is 124,452,210  speedup is 1.00  
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Hinweis&lt;/strong&gt;&lt;br&gt;
Es wird nur ein Backup unterstützt, keine Rotierung&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Intern wird &lt;em&gt;rsync&lt;/em&gt; für den Befehl verwendet.&lt;/p&gt;
&lt;h2 id=&#34;rename&#34;&gt;RENAME&lt;/h2&gt;
&lt;p&gt;Auf den verschiedenen Kameras habe die Bilddateien unterschiedliche Namensregeln. Mit rename werden die Bilddateien einheitlich umbenannt und bekommen einen Zeitstempel. Das vereinfacht das Dateimanagement erheblich. Die Umbenennung erfolgt auf Basis der Exif-Informationen. Eine Bilddatei wird nach folgendem Muster benannt:&lt;br&gt;
&lt;code&gt;&amp;lt;yyyymmdd&amp;gt;-&amp;lt;hhMMss&amp;gt;-&amp;lt;Dateiname mit Dateisuffix&amp;gt;&lt;/code&gt;&lt;br&gt;
Die Dateien bekommen also einen Zeitstempel vorangestellt und sind damit chronologisch sortierbar. Der ursprüngliche Dateiname wird angehängt. Das hat den Vorteil, das es keine Namenskonflikte bei zeitgleichen Aufnahmen gibt. Außerdem wird das Duplizieren verhindert, falls ein Dateien erneut geladen und umbenannt werden.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/fow-foto-workflow-tool/Vor-und-nach-der-Umbenennung.png&#34; alt=&#34;Vor- und nach der Umbenennung&#34;&gt; Vor- und nach der Umbenennung&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Aufgabe&lt;/strong&gt;&lt;br&gt;
Umbenennung aller Bilddateien aus 00_Inbox und verschieben nach 01_Import.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Endzustand&lt;/strong&gt;
Keine Bilddateien mehr in 00_Inbox und in 01_Import liegen die verschobenen Bilddateien vor.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Durchführung&lt;/strong&gt;
Die Durchführung ist denkbar einfach und kann je nach Menge ein paar Sekunden dauern.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow rename
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Processing jpg 5: &lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Processing raw 2: &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Processing video 0: &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;7&lt;/span&gt; file&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;s&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt; moved.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Hinweis&lt;/strong&gt;&lt;br&gt;
Fehlt das Exif-Datum, wird nur verschoben.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;organize&#34;&gt;ORGANIZE&lt;/h2&gt;
&lt;p&gt;Verteilen der importierten Bilddateien auf einzelne, unabhängige Aufgaben (Task).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ausgangssituation&lt;/strong&gt;&lt;br&gt;
Eine Menge von Bildern, evtl. für unterschiedliche Zwecke, liegen in 01_Import vor.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Endzustand&lt;/strong&gt;&lt;br&gt;
Einige oder alle Bilddateien wurden in unterschiedliche &amp;lsquo;Tasks&amp;rsquo; verschoben. Nicht mehr benötigte Bilder wurden gelöscht.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Durchführung&lt;/strong&gt;&lt;br&gt;
Hier ist Handarbeit mit dem Bildbetrachter bzw. Dateibrowser gefragt. fow unterstützt bei der Verwaltung der Task-Verzeichnisse und kann RAW-Dateien dorthin nachziehen.&lt;br&gt;
Das Verzeichnis 01_Import/jpg wird mit einem beliebigen Bildbetrachter gesichtet. Zusammengehörige Bilder werden in einen neuen bzw. bestehenden Task verschoben. Evtl. vorhandene Raw-Dateien nachgezogen. Nicht mehr benötigte Bilder werden aus 01_Import gelöscht.&lt;/p&gt;
&lt;p&gt;Ein Task ist eine Verzeichnisstruktur unter 02_Prozess. Tasks liegen aber nicht direkt unter 02_Prozess, sonder werden weiter in Unterverzeichnisse gruppiert.&lt;br&gt;
Hat man z. B. Fotos für &amp;lsquo;Bild des Tages&amp;rsquo; vom 1.9. und 2.9.2017, legt man sich zuerst die Tasks für beide Tage an. Beispiel:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow task -c&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;daily/20170901 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow task -c&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;daily/20170902
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Damit werden die Task-Verzeichnisse angelegt:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/fow-foto-workflow-tool/Task-Verzeichnisstruktur.png&#34; alt=&#34;Task-Verzeichnisstruktur&#34;&gt; Task-Verzeichnisstruktur&lt;/p&gt;
&lt;p&gt;Nun kann man die JPG-Bilder in die Tasks verschieben.&lt;/p&gt;
&lt;p&gt;Bei fow ist immer nur ein Task aktiv. Im aktive Task kann man u. a. die RAW-Dateien aus 01_Import nachziehen. Einen vorhanden Task kann man wie folgt aktivieren:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow task -a&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;daily/20170901
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Man kann auch durch Vorwärts- bzw. Rückwärtsblättern (Option &amp;ndash;next bzw. &amp;ndash;previous) den aktiven Task wechseln:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow task --next   
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   daily/20170901  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;*  daily/20170902  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   dienstreise/hamburg17  
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Hat man neben JPGs noch RAW-Dateien erstellt, kann man diese RAWs in den aktuelle Task aus 01_Import/raw nachziehen. Mit der Test-Option kann man auch erst mal sehen, ob noch RAWs in 01_Import existieren:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow task --raw-import --test  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;raw files to move &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;may already exists&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;:  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;20170202-103548-DSCF4580.raf  
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;develop&#34;&gt;DEVELOP&lt;/h2&gt;
&lt;p&gt;Unter Develop wird der gesamte Prozess der Fotobearbeitung innerhalb eines Tasks zusammengefasst, also die Erstellung des Endbildes auf Basis eines RAW bzw. JPGs mit Hilfe von Bildbearbeitungsprogramme. Dabei wird davon ausgegangen, dass das Originalbild nicht verändert wird, sondern dass die Programme mit Sidecar-Dateien (XML) oder Projektdateien (z. B. XCF bei Gimp) arbeiten und das Ergebnis in eine neue Datei exportiert werden (z. B. jpg).&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/fow-foto-workflow-tool/Verzeichnis-von-Task-weekly20170205.png&#34; alt=&#34;Verzeichnis von Task ‘weekly/20170205’&#34;&gt; Verzeichnis von Task &amp;lsquo;weekly/20170205&amp;rsquo;&lt;/p&gt;
&lt;p&gt;Fow unterstützt hier durch Vorgabe der Verzeichnisstruktur des Tasks: In jpg und raw liegen die Originaldateien, in work können ggf. Projektdateien abgelegt werden und final dient als Exportverzeichnis für das fertige Produkt.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ausgangssituation&lt;/strong&gt;&lt;br&gt;
Originalbilder zur Bearbeitung sind im Task abgelegt (jpg, raw).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Endzustand&lt;/strong&gt;&lt;br&gt;
Endbilder liegen im Ordner &amp;lsquo;final&amp;rsquo;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Durchführung&lt;/strong&gt;&lt;br&gt;
Erfolgt mit den jeweiligen Bildbearbeitungsprogrammen. Der letzte Schritt ist der Export nach final. Z. B. Darktable unterstützt das Festlegen des Exportverzeichnisses.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/fow-foto-workflow-tool/Export-bei-Darktable.png&#34; alt=&#34;Export bei Darktable&#34;&gt; Export bei Darktable&lt;/p&gt;
&lt;p&gt;Mit fow kann man sich einen Überblick über den Bearbeitungszustand eines Task verschaffen, z. B.:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow task --long   
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Actual task is weekly/20170205. Listing all image files.  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Reading /photo-workflow/02_Progress/weekly/20170205/jpg 2: &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Reading /photo-workflow/02_Progress/weekly/20170205/raw 1: &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Reading /photo-workflow/02_Progress/weekly/20170205/video 0: &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Reading /photo-workflow/02_Progress/weekly/20170205/final 1: &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;jrftg 20170202-103548-DSCF4580 Ramification  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;j--tg 20170205-180804-DSCF4593 Ronneburg  
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Das Beispiel zeigt, dass es zwei Bilder gibt. Das erste trägt den Titel (t) &amp;lsquo;Ramification&amp;rsquo;, es hat Originalbilder in jgp (j) und raw (r), wurde bereits nach final (f) exportiert und hat gps-Daten (g). Das zweite Bild hat auch bereits einen Titel, &amp;lsquo;Ronneburg&amp;rsquo;, hat gps-Daten und liegt nur als Original-jpg vor.&lt;/p&gt;
&lt;p&gt;Der Befehl &amp;rsquo;task&amp;rsquo; bietet noch weitere Optionen, u. a.:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;&amp;ndash;activate &lt;!-- raw HTML omitted --&gt;&lt;/em&gt;: Aktivieren eines bestimmten Tasks&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&amp;ndash;next&lt;/em&gt; und &lt;em&gt;&amp;ndash;previous&lt;/em&gt;: Wechseln in den nächsten bzw. vorherigen Task&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&amp;ndash;fill-final&lt;/em&gt;: Ergänzen des final-Verzeichnisses aus jpg&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;exif-tags&#34;&gt;EXIF-Tags&lt;/h3&gt;
&lt;p&gt;Zum Setzen der EXIF-Tags für Titel, Beschreibung und Author, gibt es den Befehl &amp;rsquo;exif&amp;rsquo;. Hier ein Beispiel wie alle drei Tags auf einmal gesetzt werden können:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow exif -f -t  &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;Pendel LXIIX&amp;#39;&lt;/span&gt; -d &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;Und Autos rauschen vorbei&amp;#39;&lt;/span&gt; -a 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;20181205-192255-DSCF7592.jpg   
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  o title             T &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt; -&amp;gt; Pendel LXIIX  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  + description       Und Autos rauschen vorbei  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  + author            Christian Schulzendorff 2019, CC BY-SA 2.0  
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Den Wert für Author muss man sich nur einmalig erstellen und wird dann nicht mehr explizit gesetzt:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow config -s &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;exif.author=Christian Schulzendorff {YYYY}, CC BY-SA 2.0&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Ebenso kann man sich gesetzten Exif-Werte mit &amp;lsquo;fow exif&amp;rsquo; anzeigen lassen.&lt;/p&gt;
&lt;h2 id=&#34;location&#34;&gt;LOCATION&lt;/h2&gt;
&lt;p&gt;Nicht alle Kameras taggen GPS-Informationen an die Bilder. Oft sollen aber trotzdem die Ortsdaten (Längen- und Breitengrad, ggf. Höhe) dem Bild hinzugefügt werden. Dazu muss dann für jedes Bild die aufgezeichnete Trackdatei ausgewertet werden. Manche Navi-Herstellen bieten dazu Programme an, oder man bedient sich Programmen wie z. B. &lt;a href=&#34;https://geotag.sourceforge.net/&#34;&gt;geotag&lt;/a&gt;. Alternativ bietet fow die Möglichkeit, die finals eines Tasks mit Tracks in einem fest definierten Verzeichnis zu taggen.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ausgangssituation&lt;/strong&gt;
Finals (Dateien im Task-Verzeichnis &amp;lsquo;final&amp;rsquo;) sind erstellt und das Verzeichnis mit Trackdateien (gpx) ist gemountet.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Endzustand&lt;/strong&gt;&lt;br&gt;
Final-Dateien sind getaggt.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Durchführung&lt;/strong&gt;&lt;br&gt;
Einmalig muss das externe Verzeichnis mit den Trackdateien als config-Wert festgelegt werden.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow config -s&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;gps.tracks&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;/media/tracks
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Die gpx-Dateien müssen den Datumsstempel im Format yyyy&lt;em&gt;mm&lt;/em&gt;dd im Namen haben, damit sie erkannt werden, z. B.:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ find /media/tracks/ -name &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;*2017*02*0[2|5]*&amp;#39;&lt;/span&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;../tracks/20170205.gpx  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;../tracks/Christian_Schulzendorff_2017-02-02_09-10-10.gpx  
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Das taggen geht dann für den aktiven Task sehr einfach:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow gps -verbose  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Reading /photo-workflow/02_Progress/weekly/20170205/final 2: &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Path to images: /photo-workflow/02_Progress/weekly/20170205/final  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Path to tracks: /media/tracks  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;+g 20170202-103548-DSCF4580.jpg Christian_Schulzendorff_2017-02-02_09-10-10.gpx  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;+g 20170205-180804-DSCF4593.jpg 20170205.gpx  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt; images processed, &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt; gps data set &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;where &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt; existing gps data were changed&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;export&#34;&gt;EXPORT&lt;/h2&gt;
&lt;p&gt;Sind alle Bilder eines Tasks in final erstellt, werden diese von dort an ihren Bestimmungsort verteilt. Fow unterstützt dabei den lokalen Export in beliebig viele Zielordner. Für andere Ziele, wie z. B. Flickr, Instagram u. s. w. bietet fow keine Unterstützung.
Beim Export werden die Bilddateien immer nur kopiert, niemals verschoben.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ausgangssituation&lt;/strong&gt;&lt;br&gt;
Alle Bilder liegen im Task-Ordner &amp;lsquo;final&amp;rsquo; bereit und die Exportziele sind definiert.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Endzustand&lt;/strong&gt;&lt;br&gt;
Final-Dateien wurden an alle Bestimmungsorte exportiert.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Durchführung&lt;/strong&gt;&lt;br&gt;
Einmalig müssen die Exportziele definiert werden, z. B. für das Jahresarchiv.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow config -s&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;export.archiv&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;../archiv/2017
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Nun können die logischen Pfade für den Export verwendet werden:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow export archiv  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt; images in weekly/20170205/final  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Destination: ../archiv/2017  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Copying 20170202-103548-DSCF4580.jpg. Done.  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Copying 20170205-180804-DSCF4593.jpg. Done.  
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Existiert die Datei bereits in dem Exportverzeichnis, kann das Überschreiben mit &amp;ndash;force erzwungen werden. Das ist nützlich, wenn finals nach dem Export doch noch mal geändert wurden.&lt;/p&gt;
&lt;p&gt;Alternativ kann auch durch Pfadangabe direkt in ein Exportziel kopiert werden.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ fow export --path&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;~/Bilder/Diashow/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;clean-up&#34;&gt;CLEAN UP&lt;/h2&gt;
&lt;p&gt;Ein Task ist etwas Temporäres und hat mit der Erzeugung der final-Bilder und dem anschließenden Export in der Regel ausgedient. Fow bietet zum Aufräumen keine Unterstützung.&lt;br&gt;
Wird ein Task nicht mehr benötigt und wurden alle relevanten Dateien aus dem Task kopiert, ist das Taskverzeichnis z. B. per rm zu löschen:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ rm -r 02_Progress/weekly/20170226
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Hinweis&lt;/strong&gt;&lt;br&gt;
Der aktive Task sollte nicht gelöscht werden, da noch der config-Eintrag dazu existiert).&lt;/p&gt;
&lt;/blockquote&gt;
</content>
    </item>
    
    <item>
      <title>Los geht&#39;s</title>
      <link>https://kollegen.uber.space/posts/pendel-los-gehts/</link>
      <pubDate>Thu, 31 Aug 2017 00:00:00 +0000</pubDate>
      
      <guid>https://kollegen.uber.space/posts/pendel-los-gehts/</guid>
      <description>&lt;h1 id=&#34;los-gehts-auf-der-leinwand&#34;&gt;Los geht’s auf der Leinwand.&lt;/h1&gt;
&lt;p&gt;Nachdem ich ersten Fotos geschossen und entwickelt habe, ist es nun Zeit, die Leinwand aufzusetzen. Schließlich soll beides gleichzeitig entstehen. Machen wir also Nägel mit Köpfen&amp;hellip;&lt;/p&gt;
&lt;p&gt;Ich habe zwar schon ein vage Vorstellung, wie ich die Bilder hier präsentieren möchte, ob das dann auch aber &amp;lsquo;zieht&amp;rsquo;, wird der Besucher dann aber erst später sehen. Außerdem habe ich natürlich noch die Aufgabe, die Darstellung zu programmieren, und dafür muss ich erst ein wenig PHP lernen.&lt;/p&gt;</description>
      <content>&lt;h1 id=&#34;los-gehts-auf-der-leinwand&#34;&gt;Los geht’s auf der Leinwand.&lt;/h1&gt;
&lt;p&gt;Nachdem ich ersten Fotos geschossen und entwickelt habe, ist es nun Zeit, die Leinwand aufzusetzen. Schließlich soll beides gleichzeitig entstehen. Machen wir also Nägel mit Köpfen&amp;hellip;&lt;/p&gt;
&lt;p&gt;Ich habe zwar schon ein vage Vorstellung, wie ich die Bilder hier präsentieren möchte, ob das dann auch aber &amp;lsquo;zieht&amp;rsquo;, wird der Besucher dann aber erst später sehen. Außerdem habe ich natürlich noch die Aufgabe, die Darstellung zu programmieren, und dafür muss ich erst ein wenig PHP lernen.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Über Pendel</title>
      <link>https://kollegen.uber.space/posts/pendel-ueber/</link>
      <pubDate>Wed, 30 Aug 2017 00:00:00 +0000</pubDate>
      
      <guid>https://kollegen.uber.space/posts/pendel-ueber/</guid>
      <description>&lt;h1 id=&#34;über-dieses-projekt&#34;&gt;Über dieses Projekt.&lt;/h1&gt;
&lt;p&gt;Ich fahre manchmal mit dem Rad zur Arbeit. Das sind so ungefähr 40 km hin und das Gleiche zurück. Wie ein Pendel. Die Strecke geht von Gelnhausen-Meerholz (wo ich wohne) nach Frankfurt am Main (wo ich arbeite). Sie führt durch erst das Kinzigtal und dann am Main entlang und ist ausgesprochen flach. Zehn Jahre lang, bin ich immer die gleiche Strecke gefahren, nämlich die schnellste. Schließlich wollte ich schnell zur Arbeit bzw. wieder nach Hause kommen. Und so übersah ich lange Zeit dieses Projekt.&lt;/p&gt;</description>
      <content>&lt;h1 id=&#34;über-dieses-projekt&#34;&gt;Über dieses Projekt.&lt;/h1&gt;
&lt;p&gt;Ich fahre manchmal mit dem Rad zur Arbeit. Das sind so ungefähr 40 km hin und das Gleiche zurück. Wie ein Pendel. Die Strecke geht von Gelnhausen-Meerholz (wo ich wohne) nach Frankfurt am Main (wo ich arbeite). Sie führt durch erst das Kinzigtal und dann am Main entlang und ist ausgesprochen flach. Zehn Jahre lang, bin ich immer die gleiche Strecke gefahren, nämlich die schnellste. Schließlich wollte ich schnell zur Arbeit bzw. wieder nach Hause kommen. Und so übersah ich lange Zeit dieses Projekt.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/pendel-ueber/20110914-073000.jpg&#34; alt=&#34;Der Pendler, Selbstportrait&#34;&gt;&lt;br&gt;
Ab und zu hielt an, um ein Foto zu machen.  Zu jener  Zeit machte ich gerade das Projekt &lt;em&gt;Tagesbild 2014&lt;/em&gt; (s. &lt;a href=&#34;https://flic.kr/s/aHsm9ZBogT&#34;&gt;Flickr&lt;/a&gt;). Ich musste also ein Foto machen und oft war die Fahrt die einzige Gelegenheit, kreativ zu werden. Irgendwann war dann &lt;em&gt;Tagesbild&lt;/em&gt; beendet und ich machte keine Fotos mehr auf dem Weg zur Arbeit.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/pendel-ueber/kalender-deckel.jpg&#34; alt=&#34;Titelfoto aus dem Kalender-Projekt&#34;&gt;&lt;br&gt;
2015 brauchte ich ein Weihnachtsgeschenk für meinen Schwager. Ich beschloss, ihm einen Montagskalender mit 12 MTB-Touren zu schenken. Jede Tour sollte aus  einem GPX-Track und einem Foto für den Kalender bestehen. Da ich weder GPX-Tracks noch Fotos hatten, fuhr ich also 12 Touren und machte dabei ein paar Fotos. Den Kalender nannte ich &lt;em&gt;Alles fahrbar&lt;/em&gt; (s. &lt;a href=&#34;https://flic.kr/s/aHsknxjVj2&#34;&gt;Flickr&lt;/a&gt;). &lt;br&gt;
Dann suchte ich irgendwann nach einem neuen Projekt. Denn Fotos machen klappt bei mir nur als Projekt. Ich brauche diese konkrete Aufgabe und den Druck auf den Auslöser drücken zu müssen. Mir fiel aber nichts ein.&lt;br&gt;
Zufällig sah ich in einer Zeitschrift Fotos der amerikanischen Künstlerin &lt;a href=&#34;http://www.benniefloresansell.com/&#34;&gt;Benedikte Flores Ansell&lt;/a&gt;, welche mit kleinen Fotoplättchen großflächige Installationen macht. Die Künstlerin hatte ihre Fotos verfremdet und auf Plättchen gedruckt. Die Plättchen hatte sie mit je einem Nagel an einer großen Wand zu einer Art &lt;em&gt;Kontinent&lt;/em&gt; zusammengestellt.&lt;br&gt;
Dann stieß ich auf das Odyssee-Projekt von Annette Meyer. Sie installiert Lochkameras an Orten rund um die Welt und macht damit Extrem-Langzeitbelichtungen. Sie berichtet darüber in ihrem Blog &lt;a href=&#34;https://www.annette-meyer.com/lochkamera/&#34;&gt;www.annette-meyer.com&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;die-idee&#34;&gt;Die Idee&lt;/h2&gt;
&lt;p&gt;Die beiden Dinge, Fotos auf Touren und die Anordnung von Fotos zu einem Gesamtwerk, möchte ich zusammenbringen. Die Plättchen brachten mich auf die Idee, Fotos nach gewissen Kriterien anzuordnen. Warum nicht nach ihrem Entstehungsort? Und durch die Kalenderaktion war meine Neugier für alternative Strecken zu meiner bewährten, schnellen Pendelstrecke geweckt.&lt;br&gt;
Die Idee ist nun, zu Pendeln und dabei Fotos zu machen und diese Fotos auf einer weißen Website unter Berücksichtigung der Entstehungskoordinaten anzuordnen. Die Anordnung soll durch einen Algorithmus erfolgen, aber nicht punktgenau nach ihrer Position. Vielmehr wird die Position nur ein Parameter von mehreren sein. Was das nun genau bedeutet und wie das dann aussehen wird, weiß ich noch nicht, jetzt am Beginn. Ich werde es aber am Ende des Projekts wissen.&lt;/p&gt;
&lt;h2 id=&#34;die-umsetzung&#34;&gt;Die Umsetzung&lt;/h2&gt;
&lt;p&gt;Ich starte mit diesem Blog und einer leeren Seite für die Leinwand. Das gibt dem Ganzen erst mal einen Rahmen und erzeugt den nötigen Druck für kreative Ideen. Die leere Seite soll dann zur Leinwand werden. Und mit jedem Pendel kommt ein neues Foto und mit jedem Foto füllt und verändert sich das Gesamtbild. Gefällt es mir nicht, werde ich den Algorithmus für Anordnung ändern, bis es wieder passt.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Exif Spickzettel</title>
      <link>https://kollegen.uber.space/posts/exif-spickzettel/</link>
      <pubDate>Wed, 09 Aug 2017 00:00:00 +0000</pubDate>
      
      <guid>https://kollegen.uber.space/posts/exif-spickzettel/</guid>
      <description>&lt;p&gt;Bei der Fotobearbeitung verbrauche ich immer Zeit für die nebensächlichen Dinge wie das Setzen von Titel, GEO-Daten u. s. w. etc. pp. Daher hier mein ganz persönlicher Spickzettel, den ich in der jeweiligen Situation aus dem Ärmel ziehen kann.&lt;/p&gt;
&lt;p&gt;In meinen Fotos nutzte ich folgende Tags:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Title&lt;/li&gt;
&lt;li&gt;Beschreibung&lt;/li&gt;
&lt;li&gt;Kommentar&lt;/li&gt;
&lt;li&gt;GPS-Daten&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Die verwendeten Tool skönnen viel mehr als hier beschrieben, Dokumentation lesen, lohnt sich.&lt;/p&gt;
&lt;h1 id=&#34;exiftool&#34;&gt;exiftool&lt;/h1&gt;
&lt;p&gt;&amp;ndash;&amp;gt; Für die Einzelbearbeitung&lt;/p&gt;
&lt;p&gt;Übernehmen aller EXIF-Daten aus src.jpg nach dest.jpg (z.B. nach GIMP-Export):&lt;/p&gt;</description>
      <content>&lt;p&gt;Bei der Fotobearbeitung verbrauche ich immer Zeit für die nebensächlichen Dinge wie das Setzen von Titel, GEO-Daten u. s. w. etc. pp. Daher hier mein ganz persönlicher Spickzettel, den ich in der jeweiligen Situation aus dem Ärmel ziehen kann.&lt;/p&gt;
&lt;p&gt;In meinen Fotos nutzte ich folgende Tags:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Title&lt;/li&gt;
&lt;li&gt;Beschreibung&lt;/li&gt;
&lt;li&gt;Kommentar&lt;/li&gt;
&lt;li&gt;GPS-Daten&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Die verwendeten Tool skönnen viel mehr als hier beschrieben, Dokumentation lesen, lohnt sich.&lt;/p&gt;
&lt;h1 id=&#34;exiftool&#34;&gt;exiftool&lt;/h1&gt;
&lt;p&gt;&amp;ndash;&amp;gt; Für die Einzelbearbeitung&lt;/p&gt;
&lt;p&gt;Übernehmen aller EXIF-Daten aus src.jpg nach dest.jpg (z.B. nach GIMP-Export):&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ exiftool -tagsFromFile jpg/src.jpg final/dest.jpg
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Setzen des Titels:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ exiftool -title&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;Vergänglichkeit&amp;#39;&lt;/span&gt; final/dest.jpg
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Setzen der Beschreibung:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ exiftool -description&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;Beschreib mich&amp;#39;&lt;/span&gt; final/dest.jpg
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Setzen des Kommentars:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ exiftool -overwrite_original -comment&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;Fremd bin ich eingezogen...&amp;#39;&lt;/span&gt; final/dest.jpg
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;GPS-Position aus einer Track-Datei setzen:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ exiftool -geotag 20170719.gpx final/dest.jpg
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Am Ende löscht man die Originaldatei:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ exiftool -delete_original! final/dest.jpg
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Alternativ kann man auch Originaldatei mit jedem Befehl direkt löschen, z.B.:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ exiftool -overwrite_original -tagsFromFile jpg/src.jpg final/dest.jpg
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Anzeigen der hier bearbeiteten Felder:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ exiftool -title -description -comment -gpsposition final/dest.jpg
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Title                           : Vergänglichkeit
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Description                     : Beschreib mich
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Comment                         : Fremd bin ich eingezogen...
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;GPS Position                    : &lt;span style=&#34;color:#ae81ff&#34;&gt;51&lt;/span&gt; deg 23&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39; 20.36&amp;#34; N, 3 deg 26&amp;#39;&lt;/span&gt; 26.46&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34; E
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id=&#34;weitere-tools&#34;&gt;Weitere Tools&lt;/h1&gt;
&lt;h2 id=&#34;geotag&#34;&gt;geotag&lt;/h2&gt;
&lt;p&gt;&amp;ndash;&amp;gt; GPS-Position setzen, wenn keine Trackdatei vorhanden ist.&lt;/p&gt;
&lt;p&gt;Bilddatei laden, im Browser anzeigen lassen, Positionsnadel verschieben und speichern.&lt;br&gt;
Leider bietet geotag keine Kommandozeilenparameter.&lt;/p&gt;
&lt;p&gt;Geotag ist eine jar-Datei.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Geotag startet eventuell nicht mit open-java-sdk.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;gimp&#34;&gt;GIMP&lt;/h2&gt;
&lt;p&gt;Gimp übernimmt die EXIF-Daten des ersten Bildimports. Die werden dann auch mit exportiert. XMP-Import und -Export klappen bei mir nicht, auch nicht das manuelle ändern der Werte. Deshalb ignoriere ich bei der Verwendung von GIMP die EXIF-Daten und setze sie lieber mit exiftool.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Foto-Workflow</title>
      <link>https://kollegen.uber.space/posts/fow-foto-workflow/</link>
      <pubDate>Sat, 04 Mar 2017 00:00:00 +0000</pubDate>
      
      <guid>https://kollegen.uber.space/posts/fow-foto-workflow/</guid>
      <description>&lt;p&gt;Fotos von der Digitalkamera zum sicheren Ablageort zu bringen wird sehr schnell unübersichtlich. Die letzten Urlaubsfotos liegen noch unbearbeitet in einem tmp-Ordner und aus der Nachbearbeitung meiner Kalenderfotos ist auch noch nichts geworden. Ein strukturiertes System muss her&amp;hellip;&lt;/p&gt;
&lt;p&gt;Es gibt viele Programme, um digitale Bildersammlungen zu verwalten. Hier geht es aber um den Schritt davor, also der Entwicklungsprozess vom Kamerabild über die Bearbeitung, Publizieren bis zum Archiv. Der hier skizzierte Workflow bedient sich vorhandener Tools und regelt lediglich die strukturierte Verwendung und systematische Abarbeitung der einzelnen Schritte.&lt;/p&gt;</description>
      <content>&lt;p&gt;Fotos von der Digitalkamera zum sicheren Ablageort zu bringen wird sehr schnell unübersichtlich. Die letzten Urlaubsfotos liegen noch unbearbeitet in einem tmp-Ordner und aus der Nachbearbeitung meiner Kalenderfotos ist auch noch nichts geworden. Ein strukturiertes System muss her&amp;hellip;&lt;/p&gt;
&lt;p&gt;Es gibt viele Programme, um digitale Bildersammlungen zu verwalten. Hier geht es aber um den Schritt davor, also der Entwicklungsprozess vom Kamerabild über die Bearbeitung, Publizieren bis zum Archiv. Der hier skizzierte Workflow bedient sich vorhandener Tools und regelt lediglich die strukturierte Verwendung und systematische Abarbeitung der einzelnen Schritte.&lt;/p&gt;
&lt;h1 id=&#34;übersicht&#34;&gt;Übersicht&lt;/h1&gt;
&lt;p&gt;Folgende Aufgaben fallen in der Regel an (nicht alle Schritte sind immer nötig):&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Bilddateien von der jeweiligen Kamera auf den Computer kopieren (Import)&lt;/li&gt;
&lt;li&gt;Sicherungskopie der Dateien erstellen und Kamerabilder löschen (Backup)&lt;/li&gt;
&lt;li&gt;Umbenennen der Bilder in eine einheitliches Zeitstempelformat (Rename)&lt;/li&gt;
&lt;li&gt;Hinzufügen von Geopositionsdaten, von der Smartphone-App (Location)&lt;/li&gt;
&lt;li&gt;Verschieben, löschen und gruppieren der Bilder in einzelnen Projektordner (Sort)&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;p&gt;Nun wird in den Projekten, zeitlich unabhängig voneinander, jedes Bild bearbeitet.&lt;/p&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li&gt;&amp;lsquo;Entwickeln&amp;rsquo; der Bilder in der digitalen Dunkelkammer (Develop)
&lt;ul&gt;
&lt;li&gt;Bildbearbeitung ausführen&lt;/li&gt;
&lt;li&gt;Titel setzen&lt;/li&gt;
&lt;li&gt;Erstellen der finalen Bildes&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Publizieren und Archivieren der Bilder (Export)&lt;/li&gt;
&lt;li&gt;Aufräumen durch Löschen des Projekts incl. aller Bilder (Clean)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Die gesamte Workflowbearbeitung erfolgt auf einem Linux-Computer. Der lokale Server fungiert als Datendrehscheibe für die GPS-Daten, als Backup-Speicher sowie als Archiv für die fertigen Bilder.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/fow-foto-workflow/Workflow-%C3%9Cbersicht.png&#34; alt=&#34;Workflow-Übersicht&#34;&gt; Workflow-Übersicht&lt;/p&gt;
&lt;p&gt;Der Workflow lässt sich natürlich genauso auf einem Windows-PC durchführen. Hat man einen PC und möchte nicht auf die Linux-Umgebung verzichtet, bietet es sich an, Linux in einer virtuellen Umgebung zu betreiben. Auf meinem Windows-PC kommt seit Jahren VirtualBox mit Linux Mint/Mate zum Einsatz. Im Folgenden gehen wir aber von einem reinem Kubuntu-Computer aus.&lt;/p&gt;
&lt;h2 id=&#34;das-workflow-verzeichnis&#34;&gt;Das Workflow-Verzeichnis&lt;/h2&gt;
&lt;p&gt;Der Workflow hat eine feste Verzeichnisstruktur mit den drei Hauptverzeichnissen 00_Inbox, 01_Import und 02_Progress.&lt;/p&gt;
&lt;p&gt;Das erste Verzeichnis &lt;strong&gt;00_Inbox&lt;/strong&gt; dient als Eingangskorb. Hier werden die externen Bilder unverändert gesammelt. In das zweite Verzeichnis, &lt;strong&gt;01_Import&lt;/strong&gt;, kommen die Bilder durch Umbenennung. Hier können auch die Geo-Positionen hinzugefügt werden.
Das letzte Oberverzeichnis heist &lt;strong&gt;02_Progress&lt;/strong&gt;, in welches die Bilder dann schließlich, in frei wählbaren Unterordnern, nach Projekten organisiert werden.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/fow-foto-workflow/verzeichnisstruktur.png&#34; alt=&#34;Verzeichnisstruktur&#34;&gt; Verzeichnisstruktur&lt;/p&gt;
&lt;p&gt;Ein Projektverzeichnis selbst (z. B. 20170226) hat wiederum eine feste Verzeichnisstruktur mit folgenden Verzeichnissen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;final - Fertig bearbeitete Bilder&lt;/li&gt;
&lt;li&gt;jpg - Originalbilder im JPG-Format&lt;/li&gt;
&lt;li&gt;raw - Originalbilder im RAW-Format&lt;/li&gt;
&lt;li&gt;videos - Originalvideos&lt;/li&gt;
&lt;li&gt;work - Optionales Arbeitsverzeichnis für Hilfsdateien wie z. B. Gimp-Projektdateien&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Betrachten wir nun die einzelnen Schritte genauer und stellen vor, mit welchen Tools die einzelnen Schritte durchgeführt werden können. Welche Programme für die einzelnen Schritte einsetzt, ist letztendlich natürlich Geschmackssache. Wichtig ist nur, dass man das für jeden Zweck das passende Tool findet und dann möglichste dabei bleibt. Als Bilddateien werden hier JPG, RAW und Video-Dateien zusammengefasst.&lt;/p&gt;
&lt;h1 id=&#34;die-einzelnen-schritte-des-workflows&#34;&gt;Die einzelnen Schritte des Workflows&lt;/h1&gt;
&lt;p&gt;Der Workflow setzt sich aus den einzelnen Schritten zusammen, welche vorwiegend streng sequenziell durchgeführt werden. Jeder Schritt hat einen definierten Anfangs- und Endzustand und eine definiertes Tooling. Kommen weitere Bilder hinzu, so wird der Workflow einfach wieder von vorne begonnen.&lt;/p&gt;
&lt;h2 id=&#34;import&#34;&gt;Import&lt;/h2&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/fow-foto-workflow/import-header.jpg&#34; alt=&#34;Import&#34;&gt;&lt;/p&gt;
&lt;p&gt;Eingang: Bilddateien liegen auf externem Medium, z. B. SD-Card&lt;br&gt;
Ausgang: Bilddateien liegen in 00_Inbox&lt;/p&gt;
&lt;p&gt;Import mit der Dateiverwaltung Dolphin im geteilten Modus. Die Dateien werden per Verschieben von der externen Quelle, abhängig von Dateityp, in das jeweilige Unterverzeichnis verschoben.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/fow-foto-workflow/Laden-externer-Bilder-durch-Verschieben.jpg&#34; alt=&#34;Laden externer Bilder durch Verschieben&#34;&gt; Laden externer Bilder durch Verschieben&lt;/p&gt;
&lt;p&gt;Alternativ zum Drag&amp;rsquo;n Drop kann man den Import einfacher per Scripting durchführen. Befindet man sich im Workflow-Verzeichnis und hat &amp;lsquo;sdcard&amp;rsquo; gemountet, dann verschiebt man die Dateien sortenrein in drei Schritten:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;photo-workflow$ find /media/sdcard/ -name *.jpg -exec mv &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;{}&amp;#34;&lt;/span&gt; 00_Inbox/jpg &lt;span style=&#34;color:#ae81ff&#34;&gt;\;&lt;/span&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;photo-workflow$ find /media/sdcard/ -name *.raf -exec mv &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;{}&amp;#34;&lt;/span&gt; 00_Inbox/raw &lt;span style=&#34;color:#ae81ff&#34;&gt;\;&lt;/span&gt;   
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;photo-workflow$ find /media/sdcard/ -name *.mov -exec mv &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;{}&amp;#34;&lt;/span&gt; 00_Inbox/video &lt;span style=&#34;color:#ae81ff&#34;&gt;\;&lt;/span&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;backup&#34;&gt;Backup&lt;/h2&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/fow-foto-workflow/backup-header.jpg&#34; alt=&#34;Backup&#34;&gt;
Eingang: Alle Bilddateien befinden sich innerhalb des Workflow-Verzeichnisses&lt;br&gt;
Ausgang: Workflow-Verzeichnis extern gesichert&lt;/p&gt;
&lt;p&gt;Der Backup erfolgt einfach per rsync:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;photo-workflow$ rsync -av --delete . /media/diskstation/christianDok/mirrors/photo-workflow
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;rename&#34;&gt;Rename&lt;/h2&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/fow-foto-workflow/rename-header.jpg&#34; alt=&#34;Rename&#34;&gt;&lt;/p&gt;
&lt;p&gt;Eingang: Bilddateien in 00_Inbox&lt;br&gt;
Ausgang: Bilddateien in 01_Import, 00_Inbox ist leer.&lt;/p&gt;
&lt;p&gt;Die Dateien werden anhand Aufnahmezeitstempel aus den EXIF-Informationen und Originalname in eine einheitliches Format umbenannt. Der Originalname ist Teil des neuen Namens. Damit ist der neue Name immer eindeutig (z. B. bei Serienbildern oder Import von verschiedenen Kameras). Ausserdem gibt es so keine Probleme, falls eine Bilddatei aus versehen ein zweites mal importiert wird: Die alte Datei wird einfach überschrieben.&lt;br&gt;
Als Tool verwende ich Rapid Photo Downloader. Man legt einmal die Regeln fest, dass Umbenennen/Verschieben geht dann mit wenigen Klicks.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/fow-foto-workflow/Rapid-Photo-Downloader-Verschieben-von-jpg-Bildern.jpg&#34; alt=&#34;Rapid Photo Downloader: Verschieben von jpg-Bildern&#34;&gt; Rapid Photo Downloader: Verschieben von jpg-Bildern&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/fow-foto-workflow/Namensregel-f%C3%BCr-JPG-Dateien.jpg&#34; alt=&#34;Namensregel für JPG-Dateien&#34;&gt; Namensregel für JPG-Dateien&lt;/p&gt;
&lt;h2 id=&#34;location&#34;&gt;Location&lt;/h2&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/fow-foto-workflow/location-header.jpg&#34; alt=&#34;Location&#34;&gt;&lt;/p&gt;
&lt;p&gt;Eingang: Bilddateien in 01_Import, optional GPX-Dateien in externer Quelle&lt;br&gt;
Ausgang: Geänderte Bilddateien in 01_Import, GPX-Dateien unverändert&lt;/p&gt;
&lt;p&gt;Für JPG-Dateien werden die Geo-Koordinaten den Bildern hinzugefügt. Liegen RAW-Dateien vor, wird der Schritt übersprungen und erst vor dem Export mit den Final-Bildern durchgeführt.&lt;/p&gt;
&lt;p&gt;Um GPX-Dateien zu erstellen verwende ich meistens GPSLogger auf dem Android-Smartphone. Die so erstellten Dateien werden auf den lokalen Server synchronisiert (mit FolderSync geht das automatisch).&lt;/p&gt;
&lt;p&gt;Als Tool kommt Geotag zum Einsatz. Damit kann man für ein komplettes Bildverzeichnis anhand einer beliebigen Menge von GPX-Dateien die Koordinaten hinzufügen. Hat man keine GPX-Datei, kann man die Location auch per Google-Maps hinzufügen.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/fow-foto-workflow/Geotag.jpg&#34; alt=&#34;Geotag&#34;&gt; Geotag&lt;/p&gt;
&lt;h2 id=&#34;sort&#34;&gt;Sort&lt;/h2&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/fow-foto-workflow/sort-out-header.jpg&#34; alt=&#34;Sort&#34;&gt;&lt;/p&gt;
&lt;p&gt;Eingang: Bilddateien in 01_Import&lt;br&gt;
Ausgang: Bilddateien in 02_Progress, 01_Import ist leer&lt;/p&gt;
&lt;p&gt;In diesem Schritt werden zusammenhängende Bilddateien auf einzelne Projekte verteilt. Dazu wird zuerst das Projekt unter 02_Progress/&lt;!-- raw HTML omitted --&gt;/&lt;!-- raw HTML omitted --&gt; angelegt. Ein Beispiel für eine Projektgruppe wäre &amp;lsquo;weekly&amp;rsquo; und pro Woche erstellt man dann darin ein Projekt (z. B. &amp;lsquo;20170205&amp;rsquo;).&lt;/p&gt;
&lt;p&gt;Die Verzeichnisse werden per Dolphin von Hand erstellt. Die Dateien werden, ebenfalls mit Dolphin, im geteilten Modus per Drag&amp;rsquo;n Drop verschoben.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/fow-foto-workflow/Projekt-f%C3%BCllen.png&#34; alt=&#34;Projekt füllen&#34;&gt; Projekt füllen&lt;/p&gt;
&lt;p&gt;Hat man neben JPGs noch RAW-Dateien, sind diese ebenfalls zu verschieben (ins Zielverzeichnis RAW).&lt;/p&gt;
&lt;h3 id=&#34;raw-automatisch-verschieben&#34;&gt;RAW automatisch verschieben&lt;/h3&gt;
&lt;p&gt;Erstellt man mit der Kamera gleichzeitig JPGs und RAWs, verschiebt man erst die JPGs wie beschrieben. Die gleichnamigen RAWs sind dann zusätzlich zu verschieben (Zielverzeichnis RAW). Per Script kann man das auch automatisieren. Nachdem die JPGs verschoben sind, lässt man die gleichnamigen RAWs nachziehen. Dazu ruft man aus dem Projektverzeichnis heraus auf:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;02_Progress/weekly/20170205$ ls ../../../01_Import/raw/ -1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;20170202-103548-DSCF4580.raf  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;20170205-180804-DSCF4593.raf  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;02_Progress/weekly/20170205$ &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; f in jpg/*; &lt;span style=&#34;color:#66d9ef&#34;&gt;do&lt;/span&gt; g&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;${&lt;/span&gt;f/.jpg/.raf&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;; h&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;${&lt;/span&gt;g:4&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;; mv &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;../../../01_Import/raw/&lt;/span&gt;$h&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; raw/ ; &lt;span style=&#34;color:#66d9ef&#34;&gt;done&lt;/span&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;02_Progress/weekly/20170205$ ls raw/ -1  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;20170202-103548-DSCF4580.raf  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;20170205-180804-DSCF4593.raf  
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Das Beispiel geht davon aus, dass man sich im aktuellen Projektverzeichnis befindet und die JPG-Dateien bereits dort einsortiert worden sind. Im Verzeichnis 01_Import/raw befinden sich die korrespondierende raf-Dateien.&lt;br&gt;
Dieser Workflowschritt wird pro Projekt vollständig durchgeführt, d.h. die Bilder eines Projektes sind entweder noch alle in 01_Import oder &lt;strong&gt;vollständig&lt;/strong&gt; nach 02_Progress verschoben worden.&lt;/p&gt;
&lt;h3 id=&#34;projektbearbeitung&#34;&gt;Projektbearbeitung&lt;/h3&gt;
&lt;p&gt;Mit Sort sind nun die Bilddateien in Projekte einsortiert worden. Die weitere Bearbeitung erfolgt nun in diesen einzelnen Projekten. Das kann zeitlich unabhängig von einander erfolgen.&lt;/p&gt;
&lt;h2 id=&#34;develop&#34;&gt;Develop&lt;/h2&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/fow-foto-workflow/develop-header.jpg&#34; alt=&#34;Develop&#34;&gt;&lt;/p&gt;
&lt;p&gt;Eingang: Originalbilder in den Projektverzeichnissen jpg, raw.&lt;br&gt;
Ausgang: Finale Bilddateien als Kopien im Projektverzeichnis final (Auswahl).&lt;/p&gt;
&lt;p&gt;Die JPGs bzw. RAWs werden nun vorsortiert, bearbeitetet und nach final exportiert. Die Originalbilder bleiben dabei unverändert. Dabei können die Bilder zusätzlich mit einem Titel ergänzt werden. Haben die Finals noch keine Geo-Positionsdaten, können diese, wie bereits in Schritt &amp;lsquo;Location&amp;rsquo; beschrieben, um diese ergänzt werden.
Das eingesetzte Tool ist Geschmackssache, ich verwende Darktable.&lt;/p&gt;
&lt;p&gt;Beim Vorsortieren werden die zu bearbeitenden Bilder markiert, z.B. durch Vergabe von drei Sternen:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/fow-foto-workflow/Darktable-Bilder-auf-dem-Leuchttisch-vorsortieren.jpg&#34; alt=&#34;Darktable: Bilder auf dem Leuchttisch vorsortieren&#34;&gt; Darktable: Bilder auf dem Leuchttisch vorsortieren&lt;/p&gt;
&lt;p&gt;Nach der Bearbeitung wird das Bild nach final exportiert, ggf. mit einem Titel.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/fow-foto-workflow/Darktable-Export.jpg&#34; alt=&#34;Darktable: Export&#34;&gt; Darktable: Export&lt;/p&gt;
&lt;p&gt;Das erstellte Bild kann direkt nach Final exportiert werden. Im Feld &amp;lsquo;Speicherziel&amp;rsquo; gibt man dazu &lt;code&gt;&#39;$(FILE_FOLDER)/../final/$(FILE_NAME)&#39;&lt;/code&gt; an.&lt;/p&gt;
&lt;h2 id=&#34;export&#34;&gt;Export&lt;/h2&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/fow-foto-workflow/export-header.jpg&#34; alt=&#34;Export&#34;&gt;&lt;/p&gt;
&lt;p&gt;Eingang: Finale Bilddateien liegen im Unterverzeichnis final&lt;br&gt;
Ausgang: Bilddateien wurden zu allen Zielen exportiert (Kopie)&lt;/p&gt;
&lt;p&gt;Lokale Exportziele werden durch Kopieren der Dateien aus dem final-Verzeichnis gefüllt (Dolphin). Hochladen in Webportale erfolgt mit deren Importseiten (flickr, Instagram, etc.).&lt;/p&gt;
&lt;p&gt;Exportieren der Daten auf den lokalen Server:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;photo-workflow/02_Progress/weekly/20170205$ ls final/
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;20170202-103548-DSCF4580.jpg  
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;photo-workflow/02_Progress/weekly/20170205$ cp final/*.* media/diskstation/photp/tagesbild/2017
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;clean&#34;&gt;Clean&lt;/h2&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/fow-foto-workflow/clean-header.jpg&#34; alt=&#34;Clean&#34;&gt;&lt;/p&gt;
&lt;p&gt;Eingang: Projektverzeichnis mit Bilddateien&lt;br&gt;
Ausgang: Projekt mit allen Originaldateien und Zwischendateien wurden gelöscht&lt;/p&gt;
&lt;p&gt;Nach dem Export kann das Projektverzeichnis gelöscht werden: Alle finals wurden exportiert, alle Originalbilder liegen unter jpg bzw. raw. Die Originaldateien werden also nicht aufgehoben.&lt;br&gt;
Auch das Entfernen kann man mit dem Dolphin oder per Bash machen:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;photo-workflow/02_Progress/weekly$  rm -r &lt;span style=&#34;color:#ae81ff&#34;&gt;20170205&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Damit ist der Workflow für das Projekt durchgeführt. Aber sicherlich sind schon die nächsten Bilder auf der Kamera und der Prozess beginnt von vorne&amp;hellip;&lt;/p&gt;
&lt;h1 id=&#34;links&#34;&gt;Links&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;Dolphin, wiki.ubuntuusers.de/Dolphin&lt;/li&gt;
&lt;li&gt;Rapid Photo Downloader, &lt;a href=&#34;https://www.damonlynch.net/rapid&#34;&gt;www.damonlynch.net/rapid&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Geotag, geotag.sourceforge.net&lt;/li&gt;
&lt;li&gt;GPSLogger play.google.com/store/apps/details?id=com.mendhak.gpslogger&lt;/li&gt;
&lt;li&gt;FolderSync play.google.com/store/apps/details?id=dk.tacit.android.foldersync.full&lt;/li&gt;
&lt;li&gt;Darktable, &lt;a href=&#34;https://www.darktable.org&#34;&gt;www.darktable.org&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
    </item>
    
    <item>
      <title>Hochbett Aus Alten Dachsparren</title>
      <link>https://kollegen.uber.space/posts/hochbett-aus-alten-dachsparren/</link>
      <pubDate>Tue, 17 Jan 2017 00:00:00 +0000</pubDate>
      
      <guid>https://kollegen.uber.space/posts/hochbett-aus-alten-dachsparren/</guid>
      <description>&lt;p&gt;Mit diesem Upcycling-Projekt wurde aus den verwitterten Dachsparren des alten Wintergartens ein Kinderhochbett geschaffen.&lt;/p&gt;
&lt;p&gt;Die ausgedienten Dachsparren (13 x 7 und 14 x 8 cm) lagerten seit vier Jahren im Freien und waren bereits dementsprechend zum Teil verwittert, krumm und verdreht. Wir wollten sie eigentlich gerade entsorgen&amp;hellip;&lt;br&gt;
Durch Umgestaltung des Kinderzimmers wurde ein Hochbett benötigt, welches
im rechten Winkel zum anderen Kinderbett unter der Dachschräge stehen sollte.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/hochbett-aus-alten-dachsparren/Kinderbett-mit-linksseitig-versetzten-Pfosten.jpg&#34; alt=&#34;Kinderbett mit linksseitig versetzten Pfosten&#34;&gt; Kinderbett mit linksseitig versetzten Pfosten&lt;/p&gt;</description>
      <content>&lt;p&gt;Mit diesem Upcycling-Projekt wurde aus den verwitterten Dachsparren des alten Wintergartens ein Kinderhochbett geschaffen.&lt;/p&gt;
&lt;p&gt;Die ausgedienten Dachsparren (13 x 7 und 14 x 8 cm) lagerten seit vier Jahren im Freien und waren bereits dementsprechend zum Teil verwittert, krumm und verdreht. Wir wollten sie eigentlich gerade entsorgen&amp;hellip;&lt;br&gt;
Durch Umgestaltung des Kinderzimmers wurde ein Hochbett benötigt, welches
im rechten Winkel zum anderen Kinderbett unter der Dachschräge stehen sollte.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/hochbett-aus-alten-dachsparren/Kinderbett-mit-linksseitig-versetzten-Pfosten.jpg&#34; alt=&#34;Kinderbett mit linksseitig versetzten Pfosten&#34;&gt; Kinderbett mit linksseitig versetzten Pfosten&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/hochbett-aus-alten-dachsparren/Ausgangsmaterial-sind-ausrangierte-Dachsparren.jpg&#34; alt=&#34;Ausgangsmaterial sind ausrangierte Dachsparren&#34;&gt;
Ausgangsmaterial sind ausrangierte Dachsparren&lt;/p&gt;
&lt;p&gt;Es wurde schnell klar, dass es sich um eine Individualkonstruktion handelt, da die linken Pfosten versetzt sein mussten. Es wurde entschieden beide Probleme mit einer Klappe zu schlagen und das Bett aus den Balken selbst zu bauen.
Nach etwas Überlegung wurde die Aufgabe wie folgt gestellt:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Wenig Holz zukaufen, möglichst alles aus den Dachsparren herstellen&lt;/li&gt;
&lt;li&gt;Stabile Konstruktion durch Verzapfung und Einblattung, um der Belastung durch Toben standzuhalten&lt;/li&gt;
&lt;li&gt;Präzise Verbindungsflächen durch Fräsen herstellen - während der Balken an sich seine &amp;lsquo;krumme&amp;rsquo; Form behalten soll&lt;/li&gt;
&lt;li&gt;Lösbare Verbindungen durch metrische Schrauben, Vermeidung von Holzschrauben&lt;/li&gt;
&lt;li&gt;Fest montierte Leiter mit kleinem Einstieg&lt;/li&gt;
&lt;li&gt;Für Matratze 190 x 90&lt;/li&gt;
&lt;li&gt;Schlafhöhe ca. 1,35 m&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Der Blog liefert keine Bauanleitung, sondern gibt nur die Erfahrung wieder und kann so Anregung für ähnliche Projekte geben.&lt;/p&gt;
&lt;p&gt;Die Bauzeit erstreckte sich über mehrere Monate bis in den Winter hinein, da ich nur immer stundenweise arbeiten konnte. Als Werkstatt und Lager musste der Schuppen dienen, grobe Arbeiten wurden im Garten auf wackligen Holzböcken gemacht.&lt;/p&gt;
&lt;p&gt;Es ergaben sich folgende Bauphasen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Erstellen eines Arbeitstisches und Zukauf von Werkzeug und Zwingen&lt;/li&gt;
&lt;li&gt;Entfernen aller nicht verwendbaren Balkenteile und anschließend Balken auf Länge bringen
Hobeln der Oberfläche
Längsteilen zur Erstellung der schmalen Bretter&lt;/li&gt;
&lt;li&gt;Herstellung der Verbindungszapfen und -Flächen durch Fräsen&lt;/li&gt;
&lt;li&gt;Schraublöcher bohren und Schrauben herstellen&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&#34;werkzeuge&#34;&gt;Werkzeuge&lt;/h1&gt;
&lt;p&gt;Die wichtigsten Werkzeuge, welche zum Einsatz kamen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Kapp- und Gehrungssäge&lt;/li&gt;
&lt;li&gt;Elektrohobel (Bosch Elektrohobel PHO35-82C)&lt;/li&gt;
&lt;li&gt;Handkreissäge (AEG)&lt;/li&gt;
&lt;li&gt;Oberfräse (Bosch GOF 1250 LCE)&lt;/li&gt;
&lt;li&gt;Heimwerker Bohrmaschine und mobiler Bohrständer (Black- und Decker, Wolfcraft)&lt;/li&gt;
&lt;li&gt;Gewindeschneider&lt;/li&gt;
&lt;li&gt;Tischspannelemente und Schraubzwingen&lt;/li&gt;
&lt;li&gt;Handsäge Holz, Handsäge Metall, &amp;hellip;&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&#34;arbeitstisch&#34;&gt;Arbeitstisch&lt;/h1&gt;
&lt;p&gt;Um die schweren und z.T. langen Balken fräsen und bohren zu können, muss ein stabiler Tisch her. Die Balken sollen per Klemmen auf dem Tisch fixiert werden können. Bei Nichtbedarf soll der Tisch nicht zu viel Platz einnehmen. Angeregt durch die Anleitung Arbeitstisch mit Lochplatte von Roberto Hoffmann auf Eigenbaukombinat.de ist eine sehr einfacher, U-förmiger Tisch erstellt worden:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Maße 70 x 120, Höhe 32 cm&lt;/li&gt;
&lt;li&gt;Tischlerplatte 19 mm&lt;/li&gt;
&lt;li&gt;Lochraster 96 mm, 20 mm Lochdurchmesser&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Der Tisch ist schwer genug, dass auch seitlich ein Balken fixiert werden kann.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/hochbett-aus-alten-dachsparren/Arbeitstisch-im-Einsatz.jpg&#34; alt=&#34;Arbeitstisch im Einsatz&#34;&gt; Arbeitstisch im Einsatz&lt;/p&gt;
&lt;p&gt;Die Tischlerplatten kommen aus dem Baumarkt, ca. 80 EUR incl. Zuschnitt. Die Investition lohnt sich aber. Die Platte wird auf die beiden Seitenteile montiert und mit Holzschrauben und Holzdübeln verleimt. Innen sind die beiden Seitenteile mit zwei Holzstäben versteift.&lt;/p&gt;
&lt;p&gt;Neben normalen Spannklemmen kommen spezielle Spannelemente für den Tisch  zum Einsatz:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2 Bessey BE-TW16-10-2K mit Werkbankadapter 3/4&amp;quot;&lt;/li&gt;
&lt;li&gt;2 Festool Schraubzwinge FSZ 120&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Die Bessey-Zwingen haben sich als die besseren Zwingen erwiesen: Sie sind sehr schnell zu montieren (auch einhändig), spannen sehr fest und sind ausreichen lang. Die Festool-Zwingen sind etwas zu breit für das 20-Loch und müssen leicht eingepresst werden.&lt;/p&gt;
&lt;h1 id=&#34;werkzeug&#34;&gt;Werkzeug&lt;/h1&gt;
&lt;p&gt;Kurzer Abriss der Werkzeuge und Arbeitsmittel und deren Verwendung.&lt;/p&gt;
&lt;h2 id=&#34;kapp--und-gehrungssäge&#34;&gt;Kapp- und Gehrungssäge&lt;/h2&gt;
&lt;p&gt;Damit werden die Balken auf Länge gesägt, Nachbearbeitung erfolgt nicht. Hat man die Säge einmal auf einen rechtwinkligen Schnitt in beiden Achsen eingerichtet, ist sie dann einfach und problemlos einsetzbar.&lt;/p&gt;
&lt;h2 id=&#34;elektrohobel&#34;&gt;Elektrohobel&lt;/h2&gt;
&lt;p&gt;Hier reicht ein alter Hobel mit neuen Messern aus. Damit wird die lasierte und verwitterte Oberfläche der Balken abgenommen und die Balken bekommen ihren rustikalen Touch. Vor dem Hobeln ist der Balken auf abgebrochen Schrauben und Nägel zu untersuchen, ansonsten sind die Messer schnell hinüber.&lt;/p&gt;
&lt;h2 id=&#34;handkreissäge&#34;&gt;Handkreissäge&lt;/h2&gt;
&lt;p&gt;Mit Hilfe der Führungsschiene werden die Balken halbiert, um die schmalen Bretter des Geländers zu sägen.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/hochbett-aus-alten-dachsparren/Balken-l%C3%A4ngs-teilen.jpg&#34; alt=&#34;Balken längs teilen&#34;&gt; Balken längs teilen&lt;/p&gt;
&lt;p&gt;Der Sägeschnitt erfolgt von zwei Seiten, da das Sägeblatt nicht tief genug eintaucht:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/hochbett-aus-alten-dachsparren/Erster-Schnitt.jpg&#34; alt=&#34;Erster Schnitt&#34;&gt; Erster Schnitt&lt;/p&gt;
&lt;h2 id=&#34;oberfräse&#34;&gt;Oberfräse&lt;/h2&gt;
&lt;p&gt;Für das Erstellen der Zapfenlöcher und Einblattungen (Fräser: HM-Nutfräser mit Bohrschneide, D16). Für die Blindzapfenlöcher sind Frässchablonen anzufertigen (s. &lt;a href=&#34;https://www.youtube.com/watch?v=MH3ZYx1dFiI&#34;&gt;Youtube-Video&lt;/a&gt;  von Heiko Rech), dafür ist eine Kopierhülse D24 hinzuzukaufen.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/hochbett-aus-alten-dachsparren/Anwendung-der-Kopierh%C3%BClse-f%C3%BCr-die-Nut-der-Leitersprossen.jpg&#34; alt=&#34;Anwendung der Kopierhülse für die Nut der Leitersprossen&#34;&gt; Anwendung der Kopierhülse für die Nut der Leitersprossen&lt;/p&gt;
&lt;p&gt;Die Auflagefläche der Fräse reicht für breite Frässchablonen nicht immer aus. Abhilfe schafft ein (unfixiertes) Auflagebrett mit kleinerer Aussparung (weiß).&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/hochbett-aus-alten-dachsparren/Schwimmendes-Auflagebrett.jpg&#34; alt=&#34;Schwimmendes Auflagebrett&#34;&gt; Schwimmendes Auflagebrett&lt;/p&gt;
&lt;p&gt;Für Dübellöcher: Dübellochfräser 8mm. Für die meisten Löcher wird eine Anreißschablone erstellt und mittels Anreißnadel der Mittelpunkt auf das Werkstück übertragen. Das geht recht schnell und ist ausreichend präzise.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/hochbett-aus-alten-dachsparren/Schablone-von-einer-Seite.jpg&#34; alt=&#34;Schablone von einer Seite&#34;&gt;
Schablone von einer Seite&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/hochbett-aus-alten-dachsparren/und-von-der-anderen-Seite.jpg&#34; alt=&#34;Schablone von der anderen Seite&#34;&gt; Schablone von der anderen Seite&lt;/p&gt;
&lt;p&gt;Zum Abrunden der Kanten wird ein einfacher Abrundfräser aus dem Baumarkt verwendet.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/hochbett-aus-alten-dachsparren/Abrundfr%C3%A4sen.jpg&#34; alt=&#34;Abrundfräsen&#34;&gt; Abrundfräsen&lt;/p&gt;
&lt;h2 id=&#34;bohrmaschine-und-mobiler-bohrständer&#34;&gt;Bohrmaschine und mobiler Bohrständer&lt;/h2&gt;
&lt;p&gt;Bohren der Löcher für die Schraubverbindungen (Schrauben und Querbolzenmutter). Die Bohrmaschine hat recht viel Spiel, da hilft der mobile Bohrständer nur bedingt. Löcher, welche durch zwei Werkstücke führen, werden immer von der Berührungsseite aus gebohrt. Das hilft, den Versatz in Grenzen zu halten. Als Bohrer kommen Holzspiral- bzw. Schlangenbohrer zum Einsatz, welche sich äußerst präzise in das Werkstück reinarbeiten.&lt;/p&gt;
&lt;p&gt;Der mobile Bohrständer von Wolfcraft ist nicht sehr stabil und lässt sich nur bedingt genau auf 90° ausrichten, dafür ist er preiswert und ausreichend für den Verwendungszweck.&lt;/p&gt;
&lt;p&gt;Um die Auflagefläche des Bohrständers zu vergrößern, wird dieser, für einige Arbeiten, auf einer Platte montiert.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/hochbett-aus-alten-dachsparren/Mobiler-Bohrst%C3%A4nder-mit-Brett.jpg&#34; alt=&#34;Mobiler Bohrständer mit Brett&#34;&gt; Mobiler Bohrständer mit Brett&lt;/p&gt;
&lt;p&gt;Bei unebenen Werkstücken wird die Platte auf Auflagehölzern oder direkt auf dem Werktisch aufgelegt.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/hochbett-aus-alten-dachsparren/Bohren-der-Durchgangsl%C3%B6cher.jpg&#34; alt=&#34;Bohren der Durchgangslöcher&#34;&gt; Bohren der Durchgangslöcher&lt;/p&gt;
&lt;p&gt;Die Markierung der Querbolzenmutter-Löcher erfolgt für jedes Loch individuell, um die nicht sehr präzise gebohrten Schraubenlöcher bestmöglichst zu treffen.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/hochbett-aus-alten-dachsparren/Anrei%C3%9Fen-des-Querbolzenlochs.jpg&#34; alt=&#34;Anreißen des Querbolzenlochs&#34;&gt; Anreißen des Querbolzenlochs&lt;/p&gt;
&lt;h1 id=&#34;konstruktion&#34;&gt;Konstruktion&lt;/h1&gt;
&lt;p&gt;Nach dem festlegen der Eckmaße, ist eine initiale Handzeichnung erstellt worden. Details sind bei Bedarf im Laufe der Umsetzung zu fertigen.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/hochbett-aus-alten-dachsparren/Seitensicht.jpg&#34; alt=&#34;Seitensicht&#34;&gt; Seitensicht&lt;/p&gt;
&lt;p&gt;Jedes Teil hat eine Nummer, welche auch auf dem Werkstück steht, damit man es in der Werkstatt wiederfindet und nicht ausversehen das falsche Teil bearbeitet. Zusätzlich wird an jeder Verbindungsstelle des Werkstücks die Nummer des zu montierenden Gegenstücks geschrieben, damit nicht die falsche Seite bearbeitet wird.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/hochbett-aus-alten-dachsparren/Draufsicht.jpg&#34; alt=&#34;Draufsicht&#34;&gt; Draufsicht&lt;/p&gt;
&lt;p&gt;Die Zapfenverbindung ist nur durch Fräsung der Vertiefung hergestellt (15 mm), in der das Gegenwerkstück eingeführt wird, s. Schnitt C-C. Auf die Ausbildung des Zapfens ist also verzichtet worden (ist also gar keine Zapfenverbindung, oder?). Lediglich die Kanten sind abgerundet und ggf. das zapfenseitige Werkstück eingepasst.&lt;/p&gt;
&lt;p&gt;Der kleine Pfosten für die Einstiegsluke (8) ist als gerade Einblattung mit dem vorderen Querrahmen (5) verdübelt und verleimt. Mit der Leitermontage kommen dann noch zwei Schrauben M12 hinzu, die die Verbindung zusätzlich stabilisieren.&lt;/p&gt;
&lt;p&gt;Die Skizze zeigt den Querschnitt durch Teil 8 und 5:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/hochbett-aus-alten-dachsparren/Einstiegspfosten-mit-Leiterwange-L1.jpg&#34; alt=&#34;Einstiegspfosten mit Leiterwange \(L1\)&#34;&gt; Einstiegspfosten mit Leiterwange (L1)&lt;/p&gt;
&lt;p&gt;Die beiden freistehenden linken Pfosten (2) werden durch Einblattung in den Querbalken (5 bzw. 9) eingearbeitet, so dass diese die Last abnehmen können (s. Schnitt A-A). Das ist aber in Querrichtung zu instabil, so dass im Nachhinein noch eine Querlatte zwischen beiden Pfosten montiert wurde.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/hochbett-aus-alten-dachsparren/Stabilisierungsbrett.jpg&#34; alt=&#34;Stabilisierungsbrett&#34;&gt; Stabilisierungsbrett&lt;/p&gt;
&lt;p&gt;Da nachträglich angefertigt, ist das die einzige Verbindung, welche nicht gefräst ist. Die Verstrebung ist seitlich durch angeleimte Enden in der Höhe verlängert. Hier ein Bild aus der Herstellung der Zapfenschlitze (die Löcher für die Holzdübel sind bereits vorhanden).&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/hochbett-aus-alten-dachsparren/Zahnverzapfung.jpg&#34; alt=&#34;Zahnverzapfung&#34;&gt; Zahnverzapfung&lt;/p&gt;
&lt;p&gt;Das Lattenrost ist gekauft und liegt auf zwei, ebenfalls gekauften, Leisten. Diese sind an den langen Querträgern verdübelt und mit Holzschrauben verschraubt.&lt;/p&gt;
&lt;h1 id=&#34;leiter&#34;&gt;Leiter&lt;/h1&gt;
&lt;p&gt;Ist nach Fertigstellung der Bettteile gebaut worden. Die Sprossen (L2) sind aus geviertelten 14 x 8 cm Balken hergestellt, also ca. 7 x 4 cm im Querschnitt. Die Wangen (L1) sind halbierte 13 x 7 cm Balken, also ca. 6,5 x 7.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://kollegen.uber.space/posts/hochbett-aus-alten-dachsparren/Leiter-Zeichnung.jpg&#34;&gt;Skizze der Leiter&lt;/a&gt; Skizze der Leiter&lt;/p&gt;
&lt;p&gt;Herstellung der Sprossen:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/hochbett-aus-alten-dachsparren/Sprossenholz-wird-eingespannt.jpg&#34; alt=&#34;Sprossenholz wird eingespannt&#34;&gt; Sprossenholz wird eingespannt&lt;/p&gt;
&lt;p&gt;Auch die Sprossen sind von zwei Seiten zu sägen.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/hochbett-aus-alten-dachsparren/Zweite-Seite-s%C3%A4gen.jpg&#34; alt=&#34;Zweite Seite sägen&#34;&gt; Zweite Seite sägen&lt;/p&gt;
&lt;p&gt;Die Leiter ist schraubenfrei verleimt. Dazu sind Schlitze in die Wange gefräst und mit Holzdübeln verstärkt worden. Die fertige Leiter wird mit M12-Schrauben (und den bereits vorhanden langen M8-Schrauben) mit dem Bett fest verbunden.&lt;/p&gt;
&lt;h1 id=&#34;verschraubung&#34;&gt;Verschraubung&lt;/h1&gt;
&lt;p&gt;Alle Elemente des Bettrahmens sind mit M8-Schrauben verbunden, entweder mit Querlochbolzenmuttern oder, für die freistehenden Pfosten, mit Hülsenmuttern. Um die Anschaffung der Schrauben zu vereinfachen, sind diese aus Gewindestange und Hülsenmutter selbst erstellt. Zur Montage der Leiter kommen M12 Gewindestange und Hülsenmuttern zum Einsatz.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/hochbett-aus-alten-dachsparren/Schraubverbindungen-nur-aus-vier-verschiedenen-Teilen.jpg&#34; alt=&#34;Schraubverbindungen: nur aus vier verschiedenen Teilen&#34;&gt; Schraubverbindungen: nur aus vier verschiedenen Teilen&lt;/p&gt;
&lt;p&gt;Das Montieren der Schrauben mit den Querbolzen war anfangs nicht gut möglich. Durch das Hantieren mit Schraubendreher und Innensechskantschlüssel, sowie der Tatsache, dass die Löcher nicht sehr genau gebohrt sind, fand die Schraube nicht das Muttergewinden. Daher wird an jede Schraube einseitig ein Zapfen geschliffen, wodurch sich die Querbolzenmuttern nun selbständig ausrichtet.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/hochbett-aus-alten-dachsparren/Zapfen-anschleifen.jpg&#34; alt=&#34;Zapfen anschleifen&#34;&gt; Zapfen anschleifen&lt;/p&gt;
&lt;p&gt;Der Zapfen ist bei der Berechnung der Schraubenlänge unbedingt zu berücksichtigen.&lt;/p&gt;
&lt;p&gt;Die gesägte und angefaste Gewindestange ist mit dem Gewindeschneider gefügig zu machen, ansonsten lässt sich die Mutter von Hand nicht gut verschrauben.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/hochbett-aus-alten-dachsparren/Nachschneiden-des-Gewindeanfangs.jpg&#34; alt=&#34;Nachschneiden des Gewindeanfangs&#34;&gt; Nachschneiden des Gewindeanfangs&lt;/p&gt;
&lt;h1 id=&#34;oberfläche&#34;&gt;Oberfläche&lt;/h1&gt;
&lt;p&gt;Die durch Sägen und Hobeln gegebene Oberfläche soll erhalten bleiben, das Holz aber haptisch ansprechend werden. Dies wird durch folgende Arbeiten erreicht:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Fräsen der Kanten mit einem Abrundfräser
Durch Abrunden der Kanten werden die splittrigen Kanten geglättet und die Balken werden auch optisch viel gefälliger.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/hochbett-aus-alten-dachsparren/Abrunden-der-Kanten.jpg&#34; alt=&#34;Abrunden der Kanten&#34;&gt; Abrunden der Kanten&lt;/p&gt;
&lt;ol start=&#34;2&#34;&gt;
&lt;li&gt;Vorschleifen der Oberfläche mit einer Tellerbürste aus Nylon, K80
Staubige Sache, sollte man besser draußen machen.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/hochbett-aus-alten-dachsparren/Tellerb%C3%BCrste.jpg&#34; alt=&#34;Tellerbürste&#34;&gt; Tellerbürste&lt;/p&gt;
&lt;p&gt;Versuche mit einer Drahttellerbürste zeigten, dass dafür das Holz zu weich ist. Die Nylonbürste ist nicht billig, lohnt sich aber.&lt;/p&gt;
&lt;ol start=&#34;3&#34;&gt;
&lt;li&gt;Handschleifen der Oberfläche
Den letzten Schliff bekommt das Holz durch Handschleifen mit Scheifvliesmatten 180.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Anschließend wird das Holz mit Arbeitsplattenöl von Auro behandelt und noch mal mit dem Schleifvlies geglättet.&lt;/p&gt;
&lt;h1 id=&#34;schluss&#34;&gt;Schluss&lt;/h1&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/hochbett-aus-alten-dachsparren/Steht-wie-ne-Eins.jpg&#34; alt=&#34;Steht wie ’ne Eins&#34;&gt; Steht wie &amp;rsquo;ne Eins&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>RFduino Implementation of DDO</title>
      <link>https://kollegen.uber.space/posts/ddo-rfduino-implementation-of-ddo/</link>
      <pubDate>Thu, 15 Jan 2015 00:00:00 +0000</pubDate>
      
      <guid>https://kollegen.uber.space/posts/ddo-rfduino-implementation-of-ddo/</guid>
      <description>&lt;p&gt;This post describes the coding for the DDO hardware, based on a RFduino board. The hardware itself is introduced in the post &lt;a href=&#34;https://kollegen.uber.space/posts/ddo-prototype/&#34;&gt;posts/ddo-prototype&lt;/a&gt;. To implement the program, the standard Arduino SDE with RFduino library is installed on your computer (The RFduino Quick Start Guide on &lt;a href=&#34;https://www.rfduino.com&#34;&gt;www.rfduino.com&lt;/a&gt; is not available any more).&lt;/p&gt;
&lt;p&gt;The implementation has following main features:&lt;/p&gt;
&lt;p&gt;Counting wheel rotations and calculation distance
Read/Write the distance to memory in a safety way
Push the actual distance via Bluetooth LE (BLE)
Further topics are:
Flash the LED with a memory write, communicate an error via LED
Send logging to SDE
The most important challenge is the non-stable power supply, especially at writing time.&lt;/p&gt;</description>
      <content>&lt;p&gt;This post describes the coding for the DDO hardware, based on a RFduino board. The hardware itself is introduced in the post &lt;a href=&#34;https://kollegen.uber.space/posts/ddo-prototype/&#34;&gt;posts/ddo-prototype&lt;/a&gt;. To implement the program, the standard Arduino SDE with RFduino library is installed on your computer (The RFduino Quick Start Guide on &lt;a href=&#34;https://www.rfduino.com&#34;&gt;www.rfduino.com&lt;/a&gt; is not available any more).&lt;/p&gt;
&lt;p&gt;The implementation has following main features:&lt;/p&gt;
&lt;p&gt;Counting wheel rotations and calculation distance
Read/Write the distance to memory in a safety way
Push the actual distance via Bluetooth LE (BLE)
Further topics are:
Flash the LED with a memory write, communicate an error via LED
Send logging to SDE
The most important challenge is the non-stable power supply, especially at writing time.&lt;/p&gt;
&lt;p&gt;Architecture
The implementation communicates or controls five external components. The EEPROM is used to store the actual distance value. The LED give signals to the user at run time. The reed contact attached to the front wheel is the rotation trigger.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/ddo-rfduino-implementation-of-ddo/system-context.jpg&#34; alt=&#34;System Context&#34;&gt;&lt;/p&gt;
&lt;p&gt;Via BLE the board sends the actual distance value periodically into the environment (independent, if there is a receiving app or not).
For the developer, messages can be pushed via serial port to the Arduino SDE.&lt;/p&gt;
&lt;p&gt;The inner view:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/ddo-rfduino-implementation-of-ddo/inner-view.jpg&#34; alt=&#34;Inner View&#34;&gt;&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>DDO Prototype</title>
      <link>https://kollegen.uber.space/posts/ddo-prototype/</link>
      <pubDate>Sun, 30 Nov 2014 00:00:00 +0000</pubDate>
      
      <guid>https://kollegen.uber.space/posts/ddo-prototype/</guid>
      <description>&lt;p&gt;Aufgabenstellung
Früher hatte ich mal so einen Kilometerzähler am Vorderrad meines Rennrads, sehr zum Leidwesen meiner Radkollegen, da das Ding ziemlich laut klackerte.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/ddo-prototype/z%C3%A4hler.jpg&#34; alt=&#34;Analoger Kilometerzähler&#34;&gt; Analoger Kilometerzähler&lt;/p&gt;
&lt;p&gt;Das gleiche soll nun mit moderner Technik neu gebaut werden - aber ohne Klackern, wenn&amp;rsquo;s geht.&lt;/p&gt;
&lt;p&gt;Schaut man sich auf dem Markt um, was es derzeit gibt, so findet man den Bikelogger. Der kann mehr einiges mehr als nur den aktuellen Stand zählen. Der Preis ist mit ca. 140 € aber ziemlich hoch. Cool ist, das er kein Kontakt-Kontakt für die Bewegungserfassung benötigt.&lt;/p&gt;</description>
      <content>&lt;p&gt;Aufgabenstellung
Früher hatte ich mal so einen Kilometerzähler am Vorderrad meines Rennrads, sehr zum Leidwesen meiner Radkollegen, da das Ding ziemlich laut klackerte.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/ddo-prototype/z%C3%A4hler.jpg&#34; alt=&#34;Analoger Kilometerzähler&#34;&gt; Analoger Kilometerzähler&lt;/p&gt;
&lt;p&gt;Das gleiche soll nun mit moderner Technik neu gebaut werden - aber ohne Klackern, wenn&amp;rsquo;s geht.&lt;/p&gt;
&lt;p&gt;Schaut man sich auf dem Markt um, was es derzeit gibt, so findet man den Bikelogger. Der kann mehr einiges mehr als nur den aktuellen Stand zählen. Der Preis ist mit ca. 140 € aber ziemlich hoch. Cool ist, das er kein Kontakt-Kontakt für die Bewegungserfassung benötigt.&lt;/p&gt;
&lt;p&gt;Den Zähler, den ich mir vorstelle, soll einfach nur die Laufleistung zählen und ansonsten nicht weiter auffallen. Es muss völlig wartungsfrei und ohne Schnickschnack sein. Außerdem soll er aus möglichst wenigen Bauteilen bestehen und die vorhanden Infrastruktur am Rad nutzen. Bei Bedarf kann man den aktuellen KM-Stand per Smartphone abfragen,&lt;/p&gt;
&lt;p&gt;Komponenten
Man benötigt einen Mikrocontroller zur Steuerung, ein EEPROM zum Speichern und eine stabile Spannungsversorgung.&lt;/p&gt;
&lt;p&gt;Als Mikrocontroller habe ich mich für den RFduino entschieden, da er sehr klein ist und Bluetooth 4.0 unterstützt. Man kann ihn als SMD-Chip oder als Entwicklerboard mit USB-Anschluss für Rasterplatinen beziehen. Das Board kann mit 3.3 V betrieben werden. Die Programmierung ist einfach und es gibt viele Beispiele.&lt;/p&gt;
&lt;p&gt;Als Speicher-Baustein kommt der 24AA256 von Microchip zum Einsatz. Er ist mit 256 kB ausreichen groß, kann per I2C einfach mit dem RFduino kommunizieren und kann mit 3.3 V betrieben werden.&lt;/p&gt;
&lt;p&gt;Die Spannungsversorung bedient sich der am Fahrrad vorhanden B&amp;amp;M Lumotec-Leuchte mit Supercup-Kondensator. Um die Spannung der LED auf konstante 3.3 V zu bringen, kommt zur Spannungsstabilisierung der Step-Up Spannungsregler U1V11F3 von Pololu zu Einsatz.&lt;/p&gt;
&lt;p&gt;Die Radbewegung wird klassisch per Kontakt-Schalter&lt;/p&gt;
&lt;p&gt;Schaltung
Auf dem Schaltplan sieht man noch die zusätzlich eine LED, als Minimal-Kommunikation so zu sagen.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/ddo-prototype/schaltung.jpg&#34; alt=&#34;Schaltung&#34;&gt; Schaltplan&lt;/p&gt;
&lt;p&gt;Die Stromversorgung geht tatsächlich direkt an die LED der Lumotec-Leuchte, dazu wurde ein 2-adriges Kabel an die LED-Platine gelötet.&lt;/p&gt;
&lt;p&gt;Steckbrett
Auf das Breadboard gesteckt, ist die Schaltung sehr übersichtlich:
&lt;img src=&#34;https://kollegen.uber.space/posts/ddo-prototype/steckbrett.jpg&#34; alt=&#34;Steckbrett&#34;&gt; Steckbrett&lt;/p&gt;
&lt;p&gt;Bauteil-Liste
M1 RFD22102 RFduino DIP
M2 Pololu 3.3V Step-Up Voltage Regulator U1V11F3
IC1 EEPROM Microship 24AA256
R4 Vorwiderstand  82 kΩ
LED1 Rote LED
R1 Vorwiderstand  330 Ω
LED2 Gelbe LED
R2 Vorwiderstand  330 Ω
R3 Pull-Down-Widerstand 55 k Ω&lt;/p&gt;
&lt;p&gt;LED1 blinkt kurz, wenn der aktuelle KM-Wert gespeichert wurden. LED2 zeigt, das  Spannung anliegt (nur auf dem Breadboard gesteckt, nicht im Prototyp verbaut).&lt;/p&gt;
&lt;p&gt;Platine
Die Platine ist so gestaltet, dass sie in ein Gehäuse 56 x 56 x 40 mm passt (Hammond Electronics 1594ABK, gibt z.B. bei Conrad Electronics, Best.-Nr. 535086-62).&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/ddo-prototype/layout.jpg&#34; alt=&#34;Layout&#34;&gt; Layout&lt;/p&gt;
&lt;p&gt;Die Verbindungen von Pin 8 vom 24AA256 nach VOUT musst aus Platzmangel fliegend verkabeln, dass könnte man noch besser machen. Gelötet sieht das dann so aus:
&lt;img src=&#34;https://kollegen.uber.space/posts/ddo-prototype/platine-1.jpg&#34; alt=&#34;Oberseite&#34;&gt; Oberseite&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/ddo-prototype/platine-2.jpg&#34; alt=&#34;Unterseite&#34;&gt; Unterseite&lt;/p&gt;
&lt;p&gt;Als Signalgeber kommt ein kabelgebundener eine kabelgebunde Variante von einem billigen Baumarkt-Tacho zum Einsatz. Die Kabelenden werden direkt an die Steckerstifte auf der Platine gelötet (REED bzw. VOUT), Polung spielt keine Rolle. Ebenso das Kabel der Spannungsversorgung (VIN und GND). Das Kabel wird von unten durch das Lumitec-Gehäuse gezogen (Belüftungsloch) und auf die kleine LED-Platine gelötet. Hier natürlich auf die richtige Polung achten.&lt;/p&gt;
&lt;p&gt;Hinweis: Mit dem Eingriff verliert die Leuchte den Garantieanspruch. Ob das Fahrrad noch im Straßenverkehr zulässig ist, habe ich nicht geprüft.
Montage&lt;/p&gt;
&lt;p&gt;Auf Rasterplatine gelötet und in ein Gehäuse gepackt sieht das Gerät dann am Fahrrad recht klobig aus, so wie es sich für einen Prototypen halt gehört.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/posts/ddo-prototype/montage.jpg&#34; alt=&#34;Brompton&#34;&gt; Montage am Brompton&lt;/p&gt;
&lt;p&gt;An meinem Brompton konnte es einfach an die Taschenhalterung montiert werden. Es führen zwei Kabel aus dem Gerät: Die Stromversorgung zur Frontlampe sowie das Kabel für den Kontaktnehmer zur Gabel.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Die Runde Stunde</title>
      <link>https://kollegen.uber.space/tiles/standbild/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://kollegen.uber.space/tiles/standbild/</guid>
      <description></description>
      <content></content>
    </item>
    
    <item>
      <title>Imkerei</title>
      <link>https://kollegen.uber.space/tiles/tempelgold/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://kollegen.uber.space/tiles/tempelgold/</guid>
      <description></description>
      <content></content>
    </item>
    
    <item>
      <title>Impressum / Datenschutz</title>
      <link>https://kollegen.uber.space/impressum/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://kollegen.uber.space/impressum/</guid>
      <description>&lt;h1 id=&#34;impressum&#34;&gt;Impressum&lt;/h1&gt;
&lt;p&gt;Dies ist eine private Website und dient der Darstellung meiner persönlichen Web-Projekte sowie des Internet-Auftritts im Rahmen meiner Imkerei. Verantwortlich für den Inhalt ist Christian Schulzendorff, Tempelstr. 8 A, 63571 Gelnhausen, E-Mail chs8691[ätt]mailbox.org, Tel. 016099240304. Alle Bilder sind, sofern nicht explizit anders angegeben, Eigentum von Christian Schulzendorff.&lt;/p&gt;
&lt;h1 id=&#34;creative-commons-lizenzvertrag&#34;&gt;Creative Commons Lizenzvertrag&lt;/h1&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/img/cc40.png&#34; alt=&#34;CC-Icon&#34;&gt;&lt;br&gt;
Dieses Werk ist unter &lt;a href=&#34;https://creativecommons.org/licenses/by/4.0/&#34;&gt;CC BY 4.0&lt;/a&gt; lizenziert. Weitergabe unter gleichen Bedingungen 4.0 International Lizenz.&lt;/p&gt;
&lt;h1 id=&#34;datenschutz&#34;&gt;Datenschutz&lt;/h1&gt;
&lt;p&gt;Bei dem frei zugängliche Inhalten (ohne Anmeldung) handelt es sich um statische Websites, für die keine Daten des Aufrufers gespeichert oder analysiert werden. Für die Darstellung der Inhalte werden externe Hugo-Themes verwendet:&lt;/p&gt;</description>
      <content>&lt;h1 id=&#34;impressum&#34;&gt;Impressum&lt;/h1&gt;
&lt;p&gt;Dies ist eine private Website und dient der Darstellung meiner persönlichen Web-Projekte sowie des Internet-Auftritts im Rahmen meiner Imkerei. Verantwortlich für den Inhalt ist Christian Schulzendorff, Tempelstr. 8 A, 63571 Gelnhausen, E-Mail chs8691[ätt]mailbox.org, Tel. 016099240304. Alle Bilder sind, sofern nicht explizit anders angegeben, Eigentum von Christian Schulzendorff.&lt;/p&gt;
&lt;h1 id=&#34;creative-commons-lizenzvertrag&#34;&gt;Creative Commons Lizenzvertrag&lt;/h1&gt;
&lt;p&gt;&lt;img src=&#34;https://kollegen.uber.space/img/cc40.png&#34; alt=&#34;CC-Icon&#34;&gt;&lt;br&gt;
Dieses Werk ist unter &lt;a href=&#34;https://creativecommons.org/licenses/by/4.0/&#34;&gt;CC BY 4.0&lt;/a&gt; lizenziert. Weitergabe unter gleichen Bedingungen 4.0 International Lizenz.&lt;/p&gt;
&lt;h1 id=&#34;datenschutz&#34;&gt;Datenschutz&lt;/h1&gt;
&lt;p&gt;Bei dem frei zugängliche Inhalten (ohne Anmeldung) handelt es sich um statische Websites, für die keine Daten des Aufrufers gespeichert oder analysiert werden. Für die Darstellung der Inhalte werden externe Hugo-Themes verwendet:&lt;/p&gt;
&lt;p&gt;Für die aktive Mitarbeit an dieser Website wird ein lokaler Gitea-Account benötigt. Die dafür benötigte E-Mail-Adresse wird gespeichert, solange der Account besteht. Es werden keine Daten an Dritte weitergegeben. Wird das Löschen eines Gitea-Accounts schriftlich mitgeteilt, verpflichten wir uns, alle Account-Daten zeitnah zu löschen. Der erstellte Content in dem Git-Repository bleibt davon aber unberührt. Gitea verwendet für ein besseres Benutzererlebnis Cookies, siehe &lt;a href=&#34;https://gitea.com/&#34;&gt;gitea.com&lt;/a&gt;.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Kollegenrunde</title>
      <link>https://kollegen.uber.space/tiles/kollegenrunde/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://kollegen.uber.space/tiles/kollegenrunde/</guid>
      <description></description>
      <content></content>
    </item>
    
    <item>
      <title>My Equis</title>
      <link>https://kollegen.uber.space/tiles/myequis/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://kollegen.uber.space/tiles/myequis/</guid>
      <description></description>
      <content></content>
    </item>
    
    <item>
      <title>Pendel</title>
      <link>https://kollegen.uber.space/tiles/pendel/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://kollegen.uber.space/tiles/pendel/</guid>
      <description></description>
      <content></content>
    </item>
    
    <item>
      <title>Standbild</title>
      <link>https://kollegen.uber.space/tiles/die-runde-stunde/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://kollegen.uber.space/tiles/die-runde-stunde/</guid>
      <description></description>
      <content></content>
    </item>
    
    <item>
      <title>Über</title>
      <link>https://kollegen.uber.space/ueber/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://kollegen.uber.space/ueber/</guid>
      <description>&lt;p&gt;Mein Name sei Christian Schulzendorff. Und es ist anzunehmen, das es sich hier um zusammengeschustertes Zeug handelt; Wexperimente, entrückt aus der praktischen Welt. Im besten Sinne nutzlos und damit frei von jeglichem Anspruch auf ergebnisortientierter Leistung.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Der Name &lt;code&gt;kollegen&lt;/code&gt; geht auf die &lt;code&gt;Kollegenrunde&lt;/code&gt; zurück. Der Begriff erinnert, das wir Teil einer Gemeinschaft sind. Es liegt an uns, sie durch zutun zu bereichern.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Woanders&lt;/strong&gt;&lt;br&gt;
  &lt;a href=&#34;https://www.flickr.com/photos/christian_schulzendorff/&#34;&gt;Flickr&lt;/a&gt;&lt;br&gt;
  &lt;a href=&#34;https://www.strava.com/athletes/christian_schulzendorff&#34;&gt;Strava&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Stadt von hinten&lt;/strong&gt;&lt;br&gt;
  Repro und Doku in &lt;a href=&#34;https://kollegen.uber.space/gitea&#34;&gt;Gitea&lt;/a&gt;&lt;/p&gt;</description>
      <content>&lt;p&gt;Mein Name sei Christian Schulzendorff. Und es ist anzunehmen, das es sich hier um zusammengeschustertes Zeug handelt; Wexperimente, entrückt aus der praktischen Welt. Im besten Sinne nutzlos und damit frei von jeglichem Anspruch auf ergebnisortientierter Leistung.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Der Name &lt;code&gt;kollegen&lt;/code&gt; geht auf die &lt;code&gt;Kollegenrunde&lt;/code&gt; zurück. Der Begriff erinnert, das wir Teil einer Gemeinschaft sind. Es liegt an uns, sie durch zutun zu bereichern.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Woanders&lt;/strong&gt;&lt;br&gt;
  &lt;a href=&#34;https://www.flickr.com/photos/christian_schulzendorff/&#34;&gt;Flickr&lt;/a&gt;&lt;br&gt;
  &lt;a href=&#34;https://www.strava.com/athletes/christian_schulzendorff&#34;&gt;Strava&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Stadt von hinten&lt;/strong&gt;&lt;br&gt;
  Repro und Doku in &lt;a href=&#34;https://kollegen.uber.space/gitea&#34;&gt;Gitea&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Credits&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;  Powered by &lt;a href=&#34;https://gohugo.io&#34;&gt;Hugo&lt;/a&gt;&lt;br&gt;
  Based on Theme &lt;a href=&#34;https://opensourcelibs.com/lib/hugo-theme-terminal&#34;&gt;Terminal&lt;/a&gt;&lt;br&gt;
  &lt;a href=&#34;https://uberspace.de/de/&#34;&gt;&lt;img src=&#34;https://kollegen.uber.space/img/ueberspace-logo.png&#34; alt=&#34;Logo&#34;&gt;&lt;/a&gt;  Hosted on &lt;a href=&#34;https://uberspace.de/de/&#34;&gt;Uberspace&lt;/a&gt;&lt;/p&gt;
</content>
    </item>
    
  </channel>
</rss>
