geodaten-vibe-coding
ich gebe zu, ich mache hier nicht alles selbst. ich lasse mir helfen. zumindest bei der technik. aber das machen fast alle. man stellt sich auf die schultern von giganten und nutzt das, was andere gebaut haben. wordpress, drupal, hugo, yekyll, microblog, whatever. unzählige plugin erweitern uns allen die möglichkeiten. die wenigsten bauen sich ihr CMS selbst, ausnahmen bestätiugen die regeln.
ich habe mich für kirby entschieden, habe dafür eine bescheidene lizenzgebühr bezahlt und zahle auch für ein paar plugins. und ich zahle mittlerweile auch einen programmier-assistenten — dem github kopiloten — ein stattliches monatsgehalt von um die 50 €. aber ich finde das lohnt sich. ich schraube täglich irgendwo am blog rum und der kopilot hilft mir die sachen besser zu verstehen, bessere lösungen zu finden und kleinigekeiten zu perfektionieren. ich bin kein guter programmierer, aber ich verstehe einigermassen um was es geht, was wichtig ist und habe eine gute vorstellung davon wo ich hin will. der kopilot hilft mir weniger schlecht zu programmieren (frei nach passig).
in den letzten tagen hat mir der kopilot auch dabei geholfen überhaupt zu verstehen was mein derzeitiges lieblingsplugin kirby-seo überhaupt kann und wie man es implementiert. ich hatte zwar so eine ahnung, aber mit der doku wäre ich nie darauf gekommen, wie einfach es damit ist meine blog maschinenlesbarer zu machen. und wie elegant das alles implementiert und zu nutzen ist.
// BlogPosting Schema
$schema = $page->schema('BlogPosting')
->url($page->metadata()->canonicalUrl())
->datePublished($page->date()->toDate('c'))
->dateModified($page->modified('c'))
->description($page->metadata()->metaDescription())
->inLanguage('de')
->headline($page->title());
if ($author) {
$schema->author(
schema('Person')
->name($author->name()->value())
->url($author->url())
);
}
// OG-Bild hinzufügen falls vorhanden
$ogImage = $page->metadata()->get('ogImage')->toFile();
if (!$ogImage && $cover1) {
$ogImage = $cover1;
}
if ($ogImage) {
$schema->image($ogImage->url());
}
gelegentlich sass ich vorm bildschirm und sagte ausversehen zu mir selbst: „wow!“ obwohl ich eigentlich gar nicht mit mir selbst spreche.
andererseite: oft ist der kopilot überfordert, noch öfter baut er scheisse, übersieht details, vergisst dass ich kirby 5.1 nutze und nicht die kirby-version, die gerade aktuell war, als er in der lehre war.
aber manchmal überrascht er mich auch. eben habe ich es gefragt:
ich habe folgende idee:
ein php script das einmal pro tag alle location daten aus allen artikel klaubt und in einer json datei sichert.
daraus würde ein anderes script eine datei machen, mit der ich für jede location einen marker auf einer karte darstellen könnte. am besten irgendwie mit open street map, gerne auch extern gehostet. hast du ideen für die umsetzung?
aus dieser anforderung hat der kopilot innerhalb von 2 minuten einen funktionierenden prototypen gebaut: wirres.net/karte. da war ich ziemlich baff.
wir haben noch ein stunde gemeinsam etwas an der karte gefeilt, datumsformat eindeutschen, clusterring der location pins, bild-thumnails hinzufügen — und das wars mehr oder weniger.
die geodaten sammle ich seit 2008. grösstenteils stammen sie von instagram und checkins, aber auch frei-hand habe ich viele artikel mit geodaten versehen. aktuell liest kirby auch geodaten aus hochgeladenen fotos aus, weshalb die aktuelleren geodaten etwas akurater sind als das was von instagram kommt.
wenn ich auf instagram fotos von spaziergängen in den rehbergen poste, landet der location pin immer auf der catcher-wiese.
das ist natürlich alles ein rabbit hole ohne ende. irgendwann muss ich den instagram location-scheiss aufräumen, die thumbnails könnte quadratisch sein und ich vermisse fotos die ich dachte, sie seien eigentlich mit geotags versehen.
aber es ist schön so im eigenen œuvre zu stöbern. und ohne hilfe vom kopiloten, hätte ich diesen artikel erst in 6 bis 8 monaten geschrieben. weil ich dann erst damit fertig geworden wäre.
p.s.: die karte ist einer der wenigen orte hier auf wirres.net, an dem externe daten (javascript, open-street-map karten-kacheln, etc.).
p.p.s.: den artikel zu schreiben hat doppelt so lange gedauert wie die karte zu bauen.
