Tschüss Evernote, es war gut mit dir

Evernote hat seit Ende Juli 2008 ziemlich viele Dinge für mich aufbewahrt.
Über die Jahre habe sich dort Rezepte, Notizen, Links, kopierte Zitate aus gelesenen Texten, Audio-Dateien mit lustigen Aufnahmen (und Erklärungen zu Kinderzeichnungen), Code-Schnipsel und Screenshots aufbewahrt, die ich nicht nur auf meinem Rechner aufbewahren wollte, sondern auch auf dem Telefon und manchmal im Büro brauchte.

Über die Jahre wurde Evernote immer teurer und der Funktionsumfang wurde trotzdem immer mehr beschnitten, zuletzt war es nicht mehr möglich, mit mehr als 3 Geräten die Notizen synchron zu halten, wobei das Web-Interface auch als Gerät zählte.
Einer der Use-Cases war auch das Teilen von Familien-wichtigen Dingen mit Nina, was mit Evernote Anfangs easy möglich war, aber immer komplizierter wurde, und neuderdings nur noch mit einem Account möglich, der 15$ pro Monat kostet.

Eine Zeitlang haben Nina und ich versucht, mit Joplin warm zu werden, was aber für geteilte Notizbücher mit PDFs und Bildern auch mehr als 10 $ im Monat kostet.

Seit längerem störte mich auch das Kuddel-Muddel in Entweder Evernote oder Joplin, dass – wie erwähnt – Dokumente, Screenshots, Textnotizen, Scans von Kinderzeichnungen wild durcheinander quasi auf einem Haufen lagen.
Klar immer schön mit Titeln und Schlagworten versehen, aber die Suche nach gesuchten Dingern war eher mühsam.

Nachdem ich mal über Paperless gestolpert bin, habe ich lange prokrastiniert, ob ich mir jetzt doch mal ein NAS kaufen und das Ding darauf installieren soll.
Als ich dann mal in anderem Zusammenhang von elest.io gelesen habe, die es extrem simpel machen, irgendwo eine virtuelle Maschine zu starten und darauf praktisch irgendwelche Software zu installieren1.
Zwei und zwei zusammengezählt, und schon habe ich (dank einer DNS-Weiterleitung) eine Instanz von paperless-ngx unter http://paperless.davidhaberthuer.ch am Laufen.
Diese Instanz kostet mich zwar knapp 9$ im Monat, ist aber a) billger als Evernote, hat b) einen erstaunlich grossen WAF und ist c) in den paar Monaten wo ich das jetzt am Laufen habe genau das Richtige. :)
Die Software schluckt jegliche Art von Dokument (präferiert aber PDFs) und kann sogar tiptop mehrere User:innen verwalten, so dass auch Nina Ihre Dokumente, die auf mehreren Geräten zu Brauchen sind dort einfach hinterlegen kann.
Durch die Texterkennung und Verschlagwortung kann in jedem hochgeladenen Dokument gesucht werden und dank einem minimal-aufwändigen Workflow und einem Hochleistungs-Scanner im Büro hab’ ich grad noch einiges an Dokumenten zuhause digitalisiert und physisch entsorgt.

Damit nun alle +1500 Notizen aus Evernote am richtigen Ort landeten, habe ich evernote-backup angeworfen.
Mit dieser Software und

evernote-backup init-db --oauth
evernote-backup sync
evernote-backup export --include-trash EverNoteBackup

landete jede Evernote-Notiz erstmals auf meinem Rechner.
Theoretisch wäre ein Export aus Evernote auch möglich, aber neuerdings können im Gratis-Account nur noch 50 Notizen angeschaut werden, und selbt in Bezahl-Accounts nur noch 100 Notizen aufs Mal exportiert werden.

Mit enex2paperless [via reddit.com] landete dann jedes Dokument das möglich ist, in meiner Paperless-Installation.
Nachdem die Zugangsdaten in dern Konfigurations-Datei gespeichert waren, funktionierte der Prozess mit

for i in EverNoteBackup/*.enex;do ./enex2paperless $i; done 

problemlos.
Dieser Import-Prozess führte zu einigen Warnungen, dass die virtuelle Maschine unter Volllast laufe, da in paperless für jedes Dokument OCR durchgeführt wird :)

So landeten mal alle Dokumente am richtigen Ort.
Da aber eben auch viele Links, Code-Schnipsel, Zitate und weitere Nicht-Dokumente im Evernote waren, habe ich ganz simpel alle exportierten Evernote-Dateien in Simplenote reingeladen, das geht einfach mit ‘drag-and-drop’.
Simplenote ist auch so eine App, die ich schon länger am Start habe, dort landeten aber ausschliesslich nur Text-Schnipsel.

Jetzt muss ich nur noch durch den grossen Haufen durchsortieren, was aber (v.a. in Simplenote) eigentlich einfach ist.

  • Notizen, die nur “application/pdf”, “image/jpeg”, “image/png” enthalten, sind Dokumente, die schon im Paperless landeten, also einfach löschen.
  • Viele Rezepte, die sich angesammelt haben, landen dank gespeichertem Link und exzellenter Importfunktion in Mela. In Simplenote einfach nach Migusto, Chefkoch, Ottolenghi, Wildeisen suchen, und den Link zu Mela teilen, dann kommt’s gut.
    Mela ist übrigens eine super Rezepte-Verwaltungs- und auch Koch-App, von Silvio Reeder Rizzi, die jeden Rappen der 5 Franken wert ist.
  • Die Suche nach “http” findet Links, die dann einfach zu Pinboard kopiert werden.
  • Die Suche nach “Instapaper” findet viele markierte Zitate, für die ich momentan noch nix besseres als einen Tag bei Pinboard.

Ihr seht, Evernote ganz loszuwerden ist ganz einfach :)


  1. Deshalb auch die Randbemerkung hier

Wo war ich im 2023?

Hier einer der Posts zu meinem 2023. Dieser und andere Posts sind unter dem Tag jahresrückblick23 zu finden.

Christian hat mich daran erinnert, dass ich noch darüber schreiben wollte, wo ich dieses Jahr war.

Dank dem ‘Premium’-Abo von WHIB habe ich einen Überblick der Positionen meines Telefons während der letzten 5 Jahre in einer CSV-Datei, die mit etwas Python-Code einfach auswertbar ist.
Schlussendlich habe ich 20700 Datenpunkte mit einer Position im 2023.
Ich schalte mein Telefon in der Nacht aus, also habe ich im Schnitt (bei 8h ausgeschaltetem Telefon) ca. alle 20 Minuten einen Datenpunkt.

Im Sommer sind wir mit unserer fahrenden Ferienwohnung an der Atlantikküste gewesen, haben auf lustigen, eigentlich privaten Campingplätzen übernachtet und viel unsere mitgenommenen Velos bewegt.
Im Herbst haben wir die Nordostküste von Sardinien befahren und waren so viel wie möglich nicht auf Campingplätzen, sondern haben am Strand übernachtet, bis der Strom und Kühlschrank leer und das WC voll waren.

Wir sind insgesamt 910 km in Nord-Süd, und 893 km in Ost-West-Richtung unterwegs gewesen.

Im Median war ich auf dem Bänkli beim Elefantenspili.
Am nördlichsten waren wir etwas südlich von Paris, auf der Autobahn, am östlichsten irgendwo südlich von Bastia in Korsika (wo wir nicht waren, und sich wahrscheinlich mein Handy bei der Fährüberfahrt von Genua nach Porto Torres eingebucht hat), am südlichsten irgendwo nach 3 Nächten am schönsten Strand von Sardinien (Is Arutas, der uns von zwei wunderbaren alten Menschen ein paar Nächte vorher empfohlen wurde), am westlichsten irgendwo auf dem Weg zum Strand auf Noirmoutier.
Der höchste Punkt war zum Start in die Skisaison vor gut einem Monat auf dem kleinen Matterhorn in Zermatt.

Unten ist die Heatmap meiner Positionen im 2023 eingebunden, so dass Reinzoomen in die Karte und Raussuchen anderer Ausflüge selbst möglich ist.

Die komplette Analyse ist auf GitHub zu finden, falls jemand dies für sich nachbauen will.
Weil die Originaldatei mit meinen Positionen auch die genauen Zeiten enthält, liefere ich die aus datenschutztechnischen Gründen nicht mit.
Eine komplette Version meiner Analyse als Notebook mit allen Karten ist dank dem coolen NBViewer hier zu sehen.

Der nächste Jahresrückblick wird dann noch etwas spannender.
Wir planen von Mitte April bis Mitte Juli eine grosse Auszeit und werden mit den Kindern Nationalpärke auf einem anderen Kontinenten besuchen.

Wo war ich im 2022?

Hier einer der Posts zu meinem 2022.
Dieser und andere Posts sind unter dem Tag jahresrückblick22 zu finden.

Dieses Jahr haben wir uns mehr als andere Jahre in einem Fahrzeug bewegt.
Das ist eine längere Geschichte; kurz zusammengefasst sind wir seit Ostern Besitzer eines ziemlich grossen Fiat Ducatos, der sich auch als Camper identifiziert.
Das hat zur Folge, dass wir an einigen noch unbekannten Orten in der Schweiz waren und dort lustige Tage und Wochenenden verbracht haben.

Wie schon ein paar Jahre habe ich dank dem ‘Premium’-Abo von WHIB einen Überblick der Positionen meines Telefons während des ganzen Jahres in einer CSV-Datei.
Schlussendlich habe ich 23500 Datenpunkte mit einer Position im 2022.
Ich schalte mein Telefon in der Nacht immer aus, also habe ich im Schnitt (bei 8h Telefon ‘off’) ca. alle 15 Minuten einen Datenpunkt.

Aufgrund der Sommerferien an den Dolomiten und den Herbsferien in Sardinien sind wir fast 400 km in Ost-West-Richtung und knapp 800 km in Nord-Süd-Richtung unterwegs gewesen.
Im Median war ich im Beachcenter Bern, nämlich als ich dort Festbänke und Tische für unser Strassenfest abholte.
Am nördlichsten wiederum in Basel, am östlichsten in San Giovanni di Fassa neben Bolzano, am westlichsten in der Nähe von Lausanne und am südlichsten in Urzulei in Sardinien.
Der höchste Punkt war zum Start in die Skisaison vor einem Monat auf dem kleinen Matterhorn in Zermatt.

Unten ist die Heatmap meiner Positionen im 2022 eingebunden, so dass Reinzoomen in die Karte und Raussuchen anderer Ausflüge selbst möglich ist.

Die komplette Analyse ist auf GitHub zu finden, falls jemand dies für sich nachbauen will.
Weil die Originaldatei mit meinen Positionen auch die genauen Zeiten enthält, liefere ich die aus datenschutztechnischen Gründen nicht mit.
Eine komplette Version meiner Analyse als Notebook mit allen Karten ist dank dem coolen NBViewer hier zu sehen.

EqualStreetNames Bern. Oder die Geschlechterverteilung der Strassennamen in meiner Heimatstadt.

Bern

Wer mich ein bisschen kennt, weiss, dass ich einen OpenStreetMap-Fetisch habe.
Letzthin bin ich via WeeklyOSM auf EqualStreetNames gestossen.
Das Team von EqualStreetNames visualisiert, wie die Geschlechterverteilung der Strassennamen in einer Stadt aussieht, z.B. für Brüssel.
Das Team von EqualStreetNames hat eine Vorlage erstellt, damit eine solche Strassenbenamsungsgeschlechterverteilungsvisualisierung für jede beliebige Stadt erstellt werden kann.
Da ich Verknüpfungen von verschiedenen Datenquellen liebe und ’a sucker for nice visualizations’ bin, hab ich mir gedacht, das sollte doch auch für Bern gemacht werden.
Etwas später war die Vorlage angepasst und noch einen Moment später war https://bern.equalstreetnames.eu/ mit der Ersten nach dem Geschlecht der Namensgebebeerin visualisierten Strasse online, der Hardeggerstrasse.

Vor einer Woche hab’ ich dann ein paar OpenStreetMap-Aktive in Bern angeschrieben, ob sie mithelfen, die Strassen mit den notwendigen (und richtigen) name:etymology:wikidata-Tags zu versehen, damit diese Strassen dann in der Visualisierung auftauchen.
Dieser Tag beschreibt die Namensgeber*in in maschinenlesbarer Form, so dass automatisch das Geschlecht ausgelesen und visualisiert werden kann.

Eine Woche später haben mindestens thisss, ydrgbjo, freaktechnik, chatelao und orycteropus1 (sortiert in Reaktionszeitreihenfolge) mitgeholfen, dass von 908 Strassennamen in Bern schon 177 mit dem name:etymology:wikidata-Tag versehen sind [1].

Das Resultat der Arbeit ist hier zu sehen: EqualStreetNames.Bern.

Von den 177 Strassen, die bis jetzt eine*r Namensgeber*in zugeordnet sind, sind 151 nach einem Mann und 24 nach einer Frau benannt.
Die restlichen 731 Strassen sind entweder nach irgendwas sonst benannt, oder wurden noch nicht richtig zugeordnet.

Wer mithelfen möchte, am Repository für Bern rumzubasteln, oder dasselbe für ’seine’ Stadt nachzubauen möchte, kann sich gerne direkt bei mir melden.

[1]: Teilweise sogar mit zwei solchen Tags, wie die Tschäppätstrasse, die nach beiden Tschäppäts benannt ist.

PS1: chatelao hat von einer Bekannten aus der Politik eine Liste mit allen Strassenbeschilderungungen aufgetrieben, die wir mit Quellenangabe “Geodaten Stadt Bern” verwenden dürfen und in eine Tabelle abgefüllt.

PS2: ydrgbjo hat eine Wikimedia Commons-Kategorie erstellt; er und ich befüllen diese mit Strassenschilder-Fotos, damit unser Tagging nachvollziehbar ist.

PS3: Das Interdisziplinäre Zentrum für Geschlechterforschung der Uni Bern hat es in den zwei vergangenen Wochen noch nicht mal geschafft auf meine Mail-Anfrage nach Strassennamengeschlechteraufteilung zu reagieren, auch wenn der Barbara-Lischetti-Platz direkt vor deren Tür liegt :

PS4: Das Bild mit den Strassen von Bern im Header habe ich schnell mit der Hilfe von osmnx und dessen Beispiel-Notebook 7 gemacht…

Wo war ich im 2019

Hier einer der Posts zu meinem 2019.
Eine Darstellung meiner Aufenthaltsorte im vergangenen Jahr.
Dieser und andere Posts sind unter dem Tag jahresrückblick19 zu finden.

Wie letztes Jahr lief das ganze Jahr über WHIB im Hintergrund auf meinem iPhone SE.
Das heisst, dass ich jetzt ca. 18000 Datenpunkte habe, wo sich mein Telefon (und dadurch mit hoher Wahrscheinlichkeit ich) im 2019 befunden hat.

Im 2109 war ich drei Mal ausserhalb der Landesgrenzen.
Im Mai war ich an einer Konferenz in Belgien und habe dort die Geschichte mit den Zebrafischen präsentiert, über die ich hoffentlich bald mehr schreiben kann.
Auf der Karte, die ganz unten in diesem Post eingebunden ist, zieht sich die Zugfahrt dorthin hübsch als Linie von Bern bis Mechelen in Belgien.
Im Juli waren wir mit einem coolen, gemieteten Camper in der Umgebung des Comer See unterwegs.
Im Oktober fuhren wir mit dem Zug nach Rapallo und haben den sprichwörtlichen Steinwurf weit vom Meer weg übernachtet, ein paar entspannte Tage an der ligurischen Küste verbracht, bevor wir auf dem Rückweg noch ein paar Tage in Genua die spannende Stadt erkundet haben.

Von Mechelen in Belgien bis Prato (dem Leuchtturm unter Portofino) habe ich also ca. 750 km in Nord-Süd-Richtung gemacht.
Im Durchschnitt bin ich fast zuhause geblieben, nämlich in Brenzikofen :)
Ende November habe ich trotz kaputtem Knie die SkiTelemark-Saison gestartet.
Die Bergstation des Sessellifts auf den Furgsattel war der höchste Punkt, an dem ich mich im 2019 befunden habe.

Unten ist die Heatmap meiner Positionen im 2019 eingebunden.
Die komplette Analyse ist hier auf GitHub zu finden, falls jemand dies für sich nachbauen will.
Weil die Originaldatei mit meinen Positionen auch die genauen Zeiten enthält, liefere ich die aus datenschutztechnischen Gründen nicht mit.
Eine kommplette Version meiner Analyse als Jupyter-Notebooks mit allen Karten ist (zur Ansicht) hier zu finden.

Wo war ich im 2018?

Hier der nächste meiner Posts zum 2018. Eine Darstellug, wo ich mich aufgehalten habe. Dieser und andere Posts sind unter dem Tag jahresrückblick18 zu finden.

Seit OpenPaths ganz tot ist, speichert mein Telefon seine Position mit WHIB. Dank einer 2$-Premium-Funktion kann ich die Positionsdaten als CSV-Datei exportieren und diese dann mit etwas Python analysieren und darstellen.

Im 2018 war ich eher wenig (ausserhalb der Schweiz) mobil. Wenn mensch den Osterausflug nach Konstanz zur Schweiz zählt, war ich “nur” im Herbst in Sardinien (Ferien) und Anfangs Dezember in Heidelberg (Konferenz) ausserhalb der Landesgrenzen.

Die 13843 Datenpunkte ansprechen einer Position ca. alle 90 Minuten (stimmt nur halb, denn mein Telefon ist in der Nacht immer ausgeschaltet). Vom nördlichsten Punkt am Bahnhof Mannheim bis zum südlichsten Punkt am Strand von Porto Giunco an der Südspitze von Sardinien sind es Luftlinie ca. 1151, vom westlichsten Punkt (Yverdon) zum östlichsten (ebenfalls in Sardinien) wären es 242 km, wenn die Punkte denn auf der gleichen geografischen Höhe wären…
Damit wären auch die Extrem-Positionen auf der Kompassrose geklärt.

Der höchste Punkt war am Ausgang der Tunnelpiste beim Bettmerhorn, bei 2641 müM. Im Durchschnitt war ich im Kandertal bei Kandergrund, im Median habe ich mich im Weissenbühl befunden.

Die Code ist hier auf GitHub zu finden, oder inklusive aller Kartenansichten hier im nbviewer.

Da ich aus offensichtlichen Gründen nicht die gesamte Positions-Historie beilegen will, läuft das Notebook nicht in Binder. Unten ist eine sogenannte Heatmap meiner Position übers ganze 2018 zu sehen, direkt als HTML-Code aus dem Notebook exportiert. Es kann also etwas dauern, bis dein Browser oder Feed-Reader das Ding anzeigt…

Wo war ich im 2017

Anfangs Jahr ist ein guter Zeitpunkt, um aufs vergangene Jahr zurückzublicken. Das heisst, es gibt mal wieder ein paar nerdige Blogeinträge. Der Rest (wenn er dann kommt) ist unter dem Tag jahresrückblick17 zu finden.

Da ich erst Mitte 2017 herausgefunden habe, dass OpenPaths tot ist (die Daten können nicht mehr exportiert werden, auf Mails und Twitter-Nachrichten reagiert niemand), habe ich mich nach Alternativen umgesehen. Leider erst ab Juli, daher fehlen die Daten der ersten Jahreshälfte…
Nachdem Moves ausgeschieden ist, weil es zu Facebook gehört, und Arc ausgeschieden ist, weil die Batterielaufzeit des Telefons massiv verringert wurde, bin ich bei WHIB gelandet. Dank einem 2$-premium-Feature können alle aufgenommenen Daten als CSV exportiert werden, das macht es möglich, mit ein bisschen Python zu schauen, wo ich mich (in der zweiten Hälfte) 2017 rumgetrieben habe, als ich das Telefon dabei hatte.

Dazu brauchen wir ein paar Bibliotheken

[code lang=python]
import pandas
import matplotlib.pylab as plt
import seaborn
import folium
[/code]

Laden wir mal das exportierte File in eine Pandas Tabelle

[code lang=python]
locations = pandas.read_csv('journey.csv')
[/code]

Das sieht doch schon mal ganz gut aus, wir haben nämlich 6233 Datenpunkte.

[code lang=python]
locations.describe()
[/code]

Crumb Latitude Longitude Altitude (in metres) Accuracy (in metres)
count 6233.000000 6233.000000 6233.000000 6233.000000 6233.000000
mean 3116.000000 46.932620 7.437850 533.149527 125.461736
std 1799.456446 0.067238 0.115774 159.792018 596.847400
min 0.000000 46.434918 7.026148 -43.000000 0.000000
25% 1558.000000 46.935265 7.417971 545.000000 47.000000
50% 3116.000000 46.937312 7.424690 555.000000 65.000000
75% 4674.000000 46.948112 7.433138 558.000000 70.000000
max 6232.000000 47.398817 8.577597 2003.000000 23964.000000

Mit etwas Hilfe von Folium können wir dann diese gut 6000 Datenpunkte auf einer schwarz-weissen Karte darstellen. Damit überhaupt ‘richtig’ etwas zu sehen ist, machen wir eine sogenannte Heatmap, dann ist das Ganze etwas übersichtlicher.

[code lang=python]
from folium.plugins import HeatMap
xy = [[row['Latitude'], row['Longitude']] for index, row in locations.iterrows()]
m = folium.Map(location=[locations['Latitude'].mean(),
locations['Longitude'].mean()], tiles='Stamen Toner', zoom_start=9)
folium.plugins.HeatMap(xy).add_to(m)
m
[/code]

Schlussendlich sieht das dann so aus; da war ich überall in der zweiten Hälfte vom 2017. Rein- und rauszoomen ist erlaubt und erwünscht :)

1000e Bilder für OSM bereitstellen | Mapillary mit GoPro Hero 4 Session

Vor einiger Zeit hab ich ja schon mal darüber geschrieben, wie mensch die Welt kostenloses Kartenmaterial verbessern kann.

Da das Zusammenspiel der Mapillary-App mit der GoPro Hero 4 Session nicht ganz problemfrei ist habe ich letzthin beim Velopendeln ‘was neues versucht.

Wir waren ja eine Woche mehr oder weniger in den Ferien am Thunersee, ich bin dann doch zweimal von dort aus arbeiten gegangen, einmal mit A. im Zug (sie ging in die Kita), einmal mit dem Velo.
Mit der Zeitraffer-Funktion der Kamera habe ich eine gute Stunde Fotos vom Lenker aus gemacht, dazu mit der Aktivitäts-Uhr die Positionen aufgenommen.

Da der korrekte Transfer der gut 2000 Bilder zu Mapillary doch nicht ganz einfach war, beschreibe ich hier den Ablauf, auch damit ich das das nächste Mal nachschauen kann [1].

Als erstes muss mensch das Garmin TPX-File in ein normales GPX-File umwandeln (Das File landet übrigens dank Tapiriik automatisch auf meinem Computer).
Dank GPSBabel und untenstehendem Kommando geht das ganz easy.

[code lang=bash]
gpsbabel -i gtrnctr -f ~/Dropbox/Apps/tapiriik/2017/08017.08.04.Vom\ Ländli\ us\ ga\ schaffe_Cycling.tcx -o gpx -F ~/Desktop/thunbern.gpx
[/code]

Jetzt müssen wir die Fotos vorbereiten, d.h. korrekt geotaggen und für Mapillary vorbereiten.

[code lang=bash]
cd ~/Dev
git clone git@github.com:mapillary/mapillary_tools.git
[/code]

lädt die Mapillary Tools auf den Kompi. Theoretisch würde das geotag_from_gpx.py-Skript das geotaggen erledigen. Das Skript hat aber einen Fehler, also muss mensch diesen erst korrigieren.

Dann klappt das Geotagging wunderbar mit

[code lang=bash]
python ~/Dev/mapillary_tools/python/geotag_from_gpx.py ~/Pictures/GoPro/2017-08-04/HERO4 Session 1/Time Lapse 3/ ~/Desktop/thunbern.gpx
[/code]

Zum hochladen der Bilder müssen zuerst sogenannte Umgebungs-Variabeln gesetzt werden. Die genauen Werte für deinen User-Account sind in deinen Mapillary settings zu finden und landen in deinem ~/.bashrc.

[code lang=bash]
export MAPILLARY_USERNAME='habi'
MAPILLARY_PERMISSION_HASH='GanzVieleBuchstaben'
export MAPILLARY_SIGNATURE_HASH='NochmalVieleBuchstaben'
[/code]

Dann geht das hochladen der Bilder flink und automatisch mit

[code lang=bash]
python ~/Dev/mapillary_tools/python/upload_with_authentication.py ~/Pictures/GoPro/2017-08-04/HERO4\ Session\ 1/Time\ Lapse\
3/
[/code]

(Wenigstens theoretisch, ich musste die Vorgänge geotagging und hochladen ein paar Mal wiederholen, bis alle Bilder hochgeladen waren.)

Das Ganze sieht dann in etwa so aus.

Und die Fotos ermöglichen es dann dem geneigten OSM-Nutzer oder der OSM-Nutzerin, anhand der Fotos die OpenStreetMap zu verbessern, sei das z.B. um einen neuen Kreisel einzuzeichnen oder generell ein paar Verbesserungen zu machen.

[1]: Oder mit den insgesamt knapp 3000 Photos von der Hallo Velo-Runde wiederholen konnte.

Keine ‘recommended readings’ mehr

In naher Zukunft wird es hier keine ‘recommended readings’ mehr geben.
Irgendwas am Zusammenspiel der verschiedenen Komponenten funktioniert nicht mehr.

Ich vermute mal, dass der Hauptteil der Schuld bei del.icio.us liegt, denn mein RSS-Feed dort funktioniert nicht mehr.
Das heisst auch, dass das IFTTT-Rezept oder das WordPress-Plugin nichts mehr machen können.
Und ohne die Automatisierung ist mir das Ganze dann doch etwas zu aufwändig.

Wer weiterhin wissen will, was ich gerne gelesen habe, findet drüben bei Instapaper die Zusammenstellung. Ich bin auch dankbar für Tipps, um die Automatisierung wieder zu beleben, gerne auch mit einem anderen Dienst als del.icio.us. Das scheint nämlich schon länger auf dem absteigenden Ast zu sein…

Einfache Probleme, völlig over-engineered

Ich weiss, ich hab’ schon lange versprochen, ich schreibe mal über meine neue Arbeit. Was ich letzte Woche mal so nebenbei gemacht habe, gibt mir die Gelegenheit dazu. 3 Dinge kommen zusammen, die diesen Blog-Eintrag ausmachen: Die neue Arbeit, 3D-Drucker und ein Flug zurück von Marokko.

Seit Juni arbeite ich nicht mehr am PSI, sondern wieder an der Uni Bern, speziellerweise im selben Haus, in dem ich die Doktorarbeit geschrieben habe. Ich beschäftige mich immer noch mit hochauflösender Röntgen-Tomographie, einfach nicht mehr mit einer Synchroton-Röntgenquelle und einem krassen Aufbau auf einem Labortisch, sondern arbeite an zwei kommerziell erhältlichen Tisch-MikroCT-Geräten. Da kommt es z.B. mal vor, dass ein kleiner Fisch genauer angeschaut wird…

Coolerweise haben wir dort einen primasuprigen 3D-Drucker, mit dem ich einiges an angepassten Probenhaltern ausgedruckt habe, damit wir allerlei verschiedene Proben in unseren Geräten mikro-tomografieren können.

Und eben, letzthin waren wir in Marokko in den Ferien. Das war wunderbar, auch mit der Kleinen. Beim Rückflug ist an unserem Kinderwagen ein Kleinteil abgebrochen, irgendwo beim Ein- oder Ausladen, oder bein Zusammenlegen oder Auseinanderklappen, spielt ja keine Rolle…

Und jetzt kommt alles zusammen: Glücklicherweise ist das Kleinteil symetrisch an unserem Kinderwagen vorhanden. Also habe ich vom noch ganzen Teil im MikroCT eine Röntgentomographie-Aufnahme gemacht. Mit etwas Bildbearbeitung entsteht aus dieser Tomografie-Aufnahme das untenstehende Bild.
Phil und Teds-Stück, animiert
Dieser Datensatz kann dann in ImageJ als STL-Datei exportiert werden, ein Datenformat, welches der 3D-Drucker versteht. Nach gut 2 Stunden Warten sieht das Ding dann – frisch aus dem Drucker – so aus.

Fertiger print, 1
Fertiger print, 2

Farblich nicht ganz passend, aber von der Form her passt’s perfekt. Nachdem die Stützstrukturen entfernt wurden kann das Ding endlich montiert werden und sieht dann so aus. Alles viel einfacher als das Ersatzteil im Laden besorgen, oder?

Montiert

Also, Herr Chm, falls bei Ihnen dasselbe Teil abbricht, melden Sie sich, ich kann’s gerne nochmals ausdrucken…

Der Rückblick auf mich selbst im 2015

Hier ein weiterer meiner Jahresrückblick 2015-Posts. Die anderen sind unter dem Tag jahresrückblick15 zu finden.

Wie im 2014 habe ich mit der Everyday App praktisch jeden Tag ein Selfie von mir gemacht. Mit minimalsten Anpassungen hab’ ich das Skript von leztem Jahr über meine 338 Selfies laufen lassen. Zusammengesetzt mit der Zeitraffer-App kommt schlussendlich dieses Video hier raus.

Knapp die Hälfte der Tage dachte ich daran beim Arbeitsschluss im Treppenhaus ein Foto zu machen [2]. Dadurch ist der Hintergrund und die Beleuchtung in diesen Bildern etwas konstanter, was das Ganze etwas schöner zum anschauen macht.

So seh’ ich aus, wenn mensch den Durchschnitt aus allen 338 ausgerichteten Bildern macht. Mein durchschnittliches Gesicht im 2015.

Habis average face for 2015

[1]: Oder war auswärts am arbeiten. Oder nicht am arbeiten.

So entstehen meine ‘Recommended readings’

Seit einiger Zeit versuche ich immer Anfangs Monat ein Blogpost mit Texten und Videos zu machen, die mir letzten Monat gut gefallen haben.
Nachdem letzthin auch schon andere darüber geschrieben haben, wie ihre Linksammlung entsteht, dachte ich, ist es an der Zeit, zu erzählen, wie ich es mache.

Der allergrössten Teil meiner Nicht-Bücher und Nicht-Magazine lese ich via Instapaper, das ich von überallhin z.B. mit einem Bookmarklet befülle.
Instapaper ist extrem gut geeignet, um immer etwas zum Lesen dabei zu haben, sei es direkt auf dem Mobiltelefon oder z.B. auf dem Kindle, der normalerweise irgendwo in meiner Tasche oder in meinem Rucksack rumliegt.
Irgendwann hat mensch dann immer etwas Zeit, um den einen oder anderen Artikel dort zu lesen.

Die Artikel, die bei Instapaper mit einem Herzli markiere, werden mit einem IFTTT-Rezept [1] zu meinem del.icio.us-Account gezügelt.
Mit einem WordPress-Plugin, welches ich einmal im Monat laufen lasse, werden diese Einträge dort abgeholt und in ein Blogpost abgefüllt.
Dieses wird dann händisch noch etwas aufgeräumt und sortiert, bevor ich dann auf den ‘publizieren’-Knopf drücke und die Blogposts wiederum unter dem instapaper-Tag hier landen

Das Ganze liesse sich – wie bei Bastian – noch deutlich hübscher gesamt-automatisieren, damit z.B. auch die Herkunft des Links vermerkt wird.
So funktioniert es aber im Moment einigermassen gut.

[1]: IFTTT “is the bee’s knees“, wie mensch auf Englisch so schön sagt. Mit dem leuchtet zum Beispiel meine Schreibtischlampe auf, sobald ich heimkomme (oder blinkt rot, wenn die ISS obendrüber fliegt), werden speziell getaggte Fotos von flickr in Blogposts hier umgewandelt und einige andere Dinge für mich automatisiert.

Arq: Backup einfach!

Unter anderem, weil Philip grad von Backups schrieb.
Und weil’s am Ende des Blog-Eintrages etwas etwas günstiger gibt.

Seit längerer Zeit mache ich zusätzlich zu meinem TimeMachine-Backup auf einer Festplatte in der Schreibtisch-Schublate ein sogenanntes Offsite-Backup meiner wichtisten Daten (Fotos und Dokumente).

Das Offsite-Backup wird mit Hilfe von Arq bei Amazon gespeichert, so dass ich für ein Backup von gut 300 GB Daten im Monat knapp 8$ zahle und mir sicher sein kann, dass diese wichtisten Daten selbst dann sicher sind, wenn mir mein Schreibtisch mit dem Laptop drauf und der TimeMachine-Festplatte drin explodiert.

Seit neuerem kann Arq Backups auch zu Microsoft OneDrive (15 GB kostenlos) und Google Nearline (0.01 $ pro GB) sichern. Ich bin daran, meine Daten zu Google Nearline zu migrieren, dann zahl’ ich für mein Backup nur noch etwa 3$ im Monat…

Wer bis jetzt noch keine saubere Offsite-Backup-Lösung hat, kann mit dem Code 0FRFGFPLSCYH2HS2 bis zum 15. April Arq 10% günstiger kaufen, von mir aus gesehen eine absolut lohnenswerte Investition.

Nicht dass es schampar wahrscheinlich wäre, aber damit kann auch die ganze Wohnung mit dem Schreibtisch mit der Backup-Festplatte drin abbrennen und mensch kann immernoch auf seine Daten zugreifen, z.B. auf die ersten Fotos der Tochter :)

Kommentare sind wohl wirklich tot

Dies ist der vierte und letzte meiner Jahresrückblick 2014-Posts. Die anderen sind unter dem Tag jahresrückblick14 zu finden.

Wie schon voremene Zitli nahm es mich letzthin wunder, wie’s denn heutzutage so mit den Kommentaren hier aussieht.

Dafür hab’ ich mein Skript zur Kommentar-Visualisierung ausgegraben, minimalst aufgehübscht und liess es über meine WordPress Datenbank laufen.

Wie früher auch schon klar ersichtlich, hat die Kommentar-Zahl sowohl die Posting-Zahl abgenommen. Die Posts haben sich in der Region von ca. anderthalb Posts pro Woche eingependelt, während seit ein paar Jahren ein Post von mir im Schnitt höchstens noch einen Kommentar generiert.

Aber wie schon das letzte Mal soll nicht unerwähnt bleiben, dass das hier ja mehr so ein halbwegs visuelles Tagebuch meiner coolen Erlebnisse ist und ich nicht auf die Kommentare angewiesen bin. Interessieren würde mich aber schon, wie das bei anderen (WordPress)-Bloggern aussieht. Wenn ihr einen solchen Plot macht, macht doch einen Kommentar oder Trackback hierhin, damit wir ein paar Datenpunkte mehr haben.

Jahresrückblick auf mich selbst

Das ist der dritte meiner Jahresrückblick 2014-Posts. Die anderen sind unter dem Tag jahresrückblick14 zu finden.

Im 2014 lernte ich Git lieben, hab’ viel Bildverarbeitung mit Python gemacht und gelernt, dass Gesichts-Erkennung mit OpenCV in ein paar Zeilen Code möglich ist.

Gesichtserkennung, mit Augen

Dazu kam, dass ich praktisch jeden Tag ein Selfie von mir machte, mit der Everyday App. Eigentlich wollte ich diese beiden Dinge verbinden, fand dann aber irgendwann im Herbst raus, dass ich nicht der erste bin, der daran gedacht hat [1]. Rob Lourens hat ein Python-Skript geschrieben, das Bilder nimmt, auf diesen Gesichter und Augen erkennt und die Bilder zueinander ausrichtet.
Mit minimalen Anpassungen liess ich das Skript über meine 339 Selfies aus 2014 laufen. Zusammengesetzt mit der Zeitraffer-App mit 1 Woche pro Sekunde kommt schlussendlich dieses Video hier raus.

Knapp die Hälfte der Tage dachte ich daran beim Arbeitsschluss im Treppenhaus ein Foto zu machen [2]. Dadurch ist der Hintergrund und die Beleuchtung in diesen Bildern etwas konstanter, was das Ganze etwas schöner zum anschauen macht. Dieser Film ist so zusammengesetzt, dass eine Arbeitswoche einer Sekunde entspricht.

Wer die beiden Videos genau anschaut, sieht, dass ich im 2014 5 Mal die Haare und 18 Mal den Bart geschnitten habe. Und diesen Pickel an der Backe nur mit Bildbearbeitung los geworden bin, aber das ist ein guter Vorsatz im neuen Jahr :)
Und, weil’s grad so gäbig geht, und chli zu Rumänien passt. So seh’ ich aus, wenn mensch den Durchschnitt aus allen 339 ausgerichteten Bildern macht. Habis durchschnittliches Gesicht im 2014.

Habis average face for 2014

[1]: Ich sag’ immer: Es gibt fast nichts, das nicht schon jemand mal auch schon als Problem hatte, das schwierige daran ist nur, die Lösung trotzdem herauszufinden.
[2]: Oder war auswärts am arbeiten. Oder nicht am arbeiten.

Where was I in 2014

This is the first second of some of my look back on 2014 posts. To see the other ones, take a look at the jahresrückblick14-tag

Introduction

I tracked my location data with OpenPaths since the beginning of 2014. OpenPaths comes as an application for your phone, which tracks its location, uploads it to the OpenPath servers, where you can donate your data for scientific research, and look at the data yourself.

To do this, we grab a .CSV file with the location data. Log in to OpenPaths, and click on CSV under Download my data, which gives you a comma separated list of your location data, which can then visualize with R, which is what we’ve done here.

Data

We want to plot the location points on a map, which we can do with the wonderful ggmap library. First, we load the CSV file and display a summary of the data.

[code lang=r]
library(ggmap)
data summary(data$lat)
summary(data$lon)
summary(data$alt)
[/code]

[code lang=text]
## lat
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 34.6 46.9 47.2 46.0 47.5 53.6

## lon
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 4.76 7.50 8.20 21.80 8.22 141.00

## alt
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -48 353 380 463 546 2670
[/code]

In 2014 I was somewhere in woods somewhere in Romania in the mean, and somewhere in Beromüster as the median.

[code lang=r]
summary(data$device)
summary(data$os)
[/code]

[code lang=text]
## device
## iPhone4,1 iPhone6,2
## 13453 1093

## os
## 7.0.4 7.0.6 7.1 7.1.1 7.1.2 8.0 8.0.2 8.1 8.1.1 8.1.2
## 829 261 2238 2065 1551 145 6095 479 449 434
[/code]

We see that in 2014 I changed from an iPhone 4S (iPhone4,1) to an iPhone 5S (iPhone6,2) and went through 10 different iOS version numbers.

Location data

Extremes

Interesting points in our data are

  • The minimal and maximal latitudes of 34.601 and 53.5866, South and North.
  • the minimal and maximal longitudes of 4.762 to 141.1744, East and West.
  • as well as the altitude, which ranges from -48 AMSL to 2671 AMSL.

We can get the extreme points out of the data pretty easily. To do so, we subset the data depending on the value we want to have, build a Location from these points, grab the map from that location, display this map and add a pointer.

For the most northern point, this goes like so:

[code lang=python]
NLocation = c(lon = subset(data, lat == max(data$lat))$lon[1], lat = subset(data,
lat == max(data$lat))$lat[1])
mapImage zoom = 15)
ggmap(mapImage) + geom_point(aes(x = subset(data, lat == max(data$lat))$lon[1],
y = subset(data, lat == max(data$lat))$lat[1]), alpha = 0.5, color = "darkred",
size = 10) + ggtitle("Northmost point in 2014")
[/code]

where_is_the_northmost_point_

We see that in 2014 I was in Hamburg, which is the northmost point. Correctly, the northmost point would be in Oslo, where I spent New Years Eve 2013/2014, but I’ve only really started to use OpenPaths in mid-January 2014…

The rest of the extremes can be extracted accordingly.

where_are_the_other_cardinal_direction_extremes_1
where_are_the_other_cardinal_direction_extremes_2
where_are_the_other_cardinal_direction_extremes_3

The most eastern point was (unsurprisingly) in Japan, the southmost point in Cyprus and the most eastern point in Amsterdam (while flying to Japan).

The highest peak I reached in 2014 was the Bettmerhorn, probably while skiing. The lowest point at -48 AMSL was at home and is probably a fluke in the GPS data :)

where_is_the_highest_point_

Where was I in Switzerland?

To plot the obtained data on a map, we have to center the resulting map location. Since I only want to show the data points in Switzerland, we center the map on that. Afterwards, we can simply plot all the data points on top of that image, and you can see where I was in Switzerland in 2014.

[code lang=r]
HomeBase zoom = 8)
AllPoints ggmap(HomeBase) + geom_point(aes(x = lon, y = lat), data = AllPoints, size = 3,
alpha = 0.25)
[/code]

Swiss_Locations

If you’d like to see the full R code (in R Markdown), you can take a look at the OpenPaths.Rmd on my GitHub account.

Mailbox Beta-Einladungen

Vor längerem hab’ ich mal die Mailbox-App auf meinem Telefon installiert gehabt.
Auch wenn ich nicht wirklich damit warm geworden bin, war ich interessiert, ob die App auf dem Desktop funktioniert.
Letzte Woche erhielt ich die Einladung [^1], mich an der Beta-Version für OS X zu versuchen.
Weil die App nur mit Gmail– und iCloud-Accounts funktioniert, konnte ich die App aber leider nicht testen [^2].

Langer Rede kurzer Sinn; Ich hab’ nun drei zwei eine drei Einladungen zu verschenken, für jemanden, der die App testen und benutzen will (wie gesagt: OS X, Gmail oder iCloud).
Wer so eine Einladung möchte, kommentiert unten oder sendet mir ein Mail.

[^1]: Offensichtlich sind gestaffelte Beta-Einladungen gefühlte hundert Jahre nach deren Einführung immer noch ein Ding.
[^2]: Also können schon, nur hab’ ich in den letzten Monaten meine Mails von Google weg zu meinem eigenen Server gezügelt. Und nur für’s testen das wieder rückgängig zu machen, erschien mir dann doch zu mühsam.

update:
Ich bekam wieder ein paar Einladungen, aktuell sind noch fünf zu haben.

Einladungen ginen raus an

Das Mitmach-Web ist tot!

Vor fast zwei Jahren haben das Thema schon mal diskutiert; und befunden dass bei verschiedenen Blogs bei den Kommentaren die Peaks überschritten sind.

Letzthin fiel mir ein, dass ich das doch mal wieder anschauen wollte, ob sich daran etwas geändert hat. Nach kurzer Analyse komm ich zur Aussage, dass das Mitmach-Web tot ist, jedenfalls aus meiner Sicht. Auf meinem Blog hier hab’ ich den letzten drei Jahren Kommentarzustände wie 2006, also im Schnitt ca. anderthalb Kommentare pro Eintrag.
Dafür kann es mehrere Gründe geben, der offensichtlichste ist, dass das was ich schreibe generell wenig Reaktionen hervorruft. Ein anderer Grund ist, dass sich kein Schwein für das interessiert, was ich schreibe. Oder dass generell nicht mehr so kommentiert wird, wie vor einigen Jahren.

Das tönt jetzt etwas griesgrämig, ist aber nicht wertend gemeint. Wenn ich das, was ich hier mache nur machen würde, um Rückmeldungen abzuholen, bin ich sowieso auf der falschen Schiene. Das Blog hier dient schon über 10 Jahren (jawoll) als öffentliches Tagebuch, zum festhalten von Eindrücken und Dingen, die mich bewegen.

Und schliesslich sind Blogs nur noch für 40-jährige mit Kindern, wie Herr Kottke letzthin schrieb. Beide Eigenschaften treffen (noch) nicht wirklich auf mich zu, ihr wisst aber schon, worauf ich raus will.

Langer Rede kurzer Sinn; ich hab’ mich mal wieder hinter die Tastatur geklemmt und versucht, ein kleines Skript zu schreiben, welches mir die Arbeit abnimmt, die Aussagen aus der Datenbank zu knübeln, damit ich das Gegreine oben mit Zahlen belegen kann.

Ich hab’ das Skript von vor zwei Jahren etwas ausgebaut, so dass das Datenbank-Gepfriemel und die Anzeige in einem Rutsch gehen. Und zwar so.

Dank MySQL Connector/Python wird die Datenbank von WordPress direkt angezapft, mit optparse werden dem Skript ein paar Vorgaben (Server, Datenbank, Username und Passwort) dazu übergeben.

Die Datenbank-Abfrage (ursprünglich von Herr Leu) wird direkt übergeben.

Anschliessend wird mit den abgefragten Daten etwas jongliert und diese dann ausgegeben,

Und schlussendlich wird mit matplotlib das ganze visuell dargestellt und als Bild gespeichert, Dank iWantHue in einer optimalen Farbkombination.
.

Wer das ganze für sich selber auch anschauen möchte, sei herzlichst eingeladen, das Skript hier herunterzuladen und im Terminal zu starten. Ohne Parameter gibt’s mal eine Hilfe, ich verrate schon, dass mensch die Angaben wie Server, Datenbank-Name, -User und -Passwort bereithalten sollte. Wenn du das grad nicht mehr weisst, findest du diese Angaben in deiner wp-config.php-Datei.

Issues und Pull Requests sind herzlich willkommen, genauso wie Kommentare mit den Bildern von euch.

habi_gna_ch.png