 Hallo, mein Name ist Andi, ich bin aus dem Münchner Club. Für die, die gestern in dem Vortrag von Pylons waren, mit dem, ob ihr noch alle Tessen in eurem Schrank habt. Da wurde so hervorgehoben, dass es beim Easterhex 2010, also vor 10 Easterhex, nicht ganz 10 Jahren, mehr als 10 Jahre, Video-Mitschnitte gab, da war ich dann schuld. Das führte dann dazu, dass man in dem Jahr, dann 2010, dann auch auf der SMP einen Workshop eingereicht hatte und in den Leuten, die man da getroffen haben, haben wir dann im Jahr drauf das Wock gegründet. Wie das halt immer so spielt, also ist alles miteinander verwoben, auch beim Easterhex. Genau. Fangen wir einfach mal los mit der kleinen Modigationsfolie. Weiß irgendjemand, was diese Zahl bedeutet? Welches Entity die repräsentiert? Oder was das für ein Entity ist? Auf dem Slide sind es gleich drei verschiedene IDs, die aber alle dasselbe Identity-Entity bezeichnen. Hat irgendjemand eine Idee? Also bitte laut schreien oder geht an den Mikro? Nein, es ist keine Post-Lizer, wir haben hier ein Mikro und da ein Mikro, ihr könnt aber auch laut rausschreien. Erinnert mich nur daran, wenn ich es vergesse, zu wiederholen. Hier war der Vorschlag vereinzelt, dass die CCC nein, tatsächlich nicht. Also nichts mit dem Bundestag, sonst ist es ganz trivial. Hat jetzt vielleicht jemand eine Idee, was es sein könnte? Wir sehen schon, das ist eine andere Art von ID, mehr dazu gleich, aber wir sehen, das hat irgendwas mit der ARD zu tun. Und das ist wohl vom Typ Publisher. Nein, das kann nicht depublikiert werden, in dem Fall. Zeichnig, weil es ist ja ein Publisher, ja, also eine Welle. Also, ich habe noch nicht die dritte ID, da wird dann klar, was es ist. Mir hat nur die Zahl recht gut gefallen, deswegen habe ich das genommen. Genau, aber damit ist eigentlich der Vortrag schon beendet, weil ihr seht, Integer sind blöd, man sieht ihr nichts an. Aber den Gag haben wir im Intro im Vortrag schon gehabt, deswegen geht es natürlich weiter. Genau, das Claimer, das ist jetzt kein Security-Vortrag oder irgendwie sowas. Also kein Zerforschungskontent, wie manche schon vermuteten. Es geht mir, ich bin Systems Engineer, das heißt, ich beschäftige mich mit verteiltem System in der IT. Und da stellen wir uns immer die Frage, wessen wir denn als primärer ID von dem Inhalt? Und da ich auch im CCC mit dem Zeug zu tun habe, vor allem eben im Vogue, mit der CCDE, bin ich gerade einer der wenigen Leute, die sich kümmern, dass es da weitergeht und die Software, die dahinter das bereitstellt. Und ja, ich nehme zwar hier jetzt ein Beispiel aus dem CCC-Kontext, konkret Vorträge. Generell funktioniert es aber überall in jeder Domäne. Es ist nur jetzt hier, da haben wir hier auch auf einer CCC-Veranstaltung Sinn, dieses Beispiel, so gewählt wie es gewählt ist. Genau, auch was aus dem Vortrag von gestern, also wie man hat immer so schon erzählt, wann welches Programmplanungssystem benutzt wollte, das erste eigenständige Software, die man im CCC dafür entwickelt hat, war eben Pentabarff. Das wird auch jetzt immer noch eingesetzt. Also die FOSSTEM in Brüssel setzt es heute noch ein, im Januar. Und ich habe sie mal gefragt, viel lang wollt ihr denn das noch einsetzen, macht es Sinn dafür noch Patches einzureichen. Und sie meinten, ja, sie versuchen es rauszubringen. Also vielleicht nächstes Jahr noch nicht, aber über nächstes Jahr, dass wir uns da noch verabschieden können. Hier sehen wir auch schon ein paar IDs. Ich weiß nicht, ist das groß genug? Wir können auch noch ein bisschen reinsumen. Also wir haben einmal eine Konferenz, an der alles hängt. Das ist das Route-Objekt da drin. Wir haben Event, das hat eine ID, wieder ein Integer. Und dann haben wir da drunter auch nochmal ein paar Meter Information. Da haben wir eine zweite ID, die den Slack, wobei der jetzt noch weniger eindeutig ist. Also der funktioniert hier bei dieser Pentabarff Instanz, ist nur für diese eine Konferenz. Keine Ahnung, ob die jedes Mal den Slack-Kino benutzen. Und ja, wir verstecken sie noch ein paar andere IDs da drin. Komm mal nachher noch drauf. Aber wenn ihr es jetzt schon seht, könnt ihr auch generell reinrufen, welches Entity wir jetzt vergessen haben, eine ID zu geben. Weißt du denn jemand? Okay, da kennt sich jemand aus, der Raum. Genau, das war Pentabarff. Wie gesagt, nur Integer IDs. Das hat man mit FRAP, später ist es mit der Einführung des Schedule-Chasing-Formats, dann gemerkt. Hier wieder rausgezumt. Also hier links habt ihr mal so einen kompletten, in dem Fall das Camp 2019, Schedule XML bis zum Welcome-Event. Und hier sehen wir, neben ganz vielen Timestamps, also ISO 8601, was auch eine gute Idee ist, aber darum geht es nicht in diesem Talk, haben wir jetzt hier einen zusätzlichen ID für das Event eingeführt. Und zwar, ich mahle es am besten einfach mal an, haben wir hier jetzt die GUID. Das ist eine GUID. Microsoft hat das auch GUID genannt. Also manche benutzen GUID nochmal anders, aber ist im Prinzip alles das Gleiche, so ein String, in dem Fall jetzt mit Minusen getrennt, kommen wir nachher nochmal genauer drauf ein. Aber auch hier haben wir wieder weitere IDs, also zum einen sehen wir, die Slack sind hier schon globaler geworden, also da steht schon noch ein bisschen was davor, vor dem Slack. In dem Fall jetzt auch wieder die ID der Konferenz, was die hier als Akronym bezeichnet wollt, die seltsamerweise hier als auch ein großer Buchstaben hat, was für Slack es eigentlich unüblich ist, aber da war anscheinend keine Validierung drin, als die Konferenz angelegt wurde. Und dann haben wir hier unten noch eine weitere ID, das ist nicht wie eine URL, der hier hinten auch wieder IDs drinsteckt. Und das ist jetzt soweit kein Problem, also beim Camp wurde noch alles im FRAP geplant. Das sieht dann ungefähr so aus, also wir haben verschiedene Systeme, hier vorne irgendwie das FRAP selber. Dann haben wir dann einen Export, ob der jetzt ein eigenes System ist, der Webserver, der den statischen Schedule liefert, keine Ahnung, aber der hat jedenfalls eine Schnittstelle, später eben auch Chasen dazu. Und dann haben wir als Wock wieder verschiedene Systeme, einmal unsere Streaming-Webseite, aber auch den Tracker und dann wieder media.cc.de mit der Webseite, die da dran hängt, die das auch wieder verarbeiten. Und auch da gibt es sich natürlich immer die Frage, was nimmt man denn das primäre ID dafür her? Und in dem Fall haben wir einfach die GUID genommen. Und genau da ist uns das auch irgendwie bei den Räumen, haben wir das ja vorhin schon gehört, haben wir auch auf die Nase gefallen, die Konferenzorganisatoren sind irgendwie wieder auf die Idee gekommen, ach, in dem Raum müsste man es noch in Klammern dazuschreiben, in welchen Gebäude der ist oder so was. Wir hatten die Streaming-Webseite aber schon konfiguriert und gesagt, okay, Raum A hat Stream 5 oder sowas. Und indem man, wo die den Raum umbenannt haben, war unsere Konfig an der Stelle wieder kaputt und wir mussten an jedes einzelne System ran und schauen, ja, wie gehen wir denn da um? Ja, man kann, genau. Und das ist jetzt, wie gesagt, noch das einfache System, ja. Wenn wir uns den 36C3 anschauen, da waren das irgendwie, ich zähle es gar nicht mal nach, aber an die zehn verschiedene Quellsysteme für Events auf dieser Veranstaltung, ja. Self-organized Sessions, die teilweise in Wiki eingetragen wurden, wo wir, wo ich Skriptepflege seit über zehn Jahren, die das da rausziehen und in dieses Doktorräte-Format hier bringen, wo man sich auch irgendwie eine ID ausdenken muss, weil das Wiki da keine passende mitliefert und dann wird plötzlich so ein Vortrag im Wiki verschoben oder so eine Session. Ist das noch die gleiche Session? Ist das eine andere? Alle so Dinge, mit denen man sich da auseinanderschlagen muss. Und was wir hier hinten auch noch mal sehen, wir hatten dann viele Pre-Talks-Instanzen, was das dritte System ist für Fahrplanplanung, die wir so haben. Die haben die alle frisch aufgesetzt und wir hatten den Pre-Talks-Entwicklern gesagt, ja, wir bräuchten irgendwie auch so integer IDs Zurückwärtskompatibilität. Und die haben natürlich immer bei 0 anfangen zu zählen. Das heißt, in dem Moment, wo ich die verschiedenen Fahrpläne zusammen gemirkt habe, gab es fünf Vorträge mit der ID 10 oder sowas, ja. Also, ja, damals hatte ich dann gesagt, okay, ich mach, ich mach so einen, so einen Pre-Fix davon dahin, ich mach so einen Offset, das heißt, ich nehme 100 für die erste Konferenz in der Hoffnung, dass nicht mehr als 100 Vorträge in der Instanz angelägt werden. Das habe ich auch im Wiki gemacht. Und das war irgendwie beim Camp hat es total gekracht. Also, da haben sich die, auch meine generierten IDs total überschrieben, weil sie, weil ich natürlich am Anfang der Konferenz nicht abschätzen konnte, wie viele Self-Organizationswerden jetzt eigentlich in dieses Wiki eingetragen. Und, ja, ich habe jetzt leider vom 36er-Jahr kein Diagramm explizit, sondern deswegen musste ich dann die nächste Veranstaltung, die jetzt kein Kongress ist, aber sowas Ähnliches, wir haben es als Z3 genannt, wo dann natürlich wieder viel komplizierter wurde. Also, hier in der Mitte ist irgendwie der Haufen von Python-Scripten, die das Zeug zusammen merken. Wir haben versucht, die Interface zu den Andersystemen gleichzuhalten. Und ja, okay, in dem Jahr ist dann hier unten auch schon ein Hub dazu gekommen, und das ist jetzt später mehr. Der hat auch nicht mehr so unbedingt nur mit uns als Voxwas zu tun, sondern das ist eigentlich eine eigene Gruppe im CCC. Ja, kommt nachher noch. Ja, und dahinter haben wir halt alle möglichen Clients, Fahrplan-Apps, iOS, Android, die natürlich verschiedene Systeme haben. Teilweise noch mal eigene Systeme, die noch mal Zwischendinge machen. Sowohl Nutzer auf media.ccd, als auch auf streamingmedia.ccd, wo du auch immer zwischen den Fortschrecken und den Fortschrecken zu tun, aber das ist dann auch so, dass es so lange im Real-Life ist, also unsere Voraufzeichnung sozusagen. Ist es die gleiche ID? Ist es das gleiche entity wie die fertige Aufzeichnung? Ja. Teile von diesen Problemen haben wir in Pre-Talks dann auch schon gelöst. Das ist der aktuelle Stand an der Stelle. Ich zoome mal wieder rein, weil es ist das, was ich hier offenbar lesen kann. Also hier sieht man, dass es so viele Systeme gibt. Und damit kann ich alle Filter in das Streaming-Webseite sonst irgendwas jetzt auf diese ID beziehen und muss nicht mehr den Namen des Raums aus das ID nehmen. Auch das hat sich momentan noch nicht in allen unserer Systemen durchgeschlängelt. Vor allem war wieder die Frage, wer ist denn jetzt das führende System bezüglich Räume? Bei so einem LC3 kann ich mehr Räume im Hub anlegen. Dann ist eigentlich da sozusagen das führende System. Das ist das, was ich hier im Hub angelegt habe. Wie fließt die ID aus dem Hub zum Pre-Talks? Die ersten Version waren, sagen so vor, ja, die ID wird einfach automatisch ausgefüllt, wenn ich den Raum im Pre-Talks anlege. Dann sind leider die Tests viel geschlagen, weil die haben einen Raum angelegt, der plötzlich jeweils die selbe ID hatte. Und unser, weil wir es endlich gemerged haben wollten, war halt in dem Fall, wir nehmen die Automatizierung raus und kümmern uns darum, dass die ID in den Hub geschlagen werden. Und was jetzt gerade so führt, wenn wir jetzt nicht keinen Hub haben oder sowas, dass immer noch fünf Tage vor dem Event oder einen Tag jetzt hier uns auffällt, die ID sind nicht ausgefüllt und wir dann wieder zu den Organisatoren werden müssen und tragt doch mal in das Feld da unten was ein. Das hat schon Sinn, dass das da ist und das wäre ganz nett. Das ist jetzt gerade der Vortrag, die ihr gerade hört oder die Aufzeichnung davon. Eigentlich wollte ich als Titel nur die IDs nehmen, bis dieses Content-Team auf mich zukommt und sagt, das ist ein bisschen kurz. Es gibt leider im Pre-Tox kein Untertitelfeld, deswegen ist das jetzt Teil des Titels hier. Wir sehen aber, dass es Pre-Tox selber tatsächlich interne eigene Random-ID an der Stelle hat, die wir aber bis auf der URL des Talks im Planungssystem nirgends verwenden. Genau. Das hier hat mir ja vorhin schon, ich habe jetzt hier in dem Easter-Hack-Pre-Tox-Instanz die wahrscheinlich danach gelöscht wird oder keine Ahnung, ob sie sich vorhin noch archivieren. Ich hoffe doch mal, da hat mir extra vorhin ein Workshop dazu, aber hier war ich zum Beispiel die ID 14, was sich dann aber auch im Slack widerspiegelt. Wie weit man das in Zukunft auch in den Slack reinschreibt, die IDs, das muss man uns überlegen. Ich wäre eigentlich dafür, sie wegzulassen, aber... Genau, ich habe jetzt immer über diese UIDs gesprochen. Was ist das eigentlich? Da gibt es natürlich eine RFC dafür. Es gibt verschiedene Versionen. Man sieht immer diese Minose dazwischen. Das ist tatsächlich bei der ersten Version, hat das tatsächlich Sinn ergeben. Für die folgenden Versionen haben sie es einfach die Minose gelassen, damit man weiß, das ist eine UID, weil man diesen 128-Bit-Zahl hier schon direkt sieht. Aber es hat keine Bedeutung mehr, wo die Minose drin sind. Da auch... Ich benutze meistens die Version 5. Das ist einfach ein Share1-Hash in einem gewissen Format. Manchmal benutzt man auch die Version 4 für eine zufähige UID. Und die sind gerade tatsächlich dabei. Es gibt eine Arbeitsgruppe, die jetzt in den Final Draft letzten Monat veröffentlicht hat, weitere Versionen zu definieren. Das ist eine Version 6, Version 6, Version 7, Version 8. Und dann gibt es auch noch eine Maxi-UID, die sie das erste Mal vergessen haben. Tatsächlich benutzt werden beim FRAP. Also man kann in einer UID sieht man eben an, was das Version ist. Beim FRAP sehen wir hier... Das ist eine Version 4. Also es ist eine zufähige, random-based UID. Pre-Tox selber. Da ist das Version 5. Das heißt, Pre-Tox hat internen drinnen gar keine extra Spalte für die UID. Sondern das wird einfach aus diesem Hash-Wert, den ich vorhin gezeigt hat, diesen zufälligen UID, den man in der URL sieht, generiert. Kann man so machen? Ja, kommt man nachher noch drauf. Gut, gibt es dahin schon irgendwann Fragen? Verständnisfragen? Irgendwas, Teil? Also für uns... Die Frage war, hat die Versionsnummer der UID eine semantische Bedeutung für uns? Nein, also für im Media speichern wir die einfach ab. Eigentlich ist es die primäre UID. Und diese Local-UID, die im Slack primär steckt, steckt nicht nur im Slack, aber unter den Text, aber sonst eigentlich nirgends. Man kann sie die Suche eingeben und findet dann auch den Vortrag. Aber woher die Versionsnummer kommt, hat jetzt rein für Media keine... Ja, eine Rückfrage zu den verschiedenen Zeiten in der UID 1. Tatsächlich, ich habe die UID 1 nie benutzt, deswegen habe ich mich nie damit beschäftigt. Grundsätzlich war das die Idee, dass man jetzt für eingehende Pakete zum Beispiel, denen immer eine ID gibt, und das sozusagen Eintrittszeitpunkt. Eine ID-Quelle ist immer auch oft die Zeit, damit man halt auch, wenn man acht ID sortiert, das Gleiche in der chronologischen Reihenfolge hat. Wobei das halt immer so ein Problem ist, wenn du plötzlich verschiedene Systeme hast, die unterschiedliche Uhren haben und Details. Darauf gehen wir jetzt hier nicht direkt ein, aber ja, genau. Hier hat man auch die Anmerkung, das sind die verschiedenen Teile vom Time Stamp, die sind da entsprechend sortiert. Wie gesagt, das haben Sie dann eben auch mit der anderen, mit der in der neuen Version hier, gibt es tatsächlich auch einen, der einfach die Unix-Epoch 1 zu 1 nimmt. Wenn man das liebt, ist wohl vielen Leuten lieber. Sie haben tatsächlich, also diese Arbeitsgruppe hat sich tatsächlich 30 verschiedene Implementierungen von EU-IDs angeschaut aus der Industrie und sich halt dann das Beste davon rausgesucht und das auch nochmal standardisiert. Weitere Fragen, dann machen wir weiter. Genau, jetzt habe ich mich gefragt, okay, was nehmen wir jetzt von mir jetzt in die CDE? Was auch so ein bisschen eine Umfrage oder eine Recherche gemacht, was machen die Leute da draußen für IDs? Und das ist jetzt primär irgendwie so Medien, keine Ahnung, wie ich da reingeraten bin, aber das ist der Fokus gerade falsch. Zum Beispiel ist mir so eine ID untergekommen, wir sehen wieder ein Slack, da ist Teil der ID, aber gleichzeitig hat sich es wohl durchgesetzt, sondern tatsächlich die Roh-ID immer hinten hinschreibt, sodass wenn die Autoren den Artikel umbenennen, den Slack ändern, diese verschiedenen Slacks, die der Artikel jeweils mal hatte, nicht mitdenken muss. Aber ich sehe hier, das ist nicht direkt, wie die ID generiert wird, den kann ich nachschauen, es ist eine Postgres-Funktion, die das tatsächlich aus der Millisekunden rausrechnet und in dem Verhalten Custom Alphabet, was halt die UID, das war halt aus einem Argument, wenn man hört, warum nimmt ihr da keine UIDs, die ist ja so lang, weil sie zur Basis 16 irgendwie dargestellt wird. Muss man natürlich nicht, man kann sie natürlich auch binär darstellen, steht auch der RFC zu drinnen, steht die String-Representation von der UID, should be hex, aber man kann natürlich jedes andere Alphabet auch nehmen. Bekannt ist wahrscheinlich Base 64, das ist nur ein bisschen blöd für URLs, deswegen gibt es hier unten eine URL-Safe-Variante, die keine Slashes enthält. Ich finde es nicht wirklich schön, YouTube macht es trotzdem, aber eine andere Variante, die wir vorhin gesehen haben, war eben dieses Base 62, wo man die hinteren zwei Zahlen weglässt, gibt dann irgendwie auch Base 58, das ist wohl bei Flicker und irgendwo in diesem Bitcoin-Universum üblich, das sind dann die Os in den verschiedenen Scheitweißen und Nullen draus, wenn man sie diktiert, sich nicht irgendwie das Falsche vorlässt oder so was. Aber im Prinzip, man kann auch UIDs wunderbar in solchen Kurz-String-Strings darstellen, einfach pro Symbol mehr als nur dieses 0 bis F benutzt. Und teilweise gibt es auch ganz custom Alphabet, also in der Scheiße ist mir das Alphabet, das Wein benutzt hat, warum auch immer. Die passenden RFC für die gibt es natürlich auch wieder, also die Base 64 URL-Safe, zum Beispiel RFC 4648, wo es ein bisschen erklärt wird. Noch mal bitte. Noch 128-Bit. Also die Frage war, wie kurz kann man diese IDs so eine UID denn bringen? Eine UID hat 128-Bit und dann, ich habe es nicht ausgerechnet an der Stelle, aber es wird schon schön kurz, wenn du nicht nur 16 Entities pro... 16 verschiedene Varianten pro Symbol unterbringst, sondern dann halt 58, 62, was haben wir doch halt benutzt als Basis-Ding. Es gibt auch Leute, die haben tatsächlich irgendwie mit Unicode ganz lustige Dinge gemacht, aber das finde ich jetzt nicht sinnvoll, weil dann hast du plötzlich wieder... Also ja, ich möchte nicht in Unicode abdriften an der Stelle. Weiterfragen? Genau, also... Wir haben eine kurze Zusammenfassung vom Togger in der Frage gehört. Verschiedene Darstellungen, das ist die Institution an der Stelle. Wenn man jetzt frisch anfangen könnte, würde man es natürlich anders machen. Für mich ging es jetzt einfach nur, die Basis da zu legen. Und jetzt kommt dann so ein bisschen, was man denn sonst zu machen könnte und was so gemacht wurde an der Stelle. Ja. Genau, was mir dann noch aufgefallen ist, es ist tatsächlich üblich hier zum Beispiel irgendwie URLs aus Slack, dass man in die IDs tatsächlich den Typ mit reinschreibt. Ja. Die eine Variante ist, du machst halt so ein einzelnen Buchstaben vornehin. Also hier sieht man zum Beispiel, das ist irgendwie ein Team-ID, die fordere und dann eine File-ID. Wer vielleicht auch nicht, wenn man was Fisches macht, bei anderen Medienunternehmen, es ist mir so aufgefallen, die haben immer eine Eins-Punkt vorne dran stehen. Und da hatte ich irgendwie Zugriff auf jemanden, der das CMS bei denen kennt und meinte, ja, ja, das macht das eingekaufte CMS so. Einzelnen Artikel, 15 Bilder, was auch immer. Und da sind wir da auch noch aufgefallen, die haben auch noch mal ganz andere Artikel, jetzt ein bisschen klein, ja. Aber da sieht man, da ist statt der Eins plötzlich ein DPA. Und was die tatsächlich machen ist, wenn das ein externer Artikel ist. Also hier eine Meldung, die halt einfach nur von extern rein kam, die dann auch der Website wiedergeben wird. Dann schreiben die tatsächlich in die öffentliche URL die externen ID rein. Und das ist an der Stelle auch wieder eine UN. Sie haben aus inbären Gründen, ich glaube Windows Nutzer mögen keine Doppelpunkte, deswegen ersetzen die Diagnose das anders dargestellt. Und genau an der Stelle kläre ich jetzt kurz mal, was ist das eigentlich? Was ist eine UN? Was ist eine UI? Was ist eine URL? Was ist eine Rückfläche an Ordnern? Andere Das ist eine Namespace an der Stelle. Man muss einen RFC schreiben. Ich möchte zierstellen, dass niemand anders dieses Namespace-Ding nimmt. Aber gefühlt in den letzten fünf Jahren haben die Leute das nicht gemacht. Sie haben auch hier einen Buchstabenkürzel ausgedacht. Das ist unsere Namespace. Hier ist ein Beispiel für eine Namespace. Konkret, den wir hier sehen. Hier steht NewsML als Namespace mit drin. Das ist ein Beispiel, wie man es als RFC definiert. Wenn man da reinschaut, stellt man fest, das besteht aus folgenden Teilen. Die Provider-ID, eine Date-ID, eine News-Item-ID und eine Provision-ID-Update, wobei das letzte optimal ist. Ein kurzer Ding, weil ich es nur so absurd fand an der Stelle. Hier ist diese UN von dem Slide-Vorher wieder. Ich habe mich gefragt, warum steht bei allen Artikeln 2009, 01, 01 dran? Das kann auch nicht richtig sein an der Stelle. Es muss doch irgendwie so ein Publikationsdatum sein. Dann sucht man noch ein bisschen nach und stellt fest, da gibt es einen PDF und da ist definiert, dass es tatsächlich so sein soll für die DPA. Die benutzen einfach dasselbe Datum an der Stelle. Wenn man noch mal weiterlässt in dieser RFC, dann steht da drin, gefühlt ist es wie der Dead by Comedy. Es könnte sein, dass DPA.com jemand aufkauft. Deswegen müssen wir in die ID, damit es eindeutig ist, noch das Datum reinschreiben, wann die Domain gehört hat. Dann wird da eine lange ID wieder daraus für ein Ding, das eigentlich kürzer sein soll. Man muss ja nicht jedes Mal dieses, wenn man die jemanden zuruft, dieses Datum mit dazusagen. Keine Ahnung, warum die DPA das so ausgelegt hat. Wenn ihr da mehr wisst, gerne dazu. Ich lese es aus der RFC so raus, dass es eigentlich so das Publikationsdatum, das Articles oder sowas hätte sein sollen, aber ein Schub zu an der Stelle. Dann sucht man weiterhin und landet man, wie exemplarisch, auf so einem Namespace, nicht bei der IANA registriert ist, sondern es nicht, dass ich es gefunden hätte. In dem Fall irgendwie LinkedIn, die haben sich das rausgenommen, LI als Namespace zu nehmen. Keine Ahnung, wie sie dazu kommen und was ihnen einfällt, aber das scheint wohl jetzt zu üblich zu sein bei diesen Dingern. Aber sie haben es recht schön dokumentiert. Also hier jetzt auch wieder, haben halt den Namespace-Namen, in dem Fall der LI, und danach den Entity-Typen und danach die ID. Das musste, da habe ich immer mehr in APIs gesehen. Die speien das nicht in der Datenbank so. Wahrscheinlich dann ist es wirklich nur den hinteren Teil der ID-Feld. Das ID-Feld ist aber, wenn du jetzt in der REST-API oder so eine ID abfragst, dann ist das Attribut, das ID heißt, oft nach dem Format. Das ID-Beispiel habe ich schon genommen, habe ich auch gesucht, haben die eine RFC, habe nachgefragt, das einzige, was aus der Recherche rauskommt, du hast sowas mal definiert. Das ist irgendwie in acht Zeiten eine RFC, das schlicht und einfach nur sagt, das kürzliche EBU gehört uns, danach kommt eine Category und danach kommt irgendwas anderes, was wir dann definieren und fragt doch bei uns nach, wenn ihr wissen wollt, wie es genauer ist. Und hier ist unser Adresse, wo ihr nachfragen könnt oder sowas. Vielleicht reicht es auch. Vielleicht, wenn ich mal Zeit habe und diesen RFC-Prozess besser verstanden habe, wer weiß, was wir dann machen wollen. Für mir der CCD habe ich am Ende ein Verfolgendes gemacht. Wir hatten eh schon dieses Slux, hier auch noch mit dem Fragment hintendran, um irgendwie einzelne Tonspuren, in dem Fall die deutsche Sprache mit den englischen Untertiteln zu einem gewissen Time Stamp zu referenzieren. Da wird jetzt einfach auch die UID unterstützt, wenn man den Slug nicht kennt, das redirectet einfach weiter. Und tatsächlich das Einfachste für die kurzen IDs war und einfach so ein Prefix-Matching zu machen. Also, wenn ihr einen konkreten Talk aufrufen möchtet und das nur genau genug, dann könnt ihr das hier auch einfach benutzen, um in irgendeinem Post auf ein Ding weiterzuverleiten, wenn ihr nicht so viel Platz habt an der Stelle. Wir haben tatsächlich auch noch mal, also die technische Universierungspolitik Hannover, archiviert noch mal oder lädt unsere Vorträge, die so oft mit der CCD haben, auch noch mal bei sich im Portal hoch und gibt ihnen da auch der DEWS. Also, das ist so ein globaler Identifier, für ein digital Object IDs heißt das, glaube ich, vor allem im Archiv- und Bibliotix-Bereich. Dafür haben wir jetzt übrigens auch ein Feld, wo man diese DEWS in der API dann mit Ankündigen, aber auch wenn sie denn ausgefüllt ist in der GUI. Das Problem war nur, die haben immer eine Mail geschickt mit einer Excel-Datei, wo diese DEWS drin stand. Und auf der Frage, ob ich dann nicht eine Chasen-ELD-App haben kann, sagt sie, ja, sie machen Chasen-ELD demnächst und ein halbes Jahr später kam dann der Antwort-Emer mit, ja, wir können jetzt Chasen-ELD, hier ist eine Beispielanfrage und das, was daraus kommt, war dann aber ein XML, wo dann ein Chasen-ELD mit hat-Mellencode-Ding drin war. Und ich habe dann noch versucht, zu überzeugen, dass es für Listen keine extra Standard braucht, sondern dass Chasen eine Liste nativ mit drin hat. Sie meint aber nicht, es ist, es braucht ein Standard und für diese Listen-Standard gibt es eben nur XML, warum auch immer. Die Frage war, wird DEWS auch direkt für die Meta-CCOL-Supporte? Nein, bisher nicht. Also landet es, wenn du die DEWS eingibst oder die URL-Form der DEWS, erstmal bei der TIB und da ist dann unten ein Link auf die Meta-CC-Seite. Genau. Ich habe auch versucht, sie zu überzeugen, dass sie direkt, wenn ihr AV-Portal nicht mehr online ist, dass direkt einfach unsere URL mit rein tun haben wird. Sie haben ja nicht so viele Entwickler, um das dann umzusetzen, soweit ich das verstanden habe oder so was. Und wenn wir gerade bei URL-Sinn dieses TI 559, was ich da angehängt habe, um an einen gewissen Zeitpunkt zu springen, dafür gibt es tatsächlich auch eine W3C. Ich glaube, es ist eine technische Richtlinie, TR, genau, Mediafrax. Und ich glaube momentan unterstützt eine neue Sekunden-Variante, aber wenn ihr irgendwo mal so eine App baut oder ihr könnt das sicher auch einfach im Browser benutzen, ihr könnt an jede MP3, MP4-Datei sowas anhängen und euer Browser-Player springt dann direkt in die Stelle. Genau, hier ist nochmal Details dazu. Und welcher Reihenfrag aber eigentlich ist alles vollkommen klar. Gut, gibt es hier dann nochmal Fragen zu dem Blog? Ich bin gefühlt viel schneller, als ich sein wollte, aber... Nein. Die Frage war, gibt es dann mehrere Deuys pro Entity, wenn verschiedene Archive das machen? Das müsste ein Bibliokitarachivist beantworten, ob sich die irgendwie abstimmen, damit dieselbe Deuys pro Entity... Keine Ahnung, ja? Du hast einen hierarchischen Unternahmsraum, wo du einen Unternummernraum als Präfix delegierst an eine Organisation, die dann wieder dafür verantwortlich ist, die nicht zu wiederverwenden. Ich weiß nicht, wie wir die genau alias definieren. Auch da wäre es natürlich sinnvoll, dass du als wenn du so ein verzeichnes Pflegst auch Alternate-Identifier zusätzlich mit anbringst, wie ja unsere ID, der auch mit dranhängt, sozusagen im Archivdatensatz. Aber das wäre eh meine Empfehlung, ja? Und das kommt jetzt im nächsten Kapitel auch nochmal dazu. Macht euer Datenbankschirm mal so, dass es mehrere IDs beinhalten kann an der Stelle, ja? Genau. Wieder das einfache Diagramm von der einfachen Welt, wie es irgendwie vor zehn Jahren war, mit nur einem Programmplanungssystem und eine einfache Pipeline. Wir sind jetzt wieder beim AC3, ja? Und es gibt plötzlich so die mehrere, ja? Jede Channel hat im Zweifels ein eigenes Programmplanungssystem und jetzt gibt es plötzlich die Anforderungen, ja, der Vortrag, der hat das jetzt in A-System eingeführt, aber ich möchte es in System B rüberbringen, ja? Und ich habe als Auger natürlich keine Lust, die ganzen IDs, die ganzen Felder von Feld zu Feld copy zu pasten, können wir da nicht irgendwie Expert-Feed-Ding machen, ja? Und wir hatten dummerweise zum Beispiel so einen Eintrag aus dem CCV-Frab, der jetzt in den Pre-Tox gehen soll. Und da hat es sozusagen, ich habe dann angefangen, einen Chasen-Schema zu machen für einen Austauschformat, um halt mal diese verschiedenen APIs, die die Programmplanungssysteme natürlich selber zusätzlich noch hatten zur Chatio.xml, mal zu vereinheitlichen, einer, der ist von Covalentat zu sein, bis ich dann halt an den Punkt gekommen bin mit dieser GUID, ja? Also ich hatte ja vorhin gesagt, bei Pre-Tox wird die GUID einfach aus der Internet-ID abgeleitet. Da fehlte jetzt sozusagen das External-ID-Feld, weil ich möchte eigentlich, dass der selbe Vortrag, der schon mal eingereicht war in unserem Universum, dann auch die GUID, die ganze Zeit behält. Und da muss ich den nächsten wahrscheinlich nur mal einen Pull Request für Pre-Tox machen an der Stelle, damit man das da umsetzen kann, oder den Pull Request vollverhältlich machen an der Stelle. Aber das heißt, da ist ein bisschen das Learning, ja, führt, wenn ihr eine ID generiert, denkt auch daran irgendwie, dass ihr vielleicht nicht das führende System seid und führt einen External-ID-Feld mit ein und benutzt dann auch diese ID anstatt euch eine neue GUID aus irgendeiner anderen Quelle zu generieren. Ja, an sich, das selbe Problem haben wir mit Personen auch nochmal. Da gibt es auch ein, zwei Prototypen, wie man Personen-GUIDs macht, aber das wird es halt personenbittsogen, ja. Aktuellen Entwurf ist so ein bisschen, man nimmt sich die, die einzige Person-ID, die wir momentan in diesem Planungssystem handen, ist eigentlich die Mail-Adresse, aber Personen haben viele Mail-Adressen, wie viertest du das zusammen? Da kann Webfinger, wie es ja auch in Activity-Pub und damit machst du dann eine Lösung sein. Das ist einfach eine Variante, wo du sozusagen über eine htp-Schnittstelle abfragen kannst. Was ist denn, z. B. wenn du meine Mail-Adresse da abfragst, dann kann ich halt sagen, meine primäre UI ist irgendwie meine persönliche Webseite oder sowas. Für FRAP haben wir da an der Stelle jetzt umgesetzt, dass es einfach die Mail-Adresse als Hashtraus gibt über die interne RP. Tatsächlich ist das Chatty-Lyx-Mail momentan auch immer noch am FRAP, das heißt, wenn ich da neue Filter einführen möchte oder sowas, muss ich mir erst den FRAP umsetzen, bevor die Pre-Tox-Entwickler das dann akzeptieren, dass es auch in das Format, in das FRAP-Xml sozusagen reinkommt. Wobei wir uns vielleicht auch mal als Bock überlegen müssen, dass wir das Chatty-Xml-Format einfach einzeln als eigenes Ding sehen und dafür ein eigenes Backmachen und auch vielleicht mal was Junotsnummern einführen. Ja, wissen wir noch nicht genau, ob man sich das antun möchte, aber ja. Und für den Gesamtkontext haben wir uns jetzt eben diesen Hub angelacht. Hier nochmal das Diagramm vom ersten RC3. Für den zweiten RC3 haben wir das ein bisschen umstrukturiert. Ja, also meine lustige Script-Zammlung, mit der ich Preisen gelernt habe, ist jetzt langsam auch mal raus. Und es gibt jetzt diesen Hub, der sich halt die lokalen IDs jeweils merkt von der Quelle, von dem Quellsystem. Und dann halt auch untereinander diffen kann. Der weiß tatsächlich, was hat sich geändert, was ist rausgefallen und sich da halt die Historie behält. Ja, es fehlte nur noch der Cron Shop. Also hier war ich der Cron Shop dann und musste regelmäßig, wenn sich was geändert hat, einmal auf den Button drücken. Aber ich denke, das ist das kleinste Problem, was wir bei dem Hub noch lösen müssen an der Stelle. Genau. Ja, das wär's dann an der Stelle auch schon so weit. Ich hab noch eine Fazitfolie. Genau. Also, wenn ihr neues Datenbankschema macht, macht am besten gleich ein Stringfeld ein ID und kein Integer. An der Stelle, wo es die IDs rausgibt, schreibt am besten dazu, wer das Entities ist, besten auch noch den System Namen und nimmt einfach dieses Triple als ID dafür. Macht auch gerne Sprechende IDs, aber seid euch dann bewusst, dass sich die auch nie ändern sollten, dürfen, müssen. Das heißt, auch wenn irgendjemand auf die Idee kommt, jetzt, wenn wir das Publisher Beispiel nehmen, dann wird das in der Info, jetzt in NDR24 umzubenennen oder sowas, dann wird das auch intern weiterhin NDR Info überall heißen, auch wenn nach außen hin das anders heißt. Genau. Führt external ID-Felder ein oder auch Alternate IDs-Felder. Also, hier wirklich mehr Zahl. In meinen Postgres-Schemas ist es tatsächlich ein Text-Array-Feld und baut eure APIs so, dass man da auch diese Alternate IDs benutzen kann, um das Entity zu finden. Auch wenn man jetzt mehr in den LDF-Teil geht, dieses same-as-Uris, die man da auch mit einbauen kann, was ich auch nur empfehlen kann. Ja. Und wenn ihr immer noch ein Schädelix in der Kleintabt, der noch nicht mit IDs umgehen kann, noch nicht mit Geo-IDs umgehen kann und von diesen IDs abhängt, von den alten Integer-IDs, stellt den bitte gerne um, spätestens, wenn die Fostem-Leute auch mal geupgraded haben. Ja. Würde uns alle viel, viel glücklicher machen. Gut, das wäre es soweit. Wenn ihr noch Fragen habt, jetzt gerne. Wir haben auch nachher noch mal ein Slot im Workshop-Raum 1.3. Das ist hinten neben der Lütt-Area, wo ihr dann auch gerne nochmal direkt mit mir, mit uns vom Bock sprechen könnt, wenn ihr noch Fragen gesamt zu Dingen habt. Generell, wir suchen unter dem Jahr auch Leute, die Lust haben, die das voran treiben. Da wären wir sehr auf eurer Unterstützung angewiesen. Einstiegspunkt ist hier unten das Wiki oder kommt auf mich zu. Beim Hub eben hier auch der, das geht DRIPPO vom Hub, da könnt ihr gerne auf Hey zukommen. Sobald ich es schaffe, in Media ZZD auch ein Audio-Player einzubauen, dann sind wir wieder auf dem Hub. Das ist ein Video, das ist ein Video, mit dem ihr auch ein Audio-Player einzubauen. Gibt es dann auch nochmal 2. Podcast-Folgen, die das einzelne Themen nochmal genauer erklären. Okay, dann Zeit für Fragen. Am besten ans Mikrofon ranstellen, damit ich es nicht wiederholen muss, ansonsten. Ja. Also können auch Fragen zu irgendwas Bock bezogenen oder inhaltlich zu dem sein. Wie ihr wollt. Dann Backup-Slides. Das ist übrigens das Gesamt. Ja. Ich trau mich mal eine Frage zu stellen. Als Motivation hilft mal mit an der Software zu arbeiten. War das vielleicht gerade nicht so produktiv? Gibt es denn Low-Hanging-Fruit? Gibt es denn Sachen, die relativ einfach sind? Vielleicht magst du dazu was sagen, wenn du sagst, Leute sollen helfen kommen. Ja, also generell am besten bei uns im Media-Zizid Gittrepo-Schauen. Also Wokto-Web heißt die Software, die setzen auch ein paar andere Leute ein. Die Freifunker zum Beispiel oder das Hack hat glaube ich auch noch eine Wokto-Web-Instanz. Da gibt es so Good First Issues, zum Beispiel die Suche versucht schon lang ein bisschen ein interaktives Suchformular, wenn er euch da mit Viewges oder React oder was man auch immer heutzutage im Web-Ding benutzt umsetzen wollte. Das ist ein Good First Issue. Dazu müsst ihr jetzt auch kein Rails kennen oder so was. Den Teil dahinter können wir dann auch selber umsetzen. Ja. Ansonsten mit die gesamte Wok-Software ist offen doch insofern alles. Da gibt es auch jeweils Issues. Könnt ihr welche anlegen, aber natürlich auch welche in Prorequest umwandeln oder gleich was ihr so findet. Das ist das Gesamtsystem ne das Systemeübersicht von das wir im Box so haben. Es gibt tatsächlich auch auf der Wiki-Seite die ich vorhin verlinkt habe. Diese Art Wiki ist ein Video, was das was so ein geführter System rundgang durch diese Systeme sind. Also wenn ihr jetzt hier draußen typischerweise seht ihr jetzt nur hier draußen irgendwie die Streamen-Webseite oder media.cc.de und da zieht man so ein bisschen die verschiedenen Schnittstellen und zu jeder von diesen Schnittstellen also das Ding hier zum Beispiel ja gibt es dann auf diese Wiki-Seite entsprechende Dokumentation. Media.cc.de selber hat tatsächlich, das war jetzt nicht das, was ich haben wollte, hat tatsächlich inzwischen auch ne GraphQL-API wer da noch Lust hat am Schema mit weiterzuarbeiten, gerne gesehen. Ja, und ansonsten wenn ihr Fragen habt kommt einfach uns zu oder auf mich zu wahrscheinlich am besten wenn es schnell gehen soll über Mastodon. Mail kann man ja auch schreiben. Ja, genau. Wenn keine weiteren Fragen sind würde ich es damit einfach belassen kommt gerne zu diesem Workshop-Raum wenn ihr noch weitere Fragen habt, die jetzt nicht so in der Aufzeichnung möchtet und dann sag ich vielen Dank.