Transcript: Wins and Fails

· Back to episode

Full episode transcript. Timestamps refer to the audio playback.

Dominik

Ja, hallo, liebe Hörerinnen und Hörer, willkommen beim Python-Podcast, Episode 27.

Dominik

Wir wollen heute ein bisschen über unsere besten Wins und vielleicht auch Fails sprechen

Dominik

und ein bisschen auf das nächste Jahr schauen.

Dominik

Schön, dass ihr wieder eingeschaltet habt.

Dominik

Ich bin natürlich wieder mit Jochen dabei.

Dominik

Ja, Dominik auch.

Dominik

Ich bin der Dominik, genau.

Dominik

Und der Johannes ist heute wieder da.

Dominik

Hey, Johannes.

Dominik

Ja, hallo.

Dominik

Hallo.

Dominik

Ich bin ja quasi schon Dauergast hier.

Dominik

Ja, kann man so sagen.

Dominik

Also schon jenseits von Gast.

Jochen

Ja, und ja, aber vielleicht wollen wir das einfach wie sonst auch halt immer mit so ein bisschen News, wobei wir könnten das diesmal auch so ein bisschen ausdehnen auf, was ist eigentlich 2020 so passiert oder was kommt in 2021 noch.

Jochen

Moment, Strukturen.

Jochen

Trends oder weiß ich nicht.

Jochen

Bisschen Struktur, ja, ich fange einfach mal so ein bisschen mit News an.

Jochen

Ja, ich wollte gerade sagen, dann kommen wir als erstes die News.

Jochen

das passieren.

Jochen

Und zwar ganz nett, freut mich natürlich

Jochen

besonders. Es gibt jetzt Python

Jochen

3.9.1

Jochen

und 3.8.7 ist auch released worden, aber

Jochen

für mich nicht so interessant, weil Apple

Jochen

M1 Mac und

Jochen

da ist das jetzt schon so ein Binary,

Jochen

das halt nativ auf dem M1 läuft

Jochen

für Python 3.9.1, also das ist

Jochen

schon sehr, sehr cool.

Jochen

Ja, und

Jochen

es sind halt

Jochen

ein Haufen Bugfixes oder so, kann man sich auf

Jochen

der Changelog-Seite halt selber mal angucken.

Jochen

Und zweites Ding auch zum M1, Docker tatsächlich, das war ja auch letztes Mal schon so ein bisschen die Frage, ob es das geben wird.

Jochen

Ja, es gibt jetzt schon eine experimentelle Version und das wird dann wohl irgendwann kommen.

Jochen

Also ich habe es nicht installiert, weil ich probiere jetzt gerade so irgendwie, wie sähe denn mein Leben aus ohne Docker-Experiment.

Jochen

Mal schauen, ob das gut geht oder ich dann doch irgendwie wieder zurückgekrochen komme.

Jochen

Aber ja, mal schauen.

Dominik

war das mit Docker 3 eine Kombination, oder?

Dominik

Äh, das weiß ich nicht.

Jochen

Das war, es gibt eine experimentale

Jochen

Release für M1, aber.

Dominik

Die hat nämlich auch sowas wie Compose eingeführt

Dominik

jetzt als extra Kommando ohne Docker Compose.

Dominik

Ah, okay.

Dominik

Ja, haben sie das reingezogen.

Dominik

Das ist ja schön.

Dominik

Ja.

Dominik

Ja, ähm,

Jochen

und ansonsten war noch, also

Jochen

großes Thema, das war auch im Django Newsletter,

Jochen

das ist ja immer irgendwie Breaking News

Jochen

wenn, äh,

Jochen

ist David Hanemeyer-Hanson, der von Ribbon and Rails hat etwas angekündigt.

Jochen

Und zwar hat er einige Geschichten released.

Jochen

Oder vielmehr die Firma dahinter, Basecamp, unter dem Oberbegriff Hotwire.

Jochen

Ein Hotwire, ein heißes Kabel, was ist das?

Jochen

Ja, das ist ganz interessant.

Jochen

Ein heißes Draht.

Jochen

Das hat mich sofort so ein bisschen an, also zuerst dachte ich, ist es jetzt irgendwie so ein Witz oder so, da hieß es halt so, naja, also bessere interaktive Geschichten, weil wir machen jetzt alles neu und anders und dieses ganze JavaScript-Zeugs braucht man nicht mehr. Wir machen nämlich jetzt HTML direkt über das Kabel. Ja gut, das hat man ja schon immer gemacht. Was ist denn da jetzt neu und toll?

Jochen

Das hatten wir doch schon mal, oder?

Jochen

Ja, das gab es doch schon irgendwann mal.

Jochen

Und das Neue und Tolle ist, dass das halt

Jochen

nur so HTML-Schnipsel sind.

Jochen

Und die kommen halt auch

Jochen

über Websockets.

Jochen

Und ja, es gibt da halt

Jochen

so ein bisschen JavaScript-Glue auf der

Jochen

kleinen Seite,

Jochen

wo man halt sozusagen, also

Jochen

ein Teil heißt Turbo

Jochen

von diesem Hotwire-Ding. Und das ist quasi

Jochen

das, was halt dieses Handling

Jochen

macht von, du hast halt Frames,

Jochen

die halt selbstständig sich updaten können.

Jochen

sodass du halt nicht einen kompletten Page Reload

Jochen

machen musst, wenn sich irgendwas auf deiner Seite

Jochen

ändert und

Jochen

die können aber, du kannst aber auch Dinge außerhalb

Jochen

von diesen Frames damit updaten und so und das

Jochen

geht halt auch per Websocket und

Jochen

dann hast du halt noch irgendwie

Jochen

Stimulus heißt das irgendwie, so ein JavaScript-Framework,

Jochen

wo du so relativ simple Kontrolle hast, die dann

Jochen

irgendwas machen können,

Jochen

wenn sie halt irgendwie Daten kriegen, nur

Jochen

über

Jochen

die Leitung und dann halt

Jochen

irgendwie selber so ein bisschen

Jochen

HTML rendern, aber das ist eigentlich eher so die Ausnahme,

Jochen

eigentlich willst du sozusagen, dass es auf dem Server gerendert wird

Jochen

und du ersetzt halt nur

Jochen

Dinge im DOM, und zwar ganze

Jochen

Bereiche. Und

Jochen

das ganze State-Handling und das

Jochen

ganze Gerendere, das passiert halt

Jochen

weiterhin auf dem Server, wie man das halt gewohnt ist.

Jochen

Und das ist natürlich schon eine nette Idee, dass du halt sozusagen einfach dein

Jochen

stinknormales Ruby on Rails

Jochen

Templating

Jochen

Zeugs nimmst und du renderst halt HTML-Schnipsel

Jochen

damit raus. Und die gehen dann halt nicht

Jochen

quasi als kompletter Request

Jochen

an den Client, sondern nur als

Jochen

so ein Schnipsel über WebSocket

Jochen

und werden dann halt einfach nur ersetzt

Jochen

auf den Client. Und dann kannst du

Jochen

quasi deine gesamte Applikation weiterhin

Jochen

wie so einen normalen Ruby on Rails Moduliten

Jochen

schreiben, aber trotzdem

Jochen

hast du halt nicht diese

Jochen

Unterbrechungen, die du normalerweise hättest, wenn du einen Petri-Load

Jochen

machen musstest, nur weil du irgendwo auf ein Ding geklickt hast.

Jochen

Und dann gibt es noch

Jochen

ein Ding, das nennt sich irgendwie Strada und da weiß ich auch nicht so

Jochen

genau, das wird erst noch released, das ist noch nicht fertig.

Jochen

Ja, aber

Jochen

im Wesentlichen ist es das, was

Jochen

auch LiveView in Elixir

Jochen

also mit Erlang und Phoenix macht,

Jochen

irgendwie in Ruby on Rails

Jochen

und ja

Jochen

und jetzt haben natürlich auch schon

Jochen

irgendwelche Leute sich überlegt, ob sie das nicht für Django

Jochen

adaptieren können und so, da gibt es eine Diskussion

Jochen

dazu und es gibt auch schon eine GitHub-Organisation

Jochen

und aber

Jochen

interessant bin ich daran, dass halt jetzt alle Leute

Jochen

so, oder das ist irgendwie ein Thema jetzt gerade

Jochen

so dieses Async

Jochen

ja

Jochen

na, dieses

Jochen

Websocket-Zeugs und dann

Jochen

diese Monolithen bewegen sich jetzt auch

Jochen

in die Richtung, das war immer schon ein Thema, aber jetzt

Jochen

gerade habe ich das Gefühl, das kriegt so richtig Moment.

Jochen

Warum genau jetzt, weiß ich auch nicht so genau,

Jochen

aber irgendwie jetzt gerade ist es irgendwie,

Jochen

ja. Es hört sich

Jochen

aber alles nicht ungeheuer neu oder

Jochen

ungeheuer, ja, sagen wir mal

Jochen

unbekannt

Jochen

an, also so Sachen, dass da irgendwelche

Jochen

Links mit JavaScript

Jochen

automatisch versiehst, das gab es ja schon auch mal

Jochen

in TurboGears oder in, was weiß ich,

Jochen

wie das alles hieß. Ja,

Jochen

finde ich auch, also insgesamt ist es nicht neu,

Jochen

aber sozusagen der Ansatz zu

Jochen

sagen, das machen wir jetzt statt,

Jochen

irgendwie, APIs

Jochen

und JavaScript-Frontend, das

Jochen

ist schon so ein bisschen neu.

Jochen

Weil dieses Feld hat... Ja, sicherlich wird auch

Johannes

die Integration besser sein, als

Johannes

wir machen einfach mal

Johannes

so. Aber was muss man

Dominik

erst davor setzen? Also in das Frontend macht man

Dominik

dieses Turbo rein und das

Dominik

lädt dann einfach aus der Template-Hin-Engine

Dominik

irgendwelche

Dominik

Teile raus, die dann irgendwo zwar

Dominik

über Sockets kommen, nicht über einzelne Requests.

Dominik

Ja,

Dominik

also das kann auch über normale,

Jochen

das kann aber über diese XHTTP-Requests kommen,

Jochen

aber du kannst es halt auch über WebSocket machen.

Jochen

Aber eigentlich der Witz ist,

Jochen

dass du nichts mehr in JavaScript wirklich,

Jochen

oder nichts Wesentliches mehr in JavaScript machst.

Jochen

Du erzeugst nicht, also der wesentliche Unterschied ist,

Jochen

du erzeugst in JavaScript kein HTML.

Jochen

Also das, was halt all diese großen JavaScript-Frameworks machen,

Jochen

ist ja irgendwie auch eine eigene Templating-Engine haben

Jochen

oder irgendwie

Jochen

zumindest irgendwas, was so ein bisschen danach aussieht

Jochen

und dann baust du da dein HTML

Jochen

halt zusammen und

Jochen

machst im Grunde das gleiche, was du

Jochen

im Backend machst, nochmal im Frontend.

Jochen

Und die Idee

Jochen

ist sozusagen, das machst du nicht mehr, sondern du machst das

Jochen

nur noch im Backend und das Frontend ist

Jochen

automatisch. Du musst eigentlich nichts mehr im Frontend machen.

Jochen

Du kannst zwar noch so ein bisschen was tun,

Jochen

aber normalerweise musst du nicht mehr viel machen.

Jochen

Und du entwickelst einfach so ganz normal quasi

Jochen

wie ein Ruby on Rails oder Django App

Jochen

und

Jochen

lieferst halt den JavaScript-Teil mit aus.

Jochen

Ja.

Jochen

Da gibt es auch ein ganz nettes Video zu

Jochen

auf hotwire.dev und

Jochen

da gibt es ja diesen

Jochen

E-Mail-Service, den auch Basecamp gestartet hat,

Jochen

hey.com und das ist halt

Jochen

genau damit gebaut und ja.

Jochen

Okay.

Jochen

Na gut, muss man sich mal anschauen.

Jochen

Ja.

Jochen

Es gab vor Jahren mal eine

Jochen

geniale Bibliothek, eine geniale

Johannes

JavaScript-Bibliothek, die Page-Reloads schneller

Johannes

gemacht hat.

Johannes

Die hat einfach

Johannes

Seiten vorgeladen, wenn man mit

Johannes

der Maus drüber gefahren ist, weil

Johannes

tatsächlich ist es so, dass Menschen sehr langsam

Johannes

klicken und wenn sie mit ihrer Maus irgendwo hinfahren,

Johannes

dauert das so 200 bis 500 Millisekunden,

Johannes

bis du dann drauf klickst.

Johannes

Ah.

Johannes

Der hat einfach geguckt, wann die Maus

Johannes

über einem Link stehen bleibt und hat den schon mal

Johannes

geladen und

Johannes

damit kriegt man 200 bis 500

Johannes

Millisekunden Latenz weg, was

Johannes

was ich finde,

Johannes

eine sehr schöne Technik ist.

Johannes

Das ist schon mal eine super Idee, ja.

Johannes

Sehr psychologisch.

Johannes

Also für alle Leute, die so notorisch, nervös

Dominik

mit dem Mauszeiger rumwillen über alle Links,

Dominik

gibt das dann Lags auf der Seite, ja,

Dominik

weil die ganze Zeit irgendwelche Requests passieren, oder?

Dominik

Ja, für die ist es

Johannes

nicht gut geeignet, aber einen Tod

Johannes

muss man sterben.

Johannes

Okay, okay, verstehe.

Johannes

Ja.

Johannes

Ja, ich habe

Johannes

keine News. Also ich habe in den letzten

Johannes

vier Wochen nicht viel.

Johannes

War zu sehr im Weihnachtsstress.

Johannes

Ja, ja, Weihnachtsstress.

Johannes

Es ist einfach nichts Neues passiert.

Johannes

Ja, ja.

Johannes

Das stimmt auch.

Jochen

Ich habe jetzt so ein bisschen

Jochen

Zeit, das habe ich dann auch gleich mal

Jochen

genutzt, um irgendwie

Jochen

meinem Gear Acquisition

Jochen

Syndrom zu frönen.

Jochen

Ja.

Johannes

Da ist Weihnachten auch eine gefährliche

Johannes

Zeit. Das stimmt.

Jochen

ist der perfekte

Jochen

Sturm sozusagen.

Jochen

Ja, aber auch im Hinblick auf

Jochen

ja genau, das wollten wir

Jochen

vielleicht eine Überleitung zu Richtung, was

Jochen

kommt eigentlich 2021 und die

Jochen

ich, meine Vorhersage wäre

Jochen

Pakete, ganz viele Pakete.

Jochen

Es kommen viele Pakete.

Jochen

Aber

Jochen

ja,

Jochen

nicht so viele Pakete mit

Jochen

Audio und Video Hardware

Jochen

zum irgendwie, weil

Jochen

die sind alle schon angekommen

Jochen

und da kommt nichts mehr

Jochen

und zwar zum Beispiel, weil halt

Jochen

in Japan ist halt eine Fabrik

Jochen

von AKG ist irgendwie

Jochen

abgebrannt

Jochen

ja

Jochen

das hat globale Auswirkungen

Jochen

ja, das ist so ein bisschen schlecht

Jochen

es gibt ja zum Beispiel bei den

Jochen

also diese

Jochen

analog

Jochen

also DAC

Jochen

also digital

Jochen

zu Audio und umgekehrt Konverter

Jochen

da gibt es halt nicht so viele

Jochen

von, also die das in guter Qualität

Jochen

machen und tatsächlich stellen

Jochen

halt die Leute gerade so fest, eigentlich gibt es nur einen

Jochen

und dummerweise dieser eine, der hat

Jochen

dann zwar sein Zeugs unter ganz vielen

Jochen

Labels

Jochen

und so vertrieben und

Jochen

es sah so aus, als könnte man das

Jochen

Zeug überall kaufen, aber tatsächlich war es nur

Jochen

eine Firma, nämlich AKG und tatsächlich war es

Jochen

auch nur eine Fabrik, in der die hergestellt wurden, nämlich die

Jochen

und die ist gerade abgebrannt und

Jochen

das ist jetzt schlecht

Jochen

und niemand anders kann das so richtig

Jochen

und jetzt geht halt alles, was so

Jochen

High-End-Audio angeht, da werden jetzt

Jochen

so die Lagerer leer und die Preise steigen

Jochen

und ja, wenn man da nichts

Jochen

hat, das wird in 2021 ein bisschen

Jochen

schwierig, das zu kaufen. Unter anderem

Jochen

auch deshalb, weil halt, ja, die Nachfrage

Jochen

weiterhin hoch bleiben wird, denke ich

Jochen

mal, weil Homeoffice wird wohl weitergehen,

Jochen

nehme ich mal an.

Jochen

Bis wann? Es sieht erstmal so aus.

Jochen

Ja, also

Jochen

die bisherige

Jochen

Prophezeiung war da so bis im Sommer

Jochen

also jedenfalls jetzt hier bei uns

Jochen

so

Jochen

Mitteleuropa. Ja,

Jochen

kommt drauf an, welche

Jochen

Manöver.

Jochen

Ja, Normalität, also

Johannes

es kommt drauf an, was man sich da anhört. Aber jetzt

Johannes

sind ja auch schon tatsächlich

Johannes

die Zeit, gibt da aktuelle Zahlen an

Johannes

21.566

Johannes

Impfdosen in Deutschland

Johannes

verabreicht worden.

Johannes

Das ist doch schon mal nicht schlecht.

Johannes

Dann ist ja nicht mehr weit.

Johannes

Ja, wir sind schon fast da.

Dominik

Wie viel brauchen wir? 40 Millionen durch 20.000?

Dominik

Ja, auch das ist unklar.

Dominik

Irgendwo zwischen 35 und 60 Millionen wird es wohl liegen.

Dominik

Und doppelt natürlich.

Jochen

Ja, und vor allen Dingen gibt es ja jetzt nochmal so eine neue, etwas abgewandelte Virusvariante,

Jochen

die ein bisschen infektiöser ist und das ändert die Zahlen halt auch nochmal.

Jochen

Weil das Problem ist, du brauchst einen größeren Anteil in der Bevölkerung, der immun ist, damit das noch funktioniert.

Jochen

Weil das hat halt direkte Auswirkungen.

Jochen

Wenn das Ding infektiöser ist, dann ist der Prozentsatz der Leute, die immun sein müssen, entweder dadurch, dass sie das schon hatten oder geimpft werden, höher.

Jochen

Was bedeutet, es wird länger dauern wahrscheinlich.

Jochen

Du musst mehr herstellen, dann musst du es verteilen, alles schlecht.

Jochen

Also die pessimistischere Richtung geht eher zu sagen, das wird auch noch bis Winter 2021 leider dauern wohl.

Jochen

also alles nicht so richtig

Jochen

schön und sowieso die Zahlen

Jochen

sehen alles fies

Jochen

aus. Also es kann

Jochen

eigentlich nur, also egal in welche Richtung es geht,

Jochen

die sind eigentlich alle doof, die Richtungen.

Jochen

Es gibt keine guten mehr. Jetzt über Weihnachten sind

Jochen

die Sachen alle gesunken. Ja, komisch.

Jochen

Warten wir mal die Nachmeldungen ab.

Jochen

Warten wir mal die Nachmeldungen.

Jochen

Ja. Ja, gut. Ich meine, das

Jochen

wird uns noch das nächste

Jochen

Jahr beschäftigen. Habt ihr da

Jochen

irgendwas, habt ihr eigentlich sowas

Jochen

gemacht? Also, was ich tatsächlich, ich hatte

Jochen

das, das war mehr so ein, mehr so ein,

Jochen

oh, weiß ich auch gar nicht, ob ich das erzählt habe,

Jochen

naja, also,

Jochen

es war mehr so ein Versuch,

Jochen

genau, ich dachte so, naja, Gott,

Jochen

diese ganzen E-Commerce-Geschichten,

Jochen

da will ich auch mit dabei sein, jetzt so

Jochen

im Jahr 2021, weil ich habe so mal in der Partikel

Jochen

gefragt, ob man nicht irgendwie diese Schnelltests, das klingt ja

Jochen

alles ganz toll und so, und hier ist es dann so,

Jochen

ne, ne, ne, und da dachte ich, na gut,

Jochen

dann gucke ich doch mal, gibt es nicht Webseiten,

Jochen

auf denen man das kaufen kann, und tatsächlich gab es,

Jochen

Und ich habe dann halt auch bestellt.

Jochen

Wie viel WT ihr hatten?

Jochen

Ja, man muss sie in großen Packungen kaufen.

Jochen

Ich habe irgendwie so 25 Stück bestellt.

Jochen

Das hat so irgendwas um die 200 Euro gekostet oder so.

Jochen

Ja, das geht ja tatsächlich noch preislich.

Jochen

Ja, also pro Test waren das so um die 10 Euro.

Jochen

Und dann hieß es aber direkt irgendwie so ein paar Tage später,

Jochen

äh, momentan ein bisschen schlecht mit dem Liefern.

Jochen

Habe ich mir auch schon gedacht,

Jochen

dass das eventuell auch noch andere Leute

Jochen

auf die Idee gekommen sein könnten.

Jochen

Und ja, aber es kam dann tatsächlich

Jochen

sogar noch vor Weihnachten irgendwie an

Jochen

und hat alles funktioniert.

Jochen

Ja, also irgendwie DHL meinte so,

Jochen

ja, super, herzlichen Glückwunsch,

Jochen

kommt doch noch an.

Jochen

Irgendwie, wir sind sehr froh,

Jochen

dass wir das sagen können,

Jochen

aber wir beliefern medizinische Einrichtungen

Jochen

auch mit Priorität.

Jochen

Da ist so, ja, das ist sehr gut.

Jochen

Sonst wäre das ja vielleicht gar nicht angekommen.

Jochen

Wunderbar.

Dominik

Ja. Und hast du einen Webshop aufgemacht

Dominik

und den Preis verfünffacht?

Dominik

Nee, nee, nee.

Jochen

Ein guter Teil davon ist jetzt auch schon

Jochen

verbraucht.

Jochen

Aufgegessen.

Jochen

Ja, ich habe

Jochen

tatsächlich Angebote gesehen, da haben sie

Jochen

50 Euro pro Test verlangt. Also da können

Jochen

schon durchaus Margen drin sein, Jochen.

Jochen

Ja, gut.

Jochen

Zehn kannst du ja verkaufen.

Johannes

Geld für zwei neue Lieferungen.

Jochen

Hm, lass mal überlegen, wie kann man denn da ein Pyramidensystem draus machen?

Jochen

Eine kurze Lektion in exponentielles Wachstum.

Jochen

Ja.

Johannes

Das war ja mal ein Vorschlag, den ich hatte, dass man Leute, die gegen die Maskenpflicht verstoßen, dass man denen zuerst eine Strafe gibt, die sehr niedrig ist, 5 Euro.

Johannes

Und beim zweiten Verstoß dann aber 10 Euro.

Johannes

Und beim dritten Verstoß 20 Euro.

Johannes

Und das wäre dann gleichzeitig abschreckend und eine kurze Einführung in exponentielles Wachstum.

Dominik

Ja, ich glaube, die Wahrscheinlichkeit der Kontrolle mehrfach ist wahrscheinlich gering.

Johannes

Ja gut, das ist ja auch ein lösbares Problem. Also das ist ja, also bitte, gerade in Deutschland ist das ja ein lösbares Problem.

Johannes

Ob ihr das jetzt als Win oder als Fail einsortiert, das überlasse ich jetzt bei euch.

Jochen

Ja, insgesamt tendiert die ganze Situation

Jochen

so ein bisschen Richtung Fail, muss ich sagen.

Jochen

Ach, findest du?

Jochen

Ja.

Jochen

Also das Schlimmste, was ich jetzt hatte,

Dominik

dass ich jetzt nicht so in die Sauna gehen konnte, wie ich wollte

Dominik

und das Fitnessstudio hat zu und

Dominik

Babyschwimmen ist ausgefallen. Also das sind alles

Dominik

First-Welt-Problems.

Dominik

Es ist schon sehr schlimm,

Dominik

Dominik, dass du deinen Job verloren hast

Johannes

und kurz vor dem Finanziellen ausstehst

Johannes

und auch deine Wohnung bald verlierst

Johannes

und

Jochen

Ja, nee, also das

Jochen

tatsächlich

Jochen

Da muss man wirklich sagen, wir leben alle

Jochen

in so einer Blase.

Jochen

Ja, also ich meine, in unserer Branche ist es

Johannes

halt wirklich sehr einfach, Homeoffice zu machen.

Johannes

Das ist für andere

Johannes

Betriebe, alle, die in der Gastronomie

Johannes

arbeiten, für die ist es schwieriger.

Johannes

Ja, ganze Veranstaltungsbehandlung,

Dominik

Arschkrate, Einzelhandel

Dominik

und so weiter.

Dominik

Mein Cousin

Dominik

hat ein Konzertbüro,

Dominik

eine Konzertagentur. Die hatten

Johannes

zwischendurch überlegt, ob sie Konzerte in

Johannes

Flugzeugen machen sollen, weil das war nämlich

Johannes

erlaubt. Hätten sie immerhin für 300

Johannes

Leute Flugzeugkonzerte

Johannes

machen können, haben es aber nicht gemacht.

Johannes

Geld oder Leben heißt das. Aber klar, dem ist das

Johannes

ganze Jahr einfach ausgefallen.

Johannes

Geld oder Leben.

Johannes

Kennt ihr dieses

Jochen

Ticketsystem,

Jochen

Pretix, auch Django-System?

Jochen

Natürlich. Die unterstützen

Jochen

noch jedes Jahr die DjangoCon.

Jochen

bitte, Jochen. Genau.

Jochen

Die hatten jetzt auch so ein

Jochen

Problem damit, dass halt irgendwie,

Jochen

naja, gute ganzen Veranstaltungen, die normalerweise dann

Jochen

Pre-Tix benutzt haben,

Jochen

um die Tickets zu verkaufen,

Jochen

dieses Jahr so ein bisschen sparsamer

Jochen

irgendwie unterwegs waren.

Jochen

Und dann dachten sie schon so,

Jochen

oje, oje, was machen wir denn jetzt? Und dann

Jochen

sind da aber andere

Jochen

in die Bresche gesprungen,

Jochen

sozusagen, und sie hatten dann halt dieses Jahr mehr zu tun,

Jochen

als sie normalerweise zu tun hatten.

Jochen

Und zwar mit

Jochen

mit zum Beispiel Schwimmbädern.

Jochen

Weil normalerweise

Jochen

verkaufen die Schwimmbäder... Jeder braucht jetzt ein Ticketsystem.

Jochen

Genau, die verkaufen ja ihren Kram

Jochen

normalerweise direkt an der Kasse, aber das geht ja jetzt nicht mehr.

Jochen

Das heißt, die müssen die Sachen online

Jochen

verkaufen und dann brauchst du ein Ticketsystem dafür.

Jochen

Und tja, tada!

Jochen

Ja, Reservierungssysteme,

Jochen

auch das ist ein guter Markt in diesem Jahr.

Jochen

Ja, ja. Absolut.

Jochen

Also...

Jochen

Ja, auch alle

Jochen

Lieferdienste und so, das ist sicherlich

Jochen

dieses Jahr

Jochen

gut gelaufen, aber

Jochen

ja gut, es gibt immer Gewinner und Verlierer

Jochen

und

Jochen

ich überlege auch, ob ich

Jochen

jetzt so ein bisschen Richtung Video mal ein bisschen

Jochen

mehr machen soll, ich weiß nicht, ich habe jetzt schon mal so ein bisschen

Jochen

Hardware geordert, ich hoffe mal,

Jochen

dass ich nicht noch mehr Hardware ordern muss, weil

Jochen

sonst habe ich ein Problem, aber

Jochen

das ist ja

Jochen

auch sowas, also genau, da habe ich

Jochen

auch noch mal ein anderes Mikrofon, so ein

Jochen

dynamisches, weil das nimmt so ein bisschen

Jochen

die Umgebungsgeräusche weg, aber das kann man dann

Jochen

dafür dann halt weiter weghalten und dann

Jochen

sieht man, so mit dem Headset und Video ist halt doof,

Jochen

das geht auch nicht so gut. Ja, mal gucken,

Jochen

muss da mal so ein bisschen experimentieren.

Johannes

Ja, ich kann dir da, ich als Betreiber

Johannes

des

Johannes

rasend erfolgreichen Spielmanns

Johannes

Kekskanals, kann dir da natürlich gerne

Johannes

viele Hinweise geben.

Johannes

Wir haben

Johannes

auch noch ein Video in der Pipeline, wir hatten nur

Johannes

bisher keinen Bock, das zu machen, weil

Johannes

einfach zu viel anderes Zeugs los war.

Dominik

Jetzt wieder Kekse, mehr Kekse, noch

Dominik

mehr Kekse? Ja, wir

Dominik

überlegen uns, wie man den Impfstoff

Dominik

wohl als Keks umsetzen kann. Wir hatten ja schon

Dominik

das Virus als Corona-Ausstecher.

Dominik

Dann hatten wir Antikörper

Dominik

in Keksform

Dominik

und jetzt überlegen wir uns, ob wir vielleicht noch eine Impfung

Dominik

machen. Wie sieht der denn überhaupt aus? Wird der

Dominik

per Schluckimpfung verabreicht oder

Dominik

wird der gespritzt? Nee, die werden gespritzt.

Johannes

Also wir hätten dann natürlich eine Schluckimpfung,

Johannes

selbstverständlich,

Johannes

in Keksform, aber der Impfstoff

Johannes

selber ist, die sind alle, also

Johannes

es gibt verschiedene Impfstoffe. Die meisten sind

Johannes

in Spritzen. Es gibt tatsächlich

Johannes

eine, die in die Nase eingespritzt

Johannes

wird. Das ist die angenehmste.

Johannes

Die ist allerdings noch nicht durch Phase 3

Johannes

durch.

Jochen

Habt ihr das gelesen?

Jochen

Ich finde, das fand ich super cool.

Jochen

Da gab es jetzt einen Artikel

Jochen

auch von einem, der normalerweise

Jochen

sich eher mit Computerkram beschäftigt, VDNS oder so.

Jochen

Oh ja, den habe ich gelesen.

Jochen

Den hast du gelesen? Ich weiß, was du meinst, Jochen.

Jochen

Ja, der war sau cool. Der hatte

Jochen

den Impfstoff von BioNTech

Jochen

Pfizer, den hat

Jochen

er halt sozusagen aus so einem

Jochen

Computer,

Jochen

so einer Computerperspektive irgendwie mal

Jochen

darüber gesprochen, was das Ding so alles macht

Jochen

und das fand ich sau interessant, weil da waren

Jochen

echt einige tolle Tricks dabei, von denen

Jochen

ich gar nicht wusste. Man muss dazu sagen,

Jochen

man muss dazu sagen, dass der ja veröffentlicht ist.

Jochen

Der ist ja als Patent eingereicht und da

Jochen

muss er ja veröffentlicht sein. Das heißt,

Johannes

der gesamte Quellcode, um es mal so

Johannes

zu sagen, also das, was dann tatsächlich als

Johannes

mRNA hergestellt

Johannes

wird, steht da einfach drin. Das ist eine

Johannes

Buchstabenfolge. Es sind irgendwie,

Johannes

Jochen, korrigiere mich, 2270

Johannes

Zeichen oder sowas. Also vergleichsweise klein.

Johannes

Ja, ich weiß nicht mehr genau.

Jochen

Es ist irgendwie so halb so groß wie das Virus selber.

Jochen

Oder die, ja.

Jochen

Genau. Und

Johannes

ja, da sind einige schöne Hacks

Johannes

drin. Auch einige schöne Sachen, die man so

Johannes

ja, als

Johannes

Computermensch durchaus versteht, warum manche Sachen

Johannes

so sind und warum manche Sachen nicht so sind. Sehr, sehr,

Johannes

sehr schön gemacht. Ja. Und es

Johannes

ist auch erstaunlich wenig. Also es ist auch einfach

Jochen

ja, der größte Teil

Jochen

von diesen, ja ja

Jochen

der größte Teil von den Daten

Jochen

ist halt 1 zu 1 aus dem Virus kopiert

Jochen

quasi

Jochen

ja nicht 1 zu 1, das hast du nicht genau genug gelesen

Jochen

man hat ein paar Änderungen gemacht

Jochen

ja, aber also

Jochen

tatsächlich was das Ding tut, ist

Jochen

also einmal RNA ist halt

Jochen

also ist halt sozusagen

Jochen

in Computer-Analogie übertragen

Jochen

halt sowas wie Hauptspeicher oder so, es ist halt relativ

Jochen

flüchtig, also es überlebt

Jochen

so an der Luft nicht lange und

Jochen

auch wenn man das irgendwo in Organismen

Jochen

muss es ja auch gekühlt werden. Deswegen diese

Jochen

Kühlkette und so, das ist alles ein bisschen doof.

Jochen

Wenn man es in Organismen reinspritzt, dann

Jochen

normalerweise das Immunsystem wird

Jochen

da so leicht misstrauisch, wenn da irgendwie so

Jochen

RNA-Energie gibt. Ja, auch Zellen

Jochen

nehmen den ja eigentlich normalerweise gar nicht an.

Jochen

Die nehmen ja gar keine RNA-Affenhausen.

Jochen

Ja, und

Jochen

aber da gibt es dann halt schon mal so ein, genau,

Jochen

aber es ist halt quasi der rohe Code,

Jochen

der halt dann irgendwie von den Ribosomen

Jochen

der Zelle halt irgendwie sozusagen in Anführungszeichen

Jochen

ausgeführt wird.

Jochen

Und der dann halt

Jochen

Proteine,

Jochen

der wird dann abgelesen und dann werden Proteine

Jochen

halt synthetisiert.

Jochen

Ja, und das, was dieses Ding

Jochen

macht, ist, das Spike-Protein

Jochen

von dem

Jochen

Virus zu erzeugen.

Jochen

Und zwar so ziemlich genau

Jochen

das Ding. Bis auf auch wieder

Jochen

ein paar kleine Details.

Jochen

Damit es stabil wird. Genau, weil normalerweise

Jochen

rollt sich das Ding zusammen, faltet sich zusammen und

Jochen

dann ist es halt egal. Also das Virus

Jochen

blüht dieses Spike-Protein auch erst

Jochen

so kurz vor der Infektion. Normalerweise

Jochen

kriegt das Immunsystem den Kram halt nie zu sehen.

Jochen

Und wenn man das Virus platt macht,

Jochen

also wie man das normalerweise mit Impfstoffen, also die

Jochen

simpelste Art, man schüttet irgendwie formal

Jochen

die Hüte drüber oder man macht das irgendwie heiß,

Jochen

dann ist das halt kein Virus mehr, sondern nur noch so

Jochen

Teile von einem Virus.

Jochen

Virus-Krümel.

Jochen

Und

Jochen

ja, das reicht ja manchmal auch schon, damit das

Jochen

Immunsystem dann so merkt, okay,

Jochen

das erkenne ich hier

Jochen

wieder, aber bei dem Virus

Jochen

ist das blöderweise nicht so richtig toll, weil

Jochen

das entscheidende Protein halt dann nicht

Jochen

mehr so in der Form da ist, wie es

Jochen

kaputt geht. Genau. Und dieses

Jochen

dieser Impfstoff

Jochen

erzeugt halt dieses Protein und zwar

Jochen

halt so, dass es sich nicht zusammenfaltet,

Jochen

sondern in der gleichen Form bleibt.

Jochen

Und dass das

Jochen

Immunsystem das Ding dann halt auch wieder erkennen kann. Das ist natürlich

Jochen

total super, weil

Jochen

naja, also das sieht halt aus wie eine

Jochen

echte Infektion für das Immunsystem. Da kommt

Jochen

irgendwie so Zeug, so eine Spritze, also kommt halt

Jochen

irgendwie so Zeugs rein, dann fangen Zellen plötzlich an

Jochen

etwas zu produzieren, was sie normalerweise nicht produzieren

Jochen

und das ist alles höchst alarmierend

Jochen

und ja,

Jochen

das sieht alles sehr gefährlich aus, ist aber halt ungefährlich

Jochen

eigentlich, weil sobald die RNA verbraucht ist,

Jochen

die in so der Impflosis drin steckt, dann ist es halt weg.

Jochen

Das kann sich nicht fortpflanzen,

Jochen

das ist ein einmaliges Event, das ist eine

Jochen

der wichtigen Sachen, das heißt, man wird nicht krank davon, sondern

Jochen

es wird halt

Jochen

einmal umgesetzt.

Jochen

Für mich das Beeindruckende

Jochen

an der ganzen Geschichte ist eigentlich,

Jochen

dass das eine Technik ist,

Jochen

die nicht nur für dieses Virus funktioniert,

Jochen

sondern die funktioniert prinzipiell

Johannes

für eine ganz große Menge an Viren.

Johannes

Das heißt, sobald man so ein Virus einmal sequenziert hat,

Johannes

kann man prinzipiell sehr schnell damit anfangen.

Johannes

Und das war ja auch bei diesem Virus hier so,

Johannes

dass die nach zwei Tagen diese Sequenzen,

Johannes

die sie da jetzt alle getestet hatten, hatten.

Johannes

Die haben diese Virussequenz gekriegt aus China.

Johannes

Und war ein kleines Labor.

Johannes

Das war auch eine sehr beeindruckende Geschichte.

Johannes

War eine Handvoll Männchen nur, oder?

Dominik

Das waren unter zehn, die da in dem Labor saßen

Dominik

und das gemacht haben, oder?

Dominik

Ja genau, das waren also im Wesentlichen halt die Leute von Biontech und die haben das übers Wochenende gemacht und dann hatten sie diese Sequenzen und der Rest der Zeit ist jetzt mit Testen und Herstellen verbraucht worden.

Johannes

Und das ist schon beeindruckend, weil wenn diese Technik so funktioniert, dann hat man so eine ganze Klasse von Impfstoffen, die man quasi on demand herstellen kann und das ist schon eine große Sache, wenn ein neueres Virus auftritt und du kannst einfach direkt anfangen, den Impfstoff herzustellen.

Johannes

Ja, das ist schon...

Johannes

Da wird sich die Sache ganz schön ändern.

Jochen

Was ich auch toll fand, das wusste ich auch nicht,

Jochen

das war auch für mich völlig neu,

Jochen

das hast du mir erstmal in diesem Artikel gelesen, dass du halt

Jochen

tatsächlich so eine Art, wie so 3D-Drucker

Jochen

oder Drucker für

Jochen

RNA kannst du halt einfach kaufen,

Jochen

dann nimmst du diese Folge, die du halt

Jochen

irgendwie aus dem Internet, aus einer

Jochen

aus so einer zwielichtigen Quelle

Jochen

irgendwie kopiert, tust das da rein

Jochen

und dann drucktest du das Ding halt in RNA einfach

Jochen

aus, so in so einer

Jochen

30-Mikrogramm-Dosis und

Jochen

gut, ist jetzt auch nicht so einfach

Jochen

zu handeln, aber dann kann man

Jochen

damit halt lustige Sachen machen und das in Muskel

Jochen

spritzen und dann programmiert

Jochen

das halt irgendwie Zellen. Das ist irgendwie schon

Jochen

faszinierend. Da kann man coole Sachen machen.

Dominik

Bestimmt können wir irgendwann alle ewig leben.

Dominik

Das gibt's

Dominik

übrigens auch als As-a-Service.

Dominik

Man kann auch solche Sequenzen einfach

Dominik

machen und die dann irgendwo hinschicken.

Dominik

Live longer as a Service.

Dominik

Wir haben auch nicht mehr in Atmung.

Dominik

Da müsst ihr vielleicht mal eine Episode

Dominik

mit Simon machen, der kann euch

Dominik

da Geschichten erzählen,

Dominik

die euch sehr beeindrucken

Johannes

werden. Es gibt so Gen-Bibliotheken, da kann man

Johannes

einfach Samples bestellen.

Johannes

Die sind dann, die meisten dieser Samples

Johannes

sind auch stabil, das heißt, man kriegt ein Blatt Papier,

Johannes

wo einfach ein Kreis drauf ist,

Johannes

wo die diese Flüssigkeit drauf getropft haben, die trocknet

Johannes

dann, aber die Gen-Materialien,

Johannes

die du da bestellt hast, sind ja stabil.

Johannes

Kriegst du per Post.

Johannes

Versandkosten sind 90 Cent.

Johannes

Ja, war so cool.

Johannes

Ein weiterer Trick,

Jochen

den ich gerade noch erinnert habe,

Jochen

normalerweise ist ja immer alles aufgebaut,

Jochen

auch in der RNA aus diesem

Jochen

A, G, T, U oder so.

Jochen

Und das U

Jochen

haben sie ausgetauscht gegen was anderes.

Jochen

Ich weiß jetzt gar nicht, wie man das ausspricht.

Jochen

Irgend so ein griechischer Buchstabe.

Jochen

Durch ein Tau.

Jochen

Und normalerweise

Jochen

eben, das Immunsystem wird halt,

Jochen

weil normalerweise funktioniert das mit der RNA nicht so gut,

Jochen

wenn man die einfach so nehmen würde

Jochen

und irgendwo reinspritzt, weil das Immunsystem

Jochen

das verdächtig findet und die sofort

Jochen

kaputt macht und so. Aber wenn man

Jochen

das U durch ein Tau ersetzt,

Jochen

ist diese RNA

Jochen

dem Immunsystem einfach vollkommen

Jochen

egal. Das reagiert da gar nicht mehr drauf.

Jochen

Und das

Jochen

ist ja offenbar keine RNA.

Jochen

Ja, ist ja offenbar irgendwas anderes.

Jochen

Ist ja nicht wichtig.

Jochen

Lustigerweise

Jochen

in der Zelle und in den Reversum

Jochen

macht es halt genau das gleiche wie das U.

Jochen

Das heißt, es funktioniert

Jochen

halt genauso. Also eigentlich sollte es dem

Jochen

Immunsystem vielleicht nicht egal sein.

Jochen

Es sind sehr viele

Jochen

sehr schöne Hacks drin.

Jochen

Und auf der anderen Seite muss man sich auch keine

Jochen

Sorgen machen, dass jetzt irgendwie ein Virus

Jochen

diesen Trick kopiert und dann damit

Jochen

irgendwie unter Umständen sehr, sehr böse werden kann,

Jochen

weil man dieses

Jochen

Ding kriegt man halt nicht

Jochen

in einem biologischen Prozess synthetisiert, sondern

Jochen

das geht nur mit Technik

Jochen

und so. Das heißt,

Jochen

diesen Trick

Jochen

kann das Virus sich dem Impfstoff

Jochen

nicht abgucken. Also es ist schon

Jochen

toll, ja. Also hat viel Spaß

Jochen

gemacht, das zu lesen. Ja, also würdest du

Johannes

das jetzt als Win zählen oder als Fail?

Jochen

Stimmt, das Ding ist eigentlich tatsächlich ein großer Win, ja.

Jochen

Das würde ich auch sagen.

Johannes

Wie gesagt, das wird in Zukunft eine ganze Klasse

Johannes

von Impfstoffen ermöglichen,

Johannes

die sehr schnell durch sind.

Johannes

Wenn diese Technik einmal etabliert ist, wenn man

Johannes

fünf oder zehn solche Impfstoffe gemacht hat, dann einfach

Johannes

gar keine Nebenwirkungen passieren, weil die halt nicht

Johannes

passieren können.

Johannes

Dann gibt es da eine generelle Freigabe, dann musst

Johannes

und dann mit einer Sequenz kommen und sagen, ich möchte gerne

Johannes

gegen dieses Virus geimpft werden,

Johannes

muss zwei Stunden

Johannes

warten und bis dann geimpft.

Jochen

Ja, das ist auch, also ich meine,

Jochen

da gibt es ja jetzt auch Studien, also

Jochen

man hat schon Erfahrungswerte, also es gab auch

Jochen

große Studien, aber

Jochen

in den USA eben 600.000 Leute schon

Jochen

geimpft, mindestens jetzt, wahrscheinlich schon mehr

Jochen

und tatsächlich gab es irgendwie

Jochen

praktisch nichts an

Jochen

Nebenwirkungen. Dann gab es,

Jochen

was war das

Jochen

irgendwie vor ein paar Tagen über Twitter, oh mein Gott,

Jochen

Ich frage mich immer, das hört man dann auch

Jochen

so von Leuten, so impfen, ja oder

Jochen

nein, oder gibt es irgendwie Allergien?

Jochen

Ich frage mich immer, wo dann solche

Jochen

Informationen herkommen. Wenn die dann Autisten

Jochen

Ja

Jochen

und jetzt

Jochen

auf Twitter habe ich dann tatsächlich mal

Jochen

eine von den Quellen für so einen Quatsch

Jochen

irgendwie gesehen, das war halt die

Jochen

diese Hahnemann-Gesellschaft, also die

Jochen

Homöopathie-Leute, hatten auf ihrer Webseite

Jochen

eine ganze Reihe von irgendwie

Jochen

echt hahnemüchenen

Jochen

Behauptungen, unter anderem eben auch,

Jochen

dass der Impfstoff Allergien auslösen würde,

Jochen

was totaler Quatsch ist.

Jochen

Und dann hatte irgendjemand die wohl

Jochen

dann auch zur Rede gestellt

Jochen

und meinte so, ey, das ist ja schon ganz schön gefährlich,

Jochen

was ihr hier schreibt, das ist zur Hölle, was macht

Jochen

ihr eigentlich? Und ich so, nein, das haben wir doch

Jochen

aus der Studie selber. Da,

Jochen

guck doch, da hat es eine Allergie

Jochen

ausgelöst. Ja,

Jochen

haben dann nochmal Leute reingeguckt, ja,

Jochen

das war aber die Kontrollgruppe, die hatten

Jochen

das, die haben gar nicht den Impfstoff

Jochen

gekriegt. Also das ist echt. Ja, aber,

Jochen

also ich meine, das ist ja noch schlimmer, wenn dieser Impfstoff

Jochen

bei den Leuten Allergien auslöst, die

Johannes

den gar nicht kriegen. Also Jochen, das ist ja jetzt mal ganz ehrlich.

Johannes

Ja, Magie.

Jochen

Ja, es ist

Jochen

schwer dagegen zu argumentieren, das stimmt schon.

Jochen

Ja, das ist so ein bisschen

Jochen

wie diese Leute,

Jochen

denen man dann sagen muss, ja,

Johannes

dass jetzt überall die Überwachungskameras sind,

Johannes

mit denen Bill Gates die Welt übernehmen möchte und der

Johannes

einzige, die einzige Art,

Johannes

wie man da drumherum kommt, ist, indem man seinen Mund

Johannes

und seine Nase bedeckt und

Johannes

die Sorte

Johannes

ist es halt. Ja, aber

Johannes

Wenn die Kontrollgruppe die Allergien kriegt, dann müsste man eigentlich möglichst schnell den Impfstoff nehmen, damit man diese Allergien nicht bekommt.

Jochen

Ja, aber ich verstehe den Ansatz, aber mich ärgert so ein bisschen das Problem, ich habe das Gefühl, dass es langfristig, dass man das nur verlieren kann.

Jochen

Weil das Problem ist, wenn man etwas tut, was funktioniert und also sagen wir mal so, wenn man das halt quasi nur so verpacken muss, dass es halt dann akzeptiert wird und es nicht darauf ankommt,

Jochen

ob die Begründung dafür richtig oder falsch ist

Jochen

oder überhaupt irgendwas richtig oder falsch ist oder alles

Jochen

irgendwie nur in einer, keine Ahnung,

Jochen

in ihrer Scheinwelt leben, dann hat man das Problem,

Jochen

dass die Leute, die halt sich nur

Jochen

um die Verpackung Sorgen machen müssen, weil sie halt

Jochen

einfach gar keinen Inhalt haben, haben halt einen Vorteil

Jochen

und zwar einen strukturellen

Jochen

Vorteil. Und man selber

Jochen

muss ja auch noch dafür sorgen, dass es funktioniert. Das heißt,

Jochen

man kann eigentlich nur verlieren. Das ist nicht gut.

Jochen

Ja, auch nicht. Ich sehe da

Jochen

eine große Desillusionierung

Jochen

auf dich zukommen. Ich möchte dir jetzt nicht sofort

Jochen

um die Ohren hauen, aber

Jochen

ich befürchte,

Jochen

wir müssen da mal eine

Jochen

schlimmere Episode drüber machen.

Jochen

Ja.

Jochen

Ja, okay, aber

Jochen

das ist ja alles schon eine sehr schöne Überleitung.

Jochen

Lass uns doch mal über Sachen, Themen sprechen, die

Jochen

wir so

Jochen

wiederfahren sind.

Jochen

Ich möchte endlich über mich sprechen.

Dominik

Naja, während du dich in der Jugend

Dominik

konzentriert hast.

Jochen

Ja, dann genau. Was haben wir denn

Jochen

so an Dingen, die gut oder

Jochen

schlecht gelaufen sind.

Johannes

Ich habe eine schöne Anekdote von ganz, ganz,

Johannes

ganz früher. Ich habe früher

Johannes

ganz viel mit Oracle-Datenbanken gearbeitet.

Johannes

Habt ihr schon mal die Freude

Johannes

gehabt, mit Oracle-Datenbanken arbeiten zu

Johannes

dürfen? Ja. Nö.

Johannes

Ja. Ich schätze mal,

Johannes

Jochen, der Grund war bei dir

Johannes

der gleiche wie bei mir.

Johannes

Wir haben das halt.

Jochen

Naja, das war, also tatsächlich

Jochen

web.de lief

Jochen

zum großen Teil, also

Jochen

also der Team-Mail lief halt

Jochen

auf Oracle quasi. Weiß nicht, ob das

Jochen

immer noch so ist, aber vor langer Zeit war das so.

Dominik

Das war in den 90ern noch, da gab es mal so

Jochen

Oracle-Krams. Ja, in den Nullern auch noch.

Jochen

Ja, bei mir war das auch

Jochen

in den Nullern.

Jochen

Ja.

Jochen

Ja, bei uns war im Wesentlichen

Johannes

die Begründung, dass der Hersteller das Produkt

Johannes

ist, das wir vertrieben haben, halt das vorgegeben

Johannes

hat, weil andere Datenbanken sind nicht schnell

Johannes

genug.

Johannes

Was damals schon eine sehr interessante

Johannes

Auffassung, Behauptung war.

Johannes

Ja.

Johannes

Wir haben es auch nicht näher untersucht.

Johannes

Vielleicht war da Magie im Spiel.

Johannes

Ich schätze, dass da so grüne

Johannes

Papierscheinchen-Magie

Johannes

im Spiel gewesen sein mag.

Johannes

Diese Magie schon wieder.

Johannes

Ja. Kennt ihr den Softwarehersteller

Johannes

CA?

Johannes

Die hießen früher mal

Johannes

Computer Associates.

Johannes

in der Enterprise-Welt

Johannes

ungeheuer groß, sind inzwischen

Johannes

auch gekauft von

Johannes

irgendjemandem. Ich weiß gar nicht von wem.

Johannes

Als wir damals,

Johannes

wir waren da eben Partner von denen,

Johannes

da haben die 15 Milliarden Dollar Umsatz im Jahr

Johannes

gemacht, aber außerhalb der

Johannes

Enterprise-Industrie kannte die

Johannes

und kennt die auch quasi niemand.

Johannes

So der freundliche, unbekannte

Johannes

Riese. Jedenfalls mussten wir da Oracle

Johannes

Datenbank verwenden und

Johannes

es gibt ja dieses schöne Statement

Johannes

DeleteFrom für SQL-Datenbanken.

Johannes

Habt ihr sicherlich auch schon mal verwendet.

Johannes

DeleteStaffFrom, du sagst.

Johannes

Nee, DeleteFrom

Johannes

heißt der Befehl einfach nur, weil du

Johannes

da erst dann angibst mit einer

Johannes

Where-Klausel, was alles gelöscht werden soll.

Johannes

Also DeleteFrom, dann

Johannes

gibst du an die Tabelle, aus der gelöscht werden soll und dann

Johannes

mit einer Where-Bedingung, welche Zeilen gelöscht werden sollen.

Johannes

Und

Johannes

das hat das Potenzial, sehr

Johannes

viele Zeilen zu löschen,

Johannes

weil wenn du dieses Where vergisst oder wenn du dazwischen

Johannes

einen Kommentar machst, dann

Johannes

hast du ein Delete-From-Tabelle

Johannes

und dann wird diese gesamte Tabelle gelöscht.

Johannes

Und das haben

Johannes

manche von uns Entwicklern auf die

Johannes

harte Tour rausgefunden, dass das so ist.

Johannes

Manche von uns. Weil wir halt tatsächlich

Johannes

einfach mal, ich will jetzt

Johannes

keinen Namen nennen, ich will jetzt auch niemanden

Johannes

hier persönlich an den Pranger stellen.

Johannes

Delete-From.

Johannes

Wenn man nur Delete-From-Tabellenname

Johannes

ergibt,

Johannes

dann löscht das einfach alle Zeilen

Johannes

aus einer Tabelle raus.

Johannes

Und das ist ja sehr

Johannes

ungünstig, wenn das mal passiert.

Johannes

Je nachdem. Manchmal möchte man das aber auch.

Johannes

Ja. Genau, manchmal möchte man das auch.

Johannes

Manchmal möchte man alle Zeilen einer Tabelle löschen.

Johannes

Insbesondere dann, wenn man gerade mit der Testdatenbank

Johannes

verbunden ist

Johannes

und die mal resetten möchte

Johannes

und einfach mal alles löschen möchte.

Johannes

Da ist jetzt schon der erste

Johannes

Fail. Das passiert nämlich manchmal, dass man

Johannes

versinnlich nicht mit der Testdatenbank

Johannes

verbunden ist, sondern mit der

Johannes

Produktivdatenbank.

Johannes

Aber zum Glück, und das ist was sehr

Johannes

Interessantes,

Johannes

Und wir haben dann gemerkt, dass dieser Befehl sehr, sehr langsam ist. So ein DeleteFrom macht ja eigentlich nicht viel, das löscht halt die Tabelle und das müsste ja eigentlich so im Handumdrehen gehen. Aber dieser Befehl ist sehr langsam, weil der löscht die Tabellenzeilen nicht einfach nur, sondern der verschiebt die ins UndoLog.

Johannes

Tatsächlich hat Oracle, anders als andere Datenbanksysteme, einen Papierkorb und dieser Papierkorb ist das Undo-Log. Das heißt, wenn du ein Delete-From gemacht hast, kannst du die Zeilen wieder retten, wenn du rechtzeitig zu deinem Systemadministrator gehst und sagst, ich hoffe, ihr habt das Undo-Log noch nicht gelöscht oder geleert oder überschrieben und dann kriegst du die Zeilen wieder.

Johannes

Jetzt ist es so, wenn das passiert, dann ist das sehr langsam.

Johannes

Gerade wenn man eine Tabelle löscht, wo eine Milliarde Zeilen drin sind,

Johannes

dann ist das halt sehr langsam.

Johannes

Und weil das zu langsam ist, gibt es bei Oracle einen speziellen Befehl,

Johannes

der heißt Truncate Table.

Johannes

Der macht das, was normalerweise ein Delete From ohne Bedingung macht.

Johannes

Der löscht alle Zeilen aus einer Tabelle und zwar schnell,

Johannes

ohne die ins Undo Log zu tun.

Johannes

Und ihr könnt euch denken,

Johannes

wohin das geführt,

Johannes

wozu das geführt hat.

Johannes

Und zwar DeleteFrom.

Johannes

Jeder Entwickler in der Abteilung

Johannes

war dieses DeleteFrom zu langsam.

Johannes

Wir sind einfach alle auf TruncateTable

Johannes

übergegangen.

Johannes

Was dann so diesen ganzen Sinn,

Johannes

dieses Undulog so ein kleines bisschen kaputt gemacht hat,

Johannes

als der Erste halt tatsächlich

Johannes

in der Produktionsdatenbank

Johannes

ein TruncateTable gemacht hat.

Johannes

Nicht nur ein DeleteFrom,

Johannes

sondern ein TruncateTable.

Johannes

Und einfach mal eine von den

Johannes

Projektdatentabellen gelöscht hat.

Johannes

Schwupps, schwupps. Das war

Johannes

ein nicht so cooler Tag.

Johannes

Ja, ich würde sagen,

Johannes

ich bin den Stecker gezogen.

Johannes

Ja, das war auch die Firma,

Johannes

wo sie, damals hatten wir noch Subversion,

Johannes

wo das

Johannes

Subversion auf einem Raid lag und eine von den

Johannes

Festplatten kaputt gegangen ist und dann der

Johannes

Hersteller gekommen ist und die falsche Festplatte

Johannes

ausgetauscht hat.

Johannes

Die eine hat

Johannes

er hoffentlich direkt fachgerecht entsorgt.

Johannes

Also wir hatten

Johannes

auf jeden Fall ungefähr eine Woche an Sachen

Johannes

verloren, die einfach dann nicht mehr da waren.

Johannes

Und Subversion ist ja auch nicht einfach so, dass du wieder pushen kannst.

Johannes

Ist ja nicht wie heutzutage, wo

Johannes

jeder eine Kopie hat, sondern Subversion ist dann halt

Johannes

einfach erstmal komplett kaputt.

Jochen

Ja, ich erinnere mich

Jochen

da auch. Schöne, professionelle

Jochen

Zeiten damals.

Dominik

Da hat wohl einer keine Backups gehabt.

Dominik

Ja,

Dominik

wir hatten ja einen Raid.

Dominik

Ja, ja.

Dominik

Brauchst du ja nicht. Habe ich gar nicht vor so langer

Dominik

Zeit gemacht. Ich glaube, das ist ein paar Wochen her.

Dominik

Reset Schema

Dominik

in einem Projekt, in einer Deploy-Chain

Dominik

und dann vergessen,

Dominik

das Backup dann wieder aufzuspielen.

Dominik

Du hast es gleich direkt automatisiert gemacht.

Dominik

Das ist doch, würde ich sagen, sehr modern.

Dominik

Du hast nicht nur die Daten mal gelöscht, sondern du hast sie gleich

Dominik

automatisiert und mit Tests gelöscht.

Dominik

Ja.

Dominik

Die hätte man wahrscheinlich noch wieder herstellen können.

Dominik

Wiederholbar gelöscht.

Dominik

War nicht so schlimm eigentlich, weil

Dominik

das Projekt liegt noch nicht so lange.

Dominik

Ja, so einen ähnlichen Fall

Dominik

habe ich mal, ich meine, man kann halt,

Dominik

Habe ich auch mal produziert.

Dominik

Allerdings, was war ja so ein...

Jochen

Ich meine, Datenbanken kann man natürlich löschen.

Jochen

Das ist eine Möglichkeit, irgendwie sie unverfügbar zu machen.

Jochen

Eine andere elegante Möglichkeit,

Jochen

Datenbanken

Jochen

von der Verfügbarkeit zu entfernen,

Jochen

ist halt, sie einfach auszuschalten.

Jochen

Und normalerweise merkt man das halt auch immer sofort,

Jochen

wenn eine Datenbank weg ist.

Jochen

Manchen Datenbanken,

Jochen

da ist das Caching so advanced, dass man das nicht

Jochen

sofort merkt. Zum Beispiel bei DNS.

Jochen

Oh, den ist es auch generell. Ein sehr schönes Thema.

Jochen

Und genau, wenn man

Jochen

so den Primary DNS-Server ausschaltet,

Jochen

einfach, weil man das irgendwie sich verguckt hat

Jochen

und im Reck des Falschen

Jochen

kann auch schon mal sein, dass

Jochen

man das halt nicht sofort merkt,

Jochen

weil, naja, das meiste ist ja gecached,

Jochen

das funktioniert einfach alles weiter.

Jochen

Manche kriegen halt so seltsame Failermeldungen, aber manchmal

Jochen

das ist halt so, Computer, manchmal funktionieren

Jochen

Dinge nicht so richtig.

Jochen

Überprüfe deine Netzwerkverbindung.

Jochen

Und dann wird es halt nur irgendwann

Jochen

dann komisch, wenn dann halt der Traffic immer

Jochen

weiter runter geht und man weiß nicht so recht, warum.

Jochen

Und dann denkt man sich so,

Jochen

was ist denn heute für ein Datum?

Jochen

Ist da irgendwie Weihnachten gerade?

Jochen

Oder Fußball-Weltmeisterschaft?

Jochen

Oder wenn es das nicht ist,

Jochen

okay, das sieht jetzt aber schon

Jochen

komisch aus. Aber das

Jochen

Problem ist, wenn man es dann bemerkt, ist es halt schon zu spät.

Jochen

Weil dann haben nämlich auch alle...

Jochen

Ja, und dann hast du auch die Cash-Zeiten

Jochen

beim Hochfahren auch wieder.

Jochen

Aber da hast du auch keine halben Sachen gemacht, wenn du direkt in

Jochen

Primary-DN ist.

Jochen

Ja, das war so bitter, dass dann auch tatsächlich jemand hingegangen ist, also da musste irgendwie tatsächlich jemand irgendwie von Hand im DE so ein Pfeil was fixen, so mit einem VI auf einem, weiß ich nicht, mehrere hundert Megabyte großen Ding.

Jochen

Du bist schon länger im Business als wir.

Jochen

Ja, ich weiß nicht, wie oft sowas nötig ist, aber …

Dominik

Wie lange hat das gedauert, bis das wieder verfügbar war?

Jochen

Ja, so ein paar Stunden hat das schon irgendwie Probleme gemacht.

Jochen

Bis es aufgefallen ist?

Jochen

Es hat ein paar Stunden gedauert.

Jochen

Ich weiß nicht, ob es ein paar Stunden waren.

Jochen

Ich weiß nicht genau, wie lange es gedauert hat.

Jochen

Es war eine Zeit lang, bis es aufgefallen ist.

Jochen

Und dann hat es nochmal ein paar Stunden gedauert,

Jochen

bis es wieder gefixt war.

Dominik

Deswegen konnte ich damals keine E-Mails mehr empfangen.

Dominik

Deswegen ist damals meine Oma gestorben,

Dominik

die dringend auf die E-Mail-Bestätigung

Dominik

von ihrem Arzt gewartet hat.

Jochen

Ja, ich glaube, damals war das alles noch so.

Jochen

War es noch nicht so kritisch?

Jochen

War noch nicht so, ja.

Jochen

Weiß nicht.

Jochen

Ja, das ist, meine Frau ist ja

Jochen

Ärztin und bei der

Jochen

geht es um Menschenleben, aber das ist ja nicht so schlimm,

Jochen

weil bei uns geht es ja um Geld.

Jochen

Geld oder Leben, Geld oder Leben.

Jochen

Ja.

Jochen

Ja.

Jochen

Ja, das ist doch schön, aber es ist schön, dass jeder von uns

Jochen

auch so eine Geschichte hat, wo er einfach mal

Jochen

Produktivdaten

Jochen

entfernt oder gelöscht oder

Jochen

verfügbar. Ja, ich glaube, das passiert auch allen irgendwann

Jochen

früher oder später mal. Das ist halt,

Jochen

ja. Das ist die

Jochen

Feuertaufe. Oder auch,

Dominik

Backups machen auf dem gleichen Server

Dominik

wie die Datenbank und dann ist der

Dominik

Server weg oder die Platte

Dominik

davon im Arsch und dann ja, Backups leider

Dominik

dann auch weg.

Dominik

Ja, Backups muss man immer

Dominik

Off-Site machen.

Dominik

Hätte man auch eigentlich vorher drauf kommen können.

Dominik

Da gibt es auch das Zwiebelmodell.

Johannes

Du musst Schichten von Backups haben. Die erste Schicht

Johannes

ist die ganz nahe und die

Johannes

zweite Schicht ist im gleichen

Johannes

Gebäude und die dritte Schicht ist im gleichen Land

Johannes

und die vierte Schicht ist auf dem gleichen Planeten.

Johannes

Und dann Schicht 5 Backups

Johannes

haben wir leider noch nicht so viele.

Dominik

Ja, könnte man aber eigentlich so ein bisschen rausschießen.

Dominik

Wir haben ja genug Planeten, die verfügbar wären.

Dominik

Also das ist jetzt ein kleiner Exkurs,

Dominik

aber wir hatten ja gerade so.

Dominik

Die Datenrate ist gut, aber die Latenz

Dominik

ist sehr langsam.

Jochen

Wie hieß das Ding? Habt ihr das verfolgt?

Jochen

Spaceship One oder so? Keine Ahnung.

Jochen

Haben sie jetzt diesen High-Altitude-Test gemacht?

Jochen

Also wir sind diesem

Jochen

anderen Planeten-Ding schon

Jochen

hochgeschickt. Bitte?

Jochen

Haben die sogar schon Leute damit ...

Jochen

Ja, ja, nee, aber das ist diese ...

Jochen

Ich verfolge das immer nur so am Rande.

Jochen

Ist das von Jeff Bezos oder von Elon Musk?

Jochen

Welche reiche Raketenfirma ...

Jochen

Ja, ja, Elon Musk war das.

Jochen

Und Virgin Galactic, der dritte reiche Mann,

Jochen

der dritte verrückte Milliardär, hat doch auch eine Raketenfirma.

Jochen

Hat der auch Raketenfirma inzwischen?

Jochen

Ich dachte, der macht noch was mit dem Flugzeug.

Jochen

Und er ist noch irgendwer, der ...

Jochen

Wer ist der? Branson?

Jochen

Ja, Richard Branson.

Dominik

Ist ja hochgeflogen, ne? Man wollte unbedingt...

Jochen

Ach nein, das Ding heißt irgendwie nicht

Jochen

Spaceship One, sondern Starship... Ach Gott.

Jochen

Naja, wie auch immer...

Jochen

Genau, aber...

Johannes

Der Namespace in dem Bereich wird jetzt auch schon knapp.

Jochen

Ja, nee, aber das Ding ist wirklich riesig.

Jochen

Also das ist halt nicht das...

Jochen

Also das ist halt irgendwie auch eine neue Technik.

Jochen

Das ist einmal ein neues Material, das ist irgendwie Edelstahl

Jochen

statt Aluminium oder so.

Jochen

Und eine neue Technik, das soll wiederverwendbar sein

Jochen

und das segelt sozusagen irgendwie wieder runter.

Jochen

Und es ist größer als die Saturn V, also es ist wirklich riesig.

Jochen

Also das ist halt sozusagen der...

Johannes

Ja, sowas habe ich bei Kerbel Space Program auch schon mal gebaut.

Johannes

Da gibt es noch diesen tollen Talk.

Johannes

Hat auch einwandfrei funktioniert.

Dominik

Da gibt es noch ein paar tolle Talks, wie man Raumschiffe baut

Dominik

und wie man Raumschiffe fliegt.

Dominik

Die gab es auch mal zwischendurch.

Dominik

In Kerbel oder in echt?

Dominik

Ja, in echt, in echt, in echt.

Dominik

In echt, okay.

Dominik

Ja, es gibt ja auch ganz viele so Amateurfirmen,

Dominik

die das versuchen und da machen.

Johannes

Copenhagen Aerospace ist eine Amateurfirma, die, das ist nicht mal eine Firma, das ist ein Verein, der halt Raketen baut und ins Weltall schicken möchte.

Dominik

Der US hat das, wie man das macht, das ist sehr interessant, also wenn der euch das interessiert.

Dominik

Und weil wir gerade bei Planeten waren, das gibt ja irgendwie, wo man dann hinfliegen kann.

Dominik

Es gibt ja so viele wie, oder mehr als Sandkörner wahrscheinlich auf der Erde und das ist natürlich schon gut, wenn die nicht so weit weg wären.

Dominik

Und da muss man sich halt irgendwie überlegen, wie man da die Zeit überbrücken kann.

Dominik

wir haben ja Computer dabei, vielleicht kann man da so ein bisschen

Dominik

seine Langeweile vertreiben und Tetris spielen

Dominik

oder so.

Dominik

Ja, finde ich gut.

Dominik

Ja, ja.

Dominik

Das ist ja vielleicht so die Frage, wie man seine Zeit

Dominik

kann er endlich mal seine Steam-Bibliothek

Dominik

abarbeiten.

Dominik

Noch so ein Wenn übrigens

Dominik

oder ein Fail. Ich weiß nicht, Cyberpunk oder Johannes.

Dominik

Ja, ach.

Johannes

Das ist ja, die Nachrichten sind unterhaltsamer

Johannes

als das Spiel, oder?

Johannes

Ja, so schlimm.

Johannes

Ist doch großartig.

Johannes

Nein, also das Spiel ist sicherlich

Johannes

sehr gut, wenn es läuft, aber man hört ja

Johannes

nur von Leuten, bei denen es nicht funktioniert.

Dominik

Tja, kann man nichts machen,

Dominik

wenn man das auf einer alten Hand nicht spürt.

Dominik

Ein Gentleman genießt und schweigt.

Dominik

Na gut.

Dominik

Wisst ihr, wo wir gerade dabei sind?

Johannes

Das ist eine volle gute Überleitung, die mir gerade so einfällt.

Johannes

Wisst ihr, was ein galaktischer Algorithmus ist?

Johannes

Aha.

Johannes

Das,

Johannes

was total witzig ist,

Johannes

es gibt ja für alle möglichen Sachen Algorithmen,

Johannes

die in ihrer Laufzeit gemessen werden.

Johannes

Und Laufzeitmessung ist ja immer mit Groß-O-Notation.

Johannes

Und Groß-O-Notation heißt,

Johannes

dass es asymptotisch sich so verhält,

Johannes

wie die da gezeigte Funktion.

Johannes

Also zum Beispiel O von n Quadrat

Johannes

kann ganz große konstante Faktoren haben.

Johannes

Aber wenn man das n genügend groß wählt,

Johannes

dann ist es auf jeden Fall so wie n Quadrat.

Johannes

Und es gibt eine Klasse von Algorithmen,

Johannes

die heißt galaktische Algorithmen,

Johannes

die haben sehr gute O-Notationen.

Johannes

Also sie sind dann O von n log n

Johannes

oder O von n hoch 1, noch was.

Johannes

Also besser als alles andere.

Johannes

Aber wenn man die konstanten Faktoren ausrechnet,

Johannes

dann ist dieses n halt 10 hoch 40 oder sowas.

Johannes

Das ist ein bisschen schlecht.

Johannes

Die Problemgröße ist, ja genau, die Problemgröße ist halt, die konstanten Faktoren sind halt so dominant, dass es erst dann Sinn macht, diesen Algorithmus einzusetzen, wenn man einen Computer hat, der so groß ist wie eine Galaxis. Deshalb heißen die galaktische Algorithmen, sind prinzipiell die besten Lösungen für verschiedene Probleme, aber in der Praxis nicht ungeheuer gut.

Johannes

Es gibt auch manche von denen, die haben dann so Konstanten drin, wo du halt quasi eine Look-Up-Table vorher ausrechnen musst und der ist halt auch schon 10 hoch 40 Byte groß oder irgendwie sowas ganz albernes.

Dominik

Das erinnert mich sehr an Series auf Interstellar Trade, wo es halt um die säkulare Verbesserung der Terms of Trade geht und zwischen zwei verschiedenen Zivilisationen, die relativ lange brauchen, ein bisschen miteinander Handel treiben können. Das kommt so in gewisser Weise, das ist halt faktischer Unsinn, aber theoretisch ein super tolles Modell.

Dominik

ja, theoretisch optimal, aber

Dominik

in der Praxis leider nicht. Ja, auch ein galaktischer

Dominik

Algorithmus. Nicht anzuwenden.

Dominik

Das war übrigens ein Paper von Krugman,

Dominik

falls ihr das, müssen wir auch mal verlinken in die Shownotes.

Dominik

Ja, tust du auch mal in die Shownotes, ich lese das dann und

Dominik

das finde ich gut.

Dominik

Ich mag das gerne, so Paper lesen.

Johannes

Auch dieses Virus-Paper habe ich auch mit

Johannes

sehr viel Freude gelesen, das war auch sehr schön.

Johannes

Ja, warum war das

Johannes

eine Überleitung? Weil ich habe jetzt hier, ihr

Johannes

könnt es jetzt hier sehen im Video, die

Johannes

Hörer zu Hause können es nicht

Johannes

sehen, weil es ist ja ein Podcast.

Johannes

Dieses Buch hier, das ist ein schwarzes Buch mit Ringeinband.

Johannes

Das ist mein Algorithmenbuch.

Johannes

Und ich habe dieses Algorithmenbuch vor Jahren mal angefangen.

Johannes

Und die Idee dahinter ist, dass immer wenn ich einen guten Algorithmus finde,

Johannes

der nicht so bekannt ist, dass ich mir den aufschreibe.

Johannes

Und wenn ich vor irgendeinem Problem stehe, was schwer zu lösen ist,

Johannes

dann muss ich nur in mein Algorithmenbuch reinschauen

Johannes

und finde da bestimmt irgendwas drin, was da hilft.

Dominik

Jetzt mach mal auf und zeig mal, wie viele Seiten da schon

Dominik

beschrieben sind. Ich mach jetzt erst mal

Dominik

den Staub weg.

Dominik

Das lag nämlich schon

Dominik

eine ganze Weile

Johannes

drin und ich mach's jetzt mal auf und es sind tatsächlich

Johannes

eins, zwei, drei, vier,

Johannes

fünf, sechs, sieben,

Johannes

ja, siebeneinhalb Seiten beschrieben. Das hier ist

Johannes

die achte Seite, die beschrieben ist.

Johannes

Da steht nur eine Überschrift drauf.

Johannes

Ja, ich würde das auf jeden Fall

Johannes

als Win zählen. Aber nicht

Dominik

die Zeit mit den Rezepten, mit den Kochrezeptern

Dominik

dazu zählen. Klar, gewonnen.

Dominik

Ja, Kochrezepte habe ich ein eigenes Buch für,

Dominik

selbstverständlich. Könnte ich ja auch als

Jochen

Sondereignung. Aber tatsächlich, in der Praxis

Jochen

hat man oft irgendwie dickere

Jochen

Kochrezeptbücher als Algorithmenbücher.

Jochen

Ja, das ist mir auch schon aufgefallen.

Jochen

Ja, leider.

Jochen

Ich weiß auch nicht, es hilft auch nicht,

Jochen

wenn man sich jetzt, man kann sich natürlich auch irgendwie so ein

Jochen

Algorithmenbuch nehmen und dann einfach versuchen, mal

Jochen

die ganzen Dinger durchzulesen,

Jochen

zu lernen und dann halt anzuwenden,

Jochen

wenn man irgendwie so Probleme hat. Aber irgendwie funktioniert

Jochen

das nicht richtig. Also

Jochen

was mir tatsächlich oft

Jochen

passiert, oder was heißt so oft,

Jochen

so oft hat man ja zum Glück nicht wirklich schwere Probleme,

Jochen

aber, oder auf dem

Jochen

Level nicht so schwer, aber was mir ganz

Jochen

oft passiert ist, dass ich habe irgendein Problem,

Jochen

das ich nicht in den Griff kriege. Und

Jochen

naja, da mir die Algorithmenbücher

Jochen

zu langweilig sind, die habe ich alle nicht gelesen, weiß ich halt

Jochen

auch nicht, welchen Algorithmen man eigentlich nehmen sollte.

Jochen

Sondern ich fange dann an,

Jochen

selber nachzudenken.

Jochen

Das ist halt auch nicht so optimal.

Jochen

sehr langsame Algorithmen.

Jochen

Oder findest dann diese ganzen Algorithmen wieder.

Jochen

Ja, oder sag mal so,

Jochen

es ist irgendwie, also ich,

Jochen

teilweise

Jochen

denke ich sie dann halt wieder,

Jochen

irgendwie nach langem drüber nachdenken,

Jochen

oder

Jochen

mir fällt halt irgendwo

Jochen

ein Algorithmus auf, der genau das Problem

Jochen

löst, aber halt so in dem Kontext

Jochen

des drüber nachdenkens irgendwie,

Jochen

weil ich mir denke so, okay, das, was da Leute

Jochen

machen, das klingt so ähnlich und dann irgendwann taucht

Jochen

dann der Name von dem Algorithmus auf und dann,

Jochen

Also es ist irgendwie ganz eigenartig.

Jochen

Ich verstehe es nicht so genau.

Jochen

Und das ist schon ein paar Mal passiert.

Johannes

Ja, dafür hatte ich eigentlich dieses Buch hier.

Dominik

Du musst mir einen davon vorstellen, Johannes,

Dominik

der vielleicht sogar einen Namen hat.

Dominik

Oder hast du einen selber, den du selber taufst?

Dominik

Ja, nee, selber getauft nicht.

Johannes

Also ich versuche Sachen hier zu merken,

Johannes

die ich interessant finde, die Spannfilter.

Johannes

Eine Sache, die man mal sagen kann, sind zum Beispiel Blumenfilters.

Johannes

Wisst ihr, was ein Blumenfilter ist?

Johannes

Nein.

Johannes

Ja, voll geil.

Johannes

Das ist eine sehr spezifische, probabilistische Datenstruktur,

Johannes

die, wenn man sie braucht, absolut genial ist

Johannes

und absolut undenkbar, dass das überhaupt funktionieren kann.

Johannes

Aber wenn man sie nicht braucht, ist sie total nutzlos.

Johannes

Das ist im Wesentlichen eine Set-Implementation, also eine Menge.

Johannes

Und ich kann in diese Menge Dinge eintragen, also Elemente eintragen

Johannes

und ich kann fragen, ist dieses Element in der Menge vorhanden?

Johannes

Und wenn die Antwort Nein ist, dann ist die sicher.

Johannes

Das heißt, wenn mein Bloom-Filter sagt,

Johannes

das Element 7 ist nicht vorhanden,

Johannes

dann bin ich mir sicher, dass das Element nicht vorhanden ist.

Johannes

Wenn der Bloom-Filter aber sagt, ja, das Element ist vorhanden,

Johannes

dann ist der nur mit einer gewissen Wahrscheinlichkeit vorhanden.

Johannes

Und der Gag daran ist, dass man sehr wenige Bits braucht,

Johannes

um diese Einträge zu speichern.

Johannes

Also je nachdem, wie man das eingestellt hat,

Johannes

kann die Speichermenge weniger als ein Bit pro Eintrag sein.

Johannes

Deutlich weniger als ein Bit pro gespeichertem Element.

Johannes

Und das ist was total Verrücktes,

Johannes

weil das kann ja gar nicht gehen.

Johannes

Warum ist das nützlich?

Johannes

Das ist zum Beispiel dann nützlich,

Johannes

wenn man so eine verteilte Situation hat,

Johannes

dass du sagst, okay,

Johannes

ich suche in meinen zehn Datenbank-Servern

Johannes

nach dem Eintrag für diesen Schlüssel,

Johannes

den ich jetzt gerade brauche

Johannes

und ich frage einfach mal

Johannes

meinen Bloom-Filter,

Johannes

auf welchem Datenbank-Server dieser Eintrag

Johannes

vorhanden ist. Und der sagt dann mit Wahrscheinlichkeit

Johannes

in welcher Range?

Johannes

Das kommt darauf an,

Johannes

das liegt an der Menge

Johannes

der Einträge, die du speicherst und wie groß dieser

Johannes

Bloom-Filter ist, den du gemacht hast.

Johannes

Musst du vorher wählen, musst du relativ schnell überlegen.

Johannes

1 durch N.

Johannes

Aber alle, nee, es ist eine

Johannes

kompliziertere Formel.

Johannes

Das wäre dann ein Detail, das steht gar nicht in meinem Buch drin. Das Wichtige ist, wenn dir ein Filter sagt, nein, der ist nicht drin, dann brauchst du diesen Datenbank-Server gar nicht fragen, weil da bist du sicher. Wenn der Bloom-Filter aber sagt, ja, der ist drin, dann ist er vielleicht da drin.

Johannes

Ein anderes Beispiel, wofür ich es kürzlich überlegt habe anzuwenden, ist ein Passwort-Hersch. Es gibt ja eine Liste von unsicheren Passwörtern, also von Passwörtern, die bekannt sind. Im Wesentlichen Passwort-Wortlisten.

Johannes

Das ist eine Regenbogentabelle.

Johannes

Genau, dass du so eine Art Regenbogentabelle machst,

Johannes

dass du einen Regenbogen-Bloomfilter machst,

Johannes

dass du sagst, du nimmst dir die 250.000 Passwörter,

Johannes

die am weitesten verbreitet sind

Johannes

und speicherst davon die SHA-1-Hashes

Johannes

und einen Bloomfilter dafür

Johannes

mit einer Wahrscheinlichkeit von, ich glaube, 99%.

Johannes

Ich hatte es mal ausgerechnet, es sind etwa 100 Kilobyte.

Johannes

Das ist also durchaus was,

Johannes

was du per JavaScript übertragen könntest,

Johannes

wo du direkt auf den Client überprüfen

Johannes

könntest, ob das Passwort, was er gerade

Johannes

eingegeben hat, zu den 250.000

Johannes

schlechtesten Passwörtern, die es

Johannes

gibt, gehören könnte.

Dominik

Du kannst ja sagen, dein Passwort ist aber doof.

Dominik

Genau. Und wenn du

Johannes

das sagst, dann weißt du, dass es vielleicht

Johannes

so ist, vielleicht aber auch nicht.

Johannes

Wenn der aber Nein sagt, dann weißt du, dass es auf jeden Fall

Johannes

keins dieser Passwörter ist, die du gespeichert hast.

Johannes

Also so eine

Johannes

Abfrage, wo du ein sicheres Nein

Johannes

brauchst, dafür sind die sehr gut

Johannes

und dafür sind

Johannes

die eine super Sache, weil sie halt

Johannes

ungeheuer wenig Speicherplatz brauchen.

Johannes

Viel, viel, viel weniger, als man sich das

Johannes

als man sich das je vorstellen

Johannes

könnte.

Johannes

Jetzt ist es halt leider so, so eine Art Problem

Johannes

braucht man halt nicht so häufig. Deshalb habe ich nur sieben

Johannes

solcher Einträge drin. Einer davon

Johannes

Blumenfilter, den schreibt ihr jetzt

Johannes

euch alle in euer Algorithmenbuch direkt rein.

Dominik

Wie schreibt man den denn? Den Blumenfilter mit

Dominik

UH, mit OO? So wie Orlando.

Dominik

Okay.

Dominik

B-L-O-O-M

Dominik

B-L-O-O-M

Dominik

Filter, weil der nämlich

Dominik

blüht, also der blüht auf, wenn du

Dominik

die Abfragen machst.

Johannes

Wenig Daten, die dir viele

Johannes

Antworten geben.

Johannes

Ja, super spannende Technik

Johannes

habe ich noch nie irgendwo verwendet, auch da

Johannes

hat es sich dann zerschlagen, weil wir doch

Johannes

einfach eine ganz andere Sache gemacht haben

Johannes

mit unseren Passwörtern. Aber gut.

Johannes

War fast, also ein Algorithmus,

Dominik

wenn man fast gebraucht hätte, ist ja schon mal etwas.

Johannes

Ja, insofern, Win oder Fail, auch hier, ich werde mal, vielleicht werde ich es mir öfter wieder zu, vielleicht fallen mir mehr spannende Sachen auf, die man da reinschreiben könnte, exotische Sachen. Vielleicht mache ich auch einfach nächstes Mal dieses Buch nochmal auf und wir sprechen über furchtbar exotische Sachen.

Johannes

Sukkulenten.

Johannes

Ja, und noch exotischer.

Johannes

Noch exotischer, na gut.

Johannes

Viel exotischer.

Jochen

Ja, wenn ich es so überlege, also ich meine, das hatte ich auch vielleicht schon mal erwähnt, also ich hatte das schon mal mit topologischer Sortierung, genau, da wusste ich auch nicht, was das ist, bis ich es dann auch nochmal entdecken musste.

Jochen

Bis du es selber erfunden hast?

Jochen

Ja, naja, das ist halt irgendwie nicht das Gleiche, wenn man das als erster macht oder halt irgendwie dann, wenn man es eigentlich schon mal wissen sollte. Also, aber ja, eine andere Geschichte, die mir mal…

Jochen

Kryptomnese, wisst ihr, was Kryptomnese ist?

Jochen

Ne?

Johannes

Das ist, wenn man selber was erfindet, was es aber schon gibt.

Johannes

Ja.

Johannes

Weil man sich dann doch irgendwie halt doch dran erinnert, so unterbewusst.

Jochen

Das kann auch gut sein, dass das so ist, ja.

Dominik

Oder man war eigentlich einfach so genial und es hatte einfach jemand anders schon diese Idee, aber völlig unabhängig.

Jochen

Das ist eine Annahme, die wäre mir sehr sympathisch.

Jochen

Das Problem dabei ist, dass halt Verlagen dabei nie etwas ausfällt.

Jochen

Ja, die trifft bei mir natürlich zu.

Jochen

Was tatsächlich neu ist, spricht das so ein bisschen gegen die Hypothese.

Jochen

tatsächlich, ich meine, der Feynman hat das ja auch irgendwie

Jochen

ich weiß nicht,

Jochen

in welchem Buch er das geschrieben hat, aber

Jochen

er hat halt auch so irgendwie, naja,

Jochen

er hat halt einfach immer irgendwie alle

Jochen

Sachen, alle Probleme, die irgendwie in den Büchern,

Jochen

die er so gelesen hat, drin standen,

Jochen

irgendwie versucht zu lösen

Jochen

und hat das halt einfach immer weiter gemacht

Jochen

und irgendwann

Jochen

hat er halt dann gemerkt,

Jochen

sozusagen, oh, das war ein bisschen knifflig oder so,

Jochen

hat sich dann aber auch gelöst und dann

Jochen

hat er irgendwie weiter gelesen und dann schließt er so, ja, das sind ungelöste

Jochen

Probleme, da gab es da noch keiner irgendwas.

Jochen

So, oh, jetzt nicht mehr.

Jochen

Aber ja.

Johannes

Ja, das ist doch die Feinmann-Problemlösungsmethode.

Johannes

Kennt ihr die?

Johannes

Die hat drei Schritte.

Johannes

Erster Schritt Problem hinschreiben.

Johannes

Zweiter Schritt nachdenken.

Johannes

Dritter Schritt Lösung hinschreiben.

Johannes

Ja.

Johannes

Und da gibt es dann auch die angewandte Feinmannsche Problemlösungsmethode.

Johannes

Die heißt auch manchmal die studentische Problemlösungsmethode.

Johannes

Hat auch drei Schritte.

Johannes

Erster Schritt ist Problem hinschreiben.

Johannes

zweiter Schritt ist ganz, ganz

Johannes

arg drüber nachdenken, dritter Schritt ist

Johannes

heulen.

Jochen

Das passiert auch häufiger als man sich das

Jochen

wünscht. Ja, ich zähle mir da,

Jochen

zähle mich da eher zu dir.

Jochen

Ja, aber tatsächlich, wenn ich so überlege, was habe ich denn noch

Jochen

so an Dingen mal gebraucht, was so irgendwie, wo ich

Jochen

nicht von Anfang an wusste, zum Beispiel auch

Jochen

nett, genau, wir haben versucht,

Jochen

das klingt eigentlich total banal,

Jochen

es war es aber irgendwie nicht, ich weiß gar nicht mehr genau,

Jochen

warum das eigentlich nicht so banal war, aber wenn man

Jochen

jetzt so den Status von so einem Online-Shop hat,

Jochen

dann kann

Jochen

er ja irgendwie

Jochen

zwar entweder

Jochen

online sein oder offline, wenn man jetzt

Jochen

so einen Meta-Shop hat quasi,

Jochen

nach draußen hin. Also entweder man kann da

Jochen

irgendwie Dinge kaufen oder draufklicken oder so

Jochen

oder halt eben nicht.

Jochen

Aber der Grund

Jochen

dafür kann halt

Jochen

aus ganz vielen unterschiedlichen Dingen

Jochen

bestehen.

Jochen

Also

Jochen

Also, wie zum Beispiel, naja, ein Shop kann deswegen offline sein, weil er ist halt über irgendein Budget gelaufen und möchte halt nicht mehr Geld ausgeben, deswegen kriegt er keine Klicks mehr.

Jochen

Oder er ist irgendwie, keine Ahnung, man ist mit jemandem in einer Rechtsstreitigkeit verwickelt und ist vor Gericht.

Jochen

Oder, weiß ich nicht, die Daten sind irgendwie kaputt.

Jochen

Also sagen wir mal so, das Problem ist, im Verlauf der Zeit entdeckt man halt auch immer mehr Möglichkeiten, warum man jetzt gerade nicht will, dass er online ist. Aber im Endeffekt muss er entweder online sein oder nicht. Aber es gibt halt dann so Zustände, aus denen will man nicht wieder zurück. Und manche Zustände, da will man aber wieder zurück. Also wenn der Monat dann anfängt, dann wechselt man wieder in den Zustand, wenn das Budget der Grund war, ah, okay, ist jetzt wieder online. Aber wenn dann irgendwie, keine Ahnung, eben vor Gericht, dann will man nicht wieder in den Online-Zustand zurückwechseln, sonst hat man ein zweites Gerichtsverfahren, das ist ja auch doof.

Jochen

Und das wird komplizierter, als man sich das so vorstellt. Und wir hatten das halt zuerst in Code alles und das hat nicht gut funktioniert. Diesen Code zu pflegen war blöd, weil immer wieder sind so Dinge passiert dann, nachdem dieser Code geändert wurde, die man vorher nicht abgesehen hatte.

Jochen

gerade dann immer so, weil dann passieren Dinge dann

Jochen

am Monatswechsel oder bei irgendeiner Rechnungsstellung

Jochen

oder so, die man vielleicht

Jochen

dann nicht so, also auch Dinge, die halt einfach blöd

Jochen

zu testen sind. Und dann hat

Jochen

man immer so, okay, vor einem halben Monat hat jemand

Jochen

was geändert, okay, und dann ist es bei der Rechnungsstellung

Jochen

ganz auf furchtbare Art schiefgelaufen.

Jochen

Und

Jochen

da habe ich gesagt, okay, wir können das

Jochen

eigentlich nicht so, dieser Code, der wurde

Jochen

auch immer komplizierter, dass das geht so nicht.

Jochen

Das überblickt auch keiner mehr.

Jochen

Lass uns das doch irgendwie formalisieren

Jochen

und irgendwie da so einen endlichen Automaten

Jochen

oder so draus bauen. Das ist uns aber nie gelungen

Jochen

oder nicht so richtig.

Jochen

Als nicht-deterministischen Automaten

Jochen

konnten wir uns irgendwie hinschreiben, aber als

Jochen

deterministischen nicht.

Jochen

Es kann auch nicht sein, dass das so schwierig ist.

Jochen

Ja, und dann tatsächlich irgendwie...

Jochen

Aber du kannst auch jeden

Jochen

nicht-deterministischen Automaten als einen

Jochen

deterministischen Automaten mit zwei hohen Zuständen modellieren.

Jochen

Ja, du weißt es einfach so direkt.

Jochen

Und zwar ist das nicht so sofort klar,

Jochen

aber ja, auf die Lösung sind wir dann auch gekommen.

Jochen

Du brauchst dann halt einfach einen Potenzmengen-Automaten

Jochen

und dann geht es. Genau. Ja, genau.

Jochen

Ja, aber das ist doch der große,

Jochen

der große, das ist doch das

Jochen

darunterliegende Problem für

Jochen

P gleich NP.

Jochen

Wenn du diese

Johannes

Abbildung gibst, also jeden nicht deterministischen

Johannes

endlichen

Johannes

Automaten kannst du als deterministischen

Johannes

endlichen Automaten mit 2 hoch N

Johannes

Zuständen machen.

Johannes

Und ja,

Johannes

dass die Konsequenz

Johannes

davon ist, ist die Frage P gleich

Johannes

NP oder nicht. Ja, so weit

Jochen

sind wir dann, das zu lösen, soweit sind wir dann

Jochen

nicht gekommen. Da waren dann halt die acht Stunden

Jochen

frei und dann mussten wir dann leider nach Hause gehen.

Jochen

Du musst jetzt trotzdem nochmal einen ganz, ganz kleinen

Dominik

Einführungstext dazu verfassen, was denn P mal NP

Dominik

ist, für unsere Hörer, die da nicht ganz so tief in der

Dominik

...

Dominik

Ja, wir hatten ja vorhin schon

Dominik

die kurz angerissenen

Johannes

Algorithmenlaufzeiten mit Groß-O-Notationen

Johannes

wissen. Ja, also wie

Dominik

schnell ein Algorithmus sich entwickelt,

Dominik

wenn man ihn mehrmals macht, oder?

Dominik

Nee, genau, wie schnell sich

Dominik

ein Algorithmus, wie schnell die

Johannes

die Laufzeit sich entwickelt, wenn sich die Problemgröße

Johannes

verändert. Also wenn ich zum Beispiel

Johannes

irgendwelche

Johannes

Berechnungen mache, dann ist die Problemgröße

Johannes

üblicherweise die Größe der Zahl.

Johannes

Also wenn ich jetzt zum Beispiel den

Johannes

größten Primfaktor

Johannes

finden möchte von einer Zahl, dann

Johannes

kann ich das für die Zahl 10

Johannes

noch sehr schnell machen.

Johannes

Für die Zahl 100 wird es dann schon etwas langsamer

Johannes

und für die Zahl 1000 wird es dann noch langsamer und für die

Johannes

Zahl 10 hoch 20 wird es dann halt noch deutlich

Johannes

langsamer.

Johannes

Und die Frage ist, wie viel langsamer wird es denn, wenn die Zahl größer wird?

Johannes

Und weil das von Mathematikern erfunden worden ist, sind alle endlichen Zahlen hier direkt egal.

Johannes

Sondern es geht nur um, wie verhält sich das denn, wenn wir in Richtung unendlich gehen.

Johannes

Das ist genau das Problem bei den galaktischen Algorithmen.

Johannes

Den Mathematikern sind die absolut recht.

Johannes

Dass man die nicht in der Praxis einsetzen

Johannes

kann, ist uns Mathematikern

Johannes

einfach egal, weil

Johannes

da geht es nur um die Korrektheit.

Johannes

Also im Wesentlichen ist es die Frage,

Johannes

wenn ich die Problemgröße

Johannes

verdoppele, wie verändert

Johannes

sich dann meine Laufzeit?

Johannes

Wenn ich jetzt zum Beispiel einen Algorithmus habe, der O

Johannes

von N ist,

Johannes

dann heißt es linear. Das heißt, wenn ich meine

Johannes

Probleme verdoppele,

Johannes

dann verdoppelt sich auch die Zeit, die ich

Johannes

brauche, um das Ergebnis zu brechen.

Johannes

Das ist gut. Das ist

Johannes

leicht planbar. Das ist absehbar.

Johannes

Ich weiß, ich habe jetzt einen Computer, der

Johannes

kann Probleme lösen mit tausend

Johannes

Stellen und nächstes Jahr habe ich einen, der ist

Johannes

doppelt so schnell, kann ich ein Problem lösen,

Johannes

das 2000 Stellen hat. Das ist

Johannes

leicht zu planen.

Johannes

Und schon ein bisschen schlechter ist O von n².

Johannes

Das heißt,

Johannes

wenn ich die Problemgröße verdoppele,

Johannes

dann vervierfacht sich

Johannes

die Laufzeit des Problems.

Johannes

Und das ist

Johannes

schon mal schlechter, weil dann heißt es halt,

Johannes

dass ich mit einem doppelt so schnellen Computer

Johannes

nicht doppelt so große Probleme lösen kann.

Johannes

Also dann brauche ich einen viermal so schnellen Computer.

Johannes

Brute Force von Spielgaben.

Johannes

Genau.

Johannes

Und entsprechend gibt es dann natürlich auch N hoch 3

Johannes

und N hoch 4 und N hoch 5.

Johannes

Und diese ganzen Dinge heißen alle Polynome.

Johannes

Die sind alle polynomiell.

Johannes

Weil die im Wesentlichen handhabbar sind.

Johannes

Die wachsen nicht ungeheuer schnell.

Johannes

Ein Polynom mit N hoch 100 wächst auch ungeheuer schnell.

Johannes

Aber ist okay.

Johannes

Das ist sozusagen das, was man als Mathematiker akzeptiert.

Johannes

Polynomielles Wachstum.

Johannes

Jetzt gibt es so eine Grenze oder so einen Schnitt, wo es Funktionen gibt, die wachsen schneller als jedes Polynom.

Johannes

Und das sind die exponentiellen Funktionen, also 2 hoch n.

Johannes

Das heißt, wenn ich mein Problem verdoppele, dann wächst die Laufzeit mehr, als jedes Polynom wachsen kann.

Johannes

Also größer als N hoch 100, größer als N hoch 1000, sondern 2 hoch N und das hängt eben davon ab, wie groß N ist, wie schnell dieses Wachstum ist, weil das Wachstum nämlich auch immer schneller wird. Das ist eben eine der Kerneigenschaften der Exponentialfunktion, dass das Wachstum genauso schnell ansteigt wie die Funktion selbst.

Johannes

Das in zwei Minuten in einem Podcast zu erzählen ist schwierig.

Johannes

Das funktioniert aber gut.

Johannes

Ihr müsst es jetzt einfach mal hinnehmen.

Johannes

Ja, ja.

Johannes

Ihr müsst es jetzt einfach mal hinnehmen.

Johannes

Das ist schlechter als jedes Polynom.

Johannes

Und jetzt ist es so, man hat Algorithmen gefunden für Probleme,

Johannes

die sich in polynomierter Laufzeit lösen lassen.

Johannes

Zum Beispiel Primfaktorberechnung.

Johannes

Wobei das schon so eine Sache ist, die hart umstritten ist,

Johannes

ob das jetzt deterministisch oder ob man das erlauben möchte oder nicht.

Johannes

Es gibt viele Algorithmen, die sind in polynomialer Laufzeit machbar.

Johannes

Sachen, die man berechnen kann.

Johannes

Pfadberechnungen, Volltextsuche prinzipiell.

Johannes

Solche Sachen sind alle in polynomialer Laufzeit berechenbar.

Johannes

Es gibt aber auch eine Sorte Probleme,

Johannes

für die hat man keinen polynomialen Algorithmus gefunden,

Johannes

sondern eben nur solche, die in exponentieller Laufzeit funktionieren,

Johannes

wo man im Wesentlichen alle Kombinationen ausprobieren muss.

Johannes

Ein solches Problem ist, das ist sehr anschaulich, finde ich, das ist das Tetris-Problem oder auch das Knapsack-Problem, wo ich ein,

Johannes

eine menge an zahlen gegeben habe eine menge an größen und ich habe eine

Johannes

zielgröße gegeben und die frage ist kann ich aus denen mir gegebenen bausteinen

Johannes

eine summe bilden die genau das ziel erreicht und die einzige möglichkeit die

Johannes

es da gibt im wesentlichen ist einfach alle kombinationen auszuprobieren und

Johannes

das sind halt nun mal zwei hochenden kombinationen weil ich kann eben in der

Johannes

Summe jede Zahl entweder aufführen oder nicht

Johannes

aufführen. Das heißt, ich habe

Johannes

n Bits,

Johannes

die ich

Johannes

setzen kann. Ich muss die Menge aller

Jochen

Teilmengen sozusagen ausprobieren.

Jochen

Genau, die Menge aller Teilmengen, also

Johannes

die Menge aller möglichen Summen, die ich bilden

Johannes

kann mit den Zahlen, die mir gegeben sind.

Johannes

Das entspricht genau der Menge aller Teilmengen und das

Johannes

entspricht genau der Menge aller möglichen Zahlen, die

Johannes

ich mit n Bits bilden kann und das sind genau

Johannes

zwei hoch n. Und das ist der beste Algorithmus,

Johannes

den es gibt. Also es gibt da so

Johannes

probabilistische Sachen.

Johannes

Und es gibt Techniken, wo du es eben auf n hoch 1,36 hoch n runterziehen kannst.

Johannes

Und es ist nicht mehr 2 hoch n und das ist beeindruckend.

Johannes

Und das ist unglaublich, aber es ist immer noch exponentiell.

Johannes

Jetzt ist die Frage, gibt es für diese Probleme auch polynomielle Algorithmen?

Johannes

Gibt es auch für diese Probleme Algorithmen, die in polynomieller Laufzeit das Ergebnis liefern?

Johannes

Und die Antwort darauf ist unklar, die ist unbekannt.

Johannes

Und das ist genau die Frage, ja, ist p gleich np?

Johannes

Jetzt ist es so, da kommt noch dazu, diese Probleme, die man gefunden hat, die nennt man np, ja, nicht deterministisch-polynomial.

Johannes

Das sind alle solche, die in exponentieller Laufzeit laufen.

Johannes

Und lustigerweise sind die alle irgendwie äquivalent.

Johannes

Also man kann die alle so ineinander umformen, dass alle das gleiche sind.

Johannes

Das heißt, wenn ich einen Algorithmus

Johannes

für eins von diesen Problemen finde,

Johannes

der in polynomieller Laufzeit läuft,

Johannes

dann habe ich automatisch auch für alle anderen

Johannes

einen Algorithmus gefunden,

Johannes

der auch in polynomieller Laufzeit läuft.

Johannes

Und das ist das Verrückte daran.

Johannes

Diese ganze Klasse an Problemen

Johannes

sind alle irgendwie mehr oder weniger äquivalent.

Johannes

Aber man weiß nicht,

Johannes

einen einzigen in polynomieller Laufzeit zu lösen.

Johannes

Und das ist die Frage.

Johannes

Gibt es einen solchen Algorithmus?

Johannes

Gibt es so einen polynomiellen Algorithmus für irgendeins dieser Probleme oder gibt es diesen Algorithmus nicht?

Johannes

Das heißt, gibt es die zwei unterschiedlichen Mengen?

Johannes

Es gibt Probleme, die polynomiell lösbar sind und Probleme, die nicht polynomiell lösbar sind.

Johannes

Oder sind das alles die gleichen?

Johannes

Sind es nur solche, gibt es nur solche, die polynomiell lösbar sind?

Johannes

Und das ist die ungeklärte Frage, ist p gleich mp?

Johannes

Wenn man dieses Problem löst, kriegt man direkt eine Million Dollar überwiesen, weil da gibt es einen Clay Price dafür,

Johannes

Mathematik, ja, so ein

Johannes

Mathematikpreis, der da ausgeschrieben ist,

Johannes

ist mit einer Million Dollar dotiert

Johannes

und ich glaube auch

Johannes

eine Fields-Medaille und eine Turing-Medaille und alle

Johannes

anderen Medaillen, die es so gibt in dem Feld, wären

Jochen

relativ schnell sicher. Also ich meine, wenn es

Jochen

irgendwie sowas

Jochen

gäbe wie das wichtigste Problem in der Informatik,

Jochen

dann wäre das auf jeden Fall ein Kandidat dafür oder

Jochen

das wichtigste ungelöste Problem.

Jochen

Ja, also das kann

Jochen

ja, ja, ja, also diese

Jochen

Komplexitätstheorie ist halt schon so, also ich meine, es gibt

Jochen

dann noch, also ich glaube, also der Grundform,

Jochen

was jetzt NP heißt, also

Jochen

ist nicht deterministisch

Jochen

polynomial, weil du kannst halt

Jochen

mit einer nicht deterministischen

Jochen

Turing-Maschine

Jochen

in Polynomialzeit überprüfen,

Jochen

also kannst du das halt bestimmen.

Jochen

Und du kannst halt mit einer deterministischen Turing-Maschine

Jochen

in Polynomialzeit überprüfen,

Jochen

ob die Lösung richtig war oder nicht.

Jochen

Sozusagen, das ist halt irgendwie

Jochen

die Namensgeschichte. Aber es gibt

Jochen

auch noch bösere, also es gibt jetzt

Jochen

von den Komplexitätsklassen, es gibt halt

Jochen

NPH, dann gibt es NP-vollständig und dann

Jochen

gibt es auch noch, genau, X-Time

Jochen

drumherum und P-Space und weißer Teil.

Johannes

Ja, da gibt es noch ganz viele und diese ganzen Space-Klassen gibt es ja

Johannes

auch alle noch, P-Space und N-Pace.

Johannes

Da gibt es

Johannes

eine ganz große Hierarchie davon, aber das sind die

Johannes

einzigen, die so richtig bekannt sind.

Johannes

Ja, und

Johannes

es ist halt eben so,

Johannes

jeder nicht deterministisch

Johannes

polynomielle Turing-Maschine kannst du trivialerweise

Johannes

in eine deterministische

Johannes

Turing-Maschine überführen, die halt

Johannes

aber zwei Hoch-N-Zustände hat.

Johannes

die dann entsprechend

Johannes

länger braucht.

Johannes

Das heißt, die hat keine polynomiale Laufzeit mehr.

Johannes

Und das ist die Krux

Johannes

an der Sache.

Dominik

Und jetzt vielleicht noch ganz, ich weiß nicht,

Dominik

das ist bestimmt wieder nur ein Satz,

Dominik

der Unterschied zwischen der nicht-deterministischen

Dominik

und der deterministischen Turing-Maschine.

Dominik

Oh, Jochen,

Dominik

das darfst du mal erklären. Das ist schwer zu erklären.

Dominik

Naja, sagen wir mal so,

Jochen

das eine ist halt etwas, was wir bauen können,

Jochen

das andere irgendwie nicht so richtig.

Jochen

Also sozusagen,

Jochen

Nein, es ist so, ich versuche es mal zu erklären.

Johannes

Eine Turing-Maschine ist ja so ein Automat, der hat eine gewisse Anzahl Zustände und in jedem Zustand macht er bestimmte Dinge.

Johannes

Und in einer deterministischen Turing-Maschine nimmst du immer einen Übergang.

Johannes

Du gehst immer von einem Zustand in einen anderen Zustand.

Johannes

Weil das ist, was wir bauen können, wie der Jochen gesagt hat.

Johannes

Wenn der Zustand jetzt A ist und dann sind die Bedingungen gegeben,

Johannes

dann gehe ich als nächstes in den Zustand B.

Johannes

So, easy.

Johannes

In einer nicht deterministischen Turing-Maschine legst du dich nicht fest.

Johannes

Du sagst, wir gehen jetzt von dem Zustand A in alle möglichen anderen Zustände

Johannes

und erst wenn wir zu einem Ergebnis kommen,

Johannes

sage ich dir, in welchen Zustand ich wirklich gegangen bin.

Johannes

Das heißt, da erklärt sich auch schon so ein bisschen,

Johannes

warum es einfach ist, das

Johannes

in einer exponentiellen Laufzeit zu machen,

Johannes

weil du halt quasi in einem Zeitschritt

Johannes

in alle anderen möglichen Zustände

Johannes

übergehst, in die du übergehen kannst.

Johannes

Und das ist halt

Johannes

nicht zu bauen, das kannst du nicht bauen. Du sagst

Johannes

sozusagen erst am Ende, welchen Weg

Johannes

du durch die Zustände genommen hast.

Johannes

Ja,

Jochen

wobei, also ich meine, was ja

Jochen

so ein bisschen in die Richtung geht, wäre dann ja,

Jochen

also ist nicht das Gleiche, also Quantencomputer

Jochen

sind keine nicht deterministe Turing-Maschine,

Jochen

Aber so ein bisschen, was geht dann

Jochen

in die Richtung? Und jetzt bewege ich mich natürlich

Jochen

weit außerhalb von dem, wo ich mich normalerweise

Jochen

beschäftige, aber es gibt halt eine Klasse

Jochen

von Problemen, die halt

Jochen

durch den Quantencomputer halt

Jochen

in polynomial Zeit lösbar sind,

Jochen

werden, die das halt normalerweise nicht sind.

Jochen

Dazu gehört sowas wie

Jochen

Graphenisometrie,

Jochen

Primzahlfaktorisierung,

Jochen

das ist ein wichtiges, also das ist halt

Jochen

blöd, wenn das Quantencomputer

Jochen

tatsächlich geben sollte. Das macht

Jochen

RSA kaputt und

Jochen

damit... Und für DSA gibt es, glaube ich,

Jochen

auch so einen. Ja, also

Jochen

das Shores-Algorithmus heißt das Ding

Jochen

irgendwie, das macht auf dem Quantencomputer das Ding halt

Jochen

in Polynominalzeit nieder

Jochen

und das

Jochen

ja, das ist auch

Jochen

schon implementiert worden, also wenn es einen

Jochen

mit genügend Qubits gibt, dann haben wir ein Problem.

Jochen

Es sei denn, wir haben

Jochen

auf Post-Quantum-Kyptografie gesetzt

Jochen

oder so, was aber keiner macht, weil

Jochen

das kann aber gar nicht passieren. Naja, mal sehen.

Jochen

Ja, ist aber tatsächlich vor ein paar

Jochen

Monaten, Schrägstrich Jahren, hat

Jochen

die NIST auf einmal sehr und

Jochen

auch die NSA auf einmal

Johannes

sehr plötzlich ihre Empfehlungen

Johannes

geändert, ohne zu begründen, warum.

Johannes

Also es gibt schon so Hinweise, dass

Johannes

man dringend auf Postquanten

Johannes

Algorithmen wechseln sollte.

Johannes

Ja, jedenfalls die

Johannes

50 bis 100 Jahren, wissen wir das

Johannes

dann auch, ob die mehr wussten als wir.

Jochen

Also diese Komplexitätsklasse

Jochen

wird glaube ich dann MPI genannt,

Jochen

so MP Intermediate oder so und da sind halt so ein paar

Jochen

Dinger drin. Leider, ja, es waren halt auch so ein paar

Jochen

wichtige. Ja.

Jochen

Aber tatsächlich ist es immer noch,

Jochen

also, ach genau, und diese Klasse gibt es überhaupt nur dann,

Jochen

wenn P ungleich ein P gilt.

Jochen

Wenn P gleich ein P gilt, ist das natürlich sowieso Quatsch.

Jochen

Aber, ja, dann ist es vorbei.

Jochen

Aber ich meine so wirklich, ehrlich gesagt, so realistisch

Jochen

kann man das nicht so richtig annehmen, weil

Jochen

also, das hätte auch schon jemand

Jochen

rausgekriegt, wenn das wirklich wäre, ne? Also,

Johannes

ja. Ja, aber guck mal, wenn das so eine

Johannes

krasse galaktische Sache ist, wo du halt

Johannes

so Konstanten brauchst, die 10 hoch 40

Johannes

groß sind und ein Lookup-Table,

Johannes

der 10 hoch 100 Einträge

Johannes

hat, dann

Johannes

finden wir diesen Algorithmus

Johannes

nicht, weil da sind unsere Gehirne einfach nicht groß genug

Johannes

dafür.

Johannes

Ja, kann schon sein.

Johannes

Da wäre dann ein Beweis halt besser.

Johannes

Und als Mathematiker muss ich sagen, ein Beweis ist immer besser.

Johannes

Ja.

Johannes

Es ist ja nicht nur so,

Johannes

man kriegt ja die Million Dollar nicht, wenn man

Johannes

diesen Algorithmus findet. Man kriegt ja die Million Dollar auch,

Johannes

wenn du beweist, dass es diesen Algorithmus nicht gibt.

Johannes

Also wenn du P ungleich NP beweisen kannst.

Johannes

Nur ist bisher auch niemandem gelungen.

Johannes

Nee, also es ist auch

Jochen

nicht so, dass es nicht versucht worden wäre.

Jochen

Es haben schon diverse Leute sich an dem Ding

Jochen

die Zähne ausgelegt.

Jochen

Ab und zu gucke ich da mal rein und denke so,

Jochen

oh, interessanter Blogartikel. Und dann denke ich mir

Jochen

noch so den ersten, zweiten Absatz, ah, ganz interessant.

Jochen

Dann denke ich mir so, oh, das wird aber jetzt von einer

Jochen

Notation schon ein bisschen wild. Und dann irgendwann

Jochen

denke ich mir so... Und dann klickst du mal auf

Jochen

Später lesen.

Jochen

Dann fangen die Leute an, davon zu reden, so, ah ja, gut,

Jochen

okay, mit normaler Mathematik haben wir jetzt hier, jetzt müssen wir

Jochen

eine neue Mathematik irgendwie brauchen wir, um

Jochen

dabei, okay, später lesen.

Jochen

Das ist okay.

Jochen

Keine Schlafflektüre ordnen.

Jochen

Ja, als ich

Jochen

habe ja Mathematik studiert und ich hatte da auch einmal

Jochen

eine sehr, oh, das ist jetzt auch wieder eine

Jochen

Überleitung zu Win und Fail.

Johannes

Ich hatte eine sehr lange Unterhaltung mit jemandem,

Johannes

dem es nicht

Johannes

einleuchtend war, dass es nicht

Johannes

Existenzbeweise gibt und dass

Johannes

er mich unbedingt davon überzeugen wollte,

Johannes

dass es die universelle

Johannes

Mathematik gibt und dass es eine Lösung für jedes Problem

Johannes

gibt und

Johannes

dass ich das doch als Wissenschaftler auch untersuchen

Johannes

müsste und

Johannes

mein Bürogenosse, der

Johannes

derweil echte Arbeit gemacht hat

Johannes

und nicht nur mit Verrückten sich unterhalten hat,

Johannes

hat immer mehr gekichert

Johannes

im Hintergrund und

Johannes

diese Diskussion hat sich etwas länger hingezogen

Johannes

als notwendig.

Dominik

Aber hat er dann logarithmische Komplexität oder nicht?

Johannes

Es gibt auch, es gibt Probleme mit logarithmischer Komplexität, aber das, es gibt auch Probleme mit konstanter Komplexität, auch das ist sehr überraschend für viele Leute, dass zum Beispiel Dictionaries O von 1 sind bei den wichtigen Operationen.

Johannes

Auch das überrascht Leute manchmal, wenn man das denen beibringt, dass man sagt, okay, das Einfügen in ein Dictionary dauert immer konstant lang, egal wie groß das Dictionary ist.

Johannes

Und auch das Raussuchen eines Keys dauert immer gleich lang, egal wie groß das Dictionary ist, bis auf ein paar Unwägbarkeiten selbstverständlich und auch bis auf die Endlichkeit unserer endlichen Computer.

Johannes

Aber im Wesentlichen dauert das immer gleich lange.

Johannes

Und das ist ja schon was Überraschendes,

Johannes

dass das Einfügen eines Wertes in den Dictionary

Johannes

mit einem Schlüssel dauert im Wesentlichen genauso lange

Johannes

wie das Einfügen in den Dictionary

Johannes

mit einem Milliardenschlüssel oder zehn Milliardenschlüssel.

Johannes

Ist schon eine überraschende Sache,

Johannes

dass es sowas gibt

Johannes

und dass es sowas trivial für uns zugänglich gibt.

Dominik

Aber du wolltest auf die Historik hinaus,

Dominik

in der du mit jemandem über die Nichtbeweisbarkeit ...

Johannes

Ja, das ist im Wesentlichen die Story,

Johannes

dass halt jemand versucht hat, mich davon zu überzeugen,

Johannes

dass es die universelle Mathematik gibt.

Johannes

Er hat dann auch irgendwann angefangen,

Johannes

von seinen Erfahrungen in Indien zu sprechen,

Johannes

wo er Einblick in das Universum bekommen hatte,

Johannes

was mich natürlich in unserem 70er-Jahre-Betonbau

Johannes

im Tübinger Institut für Mathematik relativ wenig beeindruckt hat.

Johannes

ja, es gibt so Leute, die glauben,

Jochen

das war irgendwie, keine Ahnung,

Jochen

Ramanujan 2 oder so und du hast

Jochen

ihn weggeschickt. Meine Güte.

Jochen

Ja, das war neue Mathematik und ich habe sie halt

Jochen

verschmäht.

Jochen

Man muss ja auch dazu sagen,

Jochen

Vermaas-Theorem

Jochen

war ja 400 Jahre lang ungelöst

Johannes

und das ist wesentlich leichter zu beschreiben

Johannes

als P gleich NP.

Johannes

Vielleicht ist da einfach noch nicht genügend

Johannes

Zeit reingeflossen. Vielleicht ist die Mathematik,

Johannes

die wir jetzt haben, einfach wirklich nicht ausreichend.

Johannes

um diesen Nicht-Existenzbeweis

Johannes

zu führen. Und irgendwann kommt so was

Johannes

ganz Verrücktes um die Ecke, wie Andrew Wiles,

Johannes

der ja

Johannes

Sachen bewiesen hat, die überhaupt gar nichts damit

Johannes

zu tun haben.

Dominik

Der Insider war ein bisschen zu weit

Dominik

weg für den Podcast, der musste jetzt wieder

Dominik

herauskommen.

Johannes

Ja, Andrew Wiles ist derjenige, der den

Johannes

Satz von Fermat bewiesen hat.

Johannes

Das Theorem von Fermat.

Johannes

Aber er hat es nicht auf direktem Wege bewiesen, sondern er hat ein ganz anderes Theorem aus einem ganz anderen Bereich der Mathematik bewiesen, wo man allerdings vorher schon wusste, dass es äquivalent ist zum Theorem von Fermat oder dass es das Theorem von Fermat als Teilergebnis enthält, um es mal so zu sagen.

Dominik

Der erste Eintrag auf Google sagt dazu, dass er durch seinen Beweis der Taniyama-Shimura-Vermutung berühmt wurde.

Dominik

Genau richtig.

Dominik

Ach so, ja, genau, okay.

Johannes

Ja, und die enthält eben Vermaas letztes Theorem als Teilmenge, mehr oder weniger. Also er hat mehr bewiesen als Vermaas letztes Theorem, aber dafür ist er bekannt. Dafür gibt es auch einen Film über ihn und wird uns allen lange im Gedächtnis bleiben dafür.

Johannes

Und genauso wird es halt auch sein bei p gleich np, dass sich die Mathematik irgendwo hinmeandert und irgendwann sagt einer halt, oh, Moment mal, wenn ich da richtig rum drauf schaue, dann sieht man, dass es einen solchen Algorithmus nicht geben kann und zack, in 300 Jahren halt.

Johannes

Tja.

Johannes

Da sind wir vielleicht nicht mehr am Leben.

Johannes

Tja.

Johannes

Je nachdem, wann wir geimpft werden. War das nicht ein schöner Bogen?

Johannes

Ja, jetzt haben wir ganz viel über Fails gesprochen, gibt es denn auch irgendwas, wo ihr so richtig sagen würdet, das hat funktioniert bei euch in Projekten, weil das ist ja was, was schöner ist und was leider nicht so häufig.

Jochen

Also oft, das hatte ich mir auch schon aufgeschrieben,

Jochen

also Dicts, so Hashes, diese Art Datenstruktur ist etwas,

Jochen

was man einfach ständig braucht.

Jochen

Und das ist total super.

Jochen

Also wenn man nur Dicts hat, nur Listen und nur Skalare,

Jochen

da kommt man damit schon sehr, sehr weit.

Jochen

Also wenn man das richtig, also wenn man das wirklich verstanden hat

Jochen

und richtig verwendet, dann ist man da schon,

Jochen

also dann ist man schon auf einem echt guten Weg,

Jochen

weil das meiste kriegst du damit halt schon klein.

Johannes

Und das summiert auch ganz viele so Techniken,

Johannes

die man sich im Informatikstudium ganz schwer erarbeiten muss

Johannes

mit Bäumen und mit Balancieren und mit Binärsuche und so Zeugs.

Johannes

Das geht da alles weg, weil das einfach jetzt schon drin ist, fertig.

Jochen

Ja, und das ist halt total nett.

Jochen

Also das würde ich sagen, ist ein großer Win.

Jochen

Ich meine, bei diversen unterschiedlichen Programmiersprachen

Jochen

ist das halt sozusagen das Basiskonzept, das eingebaut zu haben

Jochen

und dann damit schnell zum Ziel zu kommen.

Jochen

Das ist bei PHP so, das ist bei

Jochen

Perl so, Ruby und Rails

Jochen

eben Python. Ich bin dann halt bei Python

Jochen

hängen geblieben. Ich würde sagen,

Jochen

Ruby und Rails ist auch eine gültige

Jochen

Programmiersprachenlösung, wo man hängenbleiben kann.

Jochen

Das ist auch ein Win.

Jochen

Vielleicht auch Perl 6,

Jochen

das habe ich mir dann nicht mehr angeguckt, keine Ahnung.

Jochen

Gibt es das schon? Ist das schon raus?

Jochen

Das ist schon raus, tatsächlich, ja.

Jochen

Das ist ja verrückt.

Jochen

Aber genau,

Jochen

also, ja,

Jochen

das ist toll, dass es den allen

Jochen

gemeinsam und das funktioniert wirklich gut.

Jochen

Hast du auch konkrete Kriegsgeschichten,

Johannes

Jörn? Also ich meine, wir haben alle konkrete Geschichten, wie wir

Johannes

schon mal eine Datenbank gelöscht haben und wir

Jochen

schon mal... Ein Win, ja,

Jochen

so Wins. So ein konkreter Win?

Jochen

Ja, doch, vielleicht auch

Jochen

Python tatsächlich.

Jochen

Ein wenig beachtetes

Jochen

Modul

Jochen

aus einem total uninteressanten Spiralarm

Jochen

der Standardbibliothek,

Jochen

über das ich mal gestolpert bin,

Jochen

hat irgendwie unerwartete Vorteile

Jochen

gehabt. Und zwar

Jochen

das Array-Modul. Ich weiß nicht, ob euch das

Jochen

was sagt.

Jochen

Da habe ich tatsächlich heute drüber

Jochen

nachgedacht, ob das überhaupt was ist, was man

Jochen

je braucht. Ja,

Jochen

denkt man eigentlich, so braucht man nicht unbedingt. Aber

Jochen

tatsächlich, ich habe es mal

Jochen

verwendet und das war ein ziemlicher,

Jochen

oder ich fand, das war ein Win.

Jochen

Und zwar

Jochen

hatte ich das Problem, irgendwie,

Jochen

ich mache ja schon lange auch so Text-

Jochen

Klassifikationsgeschichten und so Maschinen-Learning

Jochen

mit Texten. Ganz am Anfang

Jochen

gab es da noch keine Bibliotheken, da haben wir das alles selber

Jochen

gemacht und irgendwie unsere

Jochen

früher, ja, irgendwie

Jochen

ohne Spur, bergauf

Jochen

durch den Schnee, genau.

Jochen

Aber inzwischen gibt es da ja

Jochen

Cycled Learn und

Jochen

das habe ich auch

Jochen

verwendet, das habe ich vor allen Dingen so Kegel-Competitions

Jochen

verwendet, also das

Jochen

so Maschinen-Learning-Wettbewerbs-Dinger

Jochen

und

Jochen

aber ich hatte halt nicht so viel Hauptspeicher.

Jochen

Und das Ding ist relativ verschwenderisch mit dem Hauptspeicher umgegangen, weil du zerlegst halt Texte. Was du eigentlich haben möchtest, sind Vektoren, die so einen Text beschreiben. Und zwar, wo du halt pro Wort eine Dimension hast und dann in der Dimension hast du halt ein Gewicht für dieses Wort stehen.

Jochen

das angibt, wie wichtig dieses Wort

Jochen

im Text ist und

Jochen

dafür musst du die ganzen Worte zählen und so

Jochen

und Scikit-Learn

Jochen

hat diese

Jochen

Zählgeschichten, also da heißt

Jochen

das Ding halt Count Vectorizer oder Vectorizer

Jochen

allgemein für diesen Text

Jochen

irgendwie in so einen

Jochen

Vektor verwandeln,

Jochen

hat da erst Listen draus gemacht

Jochen

und dann halt auch die ganzen Counts

Jochen

und so in Listen gehalten

Jochen

und Listen sind halt nicht so richtig

Johannes

Was ja prinzipiell nicht so blöd ist.

Jochen

prinzipiell nicht so blöd. Funktioniert das auch alles praktisch.

Jochen

Du musst ja halt nicht vorher überlegen, okay, wie lang ist denn jetzt

Jochen

mein Text? Sondern du kannst halt einfach,

Jochen

weil du fügst halt einfach in Listen ein, das geht.

Jochen

Der Nachteil dabei ist halt

Jochen

auch eine einfache Zahl

Jochen

wie so ein Count braucht halt irgendwie

Jochen

irgendwas um die, also ich weiß nicht,

Jochen

irgendwas 20 Byte,

Jochen

etwas über 20 Byte.

Jochen

Integer sind groß.

Jochen

Und das ist halt...

Jochen

Listen haben auch nochmal Overhead.

Jochen

Die haben nochmal ein bisschen Overhead, also

Jochen

es ist deutlich mehr, als du brauchen würdest,

Jochen

wenn du jetzt einfach nur den nackten Zahlenwert

Jochen

als 4-Byte-Integer oder so halt hättest.

Jochen

So 32-Bit oder 64-Bit, wie auch immer.

Jochen

Ja, und bei mir ist der Hauptspeicher

Jochen

tatsächlich bei so einer Competition ausgegangen.

Jochen

Und ich dachte mir so,

Jochen

ah, okay, kriege ich das irgendwie gedrückt?

Jochen

Und da bin ich dann halt

Jochen

über dieses Array-Modul gestolpert.

Jochen

Und ja, das hat tatsächlich funktioniert.

Jochen

Und zwar kann man ja einfach statt einer Liste so ein Array nehmen

Jochen

und dann braucht es tatsächlich nur noch so viel Speicher,

Jochen

wie halt das Integer, was man da speichert,

Jochen

halt einen Platz braucht.

Jochen

Und das ließ sich relativ problemlos austauschen

Jochen

und das hat halt irgendwie so den Speicherbedarf gedrittelt ungefähr.

Jochen

Und genau, ich habe damals halt,

Jochen

ich habe das, dass das geht,

Jochen

habe ich irgendwann halt in dieser

Jochen

Competition, in dieser, glaube ich,

Jochen

Predict Close Open Questions in

Jochen

Stack Overflow Competition, habe ich das

Jochen

irgendwie gesehen und dann habe ich irgendwann mal

Jochen

so ein Pull-Request rausgemacht, das war dann aber

Jochen

ein bisschen später, irgendwann 2015 oder so.

Jochen

Das ist auch tatsächlich durchgegangen und seitdem

Jochen

sind,

Jochen

braucht halt TF-EDF-Vectorizer

Jochen

und so, braucht halt nur noch ein Drittel Hauptspeicher.

Jochen

Und man kann halt damit größere, ja.

Jochen

Und das ist auch, das ist halt

Jochen

vor allen Dingen deswegen einfach so durchgegangen,

Jochen

weil man eben nichts installieren

Jochen

musste oder nichts Kompliziertes machen musste,

Jochen

sondern man konnte einfach das stinknormale

Jochen

Array-Modul

Jochen

aus der Standardbibliothek nehmen.

Jochen

Das ist einfach ein anderer Konstruktor, den du da aufgerufen hast.

Jochen

Ja, also der Code hat

Jochen

sich dann auch nochmal ein paar Schritte geändert, aber

Jochen

ja.

Jochen

Ja, aber das ist natürlich echt cool.

Johannes

Auch was echt für die Welt getan

Johannes

sozusagen.

Johannes

Ja gut, ich weiß nicht, ob das...

Johannes

Für den kleinen Teil der Welt, aber...

Jochen

Ja, es ist ein witziges, aber...

Johannes

Das kann man durchaus als Win.

Johannes

Das ist echt cool.

Johannes

Um das noch kurz nachzuführen,

Johannes

das Array-Modul ist einfach sozusagen

Johannes

gepackte Listen, also quasi

Johannes

C-Structures

Johannes

oder C-Arrays als

Johannes

Python-Bibliothek und sorgen

Johannes

halt dafür, dass man nicht genau diese Listen-

Johannes

Operationen hat, aber dafür hat man

Johannes

halt auch nicht den Listen-Overhead.

Johannes

Ja, es muss halt alles vom gleichen

Johannes

Typ sein, was da drin ist.

Johannes

Und die Größe muss bekannt sein.

Jochen

Ja, genau. Das heißt, man muss sich selber drum kümmern,

Jochen

dass man das irgendwie, also die vergrößern

Jochen

sich irgendwie selber, wobei man da muss aufpassen,

Jochen

dass die verdoppelt, glaube ich, den Platz

Jochen

irgendwie dann halt, wenn man das einfach so naiv macht.

Jochen

Man kann das aber auch selber einstellen und ich glaube,

Jochen

was da unten drunter liegt, also das,

Jochen

was die Leute dann immer, sie nennen das irgendwie dann

Jochen

Type Memory View oder so, ist halt

Jochen

einfach sozusagen ein Stück

Jochen

Hauptspeicher mit einem Typ dran.

Jochen

Ja. Ja, das ist witzig.

Jochen

Ich habe tatsächlich auch eine Geschichte,

Johannes

die ist aber sozusagen das Gegenteil von

Dominik

deiner Geschichte. Da musst du aber ganz kurz warten, weil

Dominik

da, glaube ich, ganz super passt zu dieser Frage,

Dominik

mit den Listen, die Frage mit den Dicks,

Dominik

weil wir hatten ja kurz darüber gesprochen,

Dominik

dass Dicks so schnell gehen und

Dominik

wenn Listen jetzt so cool sind über Array,

Dominik

wie gehen denn Dicks so schnell? Vielleicht

Dominik

da nochmal kurz, also das wird ja irgendwie implementiert,

Dominik

aber wie funktioniert denn das?

Dominik

Es gibt da ein Table

Dominik

über dieses Dickt und da guckt man einfach drin

Dominik

oder wie macht man das?

Dominik

Ja, da gibt es verschiedene

Dominik

Techniken, aber im Wesentlichen ist so ein

Dominik

Dictionary ja ein sogenannter

Dominik

Hashtable.

Dominik

Das gibt es eigentlich

Dominik

in den allermeisten Programmiersprachen, die heißen

Johannes

immer ein kleines bisschen anders. In Java zum Beispiel

Johannes

heißen sie HashMap.

Johannes

Der Trick ist sozusagen,

Johannes

dass man eine Liste,

Johannes

also man sieht,

Johannes

das Dictionary ist ja

Johannes

eine Zuordnung von einem

Johannes

Key-Wert zu einem Value-Wert.

Johannes

Also unter einem bestimmten Key

Johannes

habe ich irgendeinen Value eingespeichert.

Johannes

So das klassische Modell ist das Telefonbuch.

Johannes

Zum Key Dominic ist deine Telefonnummer

Johannes

eingespeichert und zum Key Jochen

Johannes

ist Jochens Telefonnummer eingespeichert

Johannes

und zum Key Johannes ist meine Telefonnummer

Johannes

eingespeichert.

Johannes

Das ist so das klassische Dictionary,

Johannes

ein Wörterbuch.

Johannes

Zu einem Wort auf Deutsch

Johannes

ist dazu gespeichert das Wort auf

Johannes

Englisch.

Johannes

Jeden

Johannes

Key-Eintrag kannst du halt nur

Johannes

einmal geben und das Value kann dann

Johannes

irgendwas sein. Das kann eine Liste von Wörtern sein

Johannes

oder kann irgendwas sein. Das spielt erstmal keine

Johannes

Rolle.

Johannes

Jetzt ist ja schon mal, diese Datenstruktur an sich

Johannes

ist ja schon mal schwierig zu visualisieren.

Johannes

Wie würde man sowas speichern?

Johannes

Die einfachste Liste, sowas zu speichern

Johannes

ist, dass man sich sozusagen

Johannes

diese Paare speichert, einfach als Abfolge

Johannes

von Paaren.

Johannes

Das erste, was ich mir gemerkt habe,

Johannes

Dominik ist deine Telefonnummer, also schreibe ich mir

Johannes

auf in meine Liste oben

Johannes

Dominik, Telefonnummer von Dominik

Johannes

1. Und dann

Johannes

kommt der Jochen und dann schreibe ich mir Jochens

Johannes

Namen in meine Liste und schreibe

Johannes

mir halt in meine Liste rein, Jochen,

Johannes

17. Telefonnummer von Jochen ist 17.

Johannes

Mist, habe ich jetzt deine Telefonnummer

Johannes

verraten?

Johannes

Und dann merke ich mir meine Telefonnummer

Johannes

auch noch. Das heißt, ich schreibe mir in meine Liste,

Johannes

in meine Abfolge von Werten einfach rein,

Johannes

Johannes, 42. Das ist meine Telefonnummer.

Johannes

Und das ist gut, weil das bedeutet,

Johannes

wenn ich eine neue Telefonnummer eintragen möchte,

Johannes

dann ist das ganz einfach. Ich muss nur mir dieses

Johannes

Paar merken und das als Ende meiner Liste schreiben.

Johannes

Und das ist leicht.

Johannes

Das Herausfinden eines Eintrags ist da aber langsam, weil ich muss von oben nach unten durchgehen.

Johannes

Wenn ich jetzt nach dem Eintrag für Johannes suche, muss ich mir den ersten Eintrag anschauen und sehen,

Johannes

ist das die Telefonnummer, ist das der Name, den ich suche?

Johannes

Da steht Dominik, also es ist nicht der Name.

Johannes

Dann schaue ich mir den zweiten Eintrag an und sage, ist das der Eintrag, den ich suche?

Johannes

Und da steht Jochen und es ist also nicht der Eintrag, den ich suche.

Johannes

Der dritte Eintrag, den ich suche, ist der Eintrag, wo Johannes mit meiner Telefonnummer dabei steht.

Johannes

Das heißt, in diesem Fall, wenn ich das so implementieren würde, diese Datenstruktur, dann wäre die Insertion, also das Einfügen eines Eintrags O von 1, weil es immer gleich lang dauert, einen hinten hinschreiben.

Johannes

Aber das Heraussuchen wäre O von N und das ist schlecht, weil üblicherweise möchte man mindestens genauso oft raussuchen, wie man reinschreibt.

Johannes

Normalerweise sucht man viel mehr raus, als man reinschreibt.

Johannes

Das heißt, wir wollen, dass auch das

Johannes

heraussuchen O von 1 ist oder

Johannes

zumindest schneller ist.

Johannes

Und jetzt wird was gehasht.

Johannes

Genau, und jetzt

Johannes

kommt die Magie dazu, die magische

Johannes

Zutat sind Hashes.

Johannes

Und zwar,

Johannes

also man kennt Hashes ja üblicherweise

Johannes

aus so einem Bereich, dass man sagt, das ist eine Checksumme

Johannes

oder eine Prüfsumme oder eine

Johannes

Signatur von irgendwas, ja, wo man

Johannes

so einen Char 1 Hash dann macht und dann kommt

Johannes

eben raus, die Datei hat die Prüfsumme

Johannes

A 17 12 21

Johannes

1916, also irgendwas, ja.

Johannes

Das ist nicht die Art Hash, die man hier verwendet,

Johannes

sondern die Art Hash, die man hier verwendet,

Johannes

ist eine ganz andere Art von Hash,

Johannes

die nicht so eine ganz lange Prüfsumme gibt,

Johannes

sondern die gibt einen Index heraus.

Johannes

Das ist eine spezielle Sorte Hash,

Johannes

die man da verwenden muss,

Johannes

der schnell sein muss und kleine Ergebnisse hat

Johannes

und in konstanter Laufzeit und so weiter.

Johannes

Also ganz viele Sachen, die man da reintut.

Johannes

Ich weiß auch gar nicht genau,

Johannes

was da für ein Hash verwendet wird.

Johannes

So, das heißt, dieses Dictionary, was wir vorher als Liste von Schlüsselwertpaaren hatten, wird jetzt zu einer Liste, die erstmal leer ist.

Johannes

Ich sage mir, okay, ich gehe davon aus, dass ich im Laufe meines Lebens 16 Einträge in mein Telefonbuch speichern möchte.

Johannes

Jetzt kommt der erste Eintrag und der erste Eintrag heißt Dominik,1.

Johannes

Das heißt, der Schlüssel heißt Dominik und der Wert dazu heißt 1.

Johannes

Jetzt nehme ich den Schlüssel und hashe diesen Schlüssel und kriege jetzt als Hash eine Zahl von 0 bis 16 raus, also eine Zahl in meinem Adressbereich.

Johannes

Jetzt gucke ich in meine bislang leere Liste und sage, da steht noch nichts.

Johannes

Okay, perfekt. Also schreibe ich da den Dominik rein, also den Wert von Dominik.

Johannes

Das heißt, in meiner Liste steht jetzt ganz viel nichts und an einer Stelle steht deine Telefonnummer.

Johannes

Jetzt kommt der zweite Wert. Der zweite Wert für Jochen. Ich nehme wieder meinen Hash von Jochen und da steht jetzt halt 10. Da kommt jetzt 10 raus. Das heißt, in meine Liste schreibe ich jetzt an der Stelle 10 die Telefonnummer von Jochen rein. Bei Dominik sagen wir, kommt 12 raus.

Johannes

Dann schreibe ich Johannes. Ich nehme den Hash von Johannes. Da kommt 2 raus. Also schreibe ich in meine Liste an der Stelle 2 die Telefonnummer von Johannes rein.

Johannes

Wie man sieht, ist das Einfügen in diese Datenstruktur immer noch O von 1, weil es spielt keine Rolle, wie viele Einträge da drin sind. Das dauert immer gleich lang. Ich muss diesen Hash ausrechnen und dann an die Stelle, die mir der Hash gegeben hat, die Zahl reinschreiben. Mindere Details, wie zum Beispiel, dass die Liste voll wird oder dass der Hashtag voll wird oder dass es Kollisionen gibt, die ignorieren wir jetzt. Das sind Implementierungsdetails. Die bleiben dem geneigten Leser als üblich.

Johannes

Und du musst ja einmal kurz den Space verdoppeln,

Johannes

den man braucht oder sowas.

Johannes

Genau, musst du entweder den Space verdoppeln

Johannes

oder musst du eine Liste von Werten anlegen

Johannes

oder musst du irgendeine Kollisionsstrategie überlegen.

Johannes

Und auch eine Größenstrategie musst du dir auch überlegen.

Johannes

Okay, einfügen ist immer noch O von 1.

Johannes

Heraussuchen ist jetzt auch eine andere Operation.

Johannes

Ich sage, ich möchte die Telefonnummer von Jochen wissen.

Johannes

Ich nehme jetzt also den Hash von dem Namen Jochen

Johannes

und kriege raus, die Telefonnummer von Jochen

Johannes

steht in meiner Liste anstelle 10.

Johannes

Das Herrschen dieses Wertes, also die Adresse sozusagen berechnen, wo ich die Telefonnummer gespeichert habe, das ist immer gleich, das dauert immer gleich lang. Und jetzt in diese Liste an der Stelle 10 reingucken, dauert auch immer gleich lang. Und da steht genau die Telefonnummer vom Jochen drin, das heißt, auch das Heraussuchen dauert jetzt O von 1.

Johannes

Und die Magie ist eigentlich, dass man nicht den Schlüssel als Wert da drin hält, sondern man greift über eine Indirektion zu und diese Indirektion ist ein Hash und dieser Hash vermischt die Sachen auf eine einheitliche Art und Weise, sodass man eine einheitliche Füllung erreicht.

Johannes

Und das garantiert uns dann eben diese, ja, sogenannte amortisierte Laufzeit von ORF1 im Schnitt über lange Zeit, dauert jeder Zugriff auf den Dickschneider gleich lang.

Dominik

Ja, das Einzige, was man halt da tatsächlich machen muss, ist, wenn man ganz, ganz viele Einträge hat, mehr Speicher für dieses Dick alloziieren oder so.

Johannes

Genau, also es gibt oft so Situationen, wo es einen Trade-off gibt zwischen Rechenzeit und Speicherplatz und auch hier ist es so, wir haben halt ein kleines bisschen Overhead, was Speicherplatz angeht, weil wir immer ein bisschen leere Zellen haben müssen, wobei auch das in den neuen Python-Versionen nicht mehr stimmt.

Johannes

Da haben sie eine bessere Implementierung, die keinen großen Overhead haben drin, was noch beeindruckender ist, was wir uns auch gerne mal genauer anschauen können, wenn du das mal vorbereitest, Jochen.

Jochen

Ja, sich das mal unter Detail anzugucken, wäre nicht so uninteressant. Ich hatte jetzt noch im Hinterkopf, dass irgendwie die Dict-Implementation in Python, dass das irgendwie so try-basiert ist oder so, aber es kann sein, dass das auch wirtschaftlich veraltet ist.

Johannes

Zwischenschritte. Die machen noch so,

Johannes

das ist, glaube ich, auch veraltet, diese neue

Johannes

Implementierung ist, glaube ich, pur Array-basiert,

Johannes

soweit ich das weiß, aber ich weiß es nicht genau.

Johannes

Das sind

Johannes

auch so Implementierungsdetails, weil es

Johannes

halt schneller ist.

Johannes

Weil du noch ein paar Nanosekunden

Johannes

rausholen kannst und weil das eindeutig zur

Johannes

Hot-Section gehört von Python, weil das der Code ist,

Johannes

der Python

Johannes

laufen lässt. Dictionaries

Johannes

sind im Wesentlichen

Johannes

der Kleber, der Python zu Python macht.

Johannes

Auch intern,

Johannes

jedes Mal, wenn ich ein Objekt verwende,

Johannes

in anderen Programmiersprachen werden die dann irgendwie

Johannes

kompiliert oder zu Structs gemacht oder zu sonst

Johannes

irgendwas gemacht. In Python ist das halt

Johannes

ein Dictionary mit den Namen von dem,

Johannes

von dieser Instanz

Johannes

und fertig. Und

Johannes

auch die lokalen Variablen, die liegen alle in dem Dictionary.

Johannes

Da gibt es keine Speichermap

Johannes

und da gibt es keine festzugewiesene, da gibt es kein

Johannes

Stack und nix, sondern, ein Stack gibt es auch noch,

Johannes

aber die lokalen Variablen in einem Frame liegen

Johannes

immer in einem Dictionary drin.

Johannes

Deshalb

Johannes

ist die tatsächliche Implementierung

Johannes

hier sehr detailliert und sehr ausgefeilt,

Johannes

weil es sich eben lohnt,

Johannes

hier jede Nanosekunde rauszuholen.

Johannes

Aber

Johannes

die Magie, die drinsteckt,

Johannes

oder der Kerngedanke ist eigentlich,

Johannes

man hasht die Schlüssel und

Johannes

greift dann auf diese mehr oder weniger

Johannes

zufällig gewählte Adresse zu.

Johannes

Ja, also das ist

Jochen

die Python-Dict-Implementation

Jochen

ist halt auch so eine der schnellsten

Jochen

Hash-Implementationen,

Jochen

die es überhaupt gibt.

Jochen

ja, eben weil sie halt auch so wichtig ist.

Jochen

Und das ist

Jochen

auch manchmal dann überraschend, so für, wenn man

Jochen

in anderen Sprachen unterwegs ist oder

Jochen

mit Leuten sich unterhält, die in anderen, so ich hatte das

Jochen

auch schon mal, ich wollte das mal irgendwie,

Jochen

ich habe mit einem Python-Dict angefangen

Jochen

bei irgendeiner Geschichte, ich weiß jetzt gar nicht mehr genau, was

Jochen

es war, ich wollte irgendwelche Dinge unique machen, irgendwie

Jochen

riesige Sachen und

Jochen

das war irgendwie zu langsam und dann

Jochen

dachte ich so, okay, das muss ich wohl

Jochen

dann doch mal irgendwie in C oder C++ oder so

Jochen

neu machen und habe das dann in

Jochen

C++ versucht

Jochen

und habe dann auch angefangen,

Jochen

weil ich dachte, ich mache es jetzt erstmal so wie in Python

Jochen

und dann gucke ich mal,

Jochen

wo ich optimieren kann. Und habe dann

Jochen

halt irgendwie

Jochen

HashMap, außer sozusagen

Jochen

naja, C++ gibt es nicht, gab es oder

Jochen

vielleicht gibt es heute, aber gab es damals nicht so richtig

Jochen

eine Standard-Typerie. Boost heißt die. Boost gab es, genau.

Jochen

Und habe das halt so probiert,

Jochen

habe das gemanagt, habe irgendwas falsch

Jochen

gemacht. Irgendwie kann ja nicht sein.

Jochen

War deutlich langsamer als die beiden

Jochen

Varianten. Und habe dann

Jochen

also auf Stack Overflow so naiv nachgefragt,

Jochen

so, irgendwas mache ich hier falsch,

Jochen

was ist denn da los? Und dann waren

Jochen

die Antworten drauf aber eher nicht so

Jochen

ermutigend weiterzumachen in die Richtung,

Jochen

sondern dann hieß es so, ja, ach so, ja,

Jochen

ein Boost, ja, unsere Hashmap-Implementation,

Jochen

ja, das ist eigentlich noch gar keine richtige Hash,

Jochen

das ist nicht so richtig Hash, das ist eher so

Jochen

ein, eher so, wir holen die Dinger

Jochen

so per binäre Suche daraus und dann,

Jochen

das ist klar, deswegen dauert es dann natürlich schon ein bisschen länger.

Jochen

So, okay, Moment,

Jochen

aber das ist doch eine Datenstruktur, die man dauernd verwendet,

Jochen

ja, wie, was?

Jochen

Und ja, das geht auch schneller.

Jochen

Da musst du nur, ja, da musst du nur

Jochen

dann irgendwie, keine Ahnung, hier von

Jochen

SGI gibt's da

Jochen

irgendwie Header, die du irgendwie reinnehmen kannst,

Jochen

und dann musst du nur sagen, dass du das als Hash-Funktion, und dann geht's schneller.

Jochen

Das ist so, ähm,

Jochen

na, vielleicht auch nicht. Mal gucken, vielleicht kann man das

Jochen

auch irgendwie anders machen.

Jochen

Python nimmt man also.

Jochen

Aber das ist, äh, ja,

Jochen

da ist Python wirklich stark

Jochen

also das ist

Jochen

ja

Jochen

ja aber es ist halt auch einfach wichtig

Johannes

es gibt so Späße

Johannes

wo man jede Programmiersprache beschreibt

Johannes

als eine Kerneigenschaft

Johannes

eine so eine Liste

Johannes

die ich mal gesehen habe war eben

Johannes

jede Programmiersprache beschrieben als

Johannes

what if everything was an

Johannes

und da war zum Beispiel c

Johannes

what if everything is a pointer

Johannes

und Java ist

Johannes

what if everything is a pattern

Johannes

und

Johannes

Python war halt what if everything

Johannes

is a dictionary und das ist schon so.

Johannes

Es ist schon so. Es ist einfach alles

Johannes

ein Dictionary und wenn man irgendein Problem mit Dictionaries

Johannes

lösen kann, dann ist das

Johannes

sehr gut.

Johannes

Um aber nochmal

Johannes

zurückzukommen, auch das Dictionary

Johannes

ist eine schöne Überleitung zu meinem Win,

Johannes

den ich mal hatte,

Johannes

in einem Projekt, war tatsächlich

Johannes

das erste richtig große

Johannes

kommerzielle Projekt, wo ich mitgewirkt

Johannes

habe, wo ich alleine

Johannes

mitgewirkt habe, um es mal so zu sagen,

Johannes

war auch

Johannes

Webshop und wir mussten da

Johannes

die Produkte aus einer API holen und wir hatten

Johannes

sehr genaue Vorgaben.

Johannes

Es waren Modeprodukte.

Johannes

Wir hatten

Johannes

sehr genaue Vorgaben, wie lange wir sozusagen

Johannes

die Daten, die wir haben,

Johannes

cachen dürfen, wie alt unsere Daten

Johannes

sein dürfen, weil da gibt es ja Probleme mit

Johannes

Verfügbarkeit und

Johannes

Preisen, die sich dann auch ändern. Also wir mussten

Johannes

einfach einhalten, dass wir

Johannes

maximal fünf Minuten alte Daten

Johannes

anzeigen dürften,

Johannes

was Preise und Verfügbarkeit angeht.

Johannes

Und Produkteigenschaften auch, weil die dann oft

Johannes

dann halt im Betrieb

Johannes

eine Charge ersetzt haben durch eine andere.

Johannes

Also wenn halt die

Johannes

Hose von dem einen Hersteller durch war

Johannes

und die Hose vom anderen Hersteller noch nicht

Johannes

durch war, dann hat sich halt der Preis verändert,

Johannes

weil das Material raus war sicher.

Johannes

Wir durften einfach nichts anzeigen, was älter ist als fünf Minuten.

Johannes

Und wir hatten aber das Problem, dass unsere Seite super langsam war,

Johannes

weil wir für jede Produktseite, für jede unserer Seiten,

Johannes

mussten wir ungefähr 20 Produkte laden.

Johannes

Das heißt, wir mussten 20 API-Aufrufe machen.

Johannes

Und das war damals, als es noch kein Async gab.

Johannes

Das heißt, wir mussten die mehr oder weniger seriell machen.

Johannes

Und wir hatten halt furchtbar schlechte Zeiten.

Johannes

Also die API, die wir benutzt haben, war super schnell.

Johannes

Die hat nur so 20 Millisekunden gebraucht pro Aufruf.

Johannes

Aber wenn du 20 von den Aufrufen machst,

Johannes

dann hast du halt direkt 400 Millisekunden verbrannt

Johannes

für nix.

Johannes

Hast ja noch nix selber gemacht.

Johannes

Und

Johannes

wir haben

Johannes

versucht, die Sachen in den Cache zu legen und das

Johannes

hat auch nicht so richtig funktioniert. Und irgendwann ist uns

Johannes

aufgefallen, dass

Johannes

wir ja tatsächlich genügend Hauptspeicher haben.

Johannes

Wir haben genügend Hauptspeicher,

Johannes

um alle Produkte zu

Johannes

speichern, die wir je

Johannes

anzeigen.

Johannes

Also haben wir das

Johannes

einfach gemacht. Wir haben einfach alle

Johannes

Produktdaten abgerufen und die in den Cache gelegt

Johannes

und weil die nicht

Johannes

länger als fünf Minuten da sein

Johannes

dürften, hatten die eine Expiry von fünf Minuten

Johannes

und wir haben einfach Background-Jobs laufen

Johannes

lassen, die alle fünf Minuten jedes Produkt

Johannes

refreshed haben.

Johannes

Das heißt, wir hatten einfach

Johannes

vorher hatten wir

Johannes

eben diese ganzen Aufrufe an die

Johannes

API, die wir ersetzt haben

Johannes

durch Unmengen an unnötigen

Johannes

Aufrufen, die

Johannes

aber dann eben im Ernstfall dafür gesorgt haben,

Johannes

dass die Daten, die wir tatsächlich gebraucht haben, alle

Johannes

schon warm waren, weil

Johannes

wir, weil halt einer von den

Johannes

Entwicklern und es war tatsächlich in dem Fall nicht ich.

Johannes

Es ist also keine Win-Geschichte

Johannes

für mich, es ist nur eine Win-Geschichte für unser Projekt

Johannes

und für den anderen Entwickler.

Johannes

Weil der halt gesagt hat, okay, wir können ja mal

Johannes

ausrechnen, wie viel Speicher wir verbrauchen. Wir probieren einfach mal

Johannes

aus, alle Produkte zu laden, die wir je haben.

Johannes

Und die haben in den Cache

Johannes

gepasst, in unseren Memcached.

Johannes

Und dann ist es natürlich

Johannes

schön schnell, weil dann so ein Memcached-Aufruf,

Johannes

der ist ja,

Johannes

der dauert nicht so lang.

Johannes

Das heißt, wir konnten da tatsächlich

Johannes

unsere Response-Zeit um ein Vielfaches

Johannes

verbessern, einfach dadurch, dass wir

Johannes

die ganze Zeit

Johannes

den Cache-Refresh haben.

Johannes

Egal, ob wir Traffic hatten oder nicht,

Johannes

es war einfach, dieser Cronjob, der das

Johannes

gemacht hat, lief einfach die ganze Zeit.

Johannes

Alle fünf Minuten hat er alle Produkte einmal

Johannes

durchgepingt.

Johannes

Ja, das

Jochen

erinnert mich, das ist auch etwas,

Jochen

man unterschätzt oft, wie viel

Jochen

Hauptspeicher man tatsächlich zur Verfügung hat

Jochen

und was man da mit all den tollen Dingen alles so tun kann.

Jochen

Und dass man oft einfach Sachen

Jochen

brutal erschlagen kann mit irgendwie

Jochen

Hauptspeicher oder

Jochen

genau, das habe ich auch so

Jochen

ähnliche Geschichten zum Beispiel,

Jochen

also was mich schon mehrfach gebissen hat,

Jochen

das ist eher so ein Thema

Jochen

für generell, das ist eher so ein bisschen

Jochen

auf der Fail-Seite, man muss aufpassen, so

Jochen

Pfeilsysteme, vor allen Dingen, wenn man Pfeilsysteme

Jochen

benutzt irgendwie und da

Jochen

rein daraus liest und schreibt,

Jochen

gleichzeitig und zwar von vielen Rechnern

Jochen

aus und dann so verteilte Dateisysteme

Jochen

ein bisschen, also

Jochen

du hast halt

Jochen

eigentlich nur ein Dateisystem auf dem Server

Jochen

und viele lesen und schreiben davon.

Jochen

Also vielleicht so zu Hause oder in einem kleinen

Jochen

Büro, gute Idee, irgendwie schön.

Jochen

So

Jochen

Internet-mäßig

Jochen

oft nicht so eine richtig geile Idee, weil

Jochen

funktioniert nicht gut.

Jochen

Und das da

Jochen

hatten wir auch mal echt

Jochen

böse Probleme mit

Jochen

naja, also

Jochen

Webseite mit ganz vielen unterschiedlichen

Jochen

Bildgrößen für Produkte, aber

Jochen

halt auch relativ viele, also so

Jochen

zig Millionen und

Jochen

ja, das muss man

Jochen

dann schon irgendwie auf der Platte liegen haben, weil es ist einfach zu viel

Jochen

Zeug und naja, jetzt muss man

Jochen

das alles umrechnen und jetzt

Jochen

hat man das Problem, dass

Jochen

man zum Beispiel irgendwie neue Bilder anzeigen

Jochen

muss, weil es gab irgendwie eine

Jochen

Abmahnung, weil

Jochen

irgendwie jemand in einem

Jochen

Webshop einfach irgendwie Bilder

Jochen

von der Herstellerseite geklaut hat oder so,

Jochen

die er nicht verwenden durfte und dann wird er

Jochen

vom Hersteller abgemahnt und dann

Jochen

muss das ganz schnell wieder verschwinden

Jochen

und dann kann man das auch verschwinden lassen,

Jochen

aber, also das Verschwinden lassen geht

Jochen

noch, aber dann die neuen Bilder stattdessen anzeigen geht

Jochen

nicht so richtig, weil die müssen ja neu gerechnet werden und die

Jochen

Queue von Neuberechnungsjobs ist jetzt so zwei Wochen

Jochen

lang, also es dauert dann irgendwie so zwei Wochen

Jochen

von irgendwie, es kommt

Jochen

ein neues Bild rein und es ist in den

Jochen

richtigen Größen... Aber habt ihr keine Priorisierung gehabt

Jochen

für Jochen? Ja, das hätte man dann natürlich machen können,

Jochen

Also man hat sich dann natürlich so Dinge überlegt,

Jochen

ja, kann man das nicht irgendwie priorisieren

Jochen

oder kann man nicht irgendwie sagen,

Jochen

okay, man macht da irgendwie andere komplizierte Geschichten,

Jochen

man macht die Berechnung woanders

Jochen

und kopiert es dann hinterher batchmäßig immer darüber.

Jochen

Also es wurde in viele Richtungen überlegt,

Jochen

auch sogar in solche Richtungen wie,

Jochen

was für Blockgrößen bei der Übertragung per NFS

Jochen

sind denn jetzt die optimalen

Jochen

und nimmt man jetzt UDP oder TCP

Jochen

und diese ganzen Geschichten.

Jochen

da haben Leute irgendwie lange dran rumüberlegt,

Jochen

wie man das alles optimieren kann und

Jochen

Sachen ausprobiert und getestet. Das hat lange

Jochen

gedauert und es war ein ständiger Schmerz.

Jochen

Bis dann auch

Jochen

irgendjemand, auch nicht ich,

Jochen

tatsächlich sehr guter

Jochen

Entwickler,

Jochen

auf die Idee kam,

Jochen

wie viele, also

Jochen

ja, okay, das sind viele Bilder und so, aber

Jochen

wie viele von den Bildern zeigen

Jochen

wir eigentlich so an?

Jochen

Wenn ich jetzt durch die Logs, durch die Serverlogs

Jochen

wie viel von dem Kram wird denn tatsächlich da draußen angezeigt.

Jochen

Und das waren dann gar nicht mehr so viele.

Jochen

Das waren dann nicht mehr zig Millionen,

Jochen

sondern das war dann halt nur noch ein kleiner Teil davon.

Jochen

Und dann war halt die Überlegung,

Jochen

okay, kann man das vielleicht nicht auch alles einfach on demand machen

Jochen

und dann halt den heißen Teil der Bilder einfach im Hauptspeicher cachen?

Jochen

Und das ging dann.

Jochen

Und dann dieses System umzudrehen und dann zu sagen,

Jochen

okay, wir brauchen das nicht irgendwie fertig irgendwo liegen zu haben,

Jochen

sondern wir übergeben die Größe, die wir gerne hätten,

Jochen

einfach nur als Parameter in der URL für das Bild mit

Jochen

und cachen dann.

Jochen

Das war dann halt so, das hat gar nicht lange gedauert,

Jochen

das umzustellen und das System hinterher war

Jochen

sackschnell und man konnte alles quasi

Jochen

on-demand ändern,

Jochen

Blacklisten, White-Listen, alles kein Problem

Jochen

und es war so. Und danach war dieses Problem

Jochen

gelöst und vorher hatten da wirklich viele Leute

Jochen

lange dran rumgetüftelt,

Jochen

dass irgendwie den eigentlich

Jochen

den blöden Ansatz halt sozusagen

Jochen

irgendwie zum Laufen zu bringen, der aber einfach

Jochen

nur falsch war und deswegen hat es halt nicht funktioniert.

Jochen

Und das, ja.

Johannes

Und dann hat man am Ende mehr Features

Johannes

und eine einfache Implementierung und

Johannes

es ist schneller.

Johannes

Ja, also

Jochen

ich habe so das Gefühl, so an diesem

Jochen

zweiten Schritt bei der Feynman-Lösung,

Jochen

dieser zweite Schritt, da

Jochen

ist enormes Potenzial.

Jochen

Das ist irgendwie so.

Johannes

Ja, aber das ist doch, als Entwickler

Johannes

macht man sich das doch oft, oder? Also Stunden des

Johannes

Machens ersparen Minuten des Nachdenkens.

Johannes

Das ist schon oft so.

Johannes

Ja, natürlich.

Johannes

Tja, wenn man aber, weißt du, wo man

Johannes

Ja, aber manchmal ist es auch wirklich so, dieses Größenordnungen überdenken, das ist für mich auch manchmal so eine Live-Lessung. Wir hatten bei unserem ersten Kind, haben wir zwei Fläschchen gehabt, mit denen wir dann jede Nacht die Milch gemacht haben und das heißt halt, dass du ständig daran dabei bist, diese Fläschchen zu spülen, weil wenn du eine aufgebraucht hast, dann hast du nur noch eine.

Johannes

Und ich bin dann halt irgendwann mal hier zu einem Supermarkt gegangen und habe einfach zehn solcher Fläschchen gekauft. Das hat einen überschaubaren Geldbetrag gekostet. Die kosten, glaube ich, zwei Euro Stück oder so. Also es war, oder 2,50, ja. Es ist wirklich egal.

Johannes

Und dann kannst du halt in einer Nacht fünf Fläschchen verbrauchen oder sechs oder sieben oder acht und am nächsten Tag stellst du sie in die Spülmaschine und bist fertig. Einfach mal so Größenordnungen überdenken. Das ist eine sehr mächtige Sache.

Johannes

Und viel hilft viel. Ja, es ist wirklich so. Viel hilft halt manchmal einfach viel und kostet aber gar nicht so viel. Und man hantiert oft mit solchen Limits rum, die völlig zufällig gewählt sind, aber an denen man dann so im Kopf rumhängt, die man eigentlich einfach mal überdenken müsste.

Johannes

Also die man einfach mal genauer anschauen müsste, ob das wirklich sinnvolle Limits sind und ob man vielleicht irgendwas verändern kann, sodass man nicht an diesem Limit hängt. Und die simpelste Möglichkeit ist halt vertikale Skalierung, mehr Hardware kaufen.

Johannes

Weniger schlafen.

Johannes

Im Falle der Fläschchen. Im Falle der Fläschchen hat das, ja, und das hat dann auch direkt zu mehr Schlafen geführt. Wenn du weniger Verwaltungsaufwand hast.

Dominik

Ja, das sind Sachen, bei so endlichen Ressourcen.

Johannes

Ja, aber diese Zahl, auf die man sich irgendwann mal festgelegt hat, die ist ja nicht in Stein gemeißelt. Und die ist weder bei Hauptspeichern in Stein gemeißelt, noch bei der Anzahl der Utensilien, die man so hat.

Dominik

Naja, glücklicherweise kann man auf die meisten Maschinen noch ein bisschen mehr Speicher oder sowas werfen oder halt mehr Fläschchen einfach so in einem Supermarkt kaufen. Das ist ja immer, die Probleme kommen ja tatsächlich erst immer dann wirklich zum Tragen, wenn es halt diese Restriktionen gibt, dass du halt dann dir Konkurrenz hast für irgendwelche Prozesse oder sowas, dann wird es erst nervig.

Johannes

Wenn du an die Grenzen kommst. Aber bis du da hinkommst,

Johannes

gibt es oft Lösungen, die überraschend

Johannes

simpel sind und doch nicht so schlecht.

Johannes

Und ich meine Hauptspeicher, es gibt halt Maschinen,

Johannes

die 6 Terabyte Hauptspeicher haben können.

Johannes

Also ich

Johannes

habe seltsame Probleme gehabt.

Johannes

Das ist natürlich schon, also 6 Terabyte

Johannes

Hauptspeicher, wow.

Johannes

Ja, kostet schon

Johannes

100.000 Dollar oder 200.000, aber

Johannes

bei der Problemgröße, also ein Cluster mit

Johannes

100 Nodes kostet mehr als 10.000 Dollar.

Johannes

ja deshalb manchmal lohnt sich das über solche größenordnungen einfach mal

Johannes

nachzudenken und ja das das will ich auf jeden fall als win bezeichnen ist ein

Johannes

ganz klarer win ja sowas zu überdenken und so eine hürde zu überkommen

Johannes

ich habe mir irgendwann einfach mal 50 paar identische socken gekauft und

Johannes

seither keine socken mehr gefaltet weil es meist immer lauter identische socken

Johannes

da drin und wenn die leer wenn wenn die wäsche ist dann ist die schublade wieder

Johannes

voll. Und wenn einer kaputt geht, dann schmeiße ich ihn weg

Johannes

und dann habe ich immer noch 49,5 Paar

Johannes

identische Socken.

Johannes

Ja, ja, sehr gut.

Johannes

Das ist eine triviale Sache, aber es ist

Johannes

einfach einmal über so eine Größenordnung

Johannes

nachgedacht und bemerkt, dass die Grenze,

Johannes

die man sich selber gesetzt hat, völlig arbitriär ist.

Dominik

Nicht kleckern, klotzen, bigger is better

Dominik

und so weiter. Genau.

Dominik

Und wenn man irgendwas, irgendein

Dominik

Problem hat, was man in Hauptspeicher kriegt,

Johannes

warum nicht? Oder wenn man es so trimmen kann,

Johannes

dass man es in Hauptspeicher kriegt, noch besser.

Dominik

Also das ist ein Win, sagst du, okay.

Dominik

Eindeutig.

Dominik

Und es gibt viele

Johannes

Gelegenheiten für solche Wins, deshalb, das ist super.

Johannes

Und die fühlen sich gut an,

Johannes

so ein Win ist eine total tolle Sache.

Johannes

Ja, wenn's nicht gut.

Johannes

Ja, wobei

Johannes

ich muss allerdings dazu sagen, als ich

Johannes

die zehn Flächen gekauft habe,

Johannes

habe ich leider die falschen gekauft, also ich musste dann noch mal

Johannes

hin und die alle zurückgeben und

Johannes

neue kaufen, also es ist

Johannes

gemischt, ja, win und

Johannes

Fail zusammengemischt.

Johannes

Tja.

Johannes

Und das ist doch ein schönes Resümee für das Jahr

Johannes

2020. Das ist doch ein schöner Jahresrückblick.

Johannes

Win und Fail zusammengemischt

Johannes

in gleich großen Proportionen.

Johannes

Ja.

Jochen

Ja, dieses Jahr

Jochen

war eine Spur zu viel Fail,

Jochen

ehrlich gesagt, für meinen Geschmack

Jochen

in der Gesamtsituation.

Jochen

Aber ja,

Jochen

es sieht ja leider so aus, als ob das uns

Jochen

noch ein Jahr beschäftigt.

Jochen

Ja, aber ich fand ja gut, also was ich toll

Jochen

finde an der ganzen Geschichte ist, dass jetzt alle

Jochen

das mit dem Internet mal so richtig und das mit dem

Jochen

Paketen und so, das geht jetzt alles und

Jochen

ab dann denke ich jetzt,

Jochen

ab jetzt ist es halt normal.

Dominik

Also es gab auch wahrscheinlich coole Sachen auch irgendwie, also ich weiß nicht.

Dominik

Ja? Ja, ja.

Dominik

So ein paar Sachen sind vielleicht gar nicht so schlecht, dass das jetzt nicht mehr so

Dominik

durch ist. Ja, so das mit dem Homeoffice irgendwie,

Dominik

das ist ja so normales zum Beispiel.

Dominik

Das ist so eine Sache, die eigentlich

Dominik

schon selbstverständlicher hätte sein können

Dominik

irgendwie länger. Und wie man sich ja auch

Dominik

immer so dachte. Ja, wobei

Johannes

Jochen und ich, wir leben das ja schon seit Jahren.

Johannes

Ja, ich auch, übrigens.

Johannes

Herzlich willkommen in unserer Welt.

Johannes

Das meine ich ja, genau.

Dominik

Und da merkt man mal, was für Vorteile das hat.

Dominik

Oder auch für Herausforderungen. Und dass es nicht mehr darum geht,

Dominik

dass man nur nichts machen will oder so.

Dominik

Ja.

Dominik

Ja, und es gibt noch

Dominik

ein paar andere gute Sachen. Also so ein paar

Dominik

Menschen sind nicht wieder gewählt worden

Dominik

oder so. Das gab es ja auch.

Dominik

Noch, noch ist er nicht weg.

Dominik

Ja.

Johannes

Ich habe tatsächlich im März noch mit einer Firma gesprochen,

Johannes

die hatten immer Inhouse-Entwicklung

Johannes

und die haben dann aber umgestellt auf Homeoffice,

Johannes

hatten 3000 Entwickler, die dann plötzlich im Homeoffice waren

Johannes

und weil das alles sicherheitskritisch war,

Johannes

war das alles mit Remote Desktop und so.

Johannes

Die hatten aber nur Remote Desktop-Kapazitäten

Johannes

für 1000 Anwender.

Johannes

Also die hatten einfach nur 1000 Desktops,

Johannes

diese Remote zur Verfügung stellen konnten

Johannes

und haben dann relativ schnell gemerkt, dass

Johannes

da irgendwas nicht geht.

Johannes

Tja.

Johannes

Und mussten dann so ein kleines bisschen nachziehen.

Johannes

Also auch

Johannes

der Übergang war da nicht immer ganz flüssig.

Johannes

Nö, also das hat man auch, aber ich,

Jochen

ehrlich gesagt, mich hat das überrascht, wie wenig

Jochen

das dann, also klar, also

Jochen

ich hab da natürlich Probleme und so,

Jochen

also das hat dann auch, also ab und zu ging dann halt auch mal

Jochen

irgendwas wirklich nicht oder so,

Jochen

aber ich hätte jetzt erwartet, also wenn man mir gesagt hätte,

Jochen

also in einem Umfeld, wo

Jochen

Remote nicht üblich war, machen das

Jochen

jetzt alle irgendwie 100% die ganze

Jochen

Zeit und es muss halt einfach alles darüber funktionieren.

Jochen

Ich dachte so, oh mein Gott, das gibt eine Katastrophe.

Jochen

Das dauert Jahre.

Jochen

Das dauert Jahre und das ist alles ganz schrecklich.

Jochen

Wenn man das als Projekt geplant hätte,

Jochen

dann hätte

Jochen

jemand gesagt, okay,

Jochen

da müssen wir Jahre. Tatsächlich

Jochen

hat es aber nicht Jahre gedauert, sondern

Jochen

weil es wirklich nötig war, ging es dann halt irgendwie

Jochen

doch und es ging auch relativ schnell und es hat

Jochen

zwar auch böse gefällt ab und zu, aber

Dominik

Ja, zum Beispiel die Schulen oder sowas. Das ist ja auch ein Riesenproblem, aber das wird halt einfach jetzt rapide, schneller, besser. Und das brauchen wir ja wahrscheinlich, wenn wir irgendwie sowas wie Zukunft irgendwann mal besser machen wollen, auch irgendwie. Das sind so ein paar Dinge, die halt dann doch schneller funktionieren. Oder dass so ein Impfstoff so schnell entwickelt werden kann und so. Und wie viele Leute da auf einmal doch kollaborativ arbeiten können. Alles nicht so schlecht. Und dass man entdeckt hat, dass China nicht wirklich vertrauenswürdig ist. Also gar nicht so schlechte Dinge.

Johannes

Ja, sowas. Ich habe vor kurzem den Traffic von einem niederländischen ISP gesehen. Die hatten so eine Zusammenfassung, war auf Twitter. Und die haben Traffic-Spitzen zu jeder vollen Stunde zu den Bürozeiten, weil da die Videomeetings anfangen.

Johannes

Und die dauern halt unterschiedlich

Johannes

lang und das ist quasi, jede Stunde ist ein

Johannes

so ein Peak und das fällt dann bis zur nächsten Stunde

Johannes

wieder so ab. Sehr schön.

Johannes

Oder zur nächsten Vornstunde. Und in der

Johannes

Mittagspause sieht man eben, dass dieser

Johannes

Peak nicht da ist, weil um zwölf eben keine

Johannes

Meetings anfangen und es ist

Johannes

sehr, sehr schön.

Johannes

Ja, ja, ja.

Johannes

Ja, auch noch so eine Sache. Ja, dass

Dominik

die alle darauf aufmerksam sind, dass man die Kapazitäten

Dominik

da ernsthaft ausbauen muss vielleicht auch und so.

Dominik

Also endgültig, das wusste man ja eigentlich schon

Dominik

und so. Aber ne, so diese Notwendigkeit.

Dominik

Ja, es gab, also ein paar

Dominik

schöne Sachen gab es ja auch dieses Jahr.

Dominik

Hoffentlich auch bei euch.

Dominik

Selbstverständlich.

Dominik

Corona-Kekse, ich meine.

Jochen

Ja, hat man auch, ich habe die ja

Jochen

letztens, hat man das eigentlich gesehen? Ich habe

Jochen

die ja auch dann verlinkt,

Jochen

ob man das, gab es einen?

Jochen

Ja, natürlich.

Johannes

Also, da ist so wenig Traffic

Johannes

drauf, dass man nicht sieht, was, dass es

Johannes

individuelle Ereignisse gibt, aber vielleicht,

Johannes

wir können uns das jetzt als,

Johannes

an alle Hörer, als

Johannes

Vorsatz nehmen, dass ihr mal

Johannes

einen Traffic-Spike in meine...

Dominik

Du meinst, ist das noch jemand dabei jetzt um diese Zeit?

Dominik

Ja, selbstverständlich.

Dominik

Wir haben noch nicht mal die zwei Stunden überschritten.

Dominik

Ja, okay.

Dominik

Ja, was ich jetzt, ich habe jetzt

Jochen

mal in letzter Zeit,

Jochen

ich habe ein bisschen Zeit dann irgendwie

Jochen

auf Statistiken geguckt und was ich

Jochen

schon überraschend fand, jetzt auch gerade zu Weihnachten

Jochen

hat man natürlich einen Einbruch, aber es gibt immer noch irgendwie

Jochen

pro Tag, weiß ich nicht,

Jochen

allein auf Spotify 25 Leute, die sich das

Jochen

zu Weihnachten angehört haben, wo ich dachte so,

Jochen

ähm, habt ihr eigentlich ehrlich gesagt,

Jochen

also, ich meine, naja, also

Jochen

Was hast du denn Weihnachten gemacht?

Jochen

Ja, aber,

Jochen

äh, naja. Also ich habe

Jochen

alle Episoden vom Piran Podcast nach

Jochen

gehört gleichzeitig.

Johannes

Selbstverständlich. Hätte ich ja nicht mal Zeit dafür.

Johannes

Ah, ja, ja, ja.

Johannes

Jetzt weißt du, woher die 25-Klicks-Eckung.

Johannes

26 waren es ja, weil es waren ja 26

Johannes

Episoden. Ja, die eine Episode hast du schon gehört.

Johannes

Ja, die erste, die Einführung.

Johannes

Nee, aber das ist doch immer, es gibt doch immer,

Johannes

also ich meine, ja,

Johannes

an Weihnachten hat man Zeit, die Sachen zu machen,

Johannes

die man sonst nicht macht.

Jochen

Ja, ja, na ja, diesmal

Jochen

war ein bisschen,

Jochen

es war auch so ein bisschen unentspannt, ehrlich gesagt, so,

Jochen

ja. Ja, fandest du?

Dominik

Nee, aber es war super. Also ich habe schon am Tag vorher

Dominik

acht Stunden Suppe gekocht und Soße.

Dominik

Also so prinzipiell,

Jochen

nee, war alles total super, aber es war

Jochen

einfach eine völlig andere Situation als normalerweise,

Jochen

weil irgendwie Teile

Jochen

der Familie so irgendwie

Jochen

gar nicht. Ja gut, also es war

Johannes

zu Hause Weihnachten.

Johannes

Ja.

Johannes

Genau. Aber das ist doch nicht

Johannes

unentspannt.

Johannes

Zum Teil sogar viel entspannter. Also ich fand's

Johannes

viel entspannter.

Johannes

Wir hatten längst nicht so viel

Johannes

hin und her gefahren und längst nicht so viel hin und her

Johannes

transportieren.

Johannes

Ja. Gut, klar, die Kinder

Johannes

sind die ganze Zeit da und unbeschäftigt, aber

Johannes

mit genügend großen Lego-Packungen

Johannes

kriegt man ein großes Problem in den Griff.

Johannes

Ja, wir haben leider

Johannes

die klassischen Fehler gemacht und haben nicht bemerkt,

Johannes

nicht vorher geguckt, dass diese

Johannes

Lego-Packungen, die wir gekauft hatten, Batterien brauchen.

Johannes

Oh. Ah.

Johannes

Ja, und

Johannes

es ist halt blöd, wenn die Lokomotive nicht fährt,

Dominik

weil keine Batterien da sind. Und wenn Prime nicht

Dominik

liefert, same day delivery an Weihnachten,

Dominik

dann ist das uns verschämt halt. Ja, also das

Johannes

ist ja gar nicht. Und da habe ich dann eigentlich gedacht,

Johannes

eigentlich müsste man, das ist auch so eine Sache,

Johannes

Da müsste man eigentlich am ersten Weihnachtsfeiertag

Johannes

einfach mit so einem Korb voll Batterien rumgehen

Johannes

und die von Haustür zu Haustür verkaufen.

Johannes

Weil ich bin da sicherlich nicht der Einzige,

Johannes

der die Batterien in den Geschenken vergessen hat.

Jochen

Eine gute Idee, aber das Problem ist irgendwie die Marge.

Jochen

Distribution.

Jochen

Sind die Leute wirklich bereits so viel da drin?

Jochen

Ja, ich will es auch nicht machen.

Jochen

Du brauchst jetzt eine fliegende Drohne.

Johannes

Ach komm, da verkaufst du eine Batterie für 5 Euro das Stück.

Johannes

An Weihnachten zahlen die Leute das.

Johannes

Oder wenn die Drohne weiterfliegen muss,

Johannes

dann muss man einfach die Drohne sich nur selber

Johannes

noch in eine Batterie zusätzlich reinstecken.

Johannes

Ja, genau.

Johannes

Drohne, ja. Die hat sehr große

Johannes

Reichweite, diese Drohne, theoretisch

Johannes

gesehen.

Johannes

Ja.

Johannes

Auch im Wind übrigens.

Johannes

Ja, ruhige Weihnachten war

Dominik

für einige Leute vielleicht mehr Wind,

Dominik

für einige Leute weniger Wind.

Dominik

Ja, ich hoffe, dass ihr auch bei Hause da alle

Dominik

gemeinsam noch irgendwas

Dominik

davon hattet und es euch gut geht.

Dominik

Das war wichtig, ne?

Dominik

Jetzt kommt ja bald noch ruhige Silvester.

Dominik

Das erste Mal richtig ruhiges Silvester.

Dominik

glaubst du dran? Da bin ich

Dominik

auch gespannt, ob das, wie das

Dominik

Also, ja gut, ich meine

Dominik

Wir knallen vorher, nachher wird weniger im Verkauf

Dominik

und sonst

Dominik

Ja, das wird halt genau um

Dominik

die zwei Minuten vor und nach

Dominik

Mitternacht wird es wahrscheinlich nicht so laut sein wie sonst

Dominik

Ja, eben

Dominik

das meine ich ja. Das Feuerwerk ist nicht

Dominik

im Verkauf und

Dominik

das wird schon

Dominik

Tja, wollen wir noch

Jochen

irgendwelche Dinge picken oder sowas?

Jochen

das könnten wir ja auch. Standardlib?

Jochen

Oder irgendein Modul aus dem Standardlib

Jochen

besprechen, aber ich will. Oh, ich weiß

Jochen

eins, ich weiß eins. Array.Array.

Jochen

Ich wollte auch gerade Array sagen.

Dominik

Du bist gemein, ich habe mir meinen Pick geklaut. Das passiert mir jedes Mal.

Dominik

Ja,

Dominik

stimmt, das ist

Dominik

ein sehr schönes Modul.

Dominik

Wir picken das jetzt einfach

Johannes

an. Warte mal, ich muss auch mal

Johannes

Standardlib aufmachen, vielleicht finde ich auch was.

Johannes

Ja, also

Jochen

im Grunde kriegt man da natürlich genau das gleiche, was man

Jochen

jetzt auch mit einem NumPy-Array oder so kriegen würde,

Jochen

Aber halt in Situationen, wo man NumPy nicht importieren will

Jochen

oder nicht voraussetzen will, ist das halt mehr.

Jochen

Wenn man die ganzen anderen NumPy-Arrays so können nicht braucht,

Jochen

gute Alternative.

Johannes

Ja, und auch schon zehn Jahre vorher, oder?

Johannes

Also dieses Array.Array gibt es ja schon immer.

Johannes

NumPy gibt es ja noch nicht schon immer.

Jochen

Ja, aber ich weiß nicht genau, wann das dazugekommen ist.

Jochen

Ja, ob das vor NumPy war, weiß ich nicht.

Jochen

Aber es ist schon alles relativ ewig.

Johannes

Ich möchte was anderes hervorheben,

Johannes

was so ähnlich ist,

Johannes

was auch in diese Kerbe schlägt.

Johannes

Und das ist das Struct-Modul.

Johannes

Habt ihr das schon mal gesehen?

Johannes

Das ist quasi ein Modul,

Johannes

was es einem erlaubt,

Johannes

C-Type Structures zuzulegen.

Johannes

Also man gibt da einen sogenannten Format-String an.

Johannes

Es ist ein bisschen ein Gefitzel,

Johannes

diesen Format-String zu bauen.

Johannes

oder den zu wissen, aber dieser Format String erlaubt es einem dann sozusagen Structs, so wie sie in C vorkommen, zu lesen und zu schreiben und die sind natürlich auf Bit-Ebene gepackt, also wenn man da eben die Werte mit den entsprechenden Bitlängen hat, die sind sehr dicht und sehr eng gepackt und man braucht das manchmal, wenn man Formate liest, die eben eng gepackt sind.

Johannes

Also Bitmap zum Beispiel ist so ein Format, das ist relativ simpel zu parsen in C, weil es im Wesentlichen, wenn man die Structs kennt, kann man das im Wesentlichen einfach reinladen und das ist in Python ein bisschen schwieriger zu verarbeiten, aber mit dem Struct-Modul auch nicht, weil man da eben nur die entsprechenden Formate wissen muss und die entsprechenden Formate eintragen muss und das Struct-Modul zerlegt einen die dann in Python-Werte und umgekehrt auch, wenn man die schreiben möchte, schreibt sie auch in Python-Werte.

Johannes

Ist super gut, wenn man Daten eng gepackt haben möchte oder bereits vorliegen hat, um solche Sachen, die eben in C sehr leicht sind, auseinanderzupacken und in Python-Werte umzuwandeln.

Johannes

Braucht man nicht super häufig, aber wenn man es braucht, ist es echt lebenswerter.

Jochen

Also ich habe es tatsächlich auch nie so wirklich super häufig, aber wir haben es auch einmal an einer Stelle gebraucht.

Jochen

Was man nämlich zum Beispiel machen kann, ist, man

Jochen

baut halt sozusagen

Jochen

die Datenstrukturen, die man in einer anderen Bibliothek

Jochen

dann verwenden möchte. Also man hat zum Beispiel irgendeine

Jochen

C-Bibliothek, die irgendwas macht. In unserem Fall war das halt

Jochen

Lipidinear. Das war halt so eine

Jochen

Bibliothek zum Lösen von

Jochen

Support-Vector-Maschinen, Geschichten, lineare Support-Vector-Maschinen.

Jochen

Und

Jochen

normalerweise gibst du den

Jochen

Trainingsdaten und so halt in Form von

Jochen

und halt auch die Sachen, die du nachher klassifizieren willst,

Jochen

in Form von so Text-Files, wo das

Jochen

dann mit Doppelpunkt getrennt ist und Kommas

Jochen

und so, weiß ich nicht. Aber das ist halt alles

Jochen

Mist, weil Text-Files zu parsen, das ist halt

Jochen

alles, dauert alles lange und das geht alles

Jochen

nicht toll. Aber dann kannst du halt das

Jochen

aber in dem Format, in dem, das war

Jochen

zum Glück sehr simpel, wie die Bibliothek

Jochen

halt die Daten halt selber dann, also

Jochen

das Zielformat, in das sie die Sachen geparsed hat,

Jochen

kannst du halt in Python hingehen und das einfach so in den Hauptspeicher

Jochen

schreiben, das

Jochen

in Chat-Memory-Signal packen und dann halt einfach

Jochen

von der Library aus

Jochen

einfach so verwenden. Sagst du ja so,

Jochen

du hast hier, die hast du gerade

Jochen

geparsed, bitteschön, mach damit mal irgendwas.

Jochen

Und das hat einfach super funktioniert.

Jochen

Ja, auch für so Netzwerksachen

Jochen

ist es super nützlich, weil

Johannes

mir eben oft diese Netzwerksachen,

Johannes

die man über das Netzwerk kriegt, halt oft so gepackt

Johannes

sind, wie sie halt in C gepackt werden.

Johannes

Und da die einzelnen

Johannes

Felder rausholen, ist mit Struct super nice

Johannes

und super simpel.

Johannes

Struct?

Johannes

Also ich picke dis.

Johannes

Oh, dis, dis.

Johannes

Jetzt musst du mal erklären, wie du das schon mal verwendet hast.

Dominik

Ja, also ich habe gestern CTF gespielt und damit

Dominik

kann man ja irgendwie das, was da an

Dominik

Funktionshaufen passiert,

Dominik

disassemblen und auseinandernehmen und gucken, was da so

Dominik

tatsächlich an anderen Hin- und Hersprüngen passiert.

Dominik

Ja.

Dominik

Viel mehr werde ich gar nicht verraten.

Dominik

Dafür müssen wir bestimmt noch mal so eine Folge machen

Dominik

über Assembling und Disassembling und

Dominik

Ja, also

Dominik

einfach Python Bytecode anschauen.

Johannes

Das ist generell eine sehr interessante Sache.

Johannes

Bin ich auch.

Johannes

Also die Episode möchte ich gerne hören.

Johannes

Kann ich zu wenig, um dazu beizutragen,

Jochen

Das ist halt immer das Problem.

Jochen

Bei vielen Dingen bräuchte man eigentlich jemanden, der sich so richtig

Jochen

damit auskennt und das ist halt

Jochen

Wir haben alle keine Ahnung.

Jochen

Also ich jedenfalls nicht, aber

Jochen

Ja. Und wir sind auch offensichtlich

Jochen

alle zu faul, um uns vorher

Jochen

bereiten zu können.

Jochen

Ja, das kann man ja mal ab und zu machen, aber die ganze Zeit

Jochen

Oh Gott, Arbeit.

Jochen

Ja, da ist es wieder.

Johannes

Das mit dem zwei Stunden des

Johannes

Arbeitens erspart uns zwei Minuten des Nachdenkens.

Johannes

Ja, aber

Johannes

Ja, aber da ist ja jetzt, der Dominik

Johannes

ist ja jetzt eingearbeitet, der kann uns ja dann sagen, wie das

Dominik

funktioniert. Oh ja, natürlich, der absolute Profi, wie immer

Dominik

in allen Themen.

Dominik

Just call me, ruft mich an,

Dominik

hört mir zu,

Dominik

uns morgens, mittags,

Dominik

abends, nachts, wann immer wieder einschalten wollen.

Dominik

Ey, ich wollte auch noch was picken. Du darfst was picken?

Dominik

Ja. Das hast du eben. Aber was habe ich denn

Dominik

gepickt? Ich dachte, du hast Array gepickt. Ja, genau.

Jochen

Ach so, okay, nee, dann ist gut. Nein, du musst

Jochen

jetzt was picken. Ah, na gut.

Jochen

Weil ich wollte

Jochen

nämlich eigentlich noch, ich mache gerade momentan so ein bisschen

Jochen

Fast API

Jochen

nebenher und

Jochen

das, was mir da auch tatsächlich

Jochen

sehr nützlich

Jochen

untergekommen ist, ist halt

Jochen

Pydentic. Das ist ziemlich

Jochen

klasse. Pydentic?

Jochen

Ja. Das hört sich nicht was für dich an.

Jochen

Bibliothek.

Jochen

Das hört sich an wie was für Zahnärzte.

Jochen

Ja.

Jochen

Es gibt eine ganze Reihe von diesen

Jochen

Geschichten. Ah, Pydentic.

Jochen

Das ist

Jochen

also es kann auch ein bisschen, also es ist halt

Jochen

auf diesen API-Fall sehr zugeschnitten,

Jochen

wo es halt in FastAPI

Jochen

halt irgendwie da so

Jochen

wichtige Funktionen

Jochen

übernimmt, aber es gibt in Python jetzt

Jochen

seit einiger Zeit schon so irgendwie so ein Trend

Jochen

irgendwie,

Jochen

naja, die Erstellung von Klassen

Jochen

einfacher zu

Jochen

machen und irgendwie so Objekte

Jochen

zu serialisieren, deserialisieren,

Jochen

das auch alles so ein bisschen simpler

Jochen

hinzukriegen und

Jochen

weil es gibt halt so bestimmte Sachen,

Jochen

die braucht man halt ständig und bestimmte

Jochen

Dunder-Methoden wären halt

Jochen

auch nett, wenn die einfach so da wären, aber

Jochen

das alles selber hinzuschreiben ist halt ein Haufen Arbeit

Jochen

und also ich sage

Jochen

jetzt mal so, die anderen Geschichten, die in die Richtung

Jochen

gehen, ist so Atres,

Jochen

da müssen wir uns auch nochmal mit Leuten unterhalten, die sich damit

Jochen

auskennen.

Jochen

Und Dataclasses, genau, das ist halt

Jochen

ja, ist halt

Jochen

in die gleiche, also das ist

Jochen

auch in der Standardbibliothek, das ist inspiriert

Jochen

von Atres, soweit ich das

Jochen

weiß,

Jochen

und

Jochen

ja, aber was man da halt auch

Jochen

machen kann, ist, du kannst halt ein Dict nehmen und sagen,

Jochen

okay, mach daraus

Jochen

jetzt ein Objekt

Jochen

von einer bestimmten Klasse, du kannst

Jochen

aber auch sagen, erst Dict

Jochen

irgendwie, dein Objekt von einer Klasse,

Jochen

und dann hast du ein Dict und so, und Pydentic

Jochen

macht das Ganze nochmal so, da hast du nur Punkt Dict

Jochen

und

Jochen

du hast halt auch einen ORM-Mode, wo du Sachen

Jochen

also direkt aus dem

Jochen

Datenbank-Result

Jochen

halt direkt in Objekte packen kannst,

Jochen

und das Ding macht dann halt

Jochen

Überprüfungen, ob das jetzt also

Jochen

korrekt,

Jochen

ob die ganzen Typen korrekt sind oder so,

Jochen

halt von selber. Du hast halt so, es ist quasi so

Jochen

ein bisschen ähnlich wie bei Django-Modellen, du schreibst halt hin,

Jochen

welche Attribute gibt es denn und welchen Typ

Jochen

haben die und, aber das kannst du halt auch kompliziert

Jochen

machen, kannst nicht nur

Jochen

Typefins verwenden, sondern halt auch noch

Jochen

Validatoren dafür schreiben und keine Ahnung,

Jochen

kannst ja dann relativ sicher sein, dass wenn die Daten

Jochen

halt von der Klasse

Jochen

gefressen werden, dann waren die

Jochen

im richtigen Format und ansonsten gibt es eine vernünftige

Jochen

Fehlermeldung und man muss sich da um nichts kümmern,

Jochen

außer das halt zu definieren, was man

Jochen

gerne hätte. Und alles andere

Jochen

macht halt die Magie da drin

Jochen

und das ist natürlich schon sehr schön.

Jochen

Und ja, ich glaube, es ist

Jochen

ein ganz interessanter Trend. Ich weiß auch nicht so genau,

Jochen

warum das jetzt irgendwie so,

Jochen

aber da passieren auch so mehrere Dinge

Jochen

gleichzeitig.

Jochen

Ich weiß nicht, habt ihr den,

Jochen

Marc hatte so

Jochen

einen Vortrag gehalten, ich weiß nicht genau,

Jochen

halt von,

Jochen

hier von der Python-Usergruppe Düsseldorf

Jochen

zur Zukunft von Python.

Jochen

Nee, hab ich nicht geguckt.

Jochen

Da war das generell...

Jochen

Verlink den mal.

Jochen

Verlink den mal.

Jochen

Würde ich gerne auch noch sehen.

Jochen

Ja, der war tatsächlich ganz interessant.

Jochen

Ein Thema vielleicht für die Zukunft von Python,

Jochen

ganz interessant,

Jochen

könnte dieser ganze Enterprise-Bereich sein.

Jochen

Weil, also der ist momentan halt total...

Johannes

Ja, auf der Pidentic-Webseite steht schon,

Johannes

dass Microsoft das benutzt, um das

Johannes

in Windows und Office einzubauen.

Johannes

Also das ist

Johannes

schon mal die richtige Richtung.

Jochen

Genau. Und also dieser ganze Enterprise-Bereich

Jochen

ist ja momentan total von Java dominiert,

Jochen

aber

Jochen

tatsächlich für viele Dinge braucht man

Jochen

gar nicht so diese, man muss halt nicht

Jochen

irgendwie alles erstmal mit so einem

Jochen

sehr Pattern, mit dem Gang-of-Four-Buch

Jochen

So was?

Jochen

Ja, es ist

Jochen

überraschend. Es ist erstaunlich und

Jochen

vielleicht auch ein bisschen traurig für Leute, die jetzt viel Zeit

Jochen

damit verbracht haben, das alles auswendig

Jochen

zu lernen. Aber vielleicht braucht man sie auch nicht

Jochen

die ganze Zeit dauernd. Aber was man vielleicht schon

Jochen

braucht, ist halt eine Art,

Jochen

solche Sachen

Jochen

hinschreiben zu können. Auch so Objekte

Jochen

oder Klassen, die dann halt irgendwie so Business-

Jochen

Geschichten machen. Und dafür,

Jochen

wenn du jetzt aber ganz viele Klassen hast

Jochen

und Sachen hinschreibst, dann ist das halt ziemlich

Jochen

nervtötend und öde.

Jochen

Und wenn man davon zu sehr angeödet

Jochen

ist, dann kann man halt irgendwie solche Sachen verwenden, die

Jochen

einen dann halt einen Großteil davon wegautomatisieren.

Jochen

Und deswegen ist das halt auch so ein interessanter Bereich,

Jochen

Microsoft macht da ja auch sowieso

Jochen

Dinge in die Richtung. Die haben ja auch jetzt ganz viele

Jochen

Python-Entwickler

Jochen

angestellt und

Jochen

es könnte sein, dass das halt

Jochen

tatsächlich auch so ein bisschen in die Richtung geht,

Jochen

weil das ja auch etwas ist, was

Jochen

Microsoft eigentlich ganz gut auskennt. Also ich bin gespannt.

Jochen

Es könnte sein, dass das alles so ein bisschen in die Richtung geht

Jochen

und ich finde es auch sehr interessant, was da gerade so

Jochen

passiert. Und es macht halt das Bauen von APIs

Jochen

deutlich einfacher, wenn man das halt quasi

Jochen

delegieren kann, den harten Teil davon

Jochen

an sowas.

Dominik

Ein ORM on the fly quasi. Ja, spannend.

Dominik

Ja, dann sind wir diesmal für heute am Ende, am Ende dieses Jahres auch mittlerweile und ja, also hört uns immer, wo ihr uns auch immer hört und so, bleibt uns gewogen und habt Spaß und Lust zum Einschlafen und zum Aufstehen und zum Autofahren, wo auch immer ihr hinwollt, im Homeoffice natürlich.

Dominik

Ja, Jochen, gehen wir noch ein bisschen cybern.

Dominik

Ja.

Dominik

Alles klar.

Dominik

Vielen Dank, Johannes, dass du wieder da warst.

Dominik

Ja, schön, dass ich dabei sein durfte.

Dominik

Ja, wir hören uns.

Dominik

Bis zum nächsten Mal.

Dominik

Bis zum nächsten Mal.

Dominik

Alles klar.

Dominik

Ciao.

Dominik

Ciao, tschüss.