Tomáš Pospíšek's Notizblock

Tracking IDs

Letzhin hat mir ein Kollege einen Youtube Link geschickt:

https://www.youtube.com/playlist?list=PLESF6Vbm19P3U4iPQ_coFr6MtTX92HxyR

Mir kam dieser recht lang vor, also hab ich mich gefragt, ob dieser wohl zum Tracken geeignet ist? Untersuchen wir also Mal diese Frage.

Ich nehme frei an, dass der Unterstrich im Youtube Link oben nicht an einer beliebigen Stelle in der ID vorkommen kann und somit nicht nicht Teil des ID Code Alphabets ist. Somit haben wir

Anzahl_Code_Zeichen = zähle(A-Z,a-z,0-9) = 62

Länge_der_Youtube_ID(PLESF6Vbm19P3U4iPQ_coFr6MtTX92HxyR) = 34
(ohne Unterstrich)

Anzahl möglicher Strings der Länge 34 mit dem gegebenen Zeichensatz: 34⁶² =
89473176616830029638346514241548467061781678272245223164301437475730473620050466438599520813056

Wie gross ist diese Zahl im Vergleich? Die Anzahl der Menschen, die je auf der Erde gelebt haben, wird auf 100 Milliarden geschätzt. (Alternative Quelle).

Nehmen wir Mal an, Google/Youtube möchte all diese Menschen plus einige mehr in der Zukunft tracken, also multiplizieren wir die Zahl konservativ mit 2. Gibt:

2*100'000'000'000 = 2*10¹¹

Wieviele Zeichen unseres obigen, alphanumerischen Zeichensatzes bräuchten wir, um jedem dieser Menschen eine ID zu geben?

62^x = 2*10¹¹ => x = log62(2*10¹¹) = log(2*10¹¹)/log(62) ≅ 6.3

D.h. wir brauchen 7 Stellen, um allen Menschen, die es je gab, plus einigen mehr in der Zukunft eine eindeutige ID zu geben. Deine eindeutige ID könnte dieser Code sein:

uqLgS55

Ich habe keine plausible Quelle für die Anzahl Videos auf Youtube gefunden. Nehmen wir an es wären eine Milliarde. Multiplizieren wir diese Nummer mit 200, damit wir etwas Platz für die Zukunft haben, somit haben wir die gleiche Nummer, wie die Anzahl der Menschen (jetzt und in mittelfristiger Zukunft). D.h. mit doppelt so vielen Stellen...

uqLgS55N6cME4z

...können wir sagen: "das Video 'N6cME4z', das von Dir, User 'uqLgS55' empfohlen wurde". Somit wäre es möglich, über alle Videos und alle Menschen zu tracken, wer welches Video empfohlen hat.

Nochmal 7 Stellen mehr:

XKzMexe_uqLgS55N6cME4z

... und wir können "das vom User 'uqLgS55' (Dir) dem User 'XKzMexe' (mir) empfohlene Video 'N6cME4z' (was da wohl drin ist?)" tracken.

Vergleichen wir Mal die längen der IDs:

reale Youtube ID:

PLESF6Vbm19P3U4iPQ_coFr6MtTX92HxyR

"Dein" Video für "mich" ID:

            XKzMexe_uqLgS55N6cME4z

Wir sehen also, Youtube hätte mehr als genug Platz, um noch ganz viel mehr Informationen in eine ihrer IDs zu verpacken. Nota bene, was möglich ist und was ist, ist nicht deckungsgleich.

Tomáš Pospíšek, 2019-09-27

Flow

Mindustry ist ein wunderbares Game. Beim Spielen kamen mir Ideen, dass man z.B. das Klima oder mein Leben entsprechend modelieren könnte:

Links der Producer, rechts der Consumer, dazwischen die Pipeline, welche die produzierten Dinger zum Verbraucher transportiert.

Links die CO2 Quelle, rechts die Atmosphäre.

Links mein Arbeitgeber, dazwischen das Geld, rechts ich.

Links das Ewige, dazwischen die Zeit, die es produziert, rechts ich welcher meine Zeit verbraucht.

Wie kann man diese Fälle modellieren?

Wir haben links und rechts "Maschinen" und dazwischen eine "Pipeline".

Man muss die Simulation von der Darstellung trennen:

Hier eine "Proof of Concept" Umsetzung der View in Python:

Warum als Engine nicht direkt Mindustry verwenden? Weil ich die Problematik zuerst verstehen muss, bevor ich mich in die Form begebe, welche mir Mindustry bietet und weil die Einarbeitung in Mindustry schätzungsweise viel Zeit brauchen würde.

Nehmen wir Mal die Lebens-Simulation: ich möchte diese von Tag zu Tag, aber auch von Jahr zu Jahr laufen lassen können.

D.h. ich möchte mir die Simulation so ansehen können, dass jeweils Jahre oder nur Tage vergehen. D.h. zwischen zwei Ansichten ist ein Tag oder ein Jahr vergangen. Dies ist nur die Ansicht.

Auf Prozess Ebene sollte die Simulation:

Eine Maschine bekommt Input und erstellt Output. Input und Output sind diskret. d.h. Einzelteile.

Nehmen wir Mal an, meine "ich"-Maschine würde "Zeit" in "Studenpaketen" konsumieren. D.h. wenn ich in der Jahresansicht bin, dann müsste mein "Zeitproducer" eine Jahresmenge an Stundenpaketen in das System einfüllen.

Wie kann man den Fluss dieser Einzelteile auf der Pipeline darstellen? Man könnte auf der Pipeline eine Zähler machen, welcher die Transportierten Einheiten in Mengenpaketen zusammenfasst. D.h. in der Animation würde dann ein 24*365 = 8760 ~= 9k Paket über die Leitung.

(probably to be continued)

TODO, zu erkundende Ideen:

Tomáš Pospíšek, 2019-09-22

Articles