WEBVTT

00:00:18.080 --> 00:00:23.040
<v Gast 1>Hallo und herzlich willkommen zu Binärgebitter Talk West Coast Edition.

00:00:23.520 --> 00:00:26.480
<v Gast 1>Ich bin der Flighty aus dem schönen Seattle.

00:00:26.640 --> 00:00:28.560
<v Gast 1>Bei mir ist unter anderem auch der Markt.

00:00:28.800 --> 00:00:31.440
<v Gast 2>Guten Tag aus dem schönen Menlo Park.

00:00:31.680 --> 00:00:33.120
<v Gast 3>Ja, ich bin der Lukas.

00:00:33.360 --> 00:00:35.520
<v Gast 3>Ich sende aus Stuttgart.

00:00:35.760 --> 00:00:39.520
<v Gast 3>Ist jetzt nicht so ganz die West Coast, aber ich hoffe, das wird vollziehen.

00:00:40.800 --> 00:00:41.680
<v Gast 2>Westdeutschland.

00:00:41.840 --> 00:00:47.200
<v Gast 2>Westdeutschland ist auch quasi eine Küste.

00:00:48.000 --> 00:00:49.600
<v Gast 3>Norddeutschland hat eine Norddeutsch-Küste.

00:00:50.480 --> 00:00:53.680
<v Gast 3>Aber das ist ja das Schöne, man ist immer im Westen von irgendwas.

00:00:56.080 --> 00:00:59.600
<v Gast 2>Ja, steht gerade die Neckar-Küste, würde ich behaupten.

00:01:00.880 --> 00:01:02.160
<v Gast 1>Könnte man so sagen, ja.

00:01:02.400 --> 00:01:04.240
<v Gast 1>Da gibt es bestimmt auch eine Küste im Westen.

00:01:04.880 --> 00:01:05.680
<v Gast 1>Stuttgarter Westen.

00:01:05.840 --> 00:01:06.480
<v Gast 1>Ja, richtig.

00:01:07.040 --> 00:01:07.760
<v Gast 1>Herrlich.

00:01:08.080 --> 00:01:13.440
<v Gast 1>Ja, zudem lebt der Lukas ja quasi in unserer Zeitzone und schläft zu komischen Zeiten,

00:01:13.520 --> 00:01:16.400
<v Gast 1>deswegen ist er jetzt halt auch wach, während uns alle unsere Hörer.

00:01:16.880 --> 00:01:21.520
<v Gast 1>Also ich schätze jetzt einfach mal über einen Kamm, ich behaupte jetzt einfach mal,

00:01:21.600 --> 00:01:23.200
<v Gast 1>alle unsere Hörer schlafen bereits.

00:01:24.960 --> 00:01:26.640
<v Unbekannt>Wobei es ist, wie viel?

00:01:26.880 --> 00:01:27.360
<v Unbekannt>Elf Uhr?

00:01:27.680 --> 00:01:28.320
<v Unbekannt>Ja, so ungefähr.

00:01:28.400 --> 00:01:30.400
<v Gast 3>Ich glaube, das ist schon noch der ein oder andere wach.

00:01:34.480 --> 00:01:38.800
<v Gast 2>Aber das Gute ist, dass nach elf ist, können wir jetzt ja auch über Schmuddelkram reden.

00:01:39.120 --> 00:01:44.880
<v Gast 2>Alles geht, ohne dass es ja die Landespodcast,

00:01:44.960 --> 00:01:48.160
<v Gast 2>äh, das Landespastministerium auflauert.

00:01:50.080 --> 00:01:52.240
<v Gast 1>Das Landespodcastministerium.

00:01:52.640 --> 00:01:55.280
<v Gast 1>Ich habe keine Ahnung, wie ich da jetzt eine Überleitung hinkriege,

00:01:55.360 --> 00:02:01.040
<v Gast 1>aber in so einem Schmuddelkram, wir hatten scheinbar auf der letzten Sendung auch irgendwie ein blödes Echo

00:02:01.040 --> 00:02:07.520
<v Gast 1>auf der Aufnahme, was ungünstigen Zuständen geschuldet ist.

00:02:07.680 --> 00:02:14.240
<v Gast 1>Und zwar aus irgendwelchen Gründen hat die Aufnahme von Marc auch noch teilweise meine

00:02:14.240 --> 00:02:18.720
<v Gast 1>Stimme mit aufgenommen und wir sind überhaupt nicht sicher, wie das technisch überhaupt möglich ist,

00:02:18.800 --> 00:02:19.760
<v Gast 1>aber es war so.

00:02:20.000 --> 00:02:24.640
<v Gast 1>Und wir hatten noch ein zweites Problem, dass unsere Tonspuren dermaßen auseinandergelaufen sind,

00:02:24.800 --> 00:02:29.600
<v Gast 1>dass nach dieser über dreistündigen Sendung die eine Tonspur,

00:02:29.680 --> 00:02:35.520
<v Gast 1>ich glaube, sechs oder sieben Sekunden länger war als die andere, was das ganze Schneiden dann mehr oder

00:02:35.520 --> 00:02:39.200
<v Gast 1>weniger sehr anstrengend gemacht hat und sehr lange gedauert hat.

00:02:39.440 --> 00:02:45.680
<v Gast 1>Wir hatten dann die Hoffnung, dass dieses Orthonic Crossgate-Feature das Echo größtenteils eliminieren kann,

00:02:45.760 --> 00:02:47.520
<v Gast 1>was es scheinbar auch getan hat.

00:02:47.920 --> 00:02:52.960
<v Gast 1>Wir haben trotzdem noch Feedback bekommen, dass es irgendwie teilweise ein Echo gibt.

00:02:53.120 --> 00:02:55.760
<v Gast 1>Wir entschuldigen uns hierfür damit dafür.

00:02:57.760 --> 00:02:59.440
<v Gast 1>Wir versuchen unser Setup irgendwie ein bisschen.

00:02:59.760 --> 00:03:04.080
<v Gast 1>Ja, wir garantieren nichts, aber wir versuchen daran zu arbeiten, dass es besser wird.

00:03:04.240 --> 00:03:04.640
<v Gast 1>Richtig.

00:03:05.120 --> 00:03:10.880
<v Gast 2>Wir werden dann sehen, welche schrecklichen Audio-Artefakte in dieser Folge da sein werden.

00:03:11.040 --> 00:03:15.360
<v Gast 2>Es ist quasi wie ein Weihnachtskalender, nur dass statt Schokolade Audio-Artefakte gibt.

00:03:15.680 --> 00:03:16.400
<v Gast 2>Ja, natürlich.

00:03:16.480 --> 00:03:21.680
<v Gast 1>Also ich meine, man weiß, vielleicht wollen die Hörer auch nicht unbedingt genau wissen, was sie bekommen.

00:03:21.760 --> 00:03:25.200
<v Gast 1>Vielleicht mögen die auch, das sind nämlich Artisanal Artifacts.

00:03:25.520 --> 00:03:28.160
<v Gast 2>Richtig, das ist ein handgeklöppelter Podcast.

00:03:28.640 --> 00:03:32.960
<v Gast 1>Ja, genau, das ist handgekloppelt, äh, handgekloppelte Bits und darum mögen.

00:03:33.200 --> 00:03:34.960
<v Gast 1>Vielleicht mögen das ja die Hörer auch.

00:03:35.360 --> 00:03:37.760
<v Gast 1>Solltet ihr es mögen, könnt ihr es uns ja wissen lassen.

00:03:40.000 --> 00:03:46.480
<v Gast 1>Ja, ansonsten haben wir jetzt gar nicht so viel und könnten eigentlich direkt ins Thema

00:03:46.480 --> 00:03:47.440
<v Gast 1>einspringen.

00:03:48.080 --> 00:03:49.440
<v Unbekannt>Oho, ein Thema.

00:03:50.080 --> 00:03:54.000
<v Gast 1>Ja, also wir haben ausnahmsweise haben wir, keine Ahnung, ich weiß jetzt gar nicht,

00:03:54.080 --> 00:03:57.120
<v Gast 1>ob ausnahmsweise überhaupt der richtige Ausdruck ist, weil das erst die zweite Sendung ist,

00:03:57.200 --> 00:03:58.240
<v Gast 1>die wir hier so machen.

00:03:58.720 --> 00:04:01.600
<v Gast 1>Wir haben ein Thema gefunden, über das wir reden könnten.

00:04:01.680 --> 00:04:04.400
<v Gast 1>Und darum haben wir unter anderem auch den Lukas eingeladen.

00:04:04.480 --> 00:04:06.080
<v Gast 1>Es geht nämlich um Code-Reviews.

00:04:08.240 --> 00:04:08.960
<v Gast 1>Richtig, Lukas.

00:04:09.840 --> 00:04:11.440
<v Gast 3>Review ist sogar den Fly-Design-Code.

00:04:11.520 --> 00:04:14.560
<v Gast 3>Das ist einer der Hauptgründe, warum ich jetzt hier bin, um einfach euch mal zu erzählen,

00:04:14.640 --> 00:04:16.560
<v Gast 3>was für schlimm Code der FlyDy schreibt.

00:04:16.640 --> 00:04:21.600
<v Gast 3>Nee, das ist tatsächlich nicht so ganz wahr, aber tatsächlich sind der FlyDy und ich ja Kollegen und deswegen

00:04:21.600 --> 00:04:24.480
<v Gast 3>reviewen wir unseren Code gegenseitig.

00:04:24.640 --> 00:04:31.360
<v Gast 3>Und irgendwie haben wir in den letzten Wochen immer öfter anders

00:04:31.360 --> 00:04:36.560
<v Gast 3>verspürt, über Code-Review an sich zu sprechen und irgendwie,

00:04:36.880 --> 00:04:43.520
<v Gast 3>weil es da bei uns halt firmen intern so größere und kleinere Problemchen gab und das war irgendwie ein ganz

00:04:43.520 --> 00:04:47.600
<v Gast 3>guter Grund, da mal so auf einem bisschen einem größeren Level drüber nachzudenken.

00:04:47.680 --> 00:04:52.880
<v Gast 3>Und dann, wie das halt so ist, wenn man mal anfängt, dann läuft es irgendwie und ja.

00:04:54.480 --> 00:04:56.080
<v Gast 3>Es ist leicht eskaliert.

00:04:58.000 --> 00:05:04.800
<v Gast 1>Also das ist im positiven Sinne eskaliert in der Form von, wir wollten mal eine kurze Guideline schreiben für

00:05:05.760 --> 00:05:11.120
<v Gast 1>was können denn Leute tun, damit ihr Code schneller durchs Review kommt und das ist dann irgendwie so ein

00:05:11.120 --> 00:05:16.880
<v Gast 1>2300-Worte-Text geworden, der so von vorne bis hinten mal versucht

00:05:17.360 --> 00:05:20.960
<v Gast 1>darzustellen, wie denn ein gutes Review auszusehen hat.

00:05:21.760 --> 00:05:27.040
<v Gast 1>Ich hoffe, ich kann den Text, der da daraus entstanden ist, irgendwann mal hier verlinken.

00:05:27.120 --> 00:05:31.280
<v Gast 1>Ich muss das erst nochmal mit Management abklären, da das während der Arbeitszeit passiert ist,

00:05:31.360 --> 00:05:33.280
<v Gast 1>ob ich das irgendwo mal veröffentlichen darf.

00:05:34.000 --> 00:05:39.680
<v Gast 1>Ansonsten können wir halt einfach mal so über unsere Dinge reden, die uns dabei aufgefallen sind oder Dinge,

00:05:39.840 --> 00:05:46.160
<v Gast 1>Problemchen, die uns da so in unserem Arbeitsalltag begegnet sind und so weiter und so fort.

00:05:46.400 --> 00:05:52.160
<v Gast 2>Kann einer von euch von euch einfach mal erklären, also wir haben ja unsere Hörer sind ja zur Hälfte Leute,

00:05:52.240 --> 00:05:57.760
<v Gast 2>die Haskell programmieren, wo du ja keine Code-Views brauchst, weil der Compiler das ja alles regelt,

00:05:57.840 --> 00:06:01.680
<v Gast 2>und zur anderen Hälfte OpenSSL-Entwickler, die auch keine Code-Views machen,

00:06:02.480 --> 00:06:03.280
<v Gast 2>aus Gründen.

00:06:03.680 --> 00:06:04.560
<v Unbekannt>Aus Sicherheitsgründen.

00:06:07.360 --> 00:06:10.720
<v Gast 2>Richtig, es ist geheim, deswegen darf man da auch nicht so drauf schauen.

00:06:10.800 --> 00:06:14.000
<v Gast 2>Nee, kann einer von euch mal erklären, was denn ein Code Review ist?

00:06:15.920 --> 00:06:20.080
<v Gast 3>Ja, ich weiß nicht, ob ich das jetzt so aus dem Stand definieren kann,

00:06:20.320 --> 00:06:25.600
<v Gast 3>aber also wir so als Softwareentwickler, wir haben ja als Hauptaufgabe und das,

00:06:25.760 --> 00:06:31.520
<v Gast 3>wofür wir bezahlt werden, ist zu einem großen Teil Source-Code zu produzieren.

00:06:31.920 --> 00:06:38.480
<v Gast 3>Und weil auch der gemeine Softwareentwickler nun leider nicht perfekt und fehlerfrei ist,

00:06:39.760 --> 00:06:46.480
<v Gast 3>macht es Sinn, diesen Code nicht einfach so in ein Produkt einzufügen und in die Welt

00:06:46.480 --> 00:06:51.600
<v Gast 3>hinaus zu schicken, sondern da sollte vielleicht nochmal jemand vorher drüber gucken.

00:06:51.920 --> 00:06:57.360
<v Gast 3>Und diesen Prozess, den kann man jetzt entweder so locker flockig beschreiben,

00:06:57.520 --> 00:07:02.400
<v Gast 3>wie ich das mache, oder man definiert den eben ein bisschen strukturierter vielleicht.

00:07:02.640 --> 00:07:09.440
<v Gast 3>Und da gibt es, glaube ich, so in der Softwareentwicklungsbranche verschiedenste

00:07:09.440 --> 00:07:14.080
<v Gast 3>Formen, Farben und Ausprägungen, wie Code-Review eigentlich genau aussieht.

00:07:14.240 --> 00:07:18.480
<v Gast 3>Aber ich würde sagen, so vom Grundprinzip ist es, jemand schreibt Code,

00:07:18.800 --> 00:07:25.120
<v Gast 3>tut den irgendwo hin, wo ihn andere Leute sehen können und die anderen Leute gucken ihn an und sagen Daumen

00:07:25.120 --> 00:07:28.160
<v Gast 3>hoch oder Daumen runter oder hier muss man nochmal.

00:07:29.600 --> 00:07:36.480
<v Gast 1>Ja, also im Endeffekt, ich würde mal ganz, ohne dass man da jetzt auf irgendwelche speziellen Tools

00:07:36.480 --> 00:07:40.720
<v Gast 1>eingeht oder dass man, also ganz generisch gesehen ist es halt,

00:07:41.280 --> 00:07:47.040
<v Gast 1>man hat bestimmte Features, bestimmte Requirements, die man implementieren will,

00:07:48.080 --> 00:07:54.960
<v Gast 1>und man gibt diese Änderungen in irgendeiner Form und an seine Kollegen weiter,

00:07:55.120 --> 00:08:00.400
<v Gast 1>damit sie sich diese Änderungen, die man da implementiert hat, mal angucken,

00:08:00.960 --> 00:08:05.520
<v Gast 1>um bestimmte Dinge, wie soll man sagen, bestimmte Dinge damit zu tun.

00:08:05.680 --> 00:08:10.480
<v Gast 1>Also ich meine, da gibt es halt so den Faktor, man will vielleicht auch Wissen weitergeben.

00:08:10.640 --> 00:08:17.040
<v Gast 1>Sowohl über wie soll denn die Software funktionieren oder was für ein Problem versucht man denn da gerade zu

00:08:17.040 --> 00:08:22.240
<v Gast 1>lösen, als auch so Sachen wie, sind Coding-Standards eingehalten worden?

00:08:23.200 --> 00:08:30.160
<v Gast 1>Ist die Formatierung richtig, passt es in die restliche Architektur von dem Projekt und

00:08:30.160 --> 00:08:31.200
<v Gast 1>so weiter und so fort.

00:08:31.440 --> 00:08:35.840
<v Gast 1>Vielleicht auch, dass jemand noch so ein bisschen den Code im Kopf mit durchdenkt und dann irgendwelche

00:08:35.840 --> 00:08:40.800
<v Gast 1>Fehlerfälle aufzeigt, die der Autor noch nicht bedacht hat und so weiter und so fort.

00:08:40.960 --> 00:08:45.920
<v Gast 3>Ja, also ich finde, da stellen sich schon direkt so einige interessante Fragen,

00:08:46.000 --> 00:08:52.800
<v Gast 3>weil ich würde jetzt zum Beispiel behaupten, dass aus der Sicht eines Arbeitgebers oder einer Firma oder

00:08:52.960 --> 00:08:59.600
<v Gast 3>es kann ja auch irgendwie ein Hobbyprojekt sein, die häufigste oder so die

00:08:59.600 --> 00:09:04.320
<v Gast 3>Ursprungsmotivation schon ist, möglichst wenig Fehler zu haben.

00:09:04.800 --> 00:09:10.880
<v Gast 3>Dass es dann schon nochmal jede Menge andere mehr oder weniger Nebeneffekte gibt,

00:09:11.760 --> 00:09:15.360
<v Gast 3>die sowohl für denjenigen, der den Code geschrieben hat, als auch für den,

00:09:15.680 --> 00:09:19.040
<v Gast 3>der ihn dann letztlich reviewed, positiv sind.

00:09:19.840 --> 00:09:24.480
<v Gast 3>Ist irgendwie ein Nebeneffekt, aber ich glaube, so ganz ursprünglich ist die Idee schon,

00:09:24.720 --> 00:09:30.320
<v Gast 3>man will möglichst verhindern, dass fehlerhafter Code in ein Softwareprodukt wandert.

00:09:30.480 --> 00:09:34.560
<v Gast 1>Ein anderer interessanter Aspekt, der mir gerade noch eingefallen ist, wäre der Bus-Faktor.

00:09:34.720 --> 00:09:38.320
<v Gast 1>Also das heißt, da gibt es auch als Truck-Faktor oder als andere Sachen,

00:09:38.640 --> 00:09:44.480
<v Gast 1>das ist so mehr oder weniger definiert, als wie viele Leute im Team können vom Bus überfahren werden,

00:09:44.560 --> 00:09:49.120
<v Gast 1>ohne dass das Projekt komplett den Bach runtergeht, weil sie die einzigen waren,

00:09:49.200 --> 00:09:50.480
<v Gast 1>die wissen, was los ist.

00:09:50.640 --> 00:09:57.040
<v Gast 1>Und ich finde, da ist bei so Code-Reviews auch Wissenstransfer ein sehr interessanter Aspekt,

00:09:57.120 --> 00:10:01.760
<v Gast 1>dass man halt sagt, okay, indem Leute meinen Code-Reviewen,

00:10:02.080 --> 00:10:08.800
<v Gast 1>lernen sie mehr über die Funktionsweise des Codes und was ich dann versuche zu machen und

00:10:08.800 --> 00:10:14.160
<v Gast 1>wissen ungefähr auch, wo sie gucken müssen, wenn sie bestimmte Sachen suchen.

00:10:15.120 --> 00:10:20.640
<v Gast 1>Und sagen wir mal, das hilft ja auch im Zweifelsfall mir, wenn ich mal im Urlaub bin oder wenn ich mal

00:10:20.640 --> 00:10:26.080
<v Gast 1>irgendwie, keine Ahnung, aus irgendwelchen Gründen gerade nicht erreichbar bin und jemand versucht,

00:10:26.160 --> 00:10:30.960
<v Gast 1>meinen Code zu debuggen, dann ist es halt im Zweifelsfall im Zweifelsfall auch von Vorteil,

00:10:31.200 --> 00:10:34.560
<v Gast 1>wenn mehrere Leute Bescheid wissen, weil ich will vielleicht jetzt nicht,

00:10:34.640 --> 00:10:38.320
<v Gast 1>wenn ich gerade im Urlaub am Strand lieg, irgendwie angerufen werden,

00:10:38.400 --> 00:10:43.440
<v Gast 1>ey, kannst du mir mal beim Debuggen helfen, weil ich weiß nicht, wo du das und das machst.

00:10:44.480 --> 00:10:48.400
<v Gast 2>Ich denke auch, je nachdem, wie ein Softwareprojekt Release-Zyklen hat,

00:10:48.480 --> 00:10:52.560
<v Gast 2>also ob es entweder continuous ist und das Zeug einfach so rausgeht und auch deployed wird,

00:10:52.720 --> 00:10:57.600
<v Gast 2>oder ob man halt irgendwie zweimal pro Woche deployt und dann mehrere Commits zusammen macht.

00:10:58.240 --> 00:11:03.280
<v Gast 2>Es hilft Leuten auch, gerade wenn sie automatisiert so irgendwelchen Code-Reviews hinzugefügt werden,

00:11:03.680 --> 00:11:09.680
<v Gast 2>hilft ihnen auch zu wissen, was denn innerhalb der letzten drei, vier Tage so an Neuerungen hinzugekommen ist,

00:11:09.760 --> 00:11:13.840
<v Gast 2>wenn ein Release fehlschlägt, dass die eine grobe Übersicht haben, ja,

00:11:13.920 --> 00:11:15.600
<v Gast 2>wer hat denn jetzt alles committet?

00:11:15.840 --> 00:11:20.880
<v Gast 2>Und eventuell auch eine, in einem Code-Review ist ja, also normalerweise der Code,

00:11:20.960 --> 00:11:25.120
<v Gast 2>das DIF selber, aber normalerweise ist bei den meisten Tools auch noch eine Erklärung dabei,

00:11:25.200 --> 00:11:28.240
<v Gast 2>wo du irgendwie die Description reinstecken musst, wo du sagst, ja,

00:11:28.560 --> 00:11:34.720
<v Gast 2>wir fügen das jetzt ein, damit XY schneller wird oder weil es Probleme gab mit,

00:11:34.800 --> 00:11:38.320
<v Gast 2>keine Ahnung, System Z müssen wir das jetzt so machen.

00:11:38.640 --> 00:11:45.600
<v Gast 2>Du bekommst halt einfach auch automatisch Kontext um deine Commits herum hinzu und wenn es dann schief geht,

00:11:45.760 --> 00:11:51.200
<v Gast 2>dann ist die Chance, dass du einfach kurz drüber lest, wie das denn getestet wurde und was denn der Sinn

00:11:51.200 --> 00:11:54.480
<v Gast 2>dahinter ist, ist wesentlich einfacher, wenn die Leute gezwungen werden,

00:11:54.640 --> 00:11:59.200
<v Gast 2>sowas zu schreiben, anstatt dass es nur in der Commit-Message eventuell so halbweg drin steht.

00:11:59.600 --> 00:12:06.560
<v Gast 1>Ja, also ich glaube, wenn man das richtig macht, dann kann man halt auch später Codereviews wieder mit

00:12:06.560 --> 00:12:12.880
<v Gast 1>Releases korrelieren und dann im Zweifelsfall einfach über die Liste der akzeptierten

00:12:12.880 --> 00:12:17.120
<v Gast 1>Codereviews drüber gucken, um zu schauen, was hat sich denn da wo geändert,

00:12:17.360 --> 00:12:21.280
<v Gast 1>ohne ein komplettes Diff des kompletten Releases angucken zu müssen.

00:12:21.360 --> 00:12:23.760
<v Gast 1>Also ich glaube, das ist halt auch ein wichtiger Faktor, dass wenn man sagt,

00:12:23.840 --> 00:12:28.560
<v Gast 1>okay, ich habe jetzt gerade ein neues Release veröffentlicht und es gibt plötzlich irgendwelche Probleme,

00:12:28.800 --> 00:12:33.680
<v Gast 1>dann kann ich mal auf einem High-Level, ohne mir den kompletten Code angucken zu müssen,

00:12:34.080 --> 00:12:39.760
<v Gast 1>kann ich da auch mal einfach drüber gucken, um zu schauen, okay, wo wurde denn was gebaut und

00:12:40.720 --> 00:12:45.680
<v Gast 1>welche Änderung könnte denn dafür verantwortlich sein, im Gegensatz dazu,

00:12:45.760 --> 00:12:48.720
<v Gast 1>dass ich dann vielleicht tausende von Zeilen von Code, der sich geändert hat,

00:12:48.800 --> 00:12:49.360
<v Gast 1>reviewen muss.

00:12:49.520 --> 00:12:54.480
<v Gast 3>Ja, und gleichzeitig siehst du dann natürlich auch direkt, wer sich mit diesem Stück Code vielleicht schon mal

00:12:54.480 --> 00:13:01.280
<v Gast 3>auseinandergesetzt hat und eventuell auch irgendwie, was für Gedanken zu bestimmten Aspekten und

00:13:01.280 --> 00:13:02.640
<v Gast 3>so eingeflossen sind.

00:13:02.960 --> 00:13:07.600
<v Gast 3>Es gibt, wenn man das quasi so nachträglich anschaut, auf jeden Fall direkt nochmal Kontext.

00:13:07.840 --> 00:13:13.040
<v Gast 1>Also das ist, würde ich sagen, sind so die wichtigsten Punkte, warum man das macht.

00:13:13.680 --> 00:13:20.160
<v Gast 1>Ich würde sagen, okay, um Coding-Standards einzuhalten, braucht man halt auch noch andere Voraussetzungen oder

00:13:20.160 --> 00:13:24.160
<v Gast 1>für bestimmte Voraussetzungen, die wir jetzt gerade, für bestimmte Dinge,

00:13:24.240 --> 00:13:27.120
<v Gast 1>die wir gerade erzählt haben, braucht man auch noch andere Voraussetzungen.

00:13:27.280 --> 00:13:30.080
<v Gast 1>Zum Beispiel, wenn man jetzt irgendwelche Coding-Standards einhalten möchte,

00:13:30.160 --> 00:13:34.400
<v Gast 1>dann sollten die halt auch irgendwo mal vorhanden und irgendwie dokumentiert sein,

00:13:34.560 --> 00:13:41.200
<v Gast 1>dass man sagt, okay, wir legen Wert auf das und das und unsere Architektur sieht so und so aus und unser Code

00:13:41.200 --> 00:13:43.040
<v Gast 1>soll so und so formatiert werden.

00:13:43.280 --> 00:13:46.800
<v Gast 1>Damit das überhaupt irgendwie funktionieren kann, muss man dann halt auch sagen,

00:13:46.880 --> 00:13:53.280
<v Gast 1>okay, es gibt eine Kommunikation im Voraus, wie denn so die Erwartungshaltung aussieht,

00:13:53.360 --> 00:13:56.160
<v Gast 1>weil ansonsten ist es halt auch ein bisschen schwierig, würde ich sagen.

00:13:56.400 --> 00:14:01.280
<v Gast 3>Ja, es ist halt quasi aus Maintainer-Sicht derjenige,

00:14:01.360 --> 00:14:07.280
<v Gast 3>dem das Projekt sozusagen gehört, irgendwie ein bisschen arschig im Nachhinein,

00:14:07.360 --> 00:14:11.200
<v Gast 3>wenn jemand anderes da Code einreichen möchte, dann zu sagen, ja, nee,

00:14:11.280 --> 00:14:14.880
<v Gast 3>nee, mach das jetzt nochmal neu, weil wir erwarten jetzt hier, dass,

00:14:15.680 --> 00:14:22.400
<v Gast 3>weiß ich, wir wollen unbedingt, dass der jedes Zeichen irgendwie in einer Teile ist und keine

00:14:22.480 --> 00:14:27.280
<v Gast 3>Ahnung, irgendwelche absurden Regeln durchsetzen, ist halt irgendwie kacke.

00:14:27.440 --> 00:14:34.000
<v Gast 3>Es wäre schon besser, wenn jemand, der da dazu beitragen möchte, vielleicht bevor er anfängt Code zu

00:14:34.000 --> 00:14:40.720
<v Gast 3>schreiben, weiß, was von ihm erwartet wird und was letztlich auch potenziell später im Code-Review bemängelt

00:14:40.720 --> 00:14:41.360
<v Gast 3>werden könnte.

00:14:41.680 --> 00:14:46.480
<v Gast 2>Ja, und normalerweise also gerade sowas kann halt auch sehr leicht automatisiert werden,

00:14:46.560 --> 00:14:52.480
<v Gast 2>dass der Maintainer gar nicht erst zu diesem halbwertigen Code seine Zeit verbringt,

00:14:52.560 --> 00:14:56.720
<v Gast 2>sich da reinzulesen und halt jede zwölfte Zeile irgendwie anklickt und sagt,

00:14:56.880 --> 00:15:02.320
<v Gast 2>hier 80 Zeichen pro Zeile bitte oder ach, hier benutzt doch, keine Ahnung.

00:15:02.560 --> 00:15:06.080
<v Gast 2>Versuch mal nicht so auf dieses Attribut zuzugreifen, sondern anders.

00:15:06.480 --> 00:15:09.680
<v Gast 2>Da gibt es dann auch viel Tooling dafür, dass das halt automatisiert auch,

00:15:09.840 --> 00:15:15.360
<v Gast 2>jeweils in welchem Tool man das auch immer anschaut, sich automatisiert darüber beschwert und dem Antenner

00:15:15.360 --> 00:15:16.640
<v Gast 2>dann die Arbeit abnimmt.

00:15:17.600 --> 00:15:19.440
<v Gast 3>Ja, das hat direkt mehrere Aspekte.

00:15:20.080 --> 00:15:26.000
<v Gast 3>Du kannst einerseits sind Menschen irgendwie halt super schlecht, so kleine Dinge wie jetzt irgendwie,

00:15:26.160 --> 00:15:29.760
<v Gast 3>weiß nicht, Leerzeichen oder so zu finden und zu sehen.

00:15:30.160 --> 00:15:36.960
<v Gast 3>Und andererseits ist es für viel einfacher, von irgendwie einem Computer

00:15:37.200 --> 00:15:41.760
<v Gast 3>angemeckert zu werden, als halt von einem Menschen, weil es direkt irgendwie so zwischenmenschliche Spannungen

00:15:41.760 --> 00:15:42.240
<v Gast 3>rausnimmt.

00:15:42.320 --> 00:15:45.440
<v Gast 3>Das ist halt der blöde Roboter und von dem kann man auch genervt sein,

00:15:45.520 --> 00:15:49.520
<v Gast 3>wenn der einem dann irgendwie sagt, nee, ist jetzt rot, du darfst nicht vorbei,

00:15:49.680 --> 00:15:52.320
<v Gast 3>weil mach mal hier noch irgendwie die Leerzeile weg.

00:15:52.560 --> 00:15:57.600
<v Gast 1>Auf der anderen Seite muss man halt auch schon sagen, okay, Menschen sind dann öfters auch in der Lage,

00:15:57.760 --> 00:16:01.760
<v Gast 1>diese Indirektion zu durchbrechen und dann den Maintainer zu hassen,

00:16:02.080 --> 00:16:06.720
<v Gast 1>der sein Tool zu scharf konfiguriert hat.

00:16:07.040 --> 00:16:08.160
<v Gast 1>Kann auch passieren.

00:16:08.240 --> 00:16:14.000
<v Gast 1>Also ich glaube, da muss man dann halt so ein bisschen abwägen, inwiefern man dann halt automatisiert Regeln

00:16:14.560 --> 00:16:16.080
<v Gast 1>enforcement oder nicht.

00:16:16.800 --> 00:16:21.760
<v Gast 1>Ich glaube, wo wir gerade bei Tools waren, vielleicht könnte man noch da einen Schritt zurückgehen und mal zu

00:16:21.760 --> 00:16:24.400
<v Gast 1>Tools fürs Code-Review an sich kommen.

00:16:25.040 --> 00:16:27.440
<v Gast 1>Also was kann man dann denn so benutzen?

00:16:28.640 --> 00:16:34.160
<v Gast 1>Also bei uns in der Firma, wir benutzen Pull Requests, was man so aus GitHub kennt,

00:16:34.320 --> 00:16:40.560
<v Gast 1>was mittlerweile auch viele andere Plattformen anbieten, funktioniert letzten Endes so,

00:16:40.720 --> 00:16:46.720
<v Gast 1>dass man in Git eine Feature-Branch macht, indem man kontinuierlich seine Änderungen committet,

00:16:47.280 --> 00:16:54.240
<v Gast 1>die irgendwann als Pull-Request gegen einen bestimmten Branch einreicht und

00:16:55.200 --> 00:17:01.840
<v Gast 1>da zu dem Zeitpunkt findet dann ein Code-Review statt und wenn dann Leute dieses Codereview

00:17:01.920 --> 00:17:08.000
<v Gast 1>oder diese Änderung akzeptieren, dann werden die in den entsprechenden Branch,

00:17:08.080 --> 00:17:10.960
<v Gast 1>gegen den man da den Pull-Request aufgemacht hat, gemercht.

00:17:12.400 --> 00:17:16.240
<v Gast 1>Das war jetzt wahrscheinlich sehr viel Git-Jargon, was ich da benutzt habe.

00:17:16.320 --> 00:17:18.480
<v Gast 1>Ich hoffe, man versteht das einigermaßen.

00:17:18.720 --> 00:17:20.160
<v Unbekannt>Ja, ich denke schon.

00:17:21.600 --> 00:17:23.360
<v Gast 2>Facebook benutzt Fabricator.

00:17:23.440 --> 00:17:29.680
<v Gast 2>Also Fabricator ist Open Source, aber wurde damals bei Facebook entwickelt und da

00:17:30.320 --> 00:17:36.320
<v Gast 2>Diffusion ist auch ein wunderbares Code-Review-Tool, das auch die Möglichkeit bietet,

00:17:36.480 --> 00:17:37.920
<v Gast 2>eigene Plugins einzubinden.

00:17:38.000 --> 00:17:42.560
<v Gast 2>Also wenn ihr euer irgendwie Python in PEP 8 haben wollt,

00:17:42.640 --> 00:17:45.760
<v Gast 2>dann gibt es da auch die Möglichkeit, Linter vorher laufen zu lassen,

00:17:45.840 --> 00:17:51.200
<v Gast 2>die dann quasi auf jede Zeile kommentieren, die da problematisch ist.

00:17:51.520 --> 00:17:58.320
<v Gast 2>Gibt es für Pull Requests bei GitHub auch, aber da sind es meist irgendwelche Services,

00:17:58.800 --> 00:18:03.920
<v Gast 2>CodeHound war, glaub einer, können wir mal verlinken, der dann quasi für dich kommentiert,

00:18:04.000 --> 00:18:07.120
<v Gast 2>jede Zeile, wo er sagt, hier, das ist aber falsch.

00:18:07.360 --> 00:18:13.840
<v Gast 1>Ja, es gibt mehrere Tools, die so Sachen automatisiert können für jetzt speziell GitHub.

00:18:13.920 --> 00:18:17.840
<v Gast 1>Es gab auch noch solche Dinge wie Code Climate, was glaube ich auch so ähnliche Sachen macht.

00:18:17.920 --> 00:18:24.560
<v Gast 1>Die haben so eine Suite von automatisierten Codemetriken, die man gegen seine Pull-Requests laufen

00:18:24.560 --> 00:18:25.360
<v Gast 1>lassen kann.

00:18:26.160 --> 00:18:31.120
<v Gast 1>Es gibt auch Tools, die so Sachen wie Test Coverage auswerten, dass man zum Beispiel sagt,

00:18:31.280 --> 00:18:36.640
<v Gast 1>okay, ich möchte jetzt nicht, dass durch Änderungen, die ich in meinen Code mit reinnehme,

00:18:36.720 --> 00:18:43.600
<v Gast 1>die Test-Coverage sinkt, was letzten Endes bedeutet, da ist Code in den Änderungen

00:18:43.600 --> 00:18:47.200
<v Gast 1>mit drin, der ungetestet ist und der keine automatisierten Tests hat.

00:18:48.320 --> 00:18:52.080
<v Gast 1>Ich glaube, das ist dann halt die Sache von den entsprechenden Maintainern,

00:18:52.320 --> 00:18:54.400
<v Gast 1>ob die sowas haben wollen oder nicht.

00:18:54.480 --> 00:18:59.920
<v Gast 1>Also es gibt da ein Ökosystem um dieses ganze Pull-Request-Zeug außenrum.

00:19:00.800 --> 00:19:04.000
<v Gast 1>Es gibt sehr viele Open Source Tools, die man sich installieren kann.

00:19:07.120 --> 00:19:11.520
<v Gast 2>Ich würde auch sagen, es gibt so zwei Ebenen von diesen Pull-Requests.

00:19:11.680 --> 00:19:18.640
<v Gast 2>Also GitHub ist so die Barebones-Ebene, dass irgendjemand macht in einem Projekt einen Pull-Request auf und

00:19:18.640 --> 00:19:22.640
<v Gast 2>dann werden halt alle benachrichtigt, die da irgendwas mit zu tun haben,

00:19:22.960 --> 00:19:27.680
<v Gast 2>die in diesem Repo Administrator sind oder sich da irgendwie subscribed haben.

00:19:28.080 --> 00:19:33.120
<v Gast 2>Wenn du gerade in größeren Firmen, keine Ahnung, Google, Facebook, Microsoft,

00:19:33.440 --> 00:19:36.000
<v Gast 2>gibt es dann meist noch ein bisschen mehr Tooling drumherum.

00:19:36.080 --> 00:19:40.240
<v Gast 2>Also gerade Fabricator hat einige Systeme, wie zum Beispiel Herald, wo du

00:19:40.730 --> 00:19:44.810
<v Gast 2>dich quasi subscribe kannst, also du sagst dann, ich will entweder für jedes Mal,

00:19:44.970 --> 00:19:48.970
<v Gast 2>wenn eine dieses Repo ein Code-Review aufstellt, will ich mich automatisch hinzufügen.

00:19:49.130 --> 00:19:52.410
<v Gast 2>Du kannst aber auch per irgendwie Racket Expression Matching sagen,

00:19:52.570 --> 00:19:56.490
<v Gast 2>hey, mich interessiert nur diese eine Datei, oder du kannst sagen, hey,

00:19:57.050 --> 00:20:02.490
<v Gast 2>wenn jemand irgendwie, keine Ahnung, du baust ein neues Tool, irgendwie einen ORM,

00:20:02.570 --> 00:20:06.170
<v Gast 2>keine Ahnung, mapst da deine Datenbank, dann kannst du sagen, jedes Mal,

00:20:06.250 --> 00:20:11.450
<v Gast 2>wenn einen Review macht, das diesen Klassennamen beinhaltet, wenn den einer neu hinzufügt,

00:20:11.530 --> 00:20:12.890
<v Gast 2>würde ich gerne drüber schauen.

00:20:13.370 --> 00:20:18.650
<v Gast 2>Also da helfen Code-Veviews auch gewissermaßen deine Aufmerksamkeit zu skalieren,

00:20:18.730 --> 00:20:22.330
<v Gast 2>dass du nicht jedes Code-Review in der kompletten Codebase dir durchlesen musst,

00:20:22.490 --> 00:20:26.730
<v Gast 2>sondern dass dann halt automatisch, hey, wenn einer diese Klasse anfasst,

00:20:26.890 --> 00:20:32.250
<v Gast 2>das ist recht neu, da will ich drüber Bescheid wissen, kannst du dich quasi automatisch da hinzufügen.

00:20:32.410 --> 00:20:37.930
<v Gast 2>Und andersrum geht es auch, dass du dir, dass du nicht nur automatisch hinzugefügt wirst,

00:20:38.010 --> 00:20:43.290
<v Gast 2>dass du auch sagen kannst, hey, ich bin ein Owner, also du sagst hier für dieses Projekt,

00:20:43.450 --> 00:20:48.810
<v Gast 2>da muss ich oder einer von den anderen fünf Leuten oder eine Gruppe ihr OK geben,

00:20:48.890 --> 00:20:50.250
<v Gast 2>bevor das committed werden kann.

00:20:50.330 --> 00:20:55.770
<v Gast 2>Also das Code-Review bietet in dem Fall auch ein bisschen, ja,

00:20:56.730 --> 00:21:02.650
<v Gast 2>diese Komponente von Ownership von Code, dass du sagst, ja, theoretisch kann jeder überall Code modifizieren,

00:21:02.970 --> 00:21:07.290
<v Gast 2>aber gerade in diesem Bereich, weil es eventuell direkt automatisch ins Deployment geht,

00:21:07.450 --> 00:21:10.970
<v Gast 2>verlangen wir, dass unser Team da das letzte Ja oder Nein drüber hat.

00:21:11.130 --> 00:21:17.450
<v Gast 2>Also das ist ja, geht dann quasi über dieses pure das Div anschauen und kommentieren noch ein oder zwei

00:21:17.450 --> 00:21:24.410
<v Gast 2>Schritte weiter und kann da quasi so eine Engineering Organization auch skalieren lassen.

00:21:24.730 --> 00:21:26.170
<v Unbekannt>Was ganz cool ist.

00:21:27.050 --> 00:21:31.530
<v Gast 1>Das ist ein interessanter Punkt, den du da gerade ansprichst, weil so wie es sich das für dich anhört,

00:21:31.690 --> 00:21:36.890
<v Gast 1>für mich gerade anhört oder so wie ich es auch über Facebook als Engineering-Organisation oft gehört habe,

00:21:37.050 --> 00:21:41.530
<v Gast 1>benutzen die ein großes Repository für sehr, sehr viele Projekte.

00:21:42.090 --> 00:21:45.050
<v Gast 1>Ich weiß jetzt nicht, ob du das kommentieren darfst oder nicht.

00:21:46.090 --> 00:21:49.210
<v Gast 2>Ja, es ist, glaube ich, öffentlich bekannt.

00:21:49.770 --> 00:21:53.770
<v Gast 2>Es gibt nicht nur eins, es gibt so vier oder fünf, aber die sind alle,

00:21:53.850 --> 00:21:59.370
<v Gast 2>ja, schon alle groß genug, dass da tausende von Leute dran arbeiten.

00:22:00.410 --> 00:22:03.370
<v Gast 1>Ja, bei uns ist das nämlich genau das Gegenteil der Fall.

00:22:03.530 --> 00:22:07.450
<v Gast 1>Also wir in unserem Team jetzt konkret, wir sind ein Team mit, glaube ich,

00:22:07.530 --> 00:22:11.690
<v Gast 1>acht Leuten, davon sind, glaube ich, sechs Engineers oder so oder fünf.

00:22:13.130 --> 00:22:18.410
<v Gast 1>Und wir haben, ich glaube, sechs Repositories allein in unserem Team.

00:22:18.490 --> 00:22:24.010
<v Gast 1>Also wir haben sehr viele kleine Projekte, die dann vielleicht mal ein bisschen Shared Code haben in Form von

00:22:24.010 --> 00:22:29.370
<v Gast 1>irgendwelchen Libraries oder so, aber zum größten Teils ist es abgeschlossener Code und für diese Repositories

00:22:29.610 --> 00:22:34.170
<v Gast 1>hat man dann vielleicht ein, zwei oder drei Maintainer,

00:22:34.250 --> 00:22:40.330
<v Gast 1>die dafür verantwortlich sind, die da quasi als Gatekeeper dafür dienen oder

00:22:41.450 --> 00:22:47.770
<v Gast 1>quasi entscheiden, ob Code reingenommen wird oder nicht oder ob sich was ändern muss oder nicht.

00:22:48.090 --> 00:22:52.490
<v Gast 1>Und auch ganz interessant, GitHub hat vor kurzem ein Feature hinzugefügt,

00:22:52.650 --> 00:22:57.930
<v Gast 1>dass man die machen Recommendations für Leute,

00:22:58.090 --> 00:23:00.730
<v Gast 1>die man in Code-Reviews mit einladen kann.

00:23:00.890 --> 00:23:07.770
<v Gast 1>Also das heißt, sie merken sich so, okay, du hast schon öfters in diesem Projekt Code

00:23:07.770 --> 00:23:12.650
<v Gast 1>eingereicht, welche Leute waren denn da an den Reviews beteiligt, für welche Dateien?

00:23:12.890 --> 00:23:16.330
<v Gast 1>Und dann schlagen die dir, wenn du das Code, wenn du den Pull-Request aufmachst,

00:23:16.490 --> 00:23:22.410
<v Gast 1>schlagen sie dir quasi vor, welche Leute du denn da jetzt einladen könntest,

00:23:22.650 --> 00:23:25.610
<v Gast 1>um da zu kommentieren, was ich auch ganz nett finde.

00:23:26.650 --> 00:23:30.410
<v Gast 3>Ja, ich glaube, die machen das sogar noch ein bisschen klüger und schauen sich an,

00:23:30.730 --> 00:23:36.250
<v Gast 3>wer die Dateien, die betroffen sind, in der Vergangenheit selber bearbeitet hat.

00:23:36.490 --> 00:23:39.210
<v Gast 3>Und das ist halt, also ist im Prinzip eigentlich kein neues Feature,

00:23:39.290 --> 00:23:42.570
<v Gast 3>es ist jetzt nur neu, dass es halt bei GitHub direkt eingebaut ist.

00:23:43.050 --> 00:23:48.330
<v Gast 3>Früher gab es es aber auch schon von, ich weiß nicht, ob das ein Facebook oder ein GitHub-Projekt war,

00:23:48.410 --> 00:23:55.290
<v Gast 3>der Menschenbot, wo man dann wiederum, das muss man eben als separaten Service irgendwie laufen

00:23:55.290 --> 00:24:02.250
<v Gast 3>haben, der dann bei neuen Pull Requests benachrichtigt wird, sich dann die Dateien anschaut und dann über die

00:24:02.570 --> 00:24:08.410
<v Gast 3>Git-History eben schaut, welche Leute jetzt hier potenziell interessant sind,

00:24:08.810 --> 00:24:13.450
<v Gast 3>weil sie eben die Files, die verändert wurden, kennen, weil sie die in der Vergangenheit selber schon

00:24:13.450 --> 00:24:14.330
<v Gast 3>bearbeitet haben.

00:24:14.570 --> 00:24:20.650
<v Gast 3>Was jetzt auch gerade bei so großen Projekten super hilft, weil man eben nicht alle 100 Leute,

00:24:20.730 --> 00:24:25.610
<v Gast 3>die da mal jemals irgendwie was beigetragen haben, benachrichtigen will,

00:24:25.690 --> 00:24:31.050
<v Gast 3>weil die sich jetzt vielleicht auch mit dem konkreten Subset von Änderungen auskennen.

00:24:32.490 --> 00:24:39.130
<v Gast 3>Aber stattdessen halt eben selektiver macht und somit bei größeren Projekten dieses ganze Thema ein bisschen

00:24:39.130 --> 00:24:40.490
<v Gast 3>besser skalieren kann.

00:24:41.530 --> 00:24:44.970
<v Gast 1>Ja, ja, ist auch interessant, wie man denn den Code dann einreicht,

00:24:45.050 --> 00:24:47.610
<v Gast 1>ob man da irgendwelche Feature-Branches macht.

00:24:47.690 --> 00:24:52.010
<v Gast 1>Also was, glaube ich, generell recht bekannt ist, ist dieses Git Flow,

00:24:52.650 --> 00:24:59.210
<v Gast 1>was halt so, wie soll man das sagen, das ist so eine Richtlinie für wie kann man denn neue Features

00:24:59.210 --> 00:25:00.010
<v Gast 1>implementieren.

00:25:00.170 --> 00:25:04.330
<v Gast 1>Man macht einen Feature-Branch, man hat dann quasi einen Development-Branch,

00:25:04.410 --> 00:25:06.330
<v Gast 1>einen Release-Branch und so weiter.

00:25:06.490 --> 00:25:13.290
<v Gast 1>Und Git Flow ist dann quasi eine Richtlinie vorerst mal mit

00:25:13.290 --> 00:25:17.450
<v Gast 1>einem bisschen Tooling außenrum, wie man sowas halt, sagen wir mal,

00:25:17.690 --> 00:25:20.090
<v Gast 1>ein bisschen formaler definieren kann.

00:25:20.170 --> 00:25:25.290
<v Gast 1>So wie haben denn Feature-Branches auszusehen, wie sollen die benannt sein,

00:25:25.450 --> 00:25:29.050
<v Gast 1>welchen Branch mergelt man zu welchem Zeitpunkt wohin und so weiter.

00:25:30.010 --> 00:25:36.650
<v Gast 1>Ist jetzt nicht unbedingt direkt nicht unbedingt direkt was mit

00:25:36.650 --> 00:25:41.050
<v Gast 1>Code-Reviews zu tun, aber ist halt so eine Art und Weise, wie wir das machen.

00:25:42.650 --> 00:25:42.970
<v Gast 1>Ja.

00:25:43.690 --> 00:25:45.930
<v Gast 1>Ich weiß jetzt nicht, wie sieht es bei dir aus, Marc.

00:25:47.370 --> 00:25:51.770
<v Gast 2>Komischerweise, die ganzen Silicon Valley-Firmen,

00:25:51.850 --> 00:25:56.170
<v Gast 2>also die ich so kenne hier, machen alle Trunk-Based Development.

00:25:56.410 --> 00:26:02.170
<v Gast 2>Bedeutet, es gibt keine langlebigen Feature-Branches, es gibt selten irgendwelche Release-Branches wirklich,

00:26:02.330 --> 00:26:08.250
<v Gast 2>sondern du nimmst einfach, was auch immer gerade in Trunk ist und du machst dann halt einen,

00:26:08.890 --> 00:26:15.530
<v Gast 2>Mercurial heißt es einen Bookmark oder halt einen Branch, aber der wird einfach zurück nach Master direkt

00:26:15.530 --> 00:26:18.810
<v Gast 2>gemerkt, ohne dass man da irgendeine Development-Branch oder sonst was hat.

00:26:18.970 --> 00:26:23.690
<v Gast 2>Aber das geht halt auch nur, wenn du sehr gute, ich sag mal,

00:26:24.170 --> 00:26:28.490
<v Gast 2>Release-Möglichkeiten hast und sehr gute Testabdeckung.

00:26:29.690 --> 00:26:34.650
<v Gast 2>Aber du nimmst im Grunde jedes Mal, wenn du eine neues Release baust, nimmst du alles, was im Master drin ist.

00:26:34.730 --> 00:26:40.170
<v Gast 2>Und du darfst halt nichts, was nicht, erstmal wenn es die Tests nicht passt, darfst du es nicht merchen.

00:26:40.570 --> 00:26:46.650
<v Gast 2>Und wenn es nicht released werden sollte, dann hat es auch nichts im Master zu suchen.

00:26:46.890 --> 00:26:51.770
<v Gast 3>Ja, ist eigentlich eine ganz schöne Praxis eigentlich, so dieses,

00:26:52.730 --> 00:26:57.930
<v Gast 3>dieser Grundsatz, quasi alles, was nicht bereit ist, jetzt sofort deployed zu werden,

00:26:58.650 --> 00:27:01.930
<v Gast 3>darf halt auch nicht in Master werden oder für die lohnt es sich gar nicht,

00:27:02.010 --> 00:27:05.530
<v Gast 3>jetzt irgendwie ein Pull-Request oder wie auch immer man das jetzt konkret nimmt,

00:27:06.250 --> 00:27:06.970
<v Gast 3>aufzumachen.

00:27:07.050 --> 00:27:12.250
<v Gast 3>Weil ja, es gibt dann irgendwie verschiedene Möglichkeiten, das umzusetzen und durchzusetzen,

00:27:12.490 --> 00:27:19.290
<v Gast 3>aber es, ich habe das Gefühl gehabt bisher, dass es so die Softwareentwickler in

00:27:19.290 --> 00:27:24.090
<v Gast 3>ein ganz gutes Mindset versetzt, wie sie Code schreiben.

00:27:25.130 --> 00:27:29.610
<v Gast 1>Ja, also es gibt ja zum Beispiel auch noch, so, ich weiß jetzt nicht,

00:27:29.690 --> 00:27:34.330
<v Gast 1>ob das generell darauf rausläuft, was der Markt jetzt beschrieben hat,

00:27:34.410 --> 00:27:39.210
<v Gast 1>aber es gibt ja halt auch noch so diese Herangehensweise, dass man sagt,

00:27:39.530 --> 00:27:45.370
<v Gast 1>ich release auch unfertigen Code und verstecke den dann halt hinter FeatureFlex zum Beispiel.

00:27:45.610 --> 00:27:51.610
<v Gast 1>Dass man halt sagt, okay, ich kann Code committen, ich kann den auch relativ schnell wieder in meinen Branch

00:27:51.610 --> 00:27:56.410
<v Gast 1>zurückmerchen, der wird dann mitreleased und ich sorge einfach über ein Konfigurationssystem dafür,

00:27:56.490 --> 00:27:58.730
<v Gast 1>dass der in der Produktion nicht läuft.

00:27:59.050 --> 00:28:04.570
<v Gast 1>Oder ich release den und schalte ihn nur zum Beispiel für meine nächsten Kollegen frei,

00:28:04.650 --> 00:28:06.250
<v Gast 1>damit die den mal testen können.

00:28:07.050 --> 00:28:12.010
<v Gast 1>Oder aber ich sage, okay, ich möchte das Feature jetzt komplett releasen,

00:28:12.330 --> 00:28:16.250
<v Gast 1>habe aber die Möglichkeit, das komplett wieder abzuschalten, wenn ich merke,

00:28:16.330 --> 00:28:17.530
<v Gast 1>irgendwas stimmt nicht.

00:28:17.770 --> 00:28:23.610
<v Gast 1>Also das sind halt auch so Sachen, okay, man braucht dann auch eine gewisse Infrastruktur beim Releasen,

00:28:23.930 --> 00:28:30.010
<v Gast 1>wenn man denn sagt, okay, man möchte jetzt halt nur auf einem Branch arbeiten und diese Feature-Branches,

00:28:30.170 --> 00:28:31.130
<v Gast 1>die leben nur sehr kurz.

00:28:31.290 --> 00:28:34.250
<v Gast 1>Also möchte ich auch dazu sagen, dieses GitFlow, was wir da benutzen,

00:28:34.490 --> 00:28:41.210
<v Gast 1>im Normalfall, wenn jemand bei uns einen Pull-Request einreicht,

00:28:41.530 --> 00:28:45.290
<v Gast 1>dann hängt der da selten länger als ein, zwei Tage.

00:28:45.370 --> 00:28:49.930
<v Gast 1>Dann gibt es vielleicht nochmal eine Zeit, wo dann irgendwie hin und her diskutiert wird oder hier gibt es mal

00:28:49.930 --> 00:28:56.650
<v Gast 1>einen Vorschlag und dann wartet man noch ein paar Stunden, bis dann der Autor die Änderung eingebaut

00:28:56.650 --> 00:28:56.970
<v Gast 1>hat.

00:28:57.690 --> 00:29:00.570
<v Gast 1>Aber im Normalfall passiert es dann relativ schnell.

00:29:01.130 --> 00:29:04.730
<v Gast 1>Gut, da kann man sich noch die Frage stellen, möchte man noch ein extra Development,

00:29:04.810 --> 00:29:06.410
<v Gast 1>ein extra Release-Branch haben?

00:29:07.770 --> 00:29:13.690
<v Gast 1>Ich glaube, da spricht nicht, also für sehr viele Branches,

00:29:13.770 --> 00:29:17.770
<v Gast 1>die man pflegen muss, spricht eigentlich sehr wenig, außer dass man das Tooling braucht,

00:29:17.850 --> 00:29:20.730
<v Gast 1>um das Ganze zu managen, wenn irgendwas schief geht.

00:29:21.610 --> 00:29:27.210
<v Gast 1>Also gerade so Sachen wie Feature Flags und so weiter sind da halt wichtig,

00:29:27.370 --> 00:29:32.090
<v Gast 1>dass man die hat, um im Zweifelsfall reagieren zu können, wenn es Probleme gibt.

00:29:32.250 --> 00:29:36.010
<v Gast 2>Ja, und ich glaube auch viel, gerade bei diesen großen Belly-Firmen,

00:29:36.090 --> 00:29:42.650
<v Gast 2>ist halt auch das Problem, dass diese Gedanke, dass du eine Development-Branche und eine Release-Branch hast,

00:29:42.810 --> 00:29:47.610
<v Gast 2>ist halt funktioniert irgendwann nicht mehr, wenn dein Code auf,

00:29:47.690 --> 00:29:54.490
<v Gast 2>keine Ahnung, 500.000 Server deployed werden muss, weil die zwei Branches müssen

00:29:54.490 --> 00:29:58.410
<v Gast 2>kompatibel sein, weil allein durch die ganze Physik, die da involviert ist,

00:29:59.210 --> 00:30:03.530
<v Gast 2>werden beide Code-Artefakte gleichzeitig laufen.

00:30:03.690 --> 00:30:06.970
<v Gast 2>Und eventuell werden die auch miteinander gleichzeitig reden.

00:30:07.370 --> 00:30:11.050
<v Gast 2>Also das ist halt eine Sache, die du dann, du hast dann keine Branches,

00:30:11.130 --> 00:30:16.330
<v Gast 2>die das für dich managen, aber du musst Vor- und Rückwärtskompatibilität halt immer in deinem Code einbauen,

00:30:16.650 --> 00:30:18.810
<v Gast 2>weil er halt entsprechend released wird.

00:30:18.970 --> 00:30:22.570
<v Gast 2>Und da sind auch diese ganzen Datenformate irgendwie, keine Ahnung,

00:30:22.890 --> 00:30:28.810
<v Gast 2>Thrift oder Avro oder so, da wird auch kein Feld gelöscht,

00:30:28.970 --> 00:30:34.810
<v Gast 2>weil während einem Release halt dieses Feld von der Hälfte deiner Server noch erwartet wird,

00:30:34.890 --> 00:30:41.050
<v Gast 2>dass es da ist, es wird dann halt deprecated und nach vorne quasi einfach wieder mitgenommen,

00:30:41.210 --> 00:30:45.450
<v Gast 2>obwohl es halt niemand benutzt und dann eventuell in einem halben Jahr kannst du es eventuell mal wegmachen,

00:30:45.690 --> 00:30:49.450
<v Gast 2>aber ist das Mindset ein bisschen anders, als wenn du, keine Ahnung,

00:30:49.530 --> 00:30:54.810
<v Gast 2>nur fünf Server hast und eventuell das alles auch wirklich auf einmal releasen kannst.

00:30:55.530 --> 00:30:59.530
<v Gast 2>Hast du halt andere Probleme, die du dir damit einhandelst.

00:31:00.250 --> 00:31:04.730
<v Gast 2>Hast aber dafür kein großes Rumgemerge mehr, keine Merge-Conflicts,

00:31:04.810 --> 00:31:07.610
<v Gast 2>kein, geht halt ein Master und geht dann raus.

00:31:08.890 --> 00:31:10.810
<v Gast 1>Ja, also das ist auch ein guter Punkt.

00:31:11.130 --> 00:31:16.810
<v Gast 1>Code Review ist nämlich dann halt auch in dem Sinne sinnvoll, wenn man Leute hat,

00:31:16.970 --> 00:31:21.290
<v Gast 1>die Schnittstellen konsumieren, die man im Zweifelsfall anfasst.

00:31:21.530 --> 00:31:27.770
<v Gast 1>Also wenn ich jetzt einen Service schreibe, der Schnittstellen für andere Services zur Verfügung stellt und

00:31:27.770 --> 00:31:33.770
<v Gast 1>ich da irgendwelche Änderungen hinzufüge, sei es, ob ich irgendwelche Attribute in meinen Responses mit

00:31:33.770 --> 00:31:38.490
<v Gast 1>einfüge oder ob ich irgendwie minimale Sachen in der, wie soll man sagen,

00:31:38.890 --> 00:31:43.930
<v Gast 1>in der Art und Weise, wie sich der Service verhält, ändere, dann ist es halt auch gut,

00:31:44.090 --> 00:31:50.410
<v Gast 1>wenn ich die Owner von anderen Services mit reinnehme, damit die potenzielle

00:31:50.410 --> 00:31:55.850
<v Gast 1>Probleme halt auch mitbedenken können, die ich vielleicht gar nicht im Kopf habe,

00:31:55.930 --> 00:31:59.130
<v Gast 1>weil ich deren Codebase nicht so gut kenne, wie sie selber.

00:31:59.690 --> 00:32:03.450
<v Gast 2>Ja, und da ist, das ist halt beim Mono Repo so ein bisschen der Vorteil,

00:32:03.530 --> 00:32:08.490
<v Gast 2>dass du dann quasi in deinem Code-Review auch direkt alle Caller von deiner,

00:32:08.650 --> 00:32:14.010
<v Gast 2>keine Ahnung, änderst du die Signatur von deiner Library, kannst du alle Caller direkt da auch mit einbinden.

00:32:14.330 --> 00:32:18.810
<v Gast 2>Und die können dann auch sicherstellen oder zumindest merken,

00:32:18.970 --> 00:32:23.930
<v Gast 2>dass du ihren Code änderst in ihrem Projekt, weil du halt, wenn die dich aufrufen,

00:32:24.010 --> 00:32:26.090
<v Gast 2>weil du deine Signatur geändert hast.

00:32:27.210 --> 00:32:30.730
<v Gast 2>Ist halt, da hast du auch die Möglichkeit, dieses Code-Video so groß zu machen,

00:32:30.890 --> 00:32:36.330
<v Gast 2>wenn du wirklich serviceorientiert bist und, keine Ahnung, REST-Services benutzt,

00:32:36.490 --> 00:32:40.970
<v Gast 2>wo halt das Schema nicht wirklich festgelegt ist, außer du benutzt irgendeinen,

00:32:41.130 --> 00:32:44.890
<v Gast 2>keine Ahnung, JSON-RPC oder irgendwelche Sachen in der Richtung.

00:32:45.130 --> 00:32:46.490
<v Gast 2>Dann musst du das halt anders lösen.

00:32:46.570 --> 00:32:52.250
<v Gast 2>Dann musst du das halt eventuell über mehrere Branches lösen und da ist das Release dann halt ein bisschen

00:32:52.250 --> 00:32:53.210
<v Gast 2>komplexer.

00:32:54.890 --> 00:32:58.490
<v Gast 1>Ja, man muss jetzt nicht unbedingt irgendwie JSON-RPC oder sowas verwenden.

00:32:58.570 --> 00:33:05.210
<v Gast 1>Es gibt auch, mittlerweile heißt es, glaube ich, die Open API Definition, Open API Project.

00:33:05.290 --> 00:33:06.810
<v Gast 1>Es hieß früher Swagger.

00:33:08.490 --> 00:33:13.370
<v Gast 1>Kennt man auch noch, gibt es Libraries für alle möglichen Programmiersprachen und Frameworks.

00:33:13.690 --> 00:33:17.930
<v Gast 1>Ist jetzt ein Tool, was wir gerne einsetzen, wo man halt einfach entweder in einem JSON oder in einem

00:33:17.930 --> 00:33:24.570
<v Gast 1>YAML-File eine formale Definition hat von wie

00:33:25.210 --> 00:33:30.490
<v Gast 1>sehen die Schnittstellen aus, was für URLs stehen zur Verfügung,

00:33:30.810 --> 00:33:36.330
<v Gast 1>was für Daten erwarten sie, in was von einem Format und was für Daten liefern sie zurück.

00:33:38.170 --> 00:33:42.970
<v Gast 1>Gerade für solche Änderungen ist es halt schön, wenn man dann so eine formale,

00:33:43.530 --> 00:33:49.930
<v Gast 1>generell, wie soll man sagen, generell verständliche Definition von seinen Schnittstellen hat,

00:33:50.010 --> 00:33:55.450
<v Gast 1>die dann halt auch andere Leute verstehen, die zum Beispiel ihre Services in anderen Programmiersprachen

00:33:55.450 --> 00:34:00.010
<v Gast 1>schreiben oder in anderen Frameworks und vielleicht jetzt nicht unbedingt wissen,

00:34:00.170 --> 00:34:04.330
<v Gast 1>was ich mit meinem Zeug in Node programmiere, weil sie selber, was weiß ich,

00:34:04.570 --> 00:34:05.770
<v Gast 1>Rails machen.

00:34:07.210 --> 00:34:11.770
<v Gast 1>Also gerade für sowas ist es halt da nicht schlecht, wenn man irgendwie die Möglichkeit hat,

00:34:12.010 --> 00:34:16.730
<v Gast 1>da ein Format zu haben, wo man sich drüber austauschen kann,

00:34:16.810 --> 00:34:20.570
<v Gast 1>ohne dass man die Implementierungsdetails kennen muss, was ich ganz nett finde.

00:34:23.690 --> 00:34:29.930
<v Gast 1>So, jetzt haben wir viel drüber geredet, was denn irgendwie, was man denn mit Code-Reviews bezwecken will und

00:34:30.730 --> 00:34:32.810
<v Gast 1>was man tut und wie man sie tun kann.

00:34:33.450 --> 00:34:39.930
<v Gast 1>Jetzt ist dann halt natürlich auch noch so ein Problem, wie gibt man denn konkretes Feedback und jetzt weniger

00:34:39.930 --> 00:34:43.050
<v Gast 1>auf der technischen Ebene, sondern mehr so auf der menschlichen Ebene,

00:34:43.210 --> 00:34:49.930
<v Gast 1>weil meiner Erfahrung nach ist das eher so das größere Problem bei Reviews.

00:34:50.170 --> 00:34:56.970
<v Gast 1>Also ich hab schon, ich mache das jetzt schon ein paar Jahre und ich habe schon sowohl auf der Seite

00:34:57.290 --> 00:35:03.130
<v Gast 1>eines Empfängers von Reviews als auch der Seite von jemandem, der anderen Code reviewt,

00:35:03.370 --> 00:35:07.050
<v Gast 1>bin ich in diverse Probleme reingelaufen und die waren eigentlich, würde ich sagen,

00:35:07.130 --> 00:35:13.130
<v Gast 1>zu 90% zwischenmenschlicher Natur, nämlich, dass sich irgendwelche Leute angegriffen fühlen,

00:35:13.290 --> 00:35:19.930
<v Gast 1>weil man ihren Code kritisiert oder weil ich mich angegriffen fühle,

00:35:20.570 --> 00:35:26.010
<v Gast 1>weil mein Code kritisiert wird, weil Leute von mir Änderungen erwarten,

00:35:26.170 --> 00:35:32.010
<v Gast 1>die ich vielleicht nicht bereit bin zu implementieren oder weil ich jetzt schnell noch ein Release fertig

00:35:32.010 --> 00:35:36.490
<v Gast 1>machen will und Leute mir nicht das okay geben wegen irgendwelchen Kleinigkeiten.

00:35:37.050 --> 00:35:39.610
<v Gast 1>Ich weiß nicht, wie geht ihr so damit um?

00:35:40.730 --> 00:35:44.410
<v Gast 3>Ja, also ich finde das auf jeden Fall ein sehr interessantes Thema,

00:35:44.570 --> 00:35:49.210
<v Gast 3>gerade aus dieser menschlichen Komponente heraus,

00:35:49.450 --> 00:35:54.890
<v Gast 3>weil die schon für eine große Herausforderung und andersrum, wenn man es gut kann,

00:35:55.130 --> 00:36:00.730
<v Gast 3>auch irgendwie so ein hervorragendes,

00:36:01.850 --> 00:36:06.890
<v Gast 3>irgendwie eine positive Eigenschaft finde, gute Code-Reviews geben zu können.

00:36:07.530 --> 00:36:13.850
<v Gast 3>Weil, also ich finde es, ich habe als jemand, der halt auch schon verschiedene Codewiews

00:36:14.090 --> 00:36:20.330
<v Gast 3>gekriegt hat, lassen sich da schon deutliche Unterschiede feststellen zwischen Leuten,

00:36:20.490 --> 00:36:25.610
<v Gast 3>die einfach nur irgendwie in fünf Wörtern sagen, was sie da jetzt stört,

00:36:26.010 --> 00:36:31.450
<v Gast 3>oder jemandem, der eben vielleicht ein bisschen ausformuliert, warum er jetzt Bedenken mit diesem Stück Code

00:36:31.450 --> 00:36:37.930
<v Gast 3>hat, warum er das blöd findet, warum der Vorschlag jetzt vielleicht

00:36:38.250 --> 00:36:39.850
<v Gast 3>so sein könnte.

00:36:40.810 --> 00:36:43.290
<v Gast 3>Und das macht schon einen großen Unterschied.

00:36:43.370 --> 00:36:47.130
<v Gast 3>Und ich finde, da kann man viel lernen als Softwareentwickler.

00:36:48.170 --> 00:36:53.050
<v Gast 1>Also es ist halt auch ein großer Unterschied, wie man Dinge formuliert,

00:36:53.130 --> 00:36:55.370
<v Gast 1>auch wenn man das Gleiche aussagen will.

00:36:55.530 --> 00:37:00.650
<v Gast 1>Also ich glaube, wenn man jetzt in einem Team zusammenarbeitet und in einem Team

00:37:01.930 --> 00:37:08.330
<v Gast 1>Projekte betreut, dann finde ich es immer ganz gut, das generelle generische Wir zu benutzen und nicht du.

00:37:08.410 --> 00:37:13.050
<v Gast 1>Also nicht du hast hier einen Fehler gemacht oder du hast hier irgendwie Scheiße gebaut,

00:37:13.450 --> 00:37:19.370
<v Gast 1>sondern vielleicht wir könnten da irgendwann in Zukunft mit dieser Zeile Code ein Problem haben.

00:37:19.610 --> 00:37:22.330
<v Gast 1>Was könnten wir denn tun, um das besser zu machen?

00:37:23.050 --> 00:37:26.330
<v Gast 1>Oder diese Zeile Code ist jetzt gerade nicht besonders gut lesbar.

00:37:26.570 --> 00:37:30.330
<v Gast 1>Was könnten wir denn tun, um die besser lesbar zu machen?

00:37:30.490 --> 00:37:36.170
<v Gast 1>Also solche Sachen sind, finde ich, immer ganz hilfreich, weil das so ein bisschen den Druck von der einzelnen

00:37:36.170 --> 00:37:41.850
<v Gast 1>Person wegnimmt oder die Kritik von der einzelnen Person wegnimmt und es mehr so als Ja,

00:37:42.010 --> 00:37:48.490
<v Gast 1>ich gebe dir jetzt gerade Feedback, aber ich bin quasi in dem Team auch ein Mitglied

00:37:48.730 --> 00:37:55.130
<v Gast 1>und ich hab dann im Zweifelsfall bin da genauso gut, genauso verantwortlich wie du dafür.

00:37:55.850 --> 00:37:59.530
<v Gast 1>Ich weiß nicht, findet ihr das macht Sinn oder ist es ein bisschen zu viel oder?

00:38:02.010 --> 00:38:08.410
<v Gast 2>Es ist sicher nicht schlecht, es so zu formulieren, was ich immer ganz gut finde,

00:38:08.650 --> 00:38:13.930
<v Gast 2>ist Leuten nicht wirklich Aussagen in einem Code-Vide zu geben,

00:38:14.010 --> 00:38:15.530
<v Gast 2>sondern einfach Fragen zu stellen.

00:38:16.170 --> 00:38:21.130
<v Gast 2>Wenn du weißt, ja, hey, wenn der die Datei lädt und die Datei enthält irgendwie Charaktere,

00:38:21.290 --> 00:38:25.130
<v Gast 2>die nicht in UTF8 vorkommen, dann crasht die komplette Anwendung.

00:38:25.290 --> 00:38:31.130
<v Gast 2>Dann kannst du entweder sagen, hey, das kann UTF 8-Dateien nur UTF8 parsen,

00:38:31.290 --> 00:38:34.330
<v Gast 2>wir haben aber anderen Code, das ist schlecht, ändere das bitte ab.

00:38:34.570 --> 00:38:39.530
<v Gast 2>Oder du fragst halt einfach so, hey, ich glaube, wir haben nicht UTF 8-Code.

00:38:39.850 --> 00:38:42.570
<v Gast 2>Was würde denn hier passieren, wenn es das lädt?

00:38:43.210 --> 00:38:49.450
<v Gast 2>Und du weißt eventuell die Antwort schon, aber dieses leicht sokratische Durchfragen Leuten was beibringen,

00:38:49.610 --> 00:38:52.170
<v Gast 2>ist immer eine ganz, finde ich, eine ganz gute Sache.

00:38:53.050 --> 00:38:57.450
<v Gast 2>Weil dann klingt es weniger so, als ich weiß, was richtig ist und du nicht,

00:38:57.770 --> 00:39:04.490
<v Gast 2>sondern hey, ich bin mir nicht ganz sicher, aber könntest du da mal nachschauen und das machen die dann

00:39:04.490 --> 00:39:05.450
<v Gast 2>eventuell einfacher.

00:39:05.610 --> 00:39:10.170
<v Gast 2>Wenn sie dann natürlich sagen, nee, das geht, glaub ich schon, dann muss man vielleicht doch ein bisschen

00:39:10.170 --> 00:39:16.250
<v Gast 2>nachdrücklicher das machen, aber so finde ich das ganz okay.

00:39:16.490 --> 00:39:22.090
<v Gast 2>Und je nach Tool gibt es auch die Möglichkeit, klarzustellen, was deine Intention ist,

00:39:22.170 --> 00:39:28.730
<v Gast 2>indem du bei, ich glaube, Review Board hatten wir bei LinkedIn und da konntest du

00:39:28.730 --> 00:39:34.490
<v Gast 2>quasi das Ganze als Blocker markieren und wenn du es nicht als Blocker markiert hast,

00:39:34.650 --> 00:39:36.330
<v Gast 2>dann war es halt nur eine Anmerkung.

00:39:36.410 --> 00:39:39.930
<v Gast 2>Also wenn du den Variablen-Namen doof fandest, aber dir ist im Grunde egal,

00:39:40.170 --> 00:39:46.810
<v Gast 2>ob das jetzt so reingeht oder nicht, falls andere Leute da mehr irgendwie mehr Augenmerk drauf legen wollen,

00:39:46.890 --> 00:39:50.970
<v Gast 2>dann konntest du es halt anmerken, aber konntest halt auch sagen, ist aber nicht so wichtig.

00:39:51.130 --> 00:39:55.850
<v Gast 2>Also da kann dir das Tooling auch teilweise helfen, deine Intention ein bisschen klarer zu machen.

00:39:56.210 --> 00:40:02.930
<v Gast 2>Und Fabricator zum Beispiel hat animierte GIFs oder Macros, die du halt anwenden kannst.

00:40:03.570 --> 00:40:04.610
<v Gast 2>Ist auch immer ganz lustig.

00:40:04.850 --> 00:40:05.730
<v Gast 3>Alles mit GIFs ist besser.

00:40:06.050 --> 00:40:07.250
<v Gast 2>Alles mit GIFs ist besser.

00:40:07.330 --> 00:40:13.570
<v Gast 2>Und es sieht dann halt auch nicht so kalt aus, sondern du kannst halt irgendwie irgendein lustiges Gift dahin

00:40:13.570 --> 00:40:18.370
<v Gast 2>machen, wo du dann, keine Ahnung, geradezu dieser UTF-8-Geschichte,

00:40:18.450 --> 00:40:21.730
<v Gast 2>dann machst du halt noch ein Bild von der Hindenburg hin, die explodiert oder so.

00:40:22.370 --> 00:40:24.930
<v Gast 2>Und du dann sagst, this could crash, bumm.

00:40:25.650 --> 00:40:25.970
<v Gast 2>Ja.

00:40:26.450 --> 00:40:31.650
<v Gast 2>Aber es ist auch teilweise, es kann auch je nach Team ein Problem sein.

00:40:31.810 --> 00:40:35.970
<v Gast 2>Normalerweise sollten, wenn du ein Team hast, wo einige, ich sag mal,

00:40:36.050 --> 00:40:41.650
<v Gast 2>in Anführungszeichen, Senior Engineers drin sind, die das Ganze schon eine Weile machen,

00:40:41.890 --> 00:40:46.610
<v Gast 2>dann sollten die eigentlich da sehr dahinter sein, dass wenn einer schreibt,

00:40:46.770 --> 00:40:50.770
<v Gast 2>hey, das ist scheiße, du würdest das alles kaputt machen, was soll das,

00:40:51.010 --> 00:40:56.450
<v Gast 2>dass die halt auch schnell dahinter kommentieren und sagen, hey, ich kann sehr gut nachvollziehen,

00:40:56.530 --> 00:41:03.490
<v Gast 2>wie der dieses Stück Code gemacht hat und eventuell dann ein bisschen empathischer drauf zugehen.

00:41:03.810 --> 00:41:09.970
<v Gast 2>Ist natürlich das Problem, wenn du, keine Ahnung, wenn deine Firma aus irgendeinem Grund Leute befördert hat

00:41:09.970 --> 00:41:15.330
<v Gast 2>in so eine Rolle, die nicht sonderlich empathisch sind, dann ist das A ein bisschen ein Problem für die Firma,

00:41:15.570 --> 00:41:20.530
<v Gast 2>aber dann wäre es vielleicht besser, wenn, keine Ahnung,

00:41:20.770 --> 00:41:24.690
<v Gast 2>wenn das Tooling die Leute erzwingen würde, ihre Intentionen klarzumachen.

00:41:26.450 --> 00:41:30.610
<v Gast 3>Ja, das ist eine ganz interessante Überleitung, weil wie der Flyphon erwähnt hat,

00:41:30.770 --> 00:41:34.290
<v Gast 3>nützen wir zum großen Teil GitHub im Moment.

00:41:34.530 --> 00:41:39.810
<v Gast 3>Und bei GitHub gibt es ja jetzt auch seit einer Weile eben ein richtiges Code-Review-Feature,

00:41:39.970 --> 00:41:46.930
<v Gast 3>wo man ein Review startet, dem Review Kommentare hinzufügt und am Ende irgendwie aus drei verschiedenen

00:41:46.930 --> 00:41:48.290
<v Gast 3>Optionen auswählt.

00:41:49.250 --> 00:41:54.450
<v Gast 3>Es ist ein Kommentar, es ist ein Approval oder man requested Changes,

00:41:54.690 --> 00:41:57.810
<v Gast 3>was eben der quasi von dir angesprochene Blocker wäre.

00:41:58.290 --> 00:42:03.970
<v Gast 3>Und wir haben jetzt da irgendwie so ein bisschen gemerkt, dass das nicht so richtig

00:42:03.970 --> 00:42:09.090
<v Gast 3>feingranular genug ist für uns, weil es eben quasi nur erlaubt,

00:42:09.250 --> 00:42:14.850
<v Gast 3>diesen kompletten Satz an Kommentaren, den man jetzt verfasst hat, der ja irgendwie mal zwischen drei Stück

00:42:14.850 --> 00:42:17.730
<v Gast 3>und auch 20 Stück variieren kann.

00:42:17.890 --> 00:42:23.650
<v Gast 3>Und man kann den eben nur quasi als Ganzes zusammen einen Stempel aufdrücken,

00:42:23.890 --> 00:42:29.090
<v Gast 3>was irgendwie beim bisschen ein Problem ist, wenn man dann eben zwischendurch so einzelne Kommentare hat,

00:42:29.170 --> 00:42:35.490
<v Gast 3>die sagen, hier ist ein Leerzeichen zu viel, der Variablename könnte ein bisschen besser sein.

00:42:35.730 --> 00:42:41.810
<v Gast 3>Oder dann eben so richtige funktionale Probleme, wo irgendwie tatsächlich was kaputt gehen könnte,

00:42:41.890 --> 00:42:44.930
<v Gast 3>irgendwie was stürzt ab, wenn das ausgeführt wird.

00:42:46.290 --> 00:42:51.250
<v Gast 3>Und der Fleidi und ich haben uns da so ein bisschen was überlegt, wie man das

00:42:52.690 --> 00:42:58.450
<v Gast 3>Feingranularer trotzdem machen könnte und haben das den Emoji-Code genannt.

00:42:58.850 --> 00:43:02.210
<v Gast 3>Möchtest du mal erklären, wie das zustande kam, FlyDe?

00:43:02.770 --> 00:43:07.170
<v Gast 1>Ja, also wir sind halt in der letzten Zeit öfters mal in, wie soll man das sagen,

00:43:07.330 --> 00:43:13.970
<v Gast 1>in Missverständnisse reingelaufen, wo wir bestimmte Dinge in Code-Reviews kommentiert

00:43:13.970 --> 00:43:18.370
<v Gast 1>hatten, die Leute dann so ein bisschen,

00:43:18.930 --> 00:43:23.810
<v Gast 1>wie soll man sagen, angefangen haben, längere Diskussionen anzufangen für Dinge,

00:43:23.970 --> 00:43:28.530
<v Gast 1>die uns eigentlich nicht wirklich tief berühren,

00:43:29.570 --> 00:43:30.770
<v Gast 1>sage ich jetzt einfach mal so.

00:43:31.650 --> 00:43:32.930
<v Gast 3>Aber einfach nicht so wichtig waren.

00:43:33.170 --> 00:43:35.970
<v Gast 1>Ja, also es gab einfach Dinge, die haben wir kommentiert, wo wir so so,

00:43:36.050 --> 00:43:42.370
<v Gast 1>hey, hier könntest du vielleicht das und das machen oder könnte man den und den Code vielleicht ein bisschen

00:43:43.010 --> 00:43:46.290
<v Gast 1>umschreiben, um den besser lesbar zu machen und so weiter und so fort.

00:43:46.370 --> 00:43:51.810
<v Gast 1>Das waren Kleinigkeiten, die uns eigentlich nicht so direkt interessiert haben und wir hatten eigentlich auch

00:43:51.810 --> 00:43:57.890
<v Gast 1>keine Lust, da die Zeit aufzuwenden, jetzt große Diskussionen drüber

00:43:57.890 --> 00:43:58.930
<v Gast 1>aufzumachen.

00:43:59.490 --> 00:44:04.690
<v Gast 1>Da hat das Gegenüber allerdings das anders verstanden und das so interpretiert,

00:44:04.850 --> 00:44:10.930
<v Gast 1>als ja, okay, das ist jetzt ein Blocker und sie müssen jetzt jeden Kommentar von uns oder jeden Vorschlag von

00:44:10.930 --> 00:44:16.770
<v Gast 1>uns implementieren und das würde dann lange dauern und ihren Prozess blockieren und so weiter und so fort.

00:44:17.570 --> 00:44:23.410
<v Gast 1>Also das war letzten Endes ein typisches Missverständnis oder ein typisches Kommunikationsproblem,

00:44:23.650 --> 00:44:30.530
<v Gast 1>was halt durch dieses relativ wenig granulare Code-Review-Feature in

00:44:30.530 --> 00:44:36.450
<v Gast 1>den Gitter Pull-Requests nicht wirklich abgedeckt wurde und wir sind dann halt dazu gekommen,

00:44:36.610 --> 00:44:43.410
<v Gast 1>dass wir uns einen Emoji-Code ausgedacht haben, mit dem wir quasi jeden Kommentar prefixen.

00:44:43.490 --> 00:44:49.090
<v Gast 1>Das heißt also, jeder Kommentar beginnt bei uns mit einem von sieben Emojis,

00:44:50.450 --> 00:44:54.290
<v Gast 1>was so geht von Ja, das ist eine super Änderung, finde ich total gut,

00:44:54.370 --> 00:44:57.810
<v Gast 1>dass du es gemacht hast, bis hin zu Das muss ich ändern.

00:44:58.450 --> 00:45:01.010
<v Gast 1>Und dann gibt es da noch so ein paar Sachen dazwischen, so von wegen,

00:45:01.090 --> 00:45:05.730
<v Gast 1>hier ist ein kleiner Nitpick, das und das sieht gerade anders aus,

00:45:05.810 --> 00:45:08.690
<v Gast 1>als würde sonst machen, ist aber eigentlich auch egal.

00:45:08.930 --> 00:45:15.650
<v Gast 1>Dann gibt es noch so, ja, okay, hier das und das ist ein blöder Workaround.

00:45:15.810 --> 00:45:19.730
<v Gast 1>Ich habe jetzt gerade auch keine bessere Lösung, aber ich wollte mir jetzt mal einfach sagen,

00:45:19.810 --> 00:45:23.090
<v Gast 1>dass ich das scheiße finde und wenn irgendjemand, also dass ich das scheiße finde,

00:45:23.170 --> 00:45:25.730
<v Gast 1>dass man diesen Workaround machen muss und nicht, dass ich das scheiße finde,

00:45:26.450 --> 00:45:27.890
<v Gast 1>dass derjenige geschrieben hat.

00:45:27.970 --> 00:45:32.850
<v Gast 1>Und sollte jemand auf eine bessere Idee kommen, komm, gib mir mal Input.

00:45:34.050 --> 00:45:36.930
<v Gast 1>Also wir haben das jetzt hier, wir werden das auch in den Shownotes verlinken.

00:45:37.330 --> 00:45:42.530
<v Gast 1>Letzten Endes sind es einfach nur so oft vorkommende Use Cases,

00:45:42.930 --> 00:45:46.770
<v Gast 1>wo wir klar machen wollten, okay, was ist denn unsere eigentliche Intention?

00:45:49.090 --> 00:45:55.570
<v Gast 1>Ja, weil ansonsten die Wahrscheinlichkeit, dass irgendwo Missverständnisse passieren,

00:45:55.730 --> 00:45:56.610
<v Gast 1>zu hoch ist.

00:45:57.170 --> 00:45:58.210
<v Unbekannt>Okay, interessant.

00:45:58.530 --> 00:46:05.010
<v Gast 2>Ich benutze halt meist, also gerade die Emojis, benutzt ihr die intern im Team?

00:46:05.170 --> 00:46:08.450
<v Gast 2>Benutzt ihr die nur, wenn ihr mit anderen Teams irgendwas arbeitet?

00:46:08.850 --> 00:46:11.730
<v Gast 2>Gerade so Sachen wie Nitpick, das schreibe ich halt, ich schreibe irgendwie Nitpick,

00:46:11.970 --> 00:46:16.610
<v Gast 2>Doppelpunkt, und dann schreibe ich halt, was ich da meine, dass es halt nicht missverstanden wird.

00:46:18.050 --> 00:46:24.210
<v Gast 2>Oder ist es eher, falls das mal halt ganz sicher geht mit externen Contributern oder

00:46:25.250 --> 00:46:27.090
<v Gast 2>wie benutzt ihr das in welchem Umfang?

00:46:27.330 --> 00:46:34.130
<v Gast 1>Ne, das ist eher so intern im Team, wobei Team auch jetzt nicht unbedingt

00:46:34.610 --> 00:46:41.010
<v Gast 1>unser nächste Management-Einheit ist, sondern Team kann auch so ein bisschen die

00:46:41.410 --> 00:46:45.250
<v Gast 1>nächsten Leute in der Abteilung sein, die Code bei uns einreichen.

00:46:45.570 --> 00:46:45.890
<v Gast 1>Okay.

00:46:46.930 --> 00:46:53.010
<v Gast 1>Also das sind Leute, mit denen ich im Zweifelsfall in dem Büro sitze und wo man im Zweifelsfall auch kurz mal

00:46:53.010 --> 00:46:57.730
<v Gast 1>zwei Meter zum nächsten Schreibtisch laufen könnte, wenn es denn Unklarheiten gibt.

00:46:58.130 --> 00:47:02.610
<v Gast 1>Auf der anderen Seite gibt es dann auch so Leute wie den Lukas, die so irgendwie ein paar tausend Kilometer

00:47:02.610 --> 00:47:04.690
<v Gast 1>weg sitzen, da ist es dann halt so ein bisschen schwieriger.

00:47:05.490 --> 00:47:05.810
<v Gast 1>Okay.

00:47:07.650 --> 00:47:12.690
<v Gast 1>Ja, es ist auf jeden Fall eine Sache, die wir, die wir mal angefangen haben.

00:47:13.170 --> 00:47:16.050
<v Gast 1>Das müssen wir auch noch, also das ist halt auch noch so ein bisschen eine Sache,

00:47:16.210 --> 00:47:19.570
<v Gast 1>sollte man auch noch ein bisschen besser dokumentieren, dass Leute halt auch ganz klar wissen,

00:47:19.650 --> 00:47:21.890
<v Gast 1>okay, für was steht denn welches Emoji.

00:47:23.330 --> 00:47:28.530
<v Gast 1>Aber war halt eine ganz nette Idee, die mittlerweile auch von anderen unseren anderen Kollegen aus unserem

00:47:28.530 --> 00:47:31.490
<v Gast 1>Team aufgegriffen wurde, die das eigentlich ganz gut finden.

00:47:31.970 --> 00:47:37.170
<v Gast 3>Ja, das hatte sich so ein bisschen so spontan so eingeschlichen und aber zumindest gedacht,

00:47:37.250 --> 00:47:39.330
<v Gast 3>wir machen es vielleicht auch ein bisschen offizieller dokumentieren,

00:47:39.490 --> 00:47:43.810
<v Gast 3>dass dann vielleicht lassen sich da auch irgendwie andere von inspirieren und übernehmen das.

00:47:44.530 --> 00:47:47.250
<v Gast 3>Ich glaube, es funktioniert auch ganz gut bisher so.

00:47:49.010 --> 00:47:54.290
<v Gast 1>Ja, es ist auch eine Sache, die vielleicht auch mal angesprochen werden sollte,

00:47:54.370 --> 00:48:00.210
<v Gast 1>dass man halt auch Erwartungen und Wege der Kommunikation sehr einfach

00:48:01.010 --> 00:48:02.450
<v Gast 1>ersichtlich dokumentiert.

00:48:02.530 --> 00:48:05.730
<v Gast 1>Also im Zweifelsfall gibt es da vielleicht irgendwelche README-Dateien,

00:48:05.810 --> 00:48:10.690
<v Gast 1>die man in bestimmte Ordner legt oder in seinem Projektroute hat, sodass es zum Beispiel jetzt auf GitHub ist

00:48:10.690 --> 00:48:16.690
<v Gast 1>es so oder auch bei anderen entsprechenden Code-Hosting-Plattformen,

00:48:17.010 --> 00:48:23.970
<v Gast 1>dass halt README-Dateien in Markdown oder irgendwelchen anderen Formaten dann schon gerendert werden,

00:48:24.050 --> 00:48:30.450
<v Gast 1>wenn man denn die Projektseite aufmacht, sodass man halt dort auch dokumentieren kann,

00:48:30.530 --> 00:48:35.010
<v Gast 1>okay, was ist die Erwartungshaltung, wenn jemand Code einreicht, was sollte man denn tun,

00:48:35.170 --> 00:48:37.010
<v Gast 1>wo sollte man denn drauf achten?

00:48:37.330 --> 00:48:43.970
<v Gast 1>Ich denke auch, das ist in der Verantwortung von jemandem, der ein Projekt managt oder der da der,

00:48:44.210 --> 00:48:46.770
<v Gast 1>ich soll mal sagen, der Owner ist oder was gibt es denn da?

00:48:46.850 --> 00:48:49.410
<v Gast 1>Gibt es dann ein sinnvolles deutsches Wort dafür?

00:48:49.650 --> 00:48:51.730
<v Gast 1>Der Besitzer, das klingt gleich wieder so.

00:48:52.770 --> 00:48:53.650
<v Gast 3>Besitze diesen Code.

00:48:53.890 --> 00:48:57.570
<v Gast 1>Ja, ich besitze diesen Code, also letzten Endes besitzt mein Arbeitgeber diesen Code,

00:48:57.890 --> 00:48:59.810
<v Gast 1>deswegen ist es halt auch so ein bisschen.

00:49:01.010 --> 00:49:05.570
<v Gast 1>Naja, jedenfalls derjenige, der verantwortlich ist, ist vielleicht der beste Ausdruck,

00:49:05.650 --> 00:49:07.170
<v Gast 1>den ich gerade im Deutschen dafür finde.

00:49:08.130 --> 00:49:12.370
<v Gast 1>Diejenigen sollten dann halt auch verantwortlich sein dafür,

00:49:12.850 --> 00:49:19.570
<v Gast 1>es Leuten einfach zu machen, Code beizusteuern und nicht den noch unnötigerweise

00:49:19.890 --> 00:49:21.330
<v Gast 1>Stein in den Weg legen.

00:49:21.410 --> 00:49:27.810
<v Gast 1>Und dazu gehört halt meiner Meinung nach auch, dass man dokumentiert, okay, wie sieht unser Coding-Style aus?

00:49:28.610 --> 00:49:31.010
<v Gast 1>Wo packe ich welchen Code hin?

00:49:31.250 --> 00:49:33.970
<v Gast 1>Welche Design-Patterns verwenden wir für was?

00:49:34.530 --> 00:49:39.090
<v Gast 1>Und welche automatisierten Tools kann man denn benutzen,

00:49:39.330 --> 00:49:42.530
<v Gast 1>um bestimmte Dinge zu tun?

00:49:42.690 --> 00:49:47.010
<v Gast 3>Also, Tooling generell, also gerade bei Open Source Projekten finde ich,

00:49:47.090 --> 00:49:51.970
<v Gast 3>gibt es nichts Schlimmeres, als wenn man irgendwie erstmal komplett auf sich gestellt ist,

00:49:52.050 --> 00:49:56.850
<v Gast 3>um rauszufinden, wie man jetzt dieses Projekt ans Laufen kriegt, oder beziehungsweise nicht nur ans Laufen,

00:49:57.010 --> 00:50:00.210
<v Gast 3>sondern irgendwie eine Entwicklungsumgebung ans Laufen kriegt.

00:50:00.290 --> 00:50:03.890
<v Gast 3>Weil was ich sehr oft erlebt habe, ist, dass es zwar eine Anleitung gibt,

00:50:03.970 --> 00:50:10.130
<v Gast 3>wie man das dann letztlich benutzt und ausführt, seinem letztendlichen Zwecke irgendwie nach,

00:50:10.610 --> 00:50:14.930
<v Gast 3>aber irgendwie eine kurze Anleitung, wie man das so aufsetzt,

00:50:15.090 --> 00:50:21.170
<v Gast 3>dass man das lokal testen kann, irgendwie mit seinen aktuellen eigenen Änderungen rumspielen kann.

00:50:21.410 --> 00:50:26.450
<v Gast 3>Und eben dann irgendwie vielleicht noch so, wie man die Tools, die zum Kontivieren,

00:50:26.690 --> 00:50:30.610
<v Gast 3>Testen und so weiter nötig sind, wie man die richtig bedient.

00:50:31.570 --> 00:50:37.170
<v Gast 2>Da ist halt, wenn man so ein bisschen abgeschottet von der Realität im Monorepool lebt,

00:50:37.490 --> 00:50:42.370
<v Gast 2>hat Facebook zum Beispiel Bug, das ist unser Build-Tool, alles wird mit Bug gebildet,

00:50:42.610 --> 00:50:47.570
<v Gast 2>alles kann mit Bug getestet werden und es ist auch die einzige Möglichkeit,

00:50:47.730 --> 00:50:48.450
<v Gast 2>das zu tun.

00:50:49.890 --> 00:50:53.730
<v Gast 2>Da hilft es halt teilweise, dass du diese ganzen Probleme einfach nicht hast,

00:50:53.890 --> 00:51:00.050
<v Gast 2>weil du weißt genau, jedes einzelne Projekt wird exakt gleich gebaut und gleich getestet.

00:51:00.290 --> 00:51:04.530
<v Gast 3>Ja klar, wenn du innerhalb eines Teams oder auch einer Firma, wenn sie gut organisiert ist,

00:51:04.610 --> 00:51:05.810
<v Gast 3>dann ist das meistens kein Problem.

00:51:05.890 --> 00:51:11.090
<v Gast 3>Aber wenn ich jetzt mir halt irgendwie irgendein Open-Source-Tool, das ich benutze und dann will ich da

00:51:11.090 --> 00:51:14.530
<v Gast 3>irgendwie eine kleine Änderung einfügen und dann brauche ich erstmal zwei Stunden,

00:51:14.690 --> 00:51:20.130
<v Gast 3>bis ich irgendwie das lokal am Laufen habe und irgendwie die Tests funktionieren,

00:51:20.610 --> 00:51:24.850
<v Gast 3>dann habe ich halt eigentlich direkt keinen Bock mehr, wenn die eigentlichen Änderungen halt in fünf Minuten

00:51:24.850 --> 00:51:25.410
<v Gast 3>gemacht werden.

00:51:25.650 --> 00:51:28.610
<v Gast 2>Da merkst du halt auch, wie gut ein Projekt eigentlich ist.

00:51:28.690 --> 00:51:33.170
<v Gast 2>Es ist einerseits das Zeug, was es, ich sag mal, tun soll, aber andererseits auch,

00:51:33.250 --> 00:51:34.690
<v Gast 2>wie einfach das ist zu testen.

00:51:34.770 --> 00:51:37.810
<v Gast 2>Ich weiß immer noch, Redis, diese Datenbank, das war immer wunderbar,

00:51:37.970 --> 00:51:43.490
<v Gast 2>weil du lädst es runter, du tippst Make ein, nicht mal mehr Configure und das Ding kompiliert komplett durch.

00:51:43.730 --> 00:51:47.410
<v Gast 2>Du musst nicht irgendwelches komisches Zeug nachinstallieren, du musst keine,

00:51:47.650 --> 00:51:54.130
<v Gast 2>was weiß ich was, ach ja, du musst nur dein Grunt-NPM aufsetzen und dann irgendwie bla.

00:51:55.410 --> 00:51:56.930
<v Gast 2>Bei Ruby war es ja das Bundler von.

00:51:57.730 --> 00:51:59.570
<v Gast 3>Eine Million JavaScript-Tools.

00:51:59.730 --> 00:52:02.290
<v Gast 2>Ja, oder irgendwie dein Maven und dann musst du aber dein Maven-Repo,

00:52:02.530 --> 00:52:06.930
<v Gast 2>dann musst du, ach ja, mach doch mal die POM-Datei dahin und ich glaube,

00:52:07.090 --> 00:52:12.370
<v Gast 2>da ist es auch je, ich sag mal, je weiter entwickelt so eine Sprache und ein Ökosystem ist,

00:52:12.450 --> 00:52:14.210
<v Gast 2>desto einfacher ist es auch.

00:52:14.850 --> 00:52:18.370
<v Gast 2>Ruby war ganz okay, am Anfang war das mit den Gems immer ziemlich scheiße,

00:52:18.610 --> 00:52:23.650
<v Gast 2>heute sagst du halt irgendwie Bundle Install und dann sollte das größtenteils funktionieren.

00:52:25.570 --> 00:52:32.130
<v Gast 2>Da merkt man dann auch, wo die, wie gut denn der Autor des eigentlichen Open Source Projekts

00:52:32.450 --> 00:52:32.770
<v Gast 2>ist.

00:52:33.090 --> 00:52:37.490
<v Gast 2>Wenn es eine halbe Stunde dauert, um seine Testumgebung aufzusetzen, dann ist es halt kein gutes Projekt.

00:52:37.650 --> 00:52:38.530
<v Gast 2>Weil dann wird es nämlich nicht.

00:52:38.930 --> 00:52:41.890
<v Gast 3>Das zeigt halt irgendwie direkt auch irgendwie ein bisschen was drüber aus,

00:52:42.210 --> 00:52:49.090
<v Gast 3>ob die Leute überhaupt, also ob die wirklich Contributions aus der Welt irgendwie haben wollen

00:52:49.170 --> 00:52:49.490
<v Gast 3>oder so.

00:52:49.810 --> 00:52:53.090
<v Gast 3>Also ich weiß, wenn halt so ein Projekt beschissen dokumentiert ist,

00:52:53.170 --> 00:52:56.770
<v Gast 3>wenn es nur darum geht, irgendwie halt Änderungen hinzuzufügen, dann weiß ich immer,

00:52:57.410 --> 00:53:01.090
<v Gast 3>die legen da jetzt entweder keinen großen Wert drauf oder es ist ihnen egal.

00:53:01.330 --> 00:53:02.130
<v Gast 2>Ja, es ist halt auch so.

00:53:02.450 --> 00:53:03.730
<v Gast 3>Irgendwie direkt demotivierend.

00:53:03.810 --> 00:53:10.370
<v Gast 3>Und andersrum, wenn du halt super Dokumentation hast, wie man irgendwie Änderungen beisteuert und hier schreib

00:53:10.370 --> 00:53:16.130
<v Gast 3>so einen Test und dann, weiß ich, so und so setzt du irgendwie deine Entwicklungsumgebung auf,

00:53:16.210 --> 00:53:20.930
<v Gast 3>damit du es lokal kurz testen kannst, dann ich glaube, das sorgt schon dafür,

00:53:21.170 --> 00:53:27.810
<v Gast 3>dass die Leute auch schneller und öfter einfach irgendwie kleineren Features selber beisteuern und

00:53:27.890 --> 00:53:32.050
<v Gast 3>letztlich damit irgendwie auch gerade Open-Source-Projekte vielleicht irgendwie ein bisschen lebendiger sind.

00:53:32.130 --> 00:53:37.010
<v Gast 2>Ja, und da ist halt auch der Unterschied von Software Engineering gegenüber einfach nur Coding oder Hacking,

00:53:37.090 --> 00:53:41.730
<v Gast 2>wo halt, ich meine, du kannst das natürlich alles zusammenhacken und ich habe kilowaise Projekte,

00:53:41.970 --> 00:53:46.370
<v Gast 2>die komplett ungetestet sind, aber irgendwie gerade so das tun,

00:53:46.450 --> 00:53:53.090
<v Gast 2>was ich will, aber das skaliert halt auch meist nicht zu mehr als einer oder mal vielleicht zwei

00:53:53.090 --> 00:53:53.810
<v Gast 2>Personen.

00:53:54.210 --> 00:53:59.810
<v Gast 2>Sobald du halt das Ding wirklich als Projekt aufsetzen willst und nicht so als Skript,

00:53:59.970 --> 00:54:05.090
<v Gast 2>das irgendwie bei mir auf dem Server läuft, dann solltest du halt schon so ein bisschen versuchen,

00:54:05.170 --> 00:54:10.210
<v Gast 2>da eine README zu haben, dass die Tests, dass du irgendwie nicht mehr als fünf Kommandos brauchst,

00:54:10.290 --> 00:54:12.610
<v Gast 2>um dieses Ding zu testen und am Laufen zu haben.

00:54:13.970 --> 00:54:17.330
<v Gast 2>Ist halt immer das, was auch noch dazu gehört.

00:54:18.370 --> 00:54:21.890
<v Gast 1>Ja, und ich meine, gerade wenn man das jetzt in einem kommerziellen Umfeld macht,

00:54:21.970 --> 00:54:26.210
<v Gast 1>wo Leute halt auch erwarten, dass irgendwie Geld mit den Produkten,

00:54:26.290 --> 00:54:30.370
<v Gast 1>die man so programmiert verdient wird, ist es halt auch immer interessant,

00:54:30.770 --> 00:54:36.850
<v Gast 1>dass man oder was heißt interessant, ist es eigentlich notwendig, dass man Leute so schnell wie möglich in

00:54:36.850 --> 00:54:38.130
<v Gast 1>Projekte auch onboarden kann.

00:54:38.210 --> 00:54:42.770
<v Gast 1>Dass man sagen kann, okay, es gibt mal Leute, es werden mal neue Leute eingestellt oder es wechseln mal Leute

00:54:42.770 --> 00:54:43.650
<v Gast 1>zwischen Teams.

00:54:43.810 --> 00:54:47.010
<v Gast 1>Dann sollte halt auch die Onboarding-Experience dementsprechend sein,

00:54:47.090 --> 00:54:52.130
<v Gast 1>dass man Leute mal schnell sagen kann, okay, willst du mal drei, vier Wochen in dem und dem Projekt

00:54:52.130 --> 00:54:57.730
<v Gast 1>mitarbeiten und da was beisteuern und dann macht es halt keinen Sinn,

00:54:57.890 --> 00:55:03.730
<v Gast 1>wenn die Leute dann irgendwie zwei Wochen brauchen, um das Projekt lokal auf ihrem Rechner laufen zu lassen.

00:55:04.130 --> 00:55:07.730
<v Gast 3>Das ist potenziell auch ein ganz guter Indikator, ob da irgendwie was im Augen ist,

00:55:07.810 --> 00:55:11.650
<v Gast 3>wenn man erstmal zwei Stunden braucht, um irgendwie ein Projekt-Setup aufzusetzen,

00:55:11.890 --> 00:55:18.210
<v Gast 3>dann sollte das vielleicht schon irgendwie so ein Hinweis sein, dass da vielleicht was nicht so richtig gut

00:55:18.210 --> 00:55:18.610
<v Gast 3>läuft.

00:55:18.930 --> 00:55:21.410
<v Gast 1>Auch interessant in Sachen Bundler, weil du das gerade erwähnt hast,

00:55:21.490 --> 00:55:24.210
<v Gast 1>wie er früher war es dann scheiße mit Ruby Gems und so weiter.

00:55:24.370 --> 00:55:30.130
<v Gast 1>Ich habe da vor kurzem einen Vortrag von dem aktuellen Hauptmaintainer oder Projektleiter von Bundler,

00:55:30.210 --> 00:55:32.930
<v Gast 1>glaube ich, auf YouTube von einer Weile mal geguckt.

00:55:33.170 --> 00:55:36.290
<v Gast 1>Ist auch interessant, der erzählt dann so in einer halben Stunde ungefähr,

00:55:36.450 --> 00:55:43.090
<v Gast 1>wie man denn von setup.rb zu Bundler kam und welche Iteration es da gab und

00:55:43.090 --> 00:55:48.530
<v Gast 1>welches Tool dann versucht hat, welches Problem zu lösen und welche weiteren Probleme dann durch das neue Tool

00:55:48.530 --> 00:55:49.330
<v Gast 1>entstanden sind.

00:55:49.570 --> 00:55:56.370
<v Gast 1>Das ist sehr interessant, das mal nachzuvollziehen, was es denn da so für Entwicklungen in den

00:55:56.370 --> 00:55:59.170
<v Gast 1>letzten, würde ich jetzt mal 15 Jahren oder sowas sagen.

00:55:59.410 --> 00:56:04.370
<v Gast 1>Was für Entwicklungen es da gab, jetzt im Speziellen in der Ruby-Welt und naja,

00:56:04.530 --> 00:56:09.330
<v Gast 1>keine Ahnung, das Node-Ökosystem sieht mittlerweile ähnlich aus, da gibt es ähnliche Tools,

00:56:09.410 --> 00:56:12.930
<v Gast 1>da hast du irgendwie, am Anfang hattest du irgendwelche Git-Sub-Module,

00:56:13.010 --> 00:56:16.770
<v Gast 1>dann hattest du NPM, dann gibt es mittlerweile Jarn, ähm.

00:56:20.130 --> 00:56:22.050
<v Gast 1>Das waren Piraten, die das erfunden haben.

00:56:22.210 --> 00:56:24.290
<v Gast 1>Es waren Piraten von Facebook, glaube ich, sogar.

00:56:24.850 --> 00:56:25.170
<v Gast 1>Ja.

00:56:26.050 --> 00:56:27.490
<v Gast 2>Da kann ich mich dran erinnern.

00:56:28.290 --> 00:56:33.490
<v Gast 1>Ja, also, und ich glaube, das passiert halt wahrscheinlich in jedem Ökosystem,

00:56:33.650 --> 00:56:36.610
<v Gast 1>dass dann auf eine ähnliche Art und Weise immer wieder versucht werden,

00:56:36.770 --> 00:56:42.450
<v Gast 1>kleine Probleme zu lösen und man dann vielleicht entweder eine neue Abstraktion über irgendwas drüber baut

00:56:42.450 --> 00:56:46.210
<v Gast 1>oder einen Rapper um irgendwas außenrum oder vielleicht das Tool dann erweitert,

00:56:46.290 --> 00:56:47.970
<v Gast 1>damit es bestimmte Dinge tut.

00:56:49.490 --> 00:56:50.370
<v Unbekannt>Außer bei Java.

00:56:50.450 --> 00:56:51.970
<v Gast 2>Java ist immer noch scheiße.

00:56:52.210 --> 00:56:56.530
<v Gast 2>Da gibt es Maven ist so das höchste der Gefühle und das ist ziemlich schlecht eigentlich.

00:56:56.690 --> 00:57:00.930
<v Gast 1>Ja, wobei es gibt ja dann auch in der Skala-Welt,

00:57:01.010 --> 00:57:04.850
<v Gast 1>was ja quasi auch Java ist, gibt es ja dann, oh Gott, wie heißt denn dieses Tool,

00:57:04.930 --> 00:57:06.690
<v Gast 1>was denn in Skala geschrieben ist, was irgendwie.

00:57:08.370 --> 00:57:09.970
<v Gast 1>Ja, was ein Rap.

00:57:11.890 --> 00:57:14.050
<v Gast 1>Ich google jetzt einfach mal Skala Dependency.

00:57:14.530 --> 00:57:16.770
<v Gast 1>Das erste, was ich finde, ist Dependency Injection.

00:57:20.450 --> 00:57:22.050
<v Gast 1>Hört mir zu, wie ich google.

00:57:22.930 --> 00:57:24.050
<v Gast 1>Dependency Manager.

00:57:24.770 --> 00:57:31.490
<v Gast 1>SBT, es gibt es Gradle gibt es, was mittlerweile viel in der Android-Welt benutzt wird und in der

00:57:31.490 --> 00:57:37.810
<v Gast 1>Skala-Welt gibt es SBT, was irgendwie auch so ein Frontend auf Maven obendrauf ist.

00:57:37.970 --> 00:57:41.570
<v Gast 1>Das scheint ein bisschen weniger scheiße zu sein, aber noch so ein bisschen scheiße.

00:57:41.650 --> 00:57:43.810
<v Gast 1>Und jetzt könnt ihr uns böse Mails schreiben.

00:57:44.130 --> 00:57:50.530
<v Gast 1>Also ich glaube, es gibt halt, um das mal zu generalisieren, manche Ökosysteme entwickeln sich schneller

00:57:50.530 --> 00:57:51.490
<v Gast 1>weiter als andere.

00:57:51.970 --> 00:57:56.930
<v Gast 2>Ja, je mehr, je mehr Enterprise du bist, desto mehr Schmerz wird akzeptiert,

00:57:57.090 --> 00:58:01.010
<v Gast 2>um irgendwie eine Library downzuloaden oder zu, keine Ahnung.

00:58:01.330 --> 00:58:05.490
<v Gast 1>Ja, ich glaube, das kommt halt auch daher, dass je mehr Enterprise du bist,

00:58:06.130 --> 00:58:09.410
<v Gast 1>je mehr Schmerzensgeld bekommst du, um diesen Schmerz zu ertragen.

00:58:09.570 --> 00:58:09.730
<v Gast 1>Ja.

00:58:10.050 --> 00:58:12.450
<v Gast 3>Bist du überhaupt Enterprise, yo.

00:58:13.090 --> 00:58:13.570
<v Gast 3>Genau.

00:58:14.290 --> 00:58:15.810
<v Gast 1>Do you even Enterprise Bro?

00:58:16.530 --> 00:58:21.250
<v Gast 2>Genau, auf jeden Fall, das ist weniger was mit Code-Tiews zu tun,

00:58:21.570 --> 00:58:27.570
<v Gast 2>aber ich sag mal, Contribution, wenn du irgendwie zu Projekten irgendwas beitragen willst,

00:58:27.650 --> 00:58:29.730
<v Gast 2>ist es doch ganz, ganz interessant.

00:58:30.850 --> 00:58:31.170
<v Gast 2>Ja.

00:58:33.170 --> 00:58:37.810
<v Gast 1>Ja, also ich brennt auch schon eine Weile, seit einer Weile was auf der Zunge,

00:58:37.890 --> 00:58:41.250
<v Gast 1>was der Marc vorhin gesagt hat, um nochmal kurz zu dem Thema zurückzukommen.

00:58:41.410 --> 00:58:44.770
<v Gast 1>Du hast mal was gemeint, so von wegen Fragen statt Antworten.

00:58:45.650 --> 00:58:50.130
<v Gast 1>Das ist auch ganz interessant in Kombination mit,

00:58:50.370 --> 00:58:56.290
<v Gast 1>wie soll man das jetzt sagen, es gibt so einen Zustand, der wird oft als Imposter-Syndrom bezeichnet,

00:58:56.610 --> 00:59:02.450
<v Gast 1>dass irgendwie Leute kommen neu in ein Team und denken, oh, die ganzen Leute sind alle so schlau und ich bin

00:59:02.450 --> 00:59:03.010
<v Gast 1>so doof.

00:59:03.410 --> 00:59:08.930
<v Gast 1>Oder man ist vielleicht noch relativ am Anfang der Karriere oder man muss plötzlich ganz neue Sachen machen,

00:59:09.010 --> 00:59:12.370
<v Gast 1>die man vorher noch nicht gemacht hat und man kommt sich plötzlich doof vor und denkt,

00:59:12.450 --> 00:59:17.650
<v Gast 1>okay, die Leute werden bestimmt bald merken, bald merken, dass ich irgendwie gar nichts kann.

00:59:17.890 --> 00:59:20.770
<v Gast 1>Was im Zweifelsfall überhaupt nicht stimmt, weil die meisten Leute,

00:59:20.850 --> 00:59:26.690
<v Gast 1>die dann vielleicht sie selbst so kritisieren, die können tatsächlich sehr viel und brauchen aber nur eine

00:59:26.690 --> 00:59:28.770
<v Gast 1>Weile, um zu merken, dass sie was können.

00:59:29.250 --> 00:59:33.650
<v Gast 1>Und ich finde es auch in der Hinsicht sehr hilfreich, wenn man dann sagt,

00:59:33.730 --> 00:59:39.570
<v Gast 1>okay, man gibt den Leuten eine Chance, selbst auf Ideen zu kommen, vielleicht selbst

00:59:40.530 --> 00:59:46.930
<v Gast 1>ihre eigenen Ideen umsetzen zu können und dementsprechend Fragen zu stellen und keine

00:59:47.010 --> 00:59:50.450
<v Gast 1>vorgefertigten Antworten zu liefern.

00:59:50.610 --> 00:59:53.410
<v Gast 1>Also ich glaube, das, was du vorhin gemeint hast, so von wegen, ey,

00:59:53.970 --> 00:59:56.530
<v Gast 1>könnte das und das da irgendwelche Probleme machen?

00:59:56.610 --> 00:59:59.250
<v Gast 1>Und falls ja, wie könnte man das irgendwie

01:00:01.110 --> 01:00:08.070
<v Gast 1>Fixen ist im Zweifelsfall eine deutlich bessere Antwort als oder

01:00:08.070 --> 01:00:13.110
<v Gast 1>eine bessere Reaktion auf ein Problemchen als ja, das ist ein Problem,

01:00:13.270 --> 01:00:14.230
<v Gast 1>ändere das.

01:00:14.550 --> 01:00:21.270
<v Gast 1>Weil ich glaube, im Zweifelsfall, wir sind alle Ingenieure, wir wollen alle irgendwie Probleme lösen und es

01:00:21.270 --> 01:00:27.350
<v Gast 1>hilft niemandem, wenn man einem schon vorschreibt, wie man denn Probleme zu lösen hat.

01:00:27.670 --> 01:00:33.350
<v Gast 3>Ja, ich glaube, es trifft besonders auf Leute, die jetzt vielleicht am Imposter-Syndrom leiden oder generell

01:00:33.350 --> 01:00:38.310
<v Gast 3>an irgendwie jetzt so Neueinsteiger, junge Entwickler,

01:00:38.470 --> 01:00:44.390
<v Gast 3>so ich bin da jetzt da auch noch nicht so lange mit dem Studium fertig und im Berufsleben so richtig drin,

01:00:44.470 --> 01:00:47.670
<v Gast 3>deswegen kann ich da irgendwie auch das ganz gut nachvollziehen.

01:00:48.550 --> 01:00:54.390
<v Gast 3>Also je geringer das Vertrauen in die eigenen Fähigkeiten sind,

01:00:54.790 --> 01:01:01.510
<v Gast 3>desto eher nimmt man sich vielleicht auch harsch formulierte Code-Reviews zu Herzen

01:01:01.990 --> 01:01:05.910
<v Gast 3>und ist dann da vielleicht auch irgendwie eingeschüchtert.

01:01:06.150 --> 01:01:12.790
<v Gast 3>Und da hilft es dann, glaube ich, schon, wenn man dann eben die Formulierung von Code-Reviews so macht,

01:01:12.950 --> 01:01:19.350
<v Gast 3>dass die Leute vielleicht tatsächlich auch erst nochmal selber über den Code nachdenken,

01:01:19.590 --> 01:01:22.870
<v Gast 3>um dann letztlich die Lösung vielleicht selber zu finden.

01:01:23.830 --> 01:01:28.070
<v Gast 3>Hilft ihnen dann, glaube ich, langfristig deutlich mehr weiter, als wie wenn man ihnen einfach nur sagt,

01:01:28.630 --> 01:01:30.070
<v Gast 3>scheiße, das muss so sein.

01:01:30.950 --> 01:01:33.910
<v Gast 1>Ja, ich glaube, der Lerneffekt ist auch ein ganz anderer.

01:01:34.470 --> 01:01:39.190
<v Gast 1>Also wenn du dir sagst, okay, es gibt vielleicht diese und jene Lösung und dann selber drüber nachdenkst,

01:01:39.270 --> 01:01:42.790
<v Gast 1>okay, oder dieses und jenes Problemchen gibt's oder dieses und jenes Ding,

01:01:42.870 --> 01:01:46.710
<v Gast 1>was nicht super ideal ist, dann hilft es dir halt auch deutlich mehr,

01:01:46.790 --> 01:01:50.230
<v Gast 1>wenn du selbst auf die Lösung kommst, als wenn dir jemand sagt, ey,

01:01:50.310 --> 01:01:52.710
<v Gast 1>du musst jetzt das und das statt dem und dem machen.

01:01:54.230 --> 01:02:00.470
<v Gast 1>Weil im Zweifelsfall implementierst du einfach nur Vorschläge von anderen Leuten und

01:02:00.790 --> 01:02:02.390
<v Gast 1>lernst nichts dabei.

01:02:02.790 --> 01:02:06.470
<v Gast 1>Also das ist halt auch noch so ein Punkt, da ich glaube, der Lerneffekt,

01:02:06.630 --> 01:02:11.510
<v Gast 1>wenn man selber auf Ideen kommt, ist deutlich höher, als wenn man gesagt bekommt,

01:02:11.590 --> 01:02:13.590
<v Gast 1>was man zu tun oder zu lassen hat.

01:02:13.750 --> 01:02:18.710
<v Gast 3>Ja, also gerade dieses Thema Lerneffekt, da würde ich gerne schon nochmal so ein paar Sätze dazu sagen,

01:02:18.870 --> 01:02:23.430
<v Gast 3>weil ich glaube, dass das eine der großen Stärken von Code-Review sein kann,

01:02:23.510 --> 01:02:25.830
<v Gast 3>wenn man sie dann generell richtig macht.

01:02:26.230 --> 01:02:32.950
<v Gast 3>Weil, also je nach Stil von Code-Review ist der Lerneffekt halt entweder gar nicht

01:02:32.950 --> 01:02:36.070
<v Gast 3>vorhanden oder sehr groß, weil was ich halt auch schon gesehen habe,

01:02:36.150 --> 01:02:41.510
<v Gast 3>das sind so Code-Reviews, die im Prinzip nichts kommentieren.

01:02:42.070 --> 01:02:47.670
<v Gast 3>Vielleicht zwei, drei offensichtliche Syntaxfehler und Formatierungsfehlerchen

01:02:48.630 --> 01:02:52.870
<v Gast 3>hervorheben und ansonsten drunter schreiben, looks good to me,

01:02:53.110 --> 01:02:54.070
<v Gast 3>kann rein.

01:02:54.950 --> 01:03:01.750
<v Gast 3>Und aus meiner Sicht sind solche Code-Reviews eigentlich nutzlos, mehr oder weniger.

01:03:01.990 --> 01:03:08.870
<v Gast 3>Sie helfen vielleicht so formale Dinge oder so zu finden, die aber eben auch ein automatisiertes Tool hätte

01:03:08.870 --> 01:03:10.230
<v Gast 3>finden können vielleicht.

01:03:10.550 --> 01:03:16.230
<v Gast 3>Aber ansonsten ist da der Mehrwert für denjenigen, der den Code ursprünglich geschrieben hat,

01:03:16.310 --> 01:03:17.510
<v Gast 3>quasi nicht vorhanden.

01:03:17.750 --> 01:03:24.710
<v Gast 3>Und andersrum denke ich halt schon, dass wenn ein Reviewer sich tatsächlich

01:03:24.710 --> 01:03:30.790
<v Gast 3>Zeit nimmt, den Code durchzulesen und sich darüber auch Gedanken macht und jetzt vielleicht nicht nur

01:03:30.790 --> 01:03:37.110
<v Gast 3>irgendwie grobe Fehler herausstellt, sondern unter Umständen einfach auch nur mal tatsächlich

01:03:37.110 --> 01:03:42.950
<v Gast 3>Verständnisfragen stellt, weil man sich jetzt vielleicht selber auf Anhieb nicht so ganz klar ist,

01:03:43.110 --> 01:03:47.270
<v Gast 3>was der Code tut oder tatsächlich vielleicht einfach nur interessiert ist,

01:03:47.590 --> 01:03:51.990
<v Gast 3>warum hat derjenige das jetzt so formatiert oder so geschrieben,

01:03:52.150 --> 01:03:55.670
<v Gast 3>warum hat er diese Architektur verwendet und nicht jene?

01:03:55.990 --> 01:04:02.710
<v Gast 3>Und ich glaube, wenn man das tatsächlich eben in so einer relativ liberalen Form

01:04:02.710 --> 01:04:07.830
<v Gast 3>verwendet und viele so Dinge auch mit reinschreibt, die jetzt eben nicht

01:04:09.270 --> 01:04:15.670
<v Gast 3>zwingende Änderungen erfordern, dann können da, glaube ich, beide Seiten ziemlich von

01:04:15.670 --> 01:04:16.630
<v Gast 3>profitieren.

01:04:18.230 --> 01:04:18.790
<v Gast 3>Denke ich auch.

01:04:18.950 --> 01:04:23.350
<v Gast 2>Und gerade so dieses Looks Good To Me, da haben wir sogar bei uns,

01:04:23.670 --> 01:04:27.910
<v Gast 2>wenn jemand LGTM schreibt, dann wird es automatisch mit einem Makro ersetzt,

01:04:27.990 --> 01:04:32.230
<v Gast 2>von so einem total creepy, ich glaube, das war eine Eiscreme-Werbung,

01:04:32.310 --> 01:04:38.550
<v Gast 2>wo irgend so ein komischer Frau oder Mann voll mit Eiscreme von ihrem eigenen Kopf das Zeug irgendwie

01:04:38.550 --> 01:04:39.270
<v Gast 2>weglöffelt.

01:04:39.350 --> 01:04:42.710
<v Gast 2>Ist also eine ziemlich ekelhafte Angelegenheit, will eigentlich keiner sehen.

01:04:43.190 --> 01:04:48.230
<v Gast 2>Deswegen, dieses Looks Good to Me wird bei uns automatisch wie das Ekelhaftes ersetzt.

01:04:49.510 --> 01:04:50.070
<v Gast 2>Sehr gut.

01:04:50.630 --> 01:04:51.590
<v Gast 3>Komplett angebracht wird es.

01:04:51.910 --> 01:04:56.310
<v Gast 2>Und ich denke auch gerade dieses ganze, ich poste auch direkt mal das Video, wo sind wir denn gerade?

01:04:56.470 --> 01:04:57.510
<v Gast 2>Imposter Syndrome.

01:04:57.670 --> 01:05:01.270
<v Gast 2>Ich mache jetzt mal LGTM, verlinken wir das auch direkt mal.

01:05:01.910 --> 01:05:03.750
<v Gast 2>Ist halt bei uns so ein animiertes GIF.

01:05:04.790 --> 01:05:10.070
<v Gast 2>Generell würde ich auch sagen, dass Verhalten in Code-Reviews und dass du auch Leuten,

01:05:10.390 --> 01:05:14.390
<v Gast 2>ich sag mal, was beibringst, in Anführungszeichen, durch dein Feedback.

01:05:14.790 --> 01:05:20.550
<v Gast 2>Sowas sollte in deine Jahres- oder Halbjahresbewertung auch eingehen bei einer anständigen Firma.

01:05:20.710 --> 01:05:24.230
<v Gast 2>Also wenn du nur die ganze Zeit Leute in Code-Treviews anpumpst oder wenn du immer nur sagst,

01:05:24.390 --> 01:05:29.430
<v Gast 2>es sieht gut aus, dann tust du halt deinen Teil,

01:05:29.670 --> 01:05:35.670
<v Gast 2>trägst du deinen Teil nicht dazu bei, die etwas jüngeren oder unerfahrenen Teammitglieder irgendwie

01:05:35.670 --> 01:05:36.550
<v Gast 2>hochzuleveln.

01:05:37.830 --> 01:05:44.630
<v Gast 2>Bedeutet, selbst wenn du faktisch alles richtig sagst, machst du als Reviewer einfach immer noch effektiv

01:05:44.630 --> 01:05:45.430
<v Gast 2>was falsch.

01:05:45.670 --> 01:05:48.630
<v Gast 2>Und wenn du einen im Team hast, der die ganze Zeit was falsch macht,

01:05:48.950 --> 01:05:53.670
<v Gast 2>dann sollte das auch irgendwie leichte Auswirkungen für die Person haben.

01:05:54.070 --> 01:05:58.310
<v Gast 2>Und vielleicht weiß er es nicht, aber nach dem ersten Mal, wenn man das dem dann sagt,

01:05:58.390 --> 01:05:59.670
<v Gast 2>dann sollte er das schon wissen.

01:05:59.750 --> 01:06:04.550
<v Gast 2>Also ich finde es gut, dass man da ein bisschen drauf eingibt und sich das auch vorhält,

01:06:04.790 --> 01:06:11.030
<v Gast 2>aber effektiv muss halt die Firma oder diese Engineering Organization auch was dafür tun,

01:06:11.270 --> 01:06:16.070
<v Gast 2>dass Leute, die die ganze Zeit so, ich sag mal, das Review in Anführungszeichen verbocken,

01:06:16.150 --> 01:06:23.110
<v Gast 2>weil sie halt so schlechtes Feedback geben, sollten die da auch zur Rechenschaft ein

01:06:23.110 --> 01:06:24.550
<v Gast 2>bisschen für gezogen werden.

01:06:24.710 --> 01:06:27.430
<v Gast 2>Also es muss von beiden Seiten, glaube ich, dran gearbeitet werden,

01:06:27.590 --> 01:06:31.830
<v Gast 2>weil sonst hast du halt irgendwie zwei Leute, die ihr Bestes tun,

01:06:32.070 --> 01:06:35.190
<v Gast 2>aber der junge Ingenieur wird immer noch in der Hälfte aller Reviews angepumped,

01:06:35.270 --> 01:06:37.350
<v Gast 2>weil halt dieses eine Arschloch darum sitzt.

01:06:37.590 --> 01:06:43.910
<v Gast 2>Und da sollte auch, sollte man als Manager auch danach schauen, dass wie werden denn die

01:06:43.910 --> 01:06:47.510
<v Gast 2>Code-Reviews im Team durchgeführt und eventuell auch noch mit einer Person reden,

01:06:47.750 --> 01:06:52.310
<v Gast 2>die ich sag mal nicht so sonderlich gute Reviews abliefert.

01:06:52.550 --> 01:06:57.990
<v Gast 2>Weil Reviews sind, ich sage jetzt nicht genauso wichtig, aber fast so wichtig wie Code.

01:06:58.150 --> 01:07:01.030
<v Gast 2>Also wenn einer immer nur super Code macht, aber immer nur scheiß Reviews bringt,

01:07:01.110 --> 01:07:03.510
<v Gast 2>dann ist der im Durchschnitt immer noch kein guter Ingenieur.

01:07:04.310 --> 01:07:04.630
<v Gast 2>Ja.

01:07:05.430 --> 01:07:09.990
<v Gast 1>Ja, also ich glaube, dass da lässt sich auch wieder der Bogen schließen zu einem Thema,

01:07:10.070 --> 01:07:15.990
<v Gast 1>was wir in der letzten Folge hatten, mit der Geschichte vom 10X-Engineer oder was auch immer,

01:07:16.310 --> 01:07:18.710
<v Gast 1>dem mythischen Fabelwesen.

01:07:19.350 --> 01:07:23.990
<v Gast 1>Ich meine, im Zweifelsfall kannst du halt ein 10x-Engineer sein, indem du fünf deiner Kollegen zu einem

01:07:23.990 --> 01:07:28.710
<v Gast 1>2-Ex-Engineer machst, indem du sie ihnen Feedback gibst, was sie besser macht.

01:07:28.950 --> 01:07:32.070
<v Gast 1>Und ich glaube, das ist halt dann so auch eine Aufgabe von jemandem,

01:07:32.150 --> 01:07:36.390
<v Gast 1>der sich in irgendeiner Art und Weise als Senior-Rolle bezeichnet.

01:07:37.030 --> 01:07:42.310
<v Gast 1>Da reicht es halt nicht einfach nur, soliden Code zu schreiben oder seine Arbeit hinzubekommen,

01:07:42.390 --> 01:07:47.990
<v Gast 1>sondern im Zweifelsfall wird dann halt auch erwartet, dass man sich und sein Umfeld besser macht,

01:07:48.230 --> 01:07:49.590
<v Gast 1>in irgendeiner Art und Weise.

01:07:49.670 --> 01:07:53.270
<v Gast 1>Und Feedback geben ist da halt ein sehr gutes Mittel, um das zu tun.

01:07:57.350 --> 01:08:03.750
<v Gast 2>Ja, wir haben auch noch, ich glaube, als letzten Punkt in diesem potenziellen

01:08:03.750 --> 01:08:07.110
<v Gast 2>Problemesegment, Code-Tews in Job-Interviews.

01:08:09.350 --> 01:08:16.230
<v Gast 3>Ja, ich versuche gerade den Artikel zu finden, aber spontan finde ich ihn nicht mehr in meiner

01:08:16.230 --> 01:08:17.430
<v Gast 3>Bookmarkliste.

01:08:17.670 --> 01:08:24.230
<v Gast 3>Habe ich vor ein paar wenigen Wochen einen Artikel von einer größeren Softwarefirma gelesen,

01:08:24.390 --> 01:08:31.270
<v Gast 3>die vor kurzem angefangen haben, ihre Jobinterviews für Engineering-Positionen hauptsächlich um

01:08:31.350 --> 01:08:33.910
<v Gast 3>Code-Review herum aufzubauen.

01:08:34.150 --> 01:08:41.030
<v Gast 3>Und zwar läuft es wohl so ab, dass sie dem Interviewkandidaten ein

01:08:41.030 --> 01:08:43.910
<v Gast 3>Stück bestehenden Code vorlegen.

01:08:44.390 --> 01:08:48.470
<v Gast 3>Der kriegt dann eine halbe Stunde Zeit oder wie lange auch immer.

01:08:48.870 --> 01:08:55.350
<v Gast 3>Und soll in dem Code dann Probleme und Fehler finden

01:08:55.670 --> 01:09:02.310
<v Gast 3>und wird anhand dessen dann letztend am Ende bewertet und dann in quasi in einem

01:09:02.470 --> 01:09:06.390
<v Gast 3>Follow-up nochmal zu seinen Code-Review-Kommentaren befragt.

01:09:06.630 --> 01:09:08.470
<v Gast 3>Warum hat er das so kommentiert?

01:09:08.630 --> 01:09:11.510
<v Gast 3>Welche Probleme sieht er mit bestimmten Code-Stellen?

01:09:11.990 --> 01:09:18.870
<v Gast 3>Und ja, also ich dieses ganze Thema mit Jobinterviews für Engineering-Positionen ist ja

01:09:18.870 --> 01:09:25.590
<v Gast 3>irgendwie so ein ewiges Drama, weil es ist halt, eigentlich ist alles irgendwie sinnlos und

01:09:27.030 --> 01:09:30.470
<v Gast 3>gibt es ja auch schon haufenweise Abhandlungen dazu, dass die.

01:09:31.030 --> 01:09:32.470
<v Gast 1>Ja, auch eine eigene Sendung zu machen.

01:09:32.710 --> 01:09:36.470
<v Gast 3>Ja, genau, dass halt die Leute getestet werden, wie gut sie irgendwie Rätsel lösen können,

01:09:36.630 --> 01:09:41.990
<v Gast 3>aber eben nicht zeigen, dass sie jetzt besonders gute Software-Ingenieure sind.

01:09:42.230 --> 01:09:47.670
<v Gast 3>Und ich finde irgendwie die Idee, direkt Code-Review mit ins Job-Interview einzubauen,

01:09:47.830 --> 01:09:51.590
<v Gast 3>eigentlich irgendwie gar keine so dumme Idee, weil das sorgt natürlich dafür,

01:09:51.670 --> 01:09:55.110
<v Gast 3>dass dieses Szenario, das der Marc gerade beschrieben hat, dass jemand im Team ist,

01:09:55.270 --> 01:09:58.150
<v Gast 3>der zwar super Code schreibt, aber gar keine Code-Reviews machen kann,

01:09:58.470 --> 01:10:02.230
<v Gast 3>der schafft es dann eigentlich nicht durch diesen Interviewprozess.

01:10:03.990 --> 01:10:08.470
<v Gast 1>Ja, es ist auch vielleicht ganz interessant, um vielleicht auch so ein bisschen Nervosität rauszubringen,

01:10:08.550 --> 01:10:15.430
<v Gast 1>weil wenn du jetzt nicht derjenige bist, der an einem Whiteboard eine super clevere Lösung für irgendein

01:10:15.430 --> 01:10:21.270
<v Gast 1>synthetisches Problem irgendwie runterschreiben musst,

01:10:21.510 --> 01:10:26.070
<v Gast 1>sondern vielleicht sagen kannst, ey, du hast schon einen Code, den du lesen kannst,

01:10:26.310 --> 01:10:29.830
<v Gast 1>wo du vielleicht bestimmte Patterns erkennen kannst und so weiter und so fort.

01:10:29.910 --> 01:10:35.190
<v Gast 1>Also Dinge, die du tatsächlich auch in deinem normalen tagtäglichen Arbeitsalltag machen solltest,

01:10:36.150 --> 01:10:39.430
<v Gast 1>dann ist es vielleicht auch ganz gut, dass du.

01:10:39.750 --> 01:10:45.590
<v Gast 3>Ja, das nimmt ganz klar den psychischen Druck ein bisschen raus und ist dann zum Beispiel aber auch vielleicht

01:10:45.590 --> 01:10:51.110
<v Gast 3>eine ganz gute Basis, um darauf aufbauen, dann eben vielleicht noch irgendwie tiefergehende,

01:10:51.510 --> 01:10:54.390
<v Gast 3>tiefergehendere Interviewfragen aufzubauen.

01:10:54.470 --> 01:10:58.950
<v Gast 3>Weil man kann ja dann natürlich sagen, also wenn jetzt der Interviewkandidat jetzt ein Problem gefunden hat,

01:10:59.030 --> 01:11:04.470
<v Gast 3>dann kann man mal fragen, wie würdest du das selber schreiben oder solche Dinge.

01:11:05.350 --> 01:11:09.830
<v Gast 3>Aber so als Grundsetting finde ich es viel interessanter,

01:11:10.790 --> 01:11:15.190
<v Gast 3>als jetzt irgendwie die Leute halt einen Binary-Sort am Whiteboard gucken zu lassen.

01:11:16.070 --> 01:11:16.390
<v Gast 3>Ja.

01:11:18.950 --> 01:11:23.510
<v Gast 1>Ja, also was man noch, ich glaube, wir haben hier noch so ein paar Punkte mit Gegenbeispiele,

01:11:23.750 --> 01:11:25.990
<v Gast 1>das können wir vielleicht auch noch kurz abhandeln.

01:11:26.070 --> 01:11:32.790
<v Gast 3>Also ein bisschen angesprochen, so das Looks Good to Me ist im Prinzip nutzlos aus meiner Sicht.

01:11:32.950 --> 01:11:37.030
<v Gast 3>Wenn ich jemanden sehe, der nur so Looks Good To Me Code-Reviews macht,

01:11:37.110 --> 01:11:42.230
<v Gast 3>dann weiß ich schon, ja, okay, das kann ich im Prinzip ignorieren, weil der hat es wahrscheinlich eh nicht

01:11:42.230 --> 01:11:42.550
<v Gast 3>gelesen.

01:11:42.630 --> 01:11:46.950
<v Gast 3>Oder andersrum fühle ich mich selber auch irgendwie schlecht, wenn ich jetzt tatsächlich mal durch ein

01:11:46.950 --> 01:11:51.750
<v Gast 3>Code-Review durchkomme und am Ende keine Kommentare habe, dann versuche ich immer nochmal verzweifelt

01:11:51.830 --> 01:11:56.790
<v Gast 3>irgendwas zu finden, um wenigstens irgendwie einen Daumen hoch irgendwo hinzumachen oder irgendwas.

01:11:57.110 --> 01:12:03.830
<v Gast 1>Ja, ansonsten sieht es halt so aus, als ob man das einfach nur überfliegt und gar nicht wirklich

01:12:04.790 --> 01:12:06.950
<v Gast 1>versucht, Feedback zu geben.

01:12:07.110 --> 01:12:12.390
<v Gast 1>Ich meine, es gibt tatsächlich auch irgendwelche Reviews, die vielleicht kurz genug sind oder die,

01:12:12.470 --> 01:12:19.350
<v Gast 1>wo die Änderungen klein genug sind oder wo man die Autoren schon gut genug kennt oder die Autoren gut genug

01:12:19.350 --> 01:12:25.750
<v Gast 1>mit einem Projekt vertraut sind, dass es keine Kommentare braucht.

01:12:26.550 --> 01:12:31.430
<v Gast 1>Die sollten allerdings eher selten sein, weil im Zweifelsfall kann man immer noch irgendwo Sachen positiv

01:12:31.430 --> 01:12:32.230
<v Gast 1>kommentieren.

01:12:32.550 --> 01:12:35.590
<v Gast 1>Das ist ja auch immer gut, dass man sagt, hey, das ist eine coole Lösung,

01:12:36.150 --> 01:12:38.310
<v Gast 1>fühlen sich die Leute dann danach auch besser.

01:12:38.790 --> 01:12:40.150
<v Gast 1>Ist auch ganz cool.

01:12:41.190 --> 01:12:46.550
<v Gast 1>Ja, und ich glaube, das ist auch verwandt mit dem Looks Good to Me, ist so Cover Your Ass Engineering.

01:12:46.790 --> 01:12:50.310
<v Gast 1>Also das ist halt auch immer so eine Geschichte, die mir oft auffällt,

01:12:50.470 --> 01:12:56.230
<v Gast 1>dass es in manchen Organisationen die Leute überhaupt nicht interessiert daran sind,

01:12:56.390 --> 01:13:01.750
<v Gast 1>Feedback zu bekommen, sondern da wird Code Review als Mechanismus missbraucht,

01:13:01.990 --> 01:13:05.590
<v Gast 1>um Verantwortung von den eigenen Schultern zu nehmen.

01:13:05.830 --> 01:13:11.110
<v Gast 1>In Form von, ja, wenn ich jetzt hier irgendwie meinen Code submitte und scheiße baue,

01:13:11.270 --> 01:13:15.030
<v Gast 1>dann sind meine fünf Reviewer, die hier Lux Good To Me geschrieben haben,

01:13:15.110 --> 01:13:15.910
<v Gast 1>mit Schuld.

01:13:16.950 --> 01:13:21.190
<v Gast 1>Ich habe das schon erlebt, dass es dann teilweise Leute gibt, die überhaupt kein Interesse an Feedback haben,

01:13:21.430 --> 01:13:26.230
<v Gast 1>die sogar im Gegensatz dazu eher so schockiert sind,

01:13:26.310 --> 01:13:28.230
<v Gast 1>wenn man ihren Code kommentiert.

01:13:31.510 --> 01:13:35.670
<v Gast 1>Ja, genau, wie kannst du es wagen, mir Dinge vorzuschlagen, um sie besser zu machen?

01:13:35.910 --> 01:13:39.350
<v Gast 1>Du blockierst mich jetzt hier, ich will doch eigentlich nur meinen Job machen.

01:13:39.510 --> 01:13:45.430
<v Gast 1>Also solche Antworten habe ich schon erlebt und das zeigt relativ stark,

01:13:45.590 --> 01:13:51.990
<v Gast 1>dass die Leute kein Interesse an Feedback haben und im Endeffekt nur jemanden suchen,

01:13:52.070 --> 01:13:56.630
<v Gast 1>der im Zweifelsfall für sie mit der Sündenbock ist für Dinge,

01:13:56.790 --> 01:13:58.310
<v Gast 1>die sie halt implementiert haben.

01:13:58.390 --> 01:14:00.790
<v Gast 1>Und das ist halt sollte halt eigentlich nicht der Fall sein.

01:14:01.030 --> 01:14:03.110
<v Gast 2>Und sie verstehen auch nicht, was ihr Job eigentlich ist.

01:14:03.190 --> 01:14:04.950
<v Gast 2>Das ist dann immer so das Problem.

01:14:05.430 --> 01:14:10.470
<v Gast 2>Wenn die Leute denken, ja, mein Job ist ja nur Features zu implementieren, ist ja, ja, nicht nur.

01:14:10.950 --> 01:14:14.230
<v Gast 2>Es ist ein großer Teil, aber Reviews und Qualitäts.

01:14:15.270 --> 01:14:20.550
<v Gast 3>Kommen wir wieder zurück zum Unterschied zwischen einem Softwareentwickler und einem Software Engineer.

01:14:21.430 --> 01:14:23.990
<v Gast 3>Der eine ist halt der, der Code runterschreibt und der andere ist halt,

01:14:24.070 --> 01:14:28.310
<v Gast 3>der das alles macht, was da noch so drumrum dazugehört.

01:14:29.270 --> 01:14:33.190
<v Gast 2>Ja, wobei natürlich, je nach Firma, da auch der Entwickler eventuell das andere macht,

01:14:33.350 --> 01:14:38.950
<v Gast 2>aber es gibt so zwei Schläge von Leuten, die auf Tastaturen einprügeln.

01:14:39.030 --> 01:14:41.750
<v Gast 2>Die einen machen das richtig und die anderen machen das so halb.

01:14:42.150 --> 01:14:45.670
<v Gast 2>Und Code-Teviews sind halt für Leute, die es richtig machen wollen.

01:14:46.710 --> 01:14:47.270
<v Gast 2>Genau.

01:14:47.510 --> 01:14:49.590
<v Gast 1>Ich glaube, das kann man auch so stehen lassen.

01:14:49.910 --> 01:14:52.950
<v Gast 1>Gibt es sonst noch irgendwelche letzten Kommentare, irgendwelche Dinge,

01:14:54.070 --> 01:14:56.470
<v Gast 1>auf die man noch verweisen will, sonst irgendwas?

01:14:56.790 --> 01:14:57.990
<v Gast 1>Fällt euch noch was ein?

01:15:01.350 --> 01:15:03.910
<v Gast 2>Ich glaube, wir haben das ganz gut abgehandelt.

01:15:05.430 --> 01:15:06.310
<v Gast 1>Gute Sache.

01:15:06.630 --> 01:15:08.710
<v Gast 1>Dann kommen wir zum Lesefu.

01:15:10.870 --> 01:15:16.310
<v Gast 1>Also ich weiß nicht, der Lukas weiß ich glaube, der Lukas weiß es ja noch nicht so richtig,

01:15:16.470 --> 01:15:20.070
<v Gast 1>aber wir sind ja quasi Lesefu, ne, wie war das?

01:15:20.710 --> 01:15:25.270
<v Gast 1>Ein was war unser letzter Sendungstitel?

01:15:26.150 --> 01:15:30.790
<v Gast 1>Ein Freizeitpark mit Blackjack und Lesefu sind wir quasi.

01:15:31.910 --> 01:15:34.630
<v Gast 3>Das heißt, was wir bis jetzt gemacht haben, war der Blackjack-Time.

01:15:35.030 --> 01:15:39.110
<v Gast 1>Ja, also wir haben jetzt quasi Blackjack gemacht und eigentlich unsere Hauptaufgabe ist es,

01:15:39.190 --> 01:15:40.950
<v Gast 1>Lesefu unters Volk zu bringen.

01:15:41.110 --> 01:15:45.990
<v Gast 2>Ja, im Gegensatz zu den originalen Binärgewitter-Talk-Sendungen, wo es größtenteils um News geht,

01:15:46.150 --> 01:15:49.510
<v Gast 2>ist die West Coast Edition, dass es da auch keine Überlappung gibt,

01:15:49.590 --> 01:15:50.790
<v Gast 2>mehr so Papers.

01:15:50.950 --> 01:15:57.910
<v Gast 2>Außerdem wurden aus der originalen Fassung ja die Papers zensiert, weil man nur maximal drei machen konnte.

01:15:58.870 --> 01:16:00.870
<v Gast 1>Genau, wir sind quasi Lesefood-Driven.

01:16:01.030 --> 01:16:01.750
<v Gast 1>Ja, wir sind unbedingt.

01:16:04.470 --> 01:16:07.910
<v Gast 3>Bin da jetzt ein bisschen unvorbereitet und kann da vermutlich nicht groß was beisteuern,

01:16:07.990 --> 01:16:11.110
<v Gast 3>aber ich kann bestimmt kommentieren, was auch noch ihr jetzt hier vorschlagen wollt.

01:16:11.190 --> 01:16:13.510
<v Gast 2>Ja, ich glaube, wir müssen da auch so halbwegs schnell drüber gehen,

01:16:13.590 --> 01:16:16.550
<v Gast 2>sonst haben wir wieder so einen 3-Stunden-Oschi hier an der Backe hängen.

01:16:16.710 --> 01:16:19.110
<v Gast 2>Aber ich fange jetzt auch direkt einfach mal an.

01:16:19.590 --> 01:16:23.110
<v Gast 2>Genau, der erste ist ein Link von der Julia Evans.

01:16:23.990 --> 01:16:28.070
<v Gast 2>Die macht immer diese lustigen, ich weiß gar nicht, wie man es ausspricht,

01:16:28.390 --> 01:16:31.750
<v Gast 2>Sin wahrscheinlich, so wie Magazine, nur halt nur SIN.

01:16:32.230 --> 01:16:36.710
<v Gast 2>Und die erklärt so grundlegende Computerdinge ganz gut.

01:16:37.110 --> 01:16:44.070
<v Gast 2>Und die hat einen Artikel darüber geschrieben, wie man Pakete sehr schnell filtern kann mit XDP

01:16:44.070 --> 01:16:45.190
<v Gast 2>und EBPF.

01:16:45.990 --> 01:16:48.390
<v Gast 2>BPF ist ja, ja, richtig.

01:16:48.630 --> 01:16:55.190
<v Gast 2>BPF oder EBPF ist ja diese im Kernel drinnen eine kleine

01:16:55.190 --> 01:16:58.150
<v Gast 2>virtuelle Maschine, der man Bytecode vorwerfen kann.

01:16:58.550 --> 01:17:03.830
<v Gast 2>Und oder andersrum, ne, doch, genau so.

01:17:04.310 --> 01:17:09.430
<v Gast 2>Und wenn du zum Beispiel so Sachen machen willst wie Pakete schnell filtern,

01:17:09.670 --> 01:17:15.110
<v Gast 2>dann kannst du natürlich nicht ein User-Space-Programm haben, das irgendwie vom Kernel das Paket kriegt und

01:17:15.110 --> 01:17:19.990
<v Gast 2>dann irgendwas macht und es dann wieder an den Kernel zurückgibt, weil die Kontext-Switches halt viel zu viel

01:17:19.990 --> 01:17:20.710
<v Gast 2>Zeit wegnehmen.

01:17:20.950 --> 01:17:24.710
<v Gast 2>Bedeutet, du musst irgendwie Sachen im Kernel laufen lassen ohne Kontext-Switches.

01:17:25.190 --> 01:17:28.230
<v Gast 2>Aber du willst halt auch jetzt nicht unbedingt ein Kernel-Modul schreiben,

01:17:28.390 --> 01:17:31.110
<v Gast 2>weil da kann halt auch schief viel gehen.

01:17:31.270 --> 01:17:32.550
<v Gast 2>Schief viel gehen, genau.

01:17:32.870 --> 01:17:37.750
<v Gast 2>Viel schief gehen und du kannst halt deinen kompletten Kernel-Sec folten, was du ja auch nicht willst.

01:17:37.910 --> 01:17:44.630
<v Gast 2>Und da ist diese eBPF, diese virtuelle Maschine, der kannst du Bytecode geben und theoretisch solltest du mit

01:17:44.630 --> 01:17:46.950
<v Gast 2>diesem Bytecode den Kernel nicht kaputt machen können.

01:17:47.190 --> 01:17:53.430
<v Gast 2>Weil der Bytecode irgendwie verifiziert wird und zum Beispiel so Sachen wie EBPF erlaubt keine Loops.

01:17:53.510 --> 01:17:56.710
<v Gast 2>Also du kannst nicht endlos loopen und der Kernel hängt sich dann auf,

01:17:56.870 --> 01:18:00.790
<v Gast 2>sondern das muss alles recht sinnvoll, recht schnell abgehandelt werden.

01:18:01.110 --> 01:18:06.630
<v Gast 2>Und sie hat da einen recht interessanten Artikel darüber geschrieben, wie man XDP benutzen kann.

01:18:06.870 --> 01:18:13.430
<v Gast 2>XDP setzt quasi so auf dieses eBPF auf, aber spezialisiert sich auf Paketverwaltung.

01:18:13.510 --> 01:18:17.590
<v Gast 2>Also wenn du ein TCP-Paket bekommst und du damit was machen willst,

01:18:17.750 --> 01:18:23.750
<v Gast 2>eventuell das einfach droppen, um irgendwie D-DoS abzuwehren oder du willst es irgendwie verändern oder sonst

01:18:23.750 --> 01:18:29.590
<v Gast 2>was in der Art, dann kannst du damit mit recht wenig Code super High-Performance Zeug schreiben.

01:18:29.750 --> 01:18:35.110
<v Gast 2>Und ihr Artikel geht so ein bisschen quasi auf das so eine Art Hello World ein,

01:18:36.470 --> 01:18:43.030
<v Gast 2>wo sie quasi mit XDP so eine kleine Counter-Hash Map hat und halt

01:18:43.030 --> 01:18:46.630
<v Gast 2>feststellen kann, wie oft diese IP schon mit mir geredet hat und dann einfach was droppen,

01:18:46.710 --> 01:18:48.790
<v Gast 2>wenn das zu oft ist, in einer gewissen Zeit.

01:18:48.950 --> 01:18:52.230
<v Gast 2>Und es ist eigentlich ein echt netter, wahrscheinlich irgendwie eine Seite oder zwei,

01:18:52.310 --> 01:18:55.910
<v Gast 2>eine echt nette Übersicht, wie man damit interagieren kann.

01:18:56.070 --> 01:18:59.350
<v Gast 2>Und ich sage, lohnt sich durchzulesen, ist ganz, ganz nett zu sehen,

01:18:59.430 --> 01:19:02.070
<v Gast 2>was da alles sich im Kernel entwickelt hat.

01:19:03.510 --> 01:19:08.070
<v Gast 1>Also mal kurze Frage, dieses XDP, ist das dann einfach nur eine,

01:19:08.230 --> 01:19:13.590
<v Gast 1>wie soll man sagen, eine abgespeckte Version von C oder ist das irgendwie eine eigene Sprache?

01:19:13.670 --> 01:19:18.070
<v Gast 1>Weil das, was ich jetzt hier sehe, das sieht so sehr stark nach C aus.

01:19:18.310 --> 01:19:18.790
<v Gast 1>Ja, genau.

01:19:18.870 --> 01:19:19.990
<v Unbekannt>Also es ist auch.

01:19:20.390 --> 01:19:25.590
<v Gast 1>Oder ist das irgendwie eine API, gegen die man programmiert, die dann diesen Bytecode wiederum generiert?

01:19:25.670 --> 01:19:26.870
<v Gast 1>Wie funktioniert das Ganze?

01:19:27.270 --> 01:19:32.870
<v Gast 2>Ich würde sagen, XDP ist so eine DSL quasi, mit der man,

01:19:32.950 --> 01:19:37.270
<v Gast 2>und die DSL ist, ich glaube, C-basierend, also die API, mit der du da redest,

01:19:37.430 --> 01:19:41.910
<v Gast 2>mit der du diese eBPF-Bytecode-Programme generieren kannst.

01:19:42.310 --> 01:19:46.710
<v Gast 2>eBPF selber kannst du auch, ich glaube, es gibt auch einen Python nach eBPF-Compiler.

01:19:47.910 --> 01:19:51.830
<v Gast 2>Aber XDP ist speziell für Netzwerkinteraktionen.

01:19:51.910 --> 01:19:54.550
<v Gast 2>Also Paket nehmen, Paket weiterlassen, Paket droppen.

01:19:55.510 --> 01:20:02.390
<v Gast 2>Also quasi eine DSL auf diese virtuelle Maschine, aber nur um Netzwerkinteraktionen zu

01:20:02.390 --> 01:20:02.710
<v Gast 2>machen.

01:20:04.910 --> 01:20:06.430
<v Gast 1>Was ist ziemlich cool?

01:20:06.670 --> 01:20:13.150
<v Gast 2>Das ist ja gerade also ihr Standard, ich glaube, sie hat es gegen IP-Tables verglichen.

01:20:14.030 --> 01:20:17.390
<v Gast 2>Der einen Filter, der allen UDP-Traffic einfach droppt.

01:20:17.550 --> 01:20:22.350
<v Gast 2>Wenn du sagst, mein Paket macht nur TCP und Ende, und ich glaube,

01:20:23.070 --> 01:20:28.430
<v Gast 2>der einfache IP-Tables-Filter kann grobe viereinhalb Millionen Pakete pro Sekunde.

01:20:28.590 --> 01:20:31.710
<v Gast 2>Das einfache XDP-Programm kann knappe 10 Millionen.

01:20:31.790 --> 01:20:38.190
<v Gast 2>Also es ist mehr als doppelt so schnell, was schon mal, gerade wenn du so Load Balancer oder irgend sowas in

01:20:38.190 --> 01:20:41.470
<v Gast 2>der Art schreiben willst, ist das schon eine ganz gute Geschichte.

01:20:43.070 --> 01:20:47.550
<v Gast 3>Ich habe jetzt irgendwie alles ein recht exotisches,

01:20:48.590 --> 01:20:53.230
<v Gast 3>einen exotischen Anwendungsfall, dass man überhaupt mit Netzwerkpaketen beschäftigt und dann auch noch einen

01:20:53.230 --> 01:20:54.750
<v Gast 3>eigenen Loadbalancer schreibt.

01:20:56.350 --> 01:20:57.310
<v Unbekannt>Aber es ist cool.

01:20:58.190 --> 01:21:04.590
<v Gast 3>Es ist eindeutig cool, aber ich sehe mich im Moment nicht das in der Praxis in allzu naher Zeit anblenden.

01:21:05.070 --> 01:21:07.630
<v Gast 2>Es ist grob 25% meiner Zeit, ja.

01:21:07.790 --> 01:21:14.750
<v Gast 2>Also wir haben neulich einen DACP-Loadbalancer geschrieben, der jetzt Open Source ist und wir brauchen das

01:21:14.750 --> 01:21:18.430
<v Gast 2>leider, weil irgendwann hast du so viel.

01:21:18.990 --> 01:21:19.790
<v Gast 3>Spezialisiert.

01:21:20.270 --> 01:21:21.950
<v Unbekannt>Ja, ja, leider.

01:21:22.110 --> 01:21:22.590
<v Unbekannt>Weiß nicht.

01:21:22.670 --> 01:21:24.670
<v Gast 2>Oder vielleicht auch gut, dass ich das kann.

01:21:25.150 --> 01:21:28.910
<v Gast 2>Aber ja, ich würde sagen, es ist interessant zum sehen.

01:21:29.310 --> 01:21:32.590
<v Gast 2>Die meisten Leute werden es wahrscheinlich nicht brauchen, weil IP-Tables reicht,

01:21:32.750 --> 01:21:37.550
<v Gast 2>aber wenn du zum Beispiel einen VPN-Anbieter bist und irgendwie mit Paketen rumfrickeln willst,

01:21:37.790 --> 01:21:39.470
<v Gast 2>dann lohnt sich das.

01:21:39.630 --> 01:21:43.230
<v Gast 2>Oder wenn du, keine Ahnung, andere Sachen sehr schnell machen willst.

01:21:43.310 --> 01:21:47.710
<v Gast 2>Wir haben einen Service, der IPv6 nach V4 umsetzt,

01:21:47.950 --> 01:21:52.110
<v Gast 2>dass du irgendwie auch mit Credelservices, die noch IPv4 benutzen, reden kannst.

01:21:53.070 --> 01:21:58.030
<v Gast 2>Da wäre sowas auch ganz interessant und kann dir wahrscheinlich, keine Ahnung,

01:21:58.270 --> 01:22:04.350
<v Gast 2>sparst du dir fünf Server ein und die Server kosten alle 15.000 Dollar und auf einmal hast du 70.000 Dollar

01:22:04.350 --> 01:22:06.270
<v Gast 2>gespart, nur weil du was neu implementiert hast.

01:22:06.430 --> 01:22:07.790
<v Gast 2>Ist ja auch nett.

01:22:09.390 --> 01:22:10.190
<v Gast 2>Genau.

01:22:10.750 --> 01:22:10.990
<v Gast 2>Okay.

01:22:11.630 --> 01:22:13.390
<v Gast 1>Kommen wir zum nächsten Post.

01:22:15.550 --> 01:22:19.230
<v Gast 1>Falsehoods Programmer Belief, das ist so eine Art Meta-Post.

01:22:19.550 --> 01:22:24.910
<v Gast 1>Das ist ein Artikel, der wiederum andere Artikel verlinkt,

01:22:25.150 --> 01:22:30.670
<v Gast 1>die auf Probleme aufmerksam machen, die Programmierer glauben, aber nicht der Realität entsprechen.

01:22:30.750 --> 01:22:34.990
<v Gast 1>Also das sind so Sachen wie, ja, die Namen, die ich meinen Dingen gebe,

01:22:35.230 --> 01:22:38.510
<v Gast 1>die sind für alle offensichtlich und die verstehen alle Leute.

01:22:38.830 --> 01:22:43.470
<v Gast 1>Oder so Sachen wie, ja, Geschlecht ist binär,

01:22:43.630 --> 01:22:48.750
<v Gast 1>es gibt Mann, es gibt Frau oder im Zweifelsfall kann man vielleicht ein Ennumerable draus machen,

01:22:48.990 --> 01:22:50.670
<v Gast 1>ist vielleicht auch nicht ganz der Fall.

01:22:50.830 --> 01:22:56.590
<v Gast 1>Und also es ist einfach sehr interessant, welche Dinge da einfach kaputt gehen können,

01:22:56.670 --> 01:22:59.390
<v Gast 1>wenn man bestimmte Annahmen hat und die nicht validiert.

01:23:01.150 --> 01:23:05.630
<v Gast 1>Ja, also sehr viel mehr muss ich da nicht dazu sagen, weil das sind jetzt,

01:23:05.950 --> 01:23:10.830
<v Gast 1>ich keine Ahnung, geschätzt bestimmt 15, 16 weitere Artikel verlinkt,

01:23:11.150 --> 01:23:14.990
<v Gast 1>die will ich jetzt nicht alle einzeln ansprechen, aber das sind einfach Dinge.

01:23:15.310 --> 01:23:19.550
<v Gast 1>Es tut, glaube ich, als Softwareentwickler mal gut, sich solche Sachen zu Gemüte zu führen,

01:23:19.630 --> 01:23:23.630
<v Gast 1>um da mal zu sehen, was alles kaputt gehen kann, weil man kann alles kaputt machen.

01:23:24.030 --> 01:23:26.510
<v Gast 2>Man kann und sollte auch hin und wieder einfach mal.

01:23:26.910 --> 01:23:28.670
<v Gast 1>Ja, man sollte auch alles kaputt machen.

01:23:29.070 --> 01:23:29.950
<v Unbekannt>Richtig.

01:23:31.310 --> 01:23:35.390
<v Gast 2>Ich glaube, da hast du auch diesen Fallacies of Distributed Computing-Artikel verlinkt.

01:23:36.350 --> 01:23:39.070
<v Gast 1>Ja, das ist quasi verwandt.

01:23:39.230 --> 01:23:42.910
<v Gast 1>Also es ist halt auch so Fallacies of Distributed Computing sind halt Dinge,

01:23:43.070 --> 01:23:47.390
<v Gast 1>die man so als gegeben annimmt, die einfach nicht stimmen.

01:23:47.630 --> 01:23:51.390
<v Gast 1>Da gibt es Wikipedia-Artikel dazu, das sind eigentlich so, das sind so die ersten Sachen,

01:23:51.470 --> 01:23:57.470
<v Gast 1>die man so in irgendwelchen Distributed Computing-Vorlesungen mal bespricht.

01:23:57.790 --> 01:24:04.750
<v Gast 1>So Sachen wie, ja, meine Latenz ist immer null und das Netzwerk ist nicht fehlbar und so

01:24:04.750 --> 01:24:05.390
<v Gast 1>weiter und so fort.

01:24:05.470 --> 01:24:11.390
<v Gast 1>Das sind einfach Dinge, die einem dann irgendwann hart um die Ohren fliegen, weil man sie nicht bedenkt.

01:24:11.710 --> 01:24:18.510
<v Gast 2>Richtig, das habe ich jetzt auch mal wunderbar mitgetrollt mit genau diesem Wikipedia-Artikel in den

01:24:18.510 --> 01:24:19.630
<v Gast 2>Puppet-Foren.

01:24:20.110 --> 01:24:26.190
<v Gast 2>Da war halt auch irgendwie Puppet, diese Ruby-basierte Systemkonfigurationslösung,

01:24:26.750 --> 01:24:31.870
<v Gast 2>hatte keine Retries für HTTP-Requests, obwohl es einfach nur so Get-Requests waren,

01:24:31.950 --> 01:24:33.470
<v Gast 2>also die kann man wunderbar retryen.

01:24:33.550 --> 01:24:36.350
<v Gast 2>Und wir haben die geaddet und einer hat dann halt auch kommentiert,

01:24:36.430 --> 01:24:42.510
<v Gast 2>so ja, ich will das aber nicht als Default haben, weil meine Puppet-Agents sind ja auf demselben

01:24:43.470 --> 01:24:45.630
<v Gast 2>stabilen Netzwerk wie der Master.

01:24:45.710 --> 01:24:47.630
<v Gast 2>Und das ist ja bei wohl sehr vielen Leuten so.

01:24:47.870 --> 01:24:50.270
<v Gast 2>Da konnte ich auch einfach nur diesen Artikel posten und habe gesagt,

01:24:50.350 --> 01:24:55.870
<v Gast 2>hey, stabiles Netzwerk, da hast du die Nummer 1 aus den Distributed Computing Fallacies erwischt.

01:24:56.030 --> 01:24:56.670
<v Gast 2>Fand ich sehr gut.

01:24:56.830 --> 01:25:01.070
<v Gast 2>Komme ich mir auch Jahre später noch wunderbar vor, dass ich das posten konnte.

01:25:01.550 --> 01:25:03.470
<v Gast 1>Ja, das ist auf jeden Fall immer großartig.

01:25:03.630 --> 01:25:05.070
<v Gast 2>Einfach mal Leute trollen.

01:25:06.190 --> 01:25:06.670
<v Gast 2>Genau.

01:25:06.910 --> 01:25:07.230
<v Gast 2>Sehr gut.

01:25:07.310 --> 01:25:12.510
<v Gast 3>Da ist mir gerade noch ein Artikel eingefallen, oder es ist mir eine Hilfswebseite,

01:25:12.830 --> 01:25:18.990
<v Gast 3>die die ganzen Fallacies aufliste, die so mit Kalender und Zeit und so zu tun haben,

01:25:19.150 --> 01:25:22.670
<v Gast 3>weil es wohl auch immer noch viel zu oft vorkommt, dass irgendwie Leute meinen,

01:25:22.750 --> 01:25:29.550
<v Gast 3>sie müssen ihren Code, der irgendwie Datum und Zeit und Zeitabstände und so

01:25:29.550 --> 01:25:33.150
<v Gast 3>behandelt, selber schreiben und machen dabei einfach viel zu viele Annahmen,

01:25:33.230 --> 01:25:33.870
<v Gast 3>wie irgendwie.

01:25:34.110 --> 01:25:40.990
<v Gast 3>Mein Tag hat immer so und so viele Sekunden oder 24 Stunden oder es gibt einfach viel zu viele Dinge über

01:25:41.550 --> 01:25:48.350
<v Gast 3>Kalender und datumsrelevante Dinge, von denen man tatsächlich manchmal einfach nichts

01:25:48.350 --> 01:25:52.990
<v Gast 3>weiß und die völlig anders sind, als man annimmt und Annahmen gefährlich.

01:25:53.310 --> 01:25:54.750
<v Gast 1>Ah ja, Annahmen sind echt schwierig.

01:25:54.830 --> 01:26:01.070
<v Gast 1>Du meinst solche Annahmen, wie dass es nicht plötzlich sein kann, dass deine Systemzeit um paar Sekunden oder

01:26:01.070 --> 01:26:03.070
<v Gast 1>mal eine Stunde vor da zurückspringt?

01:26:03.710 --> 01:26:09.870
<v Gast 3>Ja, es sind tatsächlich mehr so Dinge, die man so aus einem Common Sense raus

01:26:10.510 --> 01:26:16.270
<v Gast 3>annehmen würde, wie so jeder benutzt den gleichen Kalender wie ich.

01:26:16.430 --> 01:26:18.670
<v Gast 3>So, das ist alles gregorianischer Kalender.

01:26:19.790 --> 01:26:23.550
<v Gast 3>Da kann man schon eher drauf kommen, dass das vielleicht nicht der Fall ist,

01:26:23.870 --> 01:26:29.950
<v Gast 3>aber dass es zum Beispiel eben, dass halt das Wochenende nicht auf der ganzen Welt Samstag und Sonntag ist.

01:26:30.270 --> 01:26:30.830
<v Gast 3>Vielleicht.

01:26:30.910 --> 01:26:37.230
<v Gast 3>Und lauter solche Dinge, die einfach irgendwie ein bisschen einen eigenen Horizont übersteigen und von denen

01:26:37.230 --> 01:26:39.630
<v Gast 3>man einfach vielleicht auch nichts weiß, wenn man nicht in jedem Land,

01:26:39.790 --> 01:26:42.190
<v Gast 3>der welche mal war, oder eben diese Seite nicht gelesen hat.

01:26:42.990 --> 01:26:44.350
<v Gast 1>Ja, das ist auch ganz interessant.

01:26:44.750 --> 01:26:45.630
<v Gast 1>Sorry, willst du?

01:26:45.790 --> 01:26:46.030
<v Gast 1>Sorry?

01:26:46.430 --> 01:26:50.670
<v Gast 2>Ich glaube, wir können uns alle auf Unix-Timestamps einigen, wollte ich nur sagen.

01:26:51.870 --> 01:26:52.430
<v Gast 2>Ja, genau.

01:26:52.750 --> 01:26:56.830
<v Gast 1>Also ich habe das tatsächlich mal in einer Produktionsumgebung erwähnt,

01:26:56.910 --> 01:27:01.150
<v Gast 1>wo sich Menschen für einen Dienst nicht einloggen, nicht anmelden konnten,

01:27:01.230 --> 01:27:03.710
<v Gast 1>weil sie vor 1970 geboren waren.

01:27:04.830 --> 01:27:07.230
<v Gast 2>Wer ist denn auch vor 1970 geboren?

01:27:07.550 --> 01:27:11.310
<v Gast 1>Ja, also keine Ahnung, die ganzen alten Zecke, die will man vielleicht eh nicht ins Heims.

01:27:11.630 --> 01:27:16.350
<v Gast 1>Sorry, also das kleine Anmerkung hier, das war jetzt ein böswilliger Kommentar,

01:27:16.430 --> 01:27:17.950
<v Gast 1>ich meine das natürlich nicht ernst.

01:27:18.510 --> 01:27:19.150
<v Gast 1>Aber ja.

01:27:20.350 --> 01:27:25.310
<v Gast 1>Also man sollte vielleicht auch mal drüber nachdenken, wie so seine Zielgruppe aussieht und ob man das

01:27:25.310 --> 01:27:30.910
<v Gast 1>vielleicht wirklich will, einen Großteil der Bevölkerung oder große Teile der Bevölkerung auszuschließen,

01:27:31.070 --> 01:27:34.110
<v Gast 1>weil sie vor einem gewissen Jahr geboren sind.

01:27:34.510 --> 01:27:39.870
<v Gast 2>Ich würde aber behaupten, das Problem wird sich einfach von selber lösen in den nächsten 50 Jahren.

01:27:40.430 --> 01:27:41.070
<v Gast 2>Ja, natürlich.

01:27:41.150 --> 01:27:41.950
<v Gast 1>Also, wenn man dem ganzen Probleme.

01:27:42.990 --> 01:27:46.510
<v Gast 3>Die Lebenserwartung steigt und wer weiß, ne, so Kryogenese.

01:27:48.030 --> 01:27:48.910
<v Unbekannt>Ach, dann wird man das nicht mehr so gut.

01:27:51.870 --> 01:27:56.830
<v Gast 1>Ja, das andere Problem ist halt, ich glaube, ab 2038 läuft er, oder was 2038?

01:27:56.910 --> 01:28:00.270
<v Gast 1>Ich glaube, da läuft der 32-Bit-Unix-Timestamp aus.

01:28:00.350 --> 01:28:05.950
<v Gast 1>Das heißt, man muss sich dann halt auch mal überlegen, ob man denn bis dahin alle

01:28:06.510 --> 01:28:10.990
<v Gast 1>Prozessoren und alle Infrastruktur durch 64-Bit ersetzt hat.

01:28:11.150 --> 01:28:13.310
<v Gast 1>Ich glaube, das dauert auch noch eine Weile, bis das passiert.

01:28:13.390 --> 01:28:19.070
<v Gast 2>Ich sehe schon, ich muss in Frührente gehen, sonst habe ich 2038 wenig Spaß.

01:28:20.590 --> 01:28:22.430
<v Gast 1>Ja, könnte man so ausdrücken.

01:28:22.670 --> 01:28:23.230
<v Gast 1>Cool.

01:28:23.870 --> 01:28:28.430
<v Gast 2>Was ich dann auch noch als nächsten Artikel hatte im Heroku Engineering Blog,

01:28:29.150 --> 01:28:34.670
<v Gast 2>Troubleshooting Port Exhaustion in Herokus Routing Layer ist ein eigentlich recht cooler Post,

01:28:34.910 --> 01:28:41.630
<v Gast 2>der so ein bisschen lower-level abhandelt, wie die denn Probleme

01:28:41.630 --> 01:28:47.630
<v Gast 2>debuggt haben, wo bei ihnen einfach die Connections nicht mehr zustande kamen in ihrem Routing-Layer oder

01:28:47.630 --> 01:28:49.150
<v Gast 2>Routing Layer, je nachdem.

01:28:49.710 --> 01:28:56.590
<v Gast 2>Und es ist ganz nett durchzulesen, auch mal ihre Tools zu sehen, wie sie S-Trace benutzen und wie sie gerade

01:28:56.590 --> 01:29:02.670
<v Gast 2>die Socket API diese Reuse-Address Flag gesetzt haben.

01:29:02.830 --> 01:29:06.430
<v Gast 2>Das ist immer, ich finde diese, diese gerade Socket API-Flag setzen,

01:29:06.590 --> 01:29:13.070
<v Gast 2>Linger, Reuse-Address, das ganze Zeug, das ist so ein bisschen nextes Level-Engineer.

01:29:13.150 --> 01:29:17.230
<v Gast 2>Also so am Anfang kannst du irgendwie die Connection aufmachen und ein bisschen noch mit rumfrickeln.

01:29:17.550 --> 01:29:21.630
<v Gast 2>Und wenn du dann irgendwie weit genug hochgelevelt hast, dann weißt du halt auch,

01:29:21.950 --> 01:29:27.390
<v Gast 2>welche von diesen blöden Parametern du alle setzen musst, damit es dann nicht mit entsprechender Last oder mit

01:29:27.390 --> 01:29:30.350
<v Gast 2>entsprechender sonst was dir um die Ohren fliegt.

01:29:30.590 --> 01:29:34.110
<v Gast 2>Und die haben das hier recht schön gezeigt.

01:29:34.190 --> 01:29:40.430
<v Gast 2>Und was ich auch nett finde, ist, sie haben immer ihre Theorien mit so kleinen C-Programmen

01:29:40.750 --> 01:29:45.630
<v Gast 2>bewiesen, wo sie halt gesagt haben, ja, wir hatten hier die Idee und hier haben wir dann einfach irgendwie 40

01:29:45.630 --> 01:29:48.350
<v Gast 2>Zeilen C geschrieben, um unsere Theorie zu testen.

01:29:48.510 --> 01:29:53.950
<v Gast 2>Und es ist so eine ganz nette Vorgehensweise, die man da sich anschauen kann.

01:29:54.670 --> 01:29:56.510
<v Gast 2>Ist ganz cool durchzulesen.

01:29:58.110 --> 01:30:03.790
<v Gast 1>Das ist cool, also ist bei mir auf jeden Fall bereits auf der Leseliste, kam leider noch nicht dazu.

01:30:04.670 --> 01:30:09.070
<v Gast 1>Wo ich allerdings dazu kam, ist ein Post, der glaube ich, vermute ich,

01:30:09.390 --> 01:30:15.470
<v Gast 1>ich glaube, ich habe den auch schon in den Shownotes unserer Schwestersendung gesehen,

01:30:15.550 --> 01:30:17.070
<v Gast 1>deswegen will ich das nur kurz ansprechen.

01:30:17.150 --> 01:30:21.790
<v Gast 1>Da geht es von Zach Holman, ehemaliger GitHub-Mitarbeiter,

01:30:21.870 --> 01:30:26.750
<v Gast 1>der jetzt mittlerweile seine eigene Firma gegründet hat, die unter anderem was mit Kalendern macht,

01:30:27.630 --> 01:30:31.310
<v Gast 1>wo wir auch wieder den roten Faden von dem Artikel vorher drin hatten.

01:30:32.910 --> 01:30:37.950
<v Gast 1>Ist ganz interessant, erzählt einfach mal so: Okay, wie hat er denn angefangen, ein Startup zu gründen?

01:30:38.270 --> 01:30:42.670
<v Gast 1>Was waren so die Punkte, die ihm so am meisten Schmerzen bereitet haben?

01:30:44.990 --> 01:30:50.110
<v Gast 1>Wie hat er seine Domain gewählt, wie hat er das Business angemeldet,

01:30:50.190 --> 01:30:53.950
<v Gast 1>wie hat er da so die ganze finanzielle Situation gemanagt?

01:30:54.270 --> 01:31:00.990
<v Gast 1>Das ist eine ganz coole Zusammenfassung, wenn man mal irgendwann vorhat, eine Tech-Firma zu gründen.

01:31:01.710 --> 01:31:06.190
<v Gast 2>Ja, gerade auch dieses Stripe Atlas ist ganz cool und da redet er auch so ein bisschen drüber,

01:31:06.270 --> 01:31:07.390
<v Gast 2>wie er das benutzt.

01:31:07.550 --> 01:31:13.310
<v Gast 2>Also die gründen quasi für dich, machen das ganze Paperwork und ich glaube sogar einen Bank-Account,

01:31:13.390 --> 01:31:15.870
<v Gast 2>also so ein Business-Checking-Account und alles.

01:31:16.830 --> 01:31:18.830
<v Gast 2>Und dann kannst du ein US-Startup sein.

01:31:18.990 --> 01:31:21.550
<v Gast 2>Kann jeder, der will, kann ein US-Startup sein.

01:31:22.190 --> 01:31:25.470
<v Gast 1>Genau, also ich glaube, dass, wenn ich das richtig verstanden habe,

01:31:25.550 --> 01:31:30.830
<v Gast 1>dann funktioniert dieses Stripe Atlas ja auch für Leute außerhalb der USA,

01:31:31.230 --> 01:31:36.910
<v Gast 1>damit die da vielleicht auch irgendwie, sagen wir mal, Venture-Kapital von irgendwelchen Silicon Valley-Firmen

01:31:36.910 --> 01:31:42.830
<v Gast 1>beantragen können und damit da irgendwie die rechtliche Basis dafür gesetzt ist,

01:31:42.910 --> 01:31:43.870
<v Gast 1>dass man da vielleicht auch mal ist.

01:31:44.030 --> 01:31:45.630
<v Gast 3>Deswegen super, ich will auch Venture-Kapital.

01:31:45.790 --> 01:31:50.590
<v Gast 2>Und natürlich Steuerhinterziehung auch ganz hervorragend.

01:31:50.750 --> 01:31:51.310
<v Gast 2>As a Service.

01:31:51.470 --> 01:31:52.510
<v Gast 1>As a Service natürlich.

01:31:52.590 --> 01:31:56.990
<v Gast 1>Venture-Kapital und Steuererziehung, Steuerhinterziehung, nicht Steuererziehung.

01:31:57.150 --> 01:32:00.030
<v Gast 3>Steuererziehung finde ich immer auch gut, ist aber dann ein anderer Service.

01:32:00.270 --> 01:32:05.390
<v Gast 2>Das ist nach dem Belout für Griechenland, kommt Deutschland mit der Steuererziehung.

01:32:05.710 --> 01:32:07.390
<v Gast 2>So, jetzt bitte alle mal zahlen.

01:32:07.630 --> 01:32:08.270
<v Gast 2>Danke.

01:32:08.670 --> 01:32:09.550
<v Unbekannt>Ah, schön.

01:32:10.750 --> 01:32:12.590
<v Gast 2>Cooler Artikel, auch coole Screenshots.

01:32:12.670 --> 01:32:14.990
<v Gast 2>Viele Screenshots, gefällt mir gut.

01:32:15.950 --> 01:32:19.310
<v Gast 3>Und 3G finde ich ja auch super, da muss man nicht so viel lesen, da kann man Bild schon gucken.

01:32:19.550 --> 01:32:19.710
<v Gast 3>Ja.

01:32:20.110 --> 01:32:21.550
<v Unbekannt>Wesentlich angenehmer.

01:32:22.830 --> 01:32:23.390
<v Unbekannt>Genau.

01:32:23.870 --> 01:32:25.150
<v Gast 2>Was hatte ich noch genau?

01:32:25.230 --> 01:32:31.550
<v Gast 2>Das ist ganz cool, dieses Python 3.5 hat ja auch so eine komische Async-Syntax.

01:32:32.030 --> 01:32:38.830
<v Gast 2>Und Async gab es in vielen anderen Dingen schon früher als Coroutinen oder

01:32:38.830 --> 01:32:43.710
<v Gast 2>als, keine Ahnung, wie hieß es denn in Ruby, Fibers,

01:32:43.790 --> 01:32:47.950
<v Gast 2>die dann später eingeführt würden, um so Zeug ein bisschen verdaulicher zu machen.

01:32:48.110 --> 01:32:53.950
<v Gast 2>Und der Artikel geht ein bisschen drüber hinweg, wie denn dieses Async Await in Python 3.5

01:32:55.230 --> 01:32:57.950
<v Gast 2>unter der Decke, under the covers.

01:32:58.030 --> 01:32:59.550
<v Gast 2>Nee, wie heißt denn das auf Deutsch?

01:33:00.190 --> 01:33:01.390
<v Unbekannt>Unter der Haube.

01:33:01.790 --> 01:33:03.710
<v Gast 2>Ich glaube, das ist, wenn du verheiratet wirst.

01:33:03.950 --> 01:33:05.710
<v Gast 2>Aber ich sag, ja, sagen wir einfach.

01:33:05.950 --> 01:33:08.590
<v Gast 2>Da findest du raus, wie das unter der Haube funktioniert.

01:33:08.910 --> 01:33:09.230
<v Gast 2>Beides.

01:33:10.510 --> 01:33:11.630
<v Unbekannt>Das sind wir nicht so.

01:33:11.870 --> 01:33:13.950
<v Gast 2>Wie das halt unter der Haube funktioniert.

01:33:14.750 --> 01:33:15.870
<v Gast 2>Tatsache, Haube.

01:33:16.830 --> 01:33:22.990
<v Gast 2>Auf jeden Fall, wie das dann quasi von den Generators, die das, die da recht verwandt sind,

01:33:23.150 --> 01:33:30.030
<v Gast 2>wie das damit quasi so pseudo-implementiert werden kann und wie das diese Designentscheidungen

01:33:30.030 --> 01:33:31.390
<v Gast 2>da reingelaufen sind.

01:33:31.710 --> 01:33:33.550
<v Gast 2>Das ist ganz interessant zu wissen.

01:33:34.670 --> 01:33:39.230
<v Gast 2>Mir gefällt die Syntax jetzt nicht so sonderlich, aber macht es auf jeden Fall einfacher zu verstehen,

01:33:39.310 --> 01:33:43.550
<v Gast 2>gerade wenn man in anderen Sprachen schon mit ähnlichen Konstrukten gearbeitet hat.

01:33:44.270 --> 01:33:49.470
<v Gast 2>Und ist ganz cool von einem Core Developer mit viel Code und kann man lassen.

01:33:49.630 --> 01:33:54.110
<v Gast 2>Ist also dem auf Medium gepostet oder sieht nur so aus wie Medium?

01:33:56.750 --> 01:33:57.710
<v Gast 3>Das ist eine gute Frage.

01:33:57.790 --> 01:34:00.910
<v Gast 3>Das kann man heutzutage nicht mehr so genau sagen, weil man da ja, glaube ich,

01:34:00.990 --> 01:34:02.430
<v Gast 3>auch Custom Domains benutzen hat.

01:34:02.830 --> 01:34:05.390
<v Gast 2>Ja, heute weiß man ja nicht mehr, wo man dran ist.

01:34:05.550 --> 01:34:06.350
<v Gast 2>Auf jeden Fall, der ist.

01:34:07.790 --> 01:34:09.630
<v Gast 1>Es ist gehostet mit Ghost.

01:34:10.190 --> 01:34:10.830
<v Gast 1>Oh, sehr gut.

01:34:10.990 --> 01:34:13.390
<v Gast 2>Ist auch im Übrigen einer von euren Kollegen, ja.

01:34:13.630 --> 01:34:18.750
<v Gast 2>Der ist arbeitet bei Winzigweich in der Azur-Plattform.

01:34:19.390 --> 01:34:20.430
<v Unbekannt>Oh Gott.

01:34:22.830 --> 01:34:24.990
<v Gast 1>Falls euch das nicht klar war.

01:34:25.630 --> 01:34:27.230
<v Unbekannt>Okay, cool.

01:34:28.430 --> 01:34:29.790
<v Gast 1>Ja, ist auch ganz interessant.

01:34:29.870 --> 01:34:36.590
<v Gast 1>Also ich finde das auch, es gibt ja auch dieses Async-Await in JavaScript mittlerweile und da ist es

01:34:36.590 --> 01:34:41.470
<v Gast 1>halt auf nicht auf Coroutinen aufgebaut, sondern auf Promises.

01:34:42.750 --> 01:34:47.390
<v Gast 1>Ist auch ganz interessant, wie man da eigentlich mehrere unterschiedliche Concurrency-Konstrukte benutzen

01:34:47.390 --> 01:34:49.550
<v Gast 1>kann, um die gleiche Syntax zu implementieren.

01:34:50.430 --> 01:34:52.190
<v Gast 1>Ich glaube, mehr habe ich da jetzt eigentlich gar nichts zu tun.

01:34:52.990 --> 01:34:58.030
<v Gast 2>Im Endeffekt auch Promises oder Futures oder im Grunde ist es halt alles nur irgend so ein Ding,

01:34:58.110 --> 01:35:04.830
<v Gast 2>das quasi den, die entweder den Thread Pool abnimmt oder den IO-Wait so a la E-Pall

01:35:04.990 --> 01:35:10.430
<v Gast 2>irgendwie abnimmt und dann halt es irgendwie noch schön in nicht so viel Krepel einwickelt.

01:35:12.030 --> 01:35:15.630
<v Gast 1>Ja, also ich meine, letzten Endes ist es, du hast eine Abstraktion,

01:35:15.870 --> 01:35:20.590
<v Gast 1>die dir so asynchrone Schnittstellen abnimmt, sodass du sagen kannst,

01:35:20.670 --> 01:35:25.550
<v Gast 1>ey, mach doch mal, lest doch mal eine Datei von der Platte und ich gebe dir hier ein Callback und ruf mir doch

01:35:25.550 --> 01:35:27.950
<v Gast 1>mal den Callback auf, wenn diese Datei gelesen ist.

01:35:28.110 --> 01:35:29.630
<v Gast 1>Und auf Basis dessen.

01:35:30.030 --> 01:35:32.670
<v Gast 3>Alles sind nur Syntax-Schulburg für Callbacks.

01:35:32.990 --> 01:35:36.670
<v Gast 1>Ja, und genau, und auf Basis dessen kannst du dann halt sagen, okay,

01:35:36.990 --> 01:35:41.550
<v Gast 1>um diese Schnittstellen rum strickst du dir jetzt eine Abstraktion in Form von,

01:35:41.710 --> 01:35:45.390
<v Gast 1>du kannst dann sagen, okay, du möchtest Promises haben, du möchtest Futures haben.

01:35:45.470 --> 01:35:51.230
<v Gast 1>Das sind irgendwie zwei Geschmacksrichtungen von Objekten, die halt dieses auf Dinge warten,

01:35:51.390 --> 01:35:52.510
<v Gast 1>wegabstrahieren.

01:35:54.030 --> 01:36:00.910
<v Gast 1>Und letzten Endes ist dann, wie das schon der Lukas gesagt hat, dieses Async Await ist dann einfach nochmal

01:36:00.910 --> 01:36:05.550
<v Gast 1>syntaktischer Sucker oder syntaktischer Zucker, um im Deutschen zu bleiben,

01:36:06.110 --> 01:36:10.670
<v Gast 1>ist syntaktischer Zucker auf diesen Abstraktionen obendrauf.

01:36:10.750 --> 01:36:14.830
<v Gast 1>Das heißt, du hast jetzt quasi drei Layer von Abstraktionen.

01:36:14.910 --> 01:36:21.550
<v Gast 1>Du hast einmal so eine Art und Weise eine Event-Loop, die mit dem Betriebssystem spricht.

01:36:21.710 --> 01:36:26.030
<v Gast 1>Dann hast du obendrauf eher irgendwie Promises, Futures, Generators,

01:36:26.110 --> 01:36:31.230
<v Gast 1>sonst irgendwas und oben drauf hast du dann nochmal eine Syntax, die das Ganze dann einfacher benutzbar macht.

01:36:31.470 --> 01:36:32.430
<v Gast 1>Ja, kann man machen.

01:36:33.550 --> 01:36:35.870
<v Gast 3>Wo kommt denn eigentlich Async Await?

01:36:36.110 --> 01:36:40.030
<v Gast 3>Also als erstes, ist es ein C-Sharp-Konstrukt, was ich meine.

01:36:40.430 --> 01:36:45.710
<v Gast 1>Also ich habe es zuerst in der C-Sharp-Welt gesehen, was nicht unbedingt bedeutet,

01:36:45.790 --> 01:36:48.910
<v Gast 1>dass es daherkommt, aber vielleicht ist es die erste Sprache, die das,

01:36:49.710 --> 01:36:54.110
<v Gast 1>sagen wir mal, bekannt gemacht hat oder ja, groß gemacht hat.

01:36:56.270 --> 01:36:56.590
<v Gast 1>Ja.

01:36:59.470 --> 01:37:03.790
<v Gast 1>Dann haben wir nochmal hier Acing the Technical Interview, wo wir es vorher auch schon mit hatten.

01:37:03.870 --> 01:37:08.270
<v Gast 1>Das ist ein Artikel, der sehr polemisch mit Closure,

01:37:08.430 --> 01:37:14.510
<v Gast 1>mit sehr funktionalem Closure-Code irgendwie hier beschreibt, wie man denn seinen Interviewer

01:37:15.470 --> 01:37:16.510
<v Gast 1>verwirrt.

01:37:16.830 --> 01:37:18.910
<v Gast 1>Ich glaube, das kann man einfach mal so stehen lassen.

01:37:18.990 --> 01:37:25.870
<v Gast 1>Also das ist so, oh, ich implementiere jetzt mal eine Map, indem ich ein If-Statement einbaue

01:37:26.110 --> 01:37:31.710
<v Gast 1>und zeige dir dann mit meinem funktionalen Closure-Code, wie ich denn damit irgendwelche Dinge implementiere

01:37:32.030 --> 01:37:37.950
<v Gast 1>und der Interviewer ist offensichtlich nicht in der Lage,

01:37:38.110 --> 01:37:39.070
<v Gast 1>dem zu folgen.

01:37:39.630 --> 01:37:41.710
<v Gast 1>Muss nicht unbedingt heißen, dass man das so machen sollte.

01:37:41.790 --> 01:37:48.750
<v Gast 1>Ich fand es einfach nur so als, wie soll man sagen, als polemischen Text lustig.

01:37:49.950 --> 01:37:53.310
<v Gast 2>Schreibt Code, den keiner versteht, nicht angeheuert.

01:37:53.710 --> 01:37:54.510
<v Unbekannt>Fertig.

01:37:56.030 --> 01:37:56.430
<v Unbekannt>Kann man auch sagen.

01:37:56.750 --> 01:37:58.910
<v Gast 3>Studio getrollt, nicht eingestellt.

01:38:00.190 --> 01:38:05.710
<v Gast 1>Ja, allerdings ist der, wie heißt er denn, Kil, wie ist denn sein Nachname?

01:38:06.030 --> 01:38:11.790
<v Gast 1>Effer Kilometer Ich erinnere mich nicht mehr an seinen Namen.

01:38:12.110 --> 01:38:15.630
<v Gast 1>Ich glaube, er kann sich das halt auch leisten, weil er ist jemand,

01:38:15.870 --> 01:38:22.510
<v Gast 1>der seit Jahren Code schreibt, der alle Datenbanken der Welt kaputt macht

01:38:22.750 --> 01:38:24.830
<v Gast 1>und der wirklich versteht, was er tut.

01:38:24.910 --> 01:38:28.030
<v Gast 1>Ich glaube, das ist einer derjenigen, der halt auch keine Probleme hätte,

01:38:28.110 --> 01:38:33.310
<v Gast 1>bei irgendwelchen Top-10%-Firmen irgendwie jederzeit einen Code zu bekommen,

01:38:33.390 --> 01:38:34.510
<v Gast 1>äh einen Job zu bekommen.

01:38:34.990 --> 01:38:40.350
<v Gast 3>Solange, wenn nicht, dann kann er wenigstens coole Blogposts drüber schreiben.

01:38:40.670 --> 01:38:45.150
<v Gast 1>Er kann coole Blogposts schreiben, solange HR nicht seinen Twitter-Feed anguckt.

01:38:45.230 --> 01:38:45.630
<v Gast 1>Genau, das ist ja auch nicht.

01:38:48.110 --> 01:38:52.670
<v Gast 2>Solange er nicht während der Arbeitszeit seinen Twitter-Feed befüllt, ist das.

01:38:53.630 --> 01:38:54.510
<v Unbekannt>Ist auch egal.

01:38:54.830 --> 01:38:55.150
<v Unbekannt>Richtig.

01:38:55.390 --> 01:38:56.030
<v Unbekannt>Kann man machen.

01:38:56.270 --> 01:38:56.590
<v Unbekannt>Okay.

01:38:57.150 --> 01:39:00.590
<v Gast 2>Was man nicht machen kann oder was man machen sollte, sind ja sich beschweren.

01:39:01.550 --> 01:39:03.630
<v Gast 2>Und deswegen kommen wir jetzt zu den Mimimis.

01:39:04.750 --> 01:39:05.790
<v Unbekannt>Kleidy, glaube ich.

01:39:06.910 --> 01:39:11.870
<v Gast 1>Ja, also meine Frau macht in letzter Zeit, also das ist jetzt quasi ein Proxy-Mimimi,

01:39:12.110 --> 01:39:16.990
<v Gast 1>das ist jetzt kein Mimimi, was ich direkt hatte, sondern eher so, keine Ahnung,

01:39:17.230 --> 01:39:20.910
<v Gast 1>Dinge, technische Problemchen, auf die meine Frau gestoßen ist.

01:39:22.190 --> 01:39:24.750
<v Gast 3>Du bist also betroffen, das Mimimi, willst du sagen?

01:39:25.230 --> 01:39:26.750
<v Gast 1>Ich bin quasi betroffen, ja.

01:39:27.710 --> 01:39:34.270
<v Gast 1>Naja, also meine Frau macht gerade Videoproduktionen, Dinge, so irgendwelche Sachen auf YouTube und Co.

01:39:34.910 --> 01:39:38.270
<v Gast 1>Und ist da auf das Problem gestoßen, dass es ja ganz schön scheiße klingt,

01:39:38.590 --> 01:39:44.990
<v Gast 1>wenn man Leute interviewt und sie dabei filmt und man selber vielleicht sehr nah an der Kamera steht und das

01:39:44.990 --> 01:39:48.190
<v Gast 1>Gegenüber relativ weit von der Kamera wegsteht.

01:39:48.350 --> 01:39:51.710
<v Gast 1>Und dann habe ich mich da so ein bisschen informiert, was es denn so für Möglichkeiten gibt,

01:39:51.790 --> 01:39:56.110
<v Gast 1>mit irgendwelchen externen Mics an die Kamera anschließen und so weiter und so fort.

01:39:57.390 --> 01:40:02.670
<v Gast 1>Die Kamera, die wir da haben, ist halt so meine, das ist so eine spiegellose Olympus-Kamera,

01:40:02.750 --> 01:40:05.310
<v Gast 1>die eigentlich ziemlich cool ist, die war auch nicht ganz billig.

01:40:05.630 --> 01:40:10.670
<v Gast 1>Stellt sich halt raus, es gibt sehr wenige Consumer-Kameras,

01:40:10.990 --> 01:40:15.870
<v Gast 1>die tatsächlich einen Audio-Input für Mikrofone haben.

01:40:16.030 --> 01:40:16.590
<v Gast 1>Was ich.

01:40:17.110 --> 01:40:18.070
<v Unbekannt>Sehr doof finde.

01:40:18.310 --> 01:40:21.750
<v Gast 1>Weil letzten Endes kann man das Problem dann umgehen, indem man sagt,

01:40:21.830 --> 01:40:27.990
<v Gast 1>okay, man benutzt ein externes Recording-Device, was bessere Mikrofone hat oder wo man mehrere Mikrofone daran

01:40:27.990 --> 01:40:28.870
<v Gast 1>anschließen kann.

01:40:29.030 --> 01:40:33.830
<v Gast 1>Dann hat man allerdings wieder das große Problem, dass man Audio und Video in Sync bringen muss,

01:40:34.310 --> 01:40:38.870
<v Gast 1>was so einen ganz anderen Sack von Problemen aufmacht.

01:40:39.510 --> 01:40:43.270
<v Gast 1>Und finde ich schade, dass man irgendwie so, keine Ahnung, eine Kamera kauft,

01:40:43.430 --> 01:40:48.550
<v Gast 1>wo der Body ohne Mikrofon irgendwie, ohne Objektiv schon irgendwie 600 Dollar kostet.

01:40:49.110 --> 01:40:54.550
<v Gast 1>Fände ich schade, dass man dann auch nicht ohne irgendwelche Modifikationen oder sonst was da nochmal ein

01:40:54.550 --> 01:40:56.390
<v Gast 1>Mikrofon anschließen kann.

01:40:58.390 --> 01:40:59.990
<v Unbekannt>Ja, das ist eigentlich so.

01:41:00.790 --> 01:41:03.430
<v Gast 2>Ich hatte ähnliche Probleme, würde ich sagen.

01:41:03.670 --> 01:41:08.230
<v Gast 2>Und zwar versuche ich es ja in einiger Zeit, wir haben hier so ein Eichhörnchen,

01:41:08.310 --> 01:41:09.830
<v Gast 2>das immer auf unseren Balkon kommt.

01:41:09.990 --> 01:41:15.030
<v Gast 2>Und ich versuche das natürlich fotografisch festzuhalten und auch über Video,

01:41:15.270 --> 01:41:18.150
<v Gast 2>weil wir dann immer irgendwie dem Eichhörnchen zuschauen können, was ja super,

01:41:18.310 --> 01:41:19.830
<v Gast 2>super Zeitvertreib ist.

01:41:20.070 --> 01:41:24.630
<v Gast 2>Und ich habe versucht, so mir eine so eine Wi-Fi-Kamera zu kaufen,

01:41:24.870 --> 01:41:29.590
<v Gast 2>irgend so ein Pseudo-China-Ding mit hier alles HD,

01:41:29.670 --> 01:41:31.830
<v Gast 2>Pipa Po und WLAN und alles gut.

01:41:32.070 --> 01:41:37.830
<v Gast 2>Und es gibt keine anständige Software für solche WLAN-Überwachungskameras.

01:41:38.070 --> 01:41:44.310
<v Gast 2>Es gibt meist die Software, die mit der Kamera selber läuft, aber das war der letzte Krebs irgendwie.

01:41:44.630 --> 01:41:49.110
<v Gast 2>Die Kamera kann über NFS-Dateien hochladen.

01:41:49.190 --> 01:41:51.430
<v Gast 2>Und ich hab, wer hat denn NFS irgendwie?

01:41:52.150 --> 01:41:53.110
<v Gast 2>Ja, genau, richtig.

01:41:53.350 --> 01:41:54.950
<v Gast 2>Aber es geht auch nur so halb.

01:41:55.030 --> 01:41:59.910
<v Gast 2>Also sie kann NFS, aber auch nur irgendwie bestimmte Authentifizierungsverfahren.

01:42:00.070 --> 01:42:03.510
<v Gast 2>Die sagen dir aber nicht welche und es gibt auch kein Log oder so.

01:42:03.670 --> 01:42:08.550
<v Gast 2>Also die Kamera sagt dann irgendwie Connection not successful und es war alles,

01:42:08.630 --> 01:42:10.710
<v Gast 2>was sie an Informationen dir geben würde.

01:42:11.750 --> 01:42:12.630
<v Gast 3>Es reicht doch.

01:42:12.790 --> 01:42:14.470
<v Gast 3>Du weißt es nicht, hat nicht funktioniert.

01:42:14.790 --> 01:42:15.670
<v Unbekannt>Alles, was du wissen musst.

01:42:15.910 --> 01:42:18.710
<v Gast 2>Hat nicht funktioniert und im Endeffekt alles, was ich eigentlich will,

01:42:18.870 --> 01:42:25.030
<v Gast 2>ist, jedes Mal, wenn sich dieses irgendwas bewegt, soll der ein kleines Video machen und ich will das als

01:42:25.030 --> 01:42:26.230
<v Gast 2>Datei irgendwo haben.

01:42:26.470 --> 01:42:28.790
<v Gast 2>Ich habe mir angeschaut, gibt es Zone Minder.

01:42:28.950 --> 01:42:31.750
<v Gast 2>Zone Minder ist die hässlichste Software der Welt.

01:42:32.070 --> 01:42:36.310
<v Gast 2>Theoretisch kann die recht viel, was irgendwie so, ja,

01:42:36.630 --> 01:42:42.230
<v Gast 2>nur für eine bestimmte Region im Bildbewegungssensoren und irgendwie kannst du noch einstellen,

01:42:42.390 --> 01:42:47.430
<v Gast 2>aber ich habe es auch, das Setup ist so ekelhaft, dass du das gar nicht irgendwie machen willst.

01:42:47.830 --> 01:42:52.150
<v Gast 2>Dann gibt es eine so eine coole neue Version, Shinobi heißt die.

01:42:52.310 --> 01:42:58.950
<v Gast 2>Das ist alles Node.js-basiert, aber ist halt auch irgendwie, gab es irgendwie nicht als anständigen

01:42:58.950 --> 01:42:59.830
<v Gast 2>Docker-Container.

01:42:59.910 --> 01:43:06.870
<v Gast 2>Da musstest du wieder irgendwie so eine VM mit Ubuntu und MySQL irgendwie noch mittendrin und dann wolltest

01:43:06.870 --> 01:43:10.950
<v Gast 2>du irgendwie das Video wieder nicht anständig exportieren und ist permanent gecrasht.

01:43:11.190 --> 01:43:16.150
<v Gast 2>Also das ging auch nicht so recht und dann gibt es irgendwo eine russische Xeoma,

01:43:16.550 --> 01:43:22.470
<v Gast 2>das ist auch super hässlich und kann, theoretisch habe ich wunderbar eingerichtet,

01:43:22.630 --> 01:43:29.190
<v Gast 2>konnte auch wunderbar die Bewegungs- oder Objekterkennung machen, aber konnte dann Videos nicht

01:43:29.190 --> 01:43:30.470
<v Gast 2>anständig speichern.

01:43:30.630 --> 01:43:35.830
<v Gast 2>Also prinzipiell hast du von dieser Kamera so einen HD-Stream H264, was ja geil wäre.

01:43:36.150 --> 01:43:41.910
<v Gast 2>Aber den Stream konnte sie nur in ein, in Anführungszeichen, Archiv speichern.

01:43:42.070 --> 01:43:45.270
<v Gast 2>Und das Archiv ist halt auch irgend so ein proprietäres Format von denen.

01:43:45.350 --> 01:43:49.670
<v Gast 2>Und aus dem Archiv musst du dann halt wieder rausexportieren, was du genau haben wolltest.

01:43:49.750 --> 01:43:52.150
<v Gast 2>Und es ging auch nicht so wirklich automatisiert.

01:43:52.310 --> 01:43:55.990
<v Gast 2>Du konntest es als Datei speichern, aber dann wollte er es wieder neu kodieren,

01:43:56.150 --> 01:44:01.590
<v Gast 2>irgendwie irgend so ein abstruses Format mit .AVI hintendran, was dann auch keiner will.

01:44:02.310 --> 01:44:03.990
<v Gast 2>Und als letztes habe ich dann irgendwie Motion.

01:44:04.390 --> 01:44:06.390
<v Gast 3>Was seit fünf Jahren tot sein sollte?

01:44:06.790 --> 01:44:07.910
<v Gast 2>Wahrscheinlich, ja.

01:44:08.070 --> 01:44:11.030
<v Gast 2>Und als letztes habe ich dann Motion Eye und Motion verwendet.

01:44:11.270 --> 01:44:17.990
<v Gast 2>Motion ist auch irgendwie so ein Demon, der halt irgendwie an diesem Stream nuckelt und theoretisch was

01:44:17.990 --> 01:44:21.670
<v Gast 2>speichern kann, aber war auch ekelhafte Krepel zum Aufsetzen.

01:44:21.750 --> 01:44:27.350
<v Gast 2>Und ich habe da einfach aufgegeben und benutze nun so eine zweite Kamera, Blink heißt die.

01:44:27.510 --> 01:44:32.630
<v Gast 2>Ist eigentlich ganz cool, ist so eine kleine Kamera, groß wie eine Zigarettenschachtel,

01:44:33.270 --> 01:44:36.150
<v Gast 2>falls die Kinder heutzutage noch wissen, wie sowas aussieht.

01:44:37.270 --> 01:44:39.750
<v Gast 2>Ich weiß gar nicht, Rauchenkinder noch wahrscheinlich.

01:44:40.230 --> 01:44:41.910
<v Unbekannt>Auf jeden Fall wenig Glück.

01:44:42.550 --> 01:44:43.270
<v Unbekannt>Immerhin.

01:44:43.830 --> 01:44:46.950
<v Gast 2>Ist es so eine kleine Kamera, komplett batteriebetrieben, was krass ist.

01:44:47.030 --> 01:44:53.750
<v Gast 2>Also das sind zwei so Double-A-Batterien drin und läuft Gerüchten zur Folge grobe zwei

01:44:53.750 --> 01:44:58.630
<v Gast 2>Jahre auf diesen zwei A-Batterien und kann

01:44:59.430 --> 01:45:02.950
<v Gast 2>Bewegungsaktivierung recht gut machen, Qualität ist recht gut.

01:45:03.670 --> 01:45:08.870
<v Gast 2>Das einzige Problem war, dass er das halt nur über so eine iPhone-Anwendung zugänglich gemacht hat.

01:45:09.110 --> 01:45:12.870
<v Gast 2>Stellt sich aber raus, jemand hat diesen REST-API, die die benutzen,

01:45:13.990 --> 01:45:17.830
<v Gast 2>Reverse engineert und da gibt es irgend so eine Python-Library, bedeutet,

01:45:17.910 --> 01:45:22.150
<v Gast 2>ich benutze jetzt einfach das Ding und habe auf meinem Nass irgendein Skript laufen,

01:45:22.310 --> 01:45:26.870
<v Gast 2>das von wenn es aufgenommen wird, jede Minute läuft dieses Skript,

01:45:26.950 --> 01:45:32.150
<v Gast 2>schaut, ob es ein neues Video gibt, nimmt dieses Video und lädt es dann direkt bei Dropbox wieder hoch.

01:45:32.550 --> 01:45:39.270
<v Gast 2>Bedeutet, ich habe jetzt irgend so ein Ding, was mir einfach in die Dropbox den rohen H264-Stream reindroppt

01:45:39.350 --> 01:45:46.230
<v Gast 2>und das funktioniert jetzt wunderbar und traurig, dass keine andere Software so angenehm

01:45:46.230 --> 01:45:49.350
<v Gast 2>war wie diese komische kleine Kamerasoftware, die da dabei ist.

01:45:49.910 --> 01:45:51.350
<v Unbekannt>Ja, das ist mein Mimimi.

01:45:51.590 --> 01:45:53.830
<v Gast 2>Es sollte was geben, was irgendwie einfacher ist.

01:45:54.550 --> 01:45:57.590
<v Gast 1>Ja, Eichhörnchen überwachen ist halt echt kein Zuckerschlecken.

01:45:57.830 --> 01:46:00.630
<v Gast 2>Nee, aber ich denke, es muss einfach gemacht werden, ja.

01:46:01.030 --> 01:46:07.830
<v Gast 1>Ja, Eichhörnchen müssen überwacht werden, ansonsten werden wahrscheinlich an sich reichen

01:46:07.910 --> 01:46:08.310
<v Gast 1>oder so.

01:46:08.470 --> 01:46:10.630
<v Gast 1>Irgendjemand muss ja die Eichhörnchen überwachen.

01:46:10.790 --> 01:46:12.710
<v Gast 2>Ja, und wenn nicht ich, wer dann, ja?

01:46:13.270 --> 01:46:13.510
<v Gast 2>Genau.

01:46:13.990 --> 01:46:16.150
<v Gast 3>Das ist ja Nobel, kann ja natürlich Opferst für uns.

01:46:16.790 --> 01:46:21.030
<v Gast 3>Ja, irgendwie ist mein Problem ein bisschen ein ähnliches.

01:46:22.790 --> 01:46:28.630
<v Gast 3>Ich würde gerne mein Heim automatisieren und als echter Apple-Jünger,

01:46:28.710 --> 01:46:33.270
<v Gast 3>wie man das nun mal so macht, will man dafür irgendwie auch HomeKit-kompatible Geräte kaufen,

01:46:33.670 --> 01:46:39.190
<v Gast 3>damit die auch vom iPhone aus bedienbar sind und dass man irgendwie seiner Siri sagen kann,

01:46:39.430 --> 01:46:44.470
<v Gast 3>Siri, mach das Licht aus oder mach das Licht an oder mach Disco.

01:46:45.030 --> 01:46:49.350
<v Gast 3>Und eben am liebsten auch noch irgendwie advancedere Dinge.

01:46:50.390 --> 01:46:54.790
<v Gast 3>Und der Zustand an HomeKit-kompatiblen Accessories,

01:46:54.950 --> 01:46:57.590
<v Gast 3>die es zu kaufen gibt, der ist einfach nur erbärmlich.

01:46:57.830 --> 01:47:02.710
<v Gast 3>Es gibt zwar, also was immer noch am besten funktioniert, sind diese Philips Hue-Lampen,

01:47:02.790 --> 01:47:09.350
<v Gast 3>die auch HomeKit-kompatibel sind, aber eben, also die haben ja ihre dieses Bridge-Zusatzgerät,

01:47:09.430 --> 01:47:15.590
<v Gast 3>das man immer noch braucht, was irgendwie eigentlich auch ein bisschen eine unangenehme Lösung ist,

01:47:15.670 --> 01:47:19.830
<v Gast 3>weil man will ja sich eigentlich nicht noch irgendeinen Plastikkasten irgendwo hinklemmen.

01:47:20.150 --> 01:47:23.350
<v Gast 3>Aber man nimmt es eben in Kauf, weil es halt gut funktioniert.

01:47:23.590 --> 01:47:29.830
<v Gast 3>Und ich habe jetzt da mal ein bisschen versucht aufzurüsten und mir von El Gato Eve-Geräte gekauft,

01:47:29.910 --> 01:47:36.070
<v Gast 3>die unter anderem das Wetter draußen, die Luft drinnen und den Öffnungs- und

01:47:36.070 --> 01:47:38.870
<v Gast 3>Schließzustand meines Fensters messen.

01:47:40.550 --> 01:47:44.790
<v Gast 3>Ich habe das Ganze noch dazu eine Steckdose,

01:47:45.030 --> 01:47:48.150
<v Gast 3>die an- und ausschaltet und in der Strom verrochen ist.

01:47:48.790 --> 01:47:52.630
<v Gast 3>Und das ist furchtbar.

01:47:52.950 --> 01:47:58.870
<v Gast 3>Also diese Geräte funktionieren nur über Bluetooth,

01:47:59.190 --> 01:48:03.750
<v Gast 3>was dafür sorgt, dass sie haben eine lächerliche Reichweite, das heißt,

01:48:03.830 --> 01:48:09.270
<v Gast 3>man muss immer irgendwie ein Home Kit-Hub, was ein Apple TV oder ein iPad sein kann,

01:48:09.350 --> 01:48:11.830
<v Gast 3>in der Nähe haben oder eben das Telefon direkt.

01:48:12.230 --> 01:48:17.990
<v Gast 3>Und wenn man dann schon in der Nähe ist, dann ist halt die Reaktionszeit dieser Geräte erbärmlich.

01:48:18.390 --> 01:48:23.190
<v Gast 3>Um irgendwie die Daten der letzten drei Tage auszulesen, öffnet man die App und dann dauert es erstmal

01:48:23.270 --> 01:48:29.270
<v Gast 3>irgendwie fünf Minuten, bis er über diese erbärmliche Blutverbindung die paar hundert Datenpunkte übertragen

01:48:29.270 --> 01:48:29.510
<v Gast 3>hat.

01:48:29.670 --> 01:48:35.750
<v Gast 3>Oder wenn ich meine Steckdose eben an- und ausschalte, dann hat es gerne gerne mal eine Wartezeit von fünf

01:48:35.750 --> 01:48:39.990
<v Gast 3>Sekunden oder so, bis dann irgendwie was passiert und das Licht an und ausgeht.

01:48:40.950 --> 01:48:45.590
<v Gast 3>Und das Problem ist, selbst wenn man auf dieses Problem Geld werfen will, es geht einfach nicht.

01:48:45.670 --> 01:48:47.350
<v Gast 3>Es gibt nichts Besseres.

01:48:49.110 --> 01:48:51.670
<v Gast 1>Ja, das ist echt ein Problem.

01:48:52.150 --> 01:48:54.470
<v Gast 3>Und ich will mir das jetzt halt nicht selber bauen müssen.

01:48:55.350 --> 01:48:59.990
<v Gast 3>Ich verwende das ja, weil es möglichst wenig Aufwand sein soll und einfach funktioniert.

01:49:00.230 --> 01:49:03.430
<v Gast 3>Und nicht, weil ich irgendwie ein Spielprojekt will.

01:49:03.990 --> 01:49:10.870
<v Gast 3>Ich könnte mir jetzt natürlich irgendwie mit Raspberry Pis oder anderen Minicomputern und irgendwelcher Open

01:49:10.950 --> 01:49:15.270
<v Gast 3>Source Software das Ganze selber bauen, aber es soll doch einfach nur funktionieren.

01:49:15.350 --> 01:49:17.830
<v Gast 3>Es kann doch nicht so schwierig sein.

01:49:17.910 --> 01:49:23.750
<v Gast 3>Es gibt auch einen Markt für diese Sache und musste mal jemand was Besseres machen als bärmliche

01:49:23.910 --> 01:49:26.550
<v Gast 3>Bluetooth-Funkerei.

01:49:29.030 --> 01:49:30.710
<v Gast 2>Es gibt ja wesentlich bessere Lösungen.

01:49:30.790 --> 01:49:36.950
<v Gast 2>Also ich habe bei mir das komplette Haus, die komplette Wohnung hier mit Z-Wave oder

01:49:36.950 --> 01:49:41.830
<v Gast 2>Zigbee-Sachen ausgestattet, also von Steckdosen, bisschen zu Lichtern,

01:49:42.150 --> 01:49:43.910
<v Gast 2>bisschen zu Lichtschaltern.

01:49:44.310 --> 01:49:47.430
<v Gast 2>Aber das ist halt auch, wie du gesagt, das alles nicht Homekit-kompatibel.

01:49:47.510 --> 01:49:51.030
<v Gast 2>Also Homekit haben sie ziemlich, ich weiß nicht, was sie gemacht haben,

01:49:51.110 --> 01:49:53.670
<v Gast 2>aber was auch immer sie gemacht haben, ist ziemlich schlecht.

01:49:54.390 --> 01:49:55.830
<v Unbekannt>Bei mir läuft es halt alles über.

01:49:56.230 --> 01:50:00.230
<v Gast 3>Das größte Problem sind irgendwelche Lizenzgebühren, die vermutlich fällig werden,

01:50:00.310 --> 01:50:03.510
<v Gast 3>wenn man irgendwie den HomeKit-Kleber auf seine Schachtel machen will,

01:50:03.670 --> 01:50:05.190
<v Gast 3>die man Apple bezahlen muss.

01:50:05.430 --> 01:50:10.630
<v Gast 3>Und andererseits halt diese Zertifizierungsgeschichten, die man erfüllen muss,

01:50:10.870 --> 01:50:17.830
<v Gast 3>um ein HomeKit-kompatibles Gerät zu sein mit irgendwie Encryption und man muss irgendwie so ein Sticker

01:50:17.830 --> 01:50:22.790
<v Gast 3>haben, auf dem ein Key ist, den man braucht, um das Gerät mit seinem Device zu pairen.

01:50:23.350 --> 01:50:23.990
<v Gast 3>Das ist halt.

01:50:25.030 --> 01:50:27.350
<v Gast 2>Das brauchst du ja für Z-Wave oder Zigbee auch alles.

01:50:27.430 --> 01:50:29.910
<v Gast 2>Du musst das ja auch alles standardisiert abtesten.

01:50:30.630 --> 01:50:33.190
<v Gast 2>Und das funktioniert halt als offener Standard.

01:50:33.270 --> 01:50:37.990
<v Gast 2>Also ich benutze jetzt aktuell noch dieses Something Smart Things, den habe,

01:50:38.150 --> 01:50:42.710
<v Gast 2>was okay ist, der kann halt auch sowohl Zigbee als auch Z-Wave.

01:50:43.190 --> 01:50:47.110
<v Gast 2>Aber es gibt dann auch, wenn du willst, eine Krebellösung mit Home Assistant,

01:50:47.190 --> 01:50:53.510
<v Gast 2>wo du dir quasi den Z-Wave-USB-Stick irgendwie ans Nass ranhängst und es dann da laufen lässt.

01:50:53.750 --> 01:50:57.510
<v Gast 2>Und eigentlich wollte ich auch am Anfang so ein bisschen mehr auf Apple gehen,

01:50:57.750 --> 01:51:02.710
<v Gast 2>aber das funktioniert mir jetzt gerade mit Amazon Echo, funktioniert das auch wunderbar.

01:51:02.870 --> 01:51:06.710
<v Gast 2>Und ich habe noch so eine Krebel Homebridge heißt es, glaube ich.

01:51:06.790 --> 01:51:07.590
<v Gast 2>Ja, Homebridge.

01:51:07.750 --> 01:51:12.390
<v Gast 2>Irgend so ein Krebel-Skript laufen, dass ich halt zumindest, wenn ich irgendwie kein Echo in der Nähe habe,

01:51:12.470 --> 01:51:14.070
<v Gast 2>das über Siri auch machen kann.

01:51:14.390 --> 01:51:19.430
<v Gast 2>Funktioniert erstaunlich gut dafür, dass es eigentlich so ein Node.js-Krebel ist mit 800 Plugins.

01:51:21.590 --> 01:51:25.030
<v Gast 2>Elgato, ob es das jetzt kann, ich glaube, Elgato ist auch so eine rein deutsche Geschichte,

01:51:25.110 --> 01:51:26.870
<v Gast 2>die sitzen, glaube ich, irgendwie in München.

01:51:27.670 --> 01:51:33.030
<v Gast 3>Die haben Sitze auf der ganzen Welt, die sind glaube ich zur Hälfte irgendwie in San Francisco oder zumindest

01:51:33.030 --> 01:51:34.470
<v Gast 3>in Kalifornien irgendwo.

01:51:35.110 --> 01:51:38.550
<v Gast 2>Ah, okay, interessant, weil die habe ich jetzt hier noch nie gesehen, Elgato.

01:51:38.630 --> 01:51:44.070
<v Gast 2>Ich weiß, dass sie bei Mediamarkt oder so immer rumstanden, aber Tatsache, Elgato ist nicht.

01:51:44.950 --> 01:51:47.910
<v Gast 3>Die haben ein relativ erfolgreiches Gaming-Zubehör.

01:51:48.070 --> 01:51:54.150
<v Gast 3>Also Geräte, um irgendwie Konsoleno-Output mitzuschneiden und ins Internet zu strömen.

01:51:54.790 --> 01:51:57.590
<v Gast 1>Ja, auch solche Audio-Video-Geschichten.

01:51:57.670 --> 01:52:01.910
<v Gast 1>Ich habe da mal mit einem auf einer Konferenz mit einem ihrer Entwickler geredet.

01:52:02.070 --> 01:52:04.070
<v Gast 1>Der war allerdings auch aus Deutschland.

01:52:04.470 --> 01:52:07.110
<v Gast 1>Aber keine Ahnung, wie verteilt die so sind.

01:52:07.270 --> 01:52:08.790
<v Gast 1>Ich kenne diese Firma ansonsten.

01:52:08.950 --> 01:52:12.230
<v Gast 1>Ich weiß, dass es irgendwie so Elgato, Gott, wie heißen die Ding?

01:52:12.470 --> 01:52:13.830
<v Gast 1>Irgendwas mit TV?

01:52:14.550 --> 01:52:17.270
<v Gast 1>Es gibt irgend so eine ITV?

01:52:17.350 --> 01:52:19.110
<v Gast 1>Ja, ja, ich glaube, ITV ist es tatsächlich.

01:52:19.430 --> 01:52:22.950
<v Gast 1>Es gibt irgendwie so eine Hardware, die man sich an seinen Mac anstecken kann und dann gibt es da halt

01:52:22.950 --> 01:52:29.910
<v Gast 1>irgendwelche gebundelte Software dazu, mit der man sich dann quasi auf dem Mac Fernsehen gucken

01:52:29.910 --> 01:52:32.070
<v Gast 1>kann, sollte man das aus irgendwelchen Gründen wollen.

01:52:32.550 --> 01:52:36.390
<v Gast 3>So ein kleine USB-Kabel oder Satellitreceiver, die.

01:52:36.630 --> 01:52:38.630
<v Unbekannt>Ich weiß aber gar nicht, ob es das überhaupt noch gibt.

01:52:39.590 --> 01:52:44.950
<v Gast 1>Also mein letzter Stand ist da halt auch, das ist irgendwie von vor, keine Ahnung, drei, vier Jahren oder so.

01:52:45.030 --> 01:52:46.550
<v Gast 1>Da hat man sowas vielleicht noch gebraucht.

01:52:46.710 --> 01:52:50.550
<v Gast 1>Mittlerweile gibt es da ja auch irgendwie andere Möglichkeiten, sowas zu konsumieren.

01:52:52.950 --> 01:52:58.790
<v Gast 2>Ja, aber also HomeKit ist schon ein bisschen traurig, was da nicht

01:52:59.430 --> 01:53:00.390
<v Gast 2>abgeht.

01:53:00.630 --> 01:53:06.390
<v Gast 2>Aber Z-Wave und Zigbee ist ganz gut und auch im Normalfall kompatibel,

01:53:06.470 --> 01:53:09.830
<v Gast 2>außer Philips U, die sind nicht kompatibel, aber alles andere ist kompatibel.

01:53:10.070 --> 01:53:13.750
<v Gast 3>Aber Philips Hue ist, glaube ich, ja unten drunter auch Sigbee, nur halt mit irgendwie noch so einem

01:53:13.910 --> 01:53:15.750
<v Gast 3>proprietären Layer oben drüber oder so.

01:53:16.150 --> 01:53:20.550
<v Gast 1>Das ist ja also bei Philips Hue ist es, glaube ich, so,

01:53:20.710 --> 01:53:26.790
<v Gast 1>dass die Lampen, also die Birnen selbst sprechen Sigbee mit der Basisstation.

01:53:26.870 --> 01:53:27.430
<v Gast 1>Ja, genau.

01:53:27.750 --> 01:53:32.790
<v Gast 1>Und der Rest ist dann irgendwie so ein komisches proprietäres Philips Hue-Ding.

01:53:32.950 --> 01:53:37.670
<v Gast 3>Ja, und das Problem ist aber, glaube ich, auch, dass man nicht mehr jede Sigbee-Lampe mit dieser Bridge pairen

01:53:37.750 --> 01:53:40.870
<v Gast 3>kann oder sowas ja früher mal ging, meine ich.

01:53:41.350 --> 01:53:45.830
<v Gast 2>Ja, das ging, also sie hatten ein Firmware-Update, dann ging es nicht, aber dann ging es wieder.

01:53:45.910 --> 01:53:50.070
<v Gast 2>Also ich hatte diese GE-Links, 10 Dollar pro Lampe oder so, gepairt.

01:53:50.470 --> 01:53:53.670
<v Gast 2>Aber da kannst du zum Beispiel über Siri konntest du dann, glaube ich,

01:53:53.830 --> 01:53:58.310
<v Gast 2>nur die Philips ansprechen und nicht die anderen oder sowas.

01:53:59.110 --> 01:54:02.790
<v Gast 3>Ich weiß nicht genau, was der aktuelle Stand ist, was da, wie das, ob das funktioniert und wie genau,

01:54:02.950 --> 01:54:06.550
<v Gast 3>aber es ist auf jeden Fall eingeschränkt und halt alles ätzend.

01:54:06.630 --> 01:54:10.470
<v Unbekannt>Deswegen richtig.

01:54:11.110 --> 01:54:13.750
<v Gast 2>Okay, Fleidi, Remote Podcasting.

01:54:13.990 --> 01:54:14.790
<v Unbekannt>Dein Mimimi.

01:54:15.190 --> 01:54:20.870
<v Gast 1>Ja, ich wollte eigentlich unser Mimimi von Anfang der Sendung nochmal so ein bisschen strukturierter

01:54:20.870 --> 01:54:21.590
<v Gast 1>beschreiben.

01:54:21.750 --> 01:54:26.950
<v Gast 1>Es ist einfach Remote Podcasting, also entweder unsere Tools sind einfach nicht gut genug und das,

01:54:27.030 --> 01:54:31.830
<v Gast 1>was wir so verwenden, ist einfach nicht irgendwie so nicht mehr Stand der Zeit.

01:54:32.150 --> 01:54:36.470
<v Gast 1>Oder es ist einfach immer noch ein Riesenpain, ein Podcast zu produzieren,

01:54:36.790 --> 01:54:40.550
<v Gast 1>wo Leute nicht im selben Raum sitzen.

01:54:41.030 --> 01:54:45.510
<v Gast 1>Also das beginnt dabei, dass irgendwelche Tonspuren auseinanderlaufen,

01:54:45.670 --> 01:54:52.150
<v Gast 1>dass dann teilweise, also ich hatte auch schon so Fälle, wo dann quasi eine Podcast-Sendung fast komplett ins

01:54:52.150 --> 01:54:58.950
<v Gast 1>Wasser gefallen ist, weil bei jemandem die Aufnahme gestoppt hat in der Software,

01:54:59.110 --> 01:55:02.470
<v Gast 1>die man da so benutzt, um Sachen aufzunehmen.

01:55:03.030 --> 01:55:09.990
<v Gast 1>Ich habe da schon alle möglichen Horror-Stories gehört, von wegen korrupierte Audio-Files und hier ist jemand

01:55:10.310 --> 01:55:17.110
<v Gast 1>so semi-remote gewesen, wo dann einzelne Leute quasi übers Internet teilnehmen und andere Leute dann

01:55:17.110 --> 01:55:22.390
<v Gast 1>in einem lokalen Studio sind, wo es dann irgendwelche Probleme mit auch irgendwelchen Übersprechen zwischen

01:55:22.390 --> 01:55:24.310
<v Gast 1>Mikrofonen und so weiter gab.

01:55:25.590 --> 01:55:30.230
<v Gast 1>Alles das ist irgendwie ein ziemlicher Pain gerade.

01:55:31.270 --> 01:55:37.830
<v Gast 1>Und ja, also auch den Aufwand, den man betreiben muss, um dann die einzelnen Tonspuren wieder

01:55:37.830 --> 01:55:38.710
<v Gast 1>zusammenzuschneiden.

01:55:38.790 --> 01:55:45.110
<v Gast 1>Das ist gerade so neben der Sendung selbst eigentlich der zeitintensivste Teil,

01:55:45.270 --> 01:55:47.190
<v Gast 1>um diese Sendung zu produzieren.

01:55:47.430 --> 01:55:52.230
<v Gast 1>Und ich hätte da gerne Lösungen, die das irgendwie besser machen, aber mir fällt gerade jetzt momentan nichts

01:55:52.230 --> 01:55:52.390
<v Gast 1>ein.

01:55:52.470 --> 01:55:56.950
<v Gast 1>Also der Lukas hat mir mal Ultraschall empfohlen,

01:55:57.270 --> 01:55:59.750
<v Gast 1>was wir vielleicht mal angucken könnten.

01:56:00.230 --> 01:56:00.550
<v Gast 1>Ja.

01:56:01.430 --> 01:56:06.390
<v Gast 3>Ist gerade aus Remote-Podcasting-Sicht jetzt relativ interessant geworden,

01:56:06.550 --> 01:56:13.270
<v Gast 3>weil die mit der letzten Version oder so oder der vorletzten ein Produkt oder eine Software integrieren,

01:56:13.350 --> 01:56:20.150
<v Gast 3>die sich Studio Link nennt, die eben dieses Remote-Problem ein bisschen

01:56:20.150 --> 01:56:26.710
<v Gast 3>angehen will, indem es super niedrige Latenz macht und irgendwie dann in

01:56:26.710 --> 01:56:31.510
<v Gast 3>Ultraschall integriert die Aufnahmeproblematik angeht.

01:56:31.590 --> 01:56:36.310
<v Gast 3>Also dieses N-1-Aufnahme, ich will mich aufnehmen und die anderen,

01:56:36.710 --> 01:56:42.550
<v Gast 3>aber eben ohne mich und so solche Probleme versucht es zu lösen,

01:56:42.710 --> 01:56:44.310
<v Gast 3>haben wir jetzt aber bisher noch nicht ausprobiert.

01:56:44.390 --> 01:56:47.190
<v Gast 3>Wäre vielleicht mal ein interessantes Experiment für die Zukunft.

01:56:48.150 --> 01:56:53.350
<v Gast 2>Was ich ganz interessant finde, ist, dass es auch einige webbasierte Plattformen gibt,

01:56:53.510 --> 01:56:59.430
<v Gast 2>die dann selbst mit mehreren Spuren das ganze Syncing aufnehmen, also quasi so eine Art Streamdump as a

01:56:59.430 --> 01:57:00.150
<v Gast 2>Service.

01:57:00.470 --> 01:57:06.310
<v Gast 2>Aber halt, dass es nicht nur ein Stream ist, sondern dass die das quasi für dich dann von der dritten Stelle

01:57:06.310 --> 01:57:08.790
<v Gast 2>aus synchronisieren und auch ein bisschen filtern.

01:57:08.950 --> 01:57:13.510
<v Gast 2>Und die sind nicht mal mehr so teuer, aber webbasiert, es klingt halt immer noch komisch.

01:57:14.710 --> 01:57:19.270
<v Gast 3>Ja, also gerade für irgendwie Low Latency Audio ist irgendwie, weißt du,

01:57:19.430 --> 01:57:21.830
<v Gast 3>ich bin nicht so richtig überhaupt überzeugt.

01:57:22.550 --> 01:57:23.830
<v Gast 2>Ja, aber warum Low Latency?

01:57:24.470 --> 01:57:25.910
<v Gast 2>Wir hören uns jetzt ja auch versetzt.

01:57:27.350 --> 01:57:31.670
<v Gast 3>Na, und das ist aber halt scheiße, weil man sich ständig ins Wort fällt und nicht weiß,

01:57:31.830 --> 01:57:33.350
<v Gast 3>wann der andere aufhört zu reden.

01:57:33.590 --> 01:57:36.710
<v Gast 3>So flüssige Übergänge sind einfach nicht so einfach möglich.

01:57:36.870 --> 01:57:41.110
<v Gast 2>Na gut, aber im Zweifel liegt es dann halt an Skype, würde ich behaupten, so aktuell.

01:57:41.190 --> 01:57:45.270
<v Gast 2>Also wir bräuchten dann auch was, nicht nur fürs Recording, sondern wir müssen dann auch für die

01:57:45.270 --> 01:57:46.950
<v Gast 2>Live-Konversation irgendwie.

01:57:47.510 --> 01:57:49.670
<v Gast 3>Wichtig, das ist eigentlich das eins der großen Probleme.

01:57:50.230 --> 01:57:56.630
<v Gast 1>Ja, aber ist das nicht das ein Problem, was solche Produkte wie Ultraschall oder wie Tricast oder sowas

01:57:56.630 --> 01:58:01.830
<v Gast 1>versuchen zu lösen, dass die halt auch sagen, okay, sie machen das Recording,

01:58:02.150 --> 01:58:06.550
<v Gast 1>machen aber auch die Kommunikation den Sync zwischen den einzelnen Leuten,

01:58:06.710 --> 01:58:09.990
<v Gast 1>weil, also wir haben es jetzt zum Beispiel in der Sendung heute schon gemerkt,

01:58:10.230 --> 01:58:17.030
<v Gast 1>wenn man nicht ganz, ganz doll aufpasst, dann fällt man sich halt sehr einfach gegenseitig ins Wort,

01:58:17.110 --> 01:58:23.670
<v Gast 1>weil man halt einfach so diverse Millisekunden Latenz zwischendrin hat und weil man auch,

01:58:23.750 --> 01:58:27.510
<v Gast 1>also wir, die Hörer wissen das jetzt nicht, wir nehmen auch mit Video auf.

01:58:27.990 --> 01:58:32.870
<v Gast 1>Beziehungsweise wir synken uns auch über Video, was wir jetzt gerade in Skype anzeigen,

01:58:33.430 --> 01:58:35.430
<v Gast 1>aber da ist halt auch eine Latenz drin.

01:58:35.910 --> 01:58:40.390
<v Gast 1>Und sagen wir mal, wenn man die möglichst weit rausnehmen könnte,

01:58:40.550 --> 01:58:44.550
<v Gast 1>würde das halt schon helfen, bessere Podcasts zu produzieren.

01:58:44.790 --> 01:58:48.550
<v Gast 1>Und für mich wäre es halt auch so, als jemand, der dann die Sendung später schneidet,

01:58:48.710 --> 01:58:55.430
<v Gast 1>ist halt für mich einer der Hauptpunkte seltener zu senden, dass ich nicht unbedingt immer die Zeit habe,

01:58:55.590 --> 01:58:57.350
<v Gast 1>die Sendung einfach so ins Internet zu.

01:58:57.910 --> 01:59:03.510
<v Gast 1>Also zum einen sehe ich es nicht ein, die Sendung einfach so ins Internet zu werfen und dann zu hoffen,

01:59:03.990 --> 01:59:09.590
<v Gast 1>dass es akzeptable Qualität für die Hörer ist, weil das ist irgendwie mir nicht gut genug.

01:59:09.910 --> 01:59:15.030
<v Gast 1>Und auf der anderen Seite fehlt mir aber die Zeit, um die komplette Sendung mehrfach

01:59:15.590 --> 01:59:20.790
<v Gast 1>durchzuhören und dann alle kleinen Problemchen im Nachhinein zu fixen.

01:59:20.870 --> 01:59:24.150
<v Gast 1>Und da wäre es halt gut, wenn man da irgendwie so eine Zwischenlösung finden würde,

01:59:24.390 --> 01:59:30.310
<v Gast 1>die mir, die es mir erlaubt, gut qualitativ hochwertige Podcasts zu produzieren,

01:59:30.630 --> 01:59:35.670
<v Gast 1>aber nicht unbedingt irgendwie nochmal drei Stunden Nachbearbeitung erfordert.

01:59:35.750 --> 01:59:37.110
<v Gast 1>Also sowas wäre halt cool.

01:59:37.430 --> 01:59:40.630
<v Gast 1>Aber wir werden wahrscheinlich da die Hörer auf dem Laufenden halten.

01:59:40.710 --> 01:59:47.670
<v Gast 1>Wir könnten ja mal für die nächsten Sendungen eines dieser webbasierten Tools probieren

01:59:47.670 --> 01:59:52.470
<v Gast 1>oder mal versuchen, uns irgendwie eine Reaper-Lizenz und Ultraschall zu besorgen.

01:59:53.110 --> 01:59:55.670
<v Gast 1>Wir halten euch auf dem Laufenden, würde ich mal sagen.

01:59:55.750 --> 02:00:00.710
<v Gast 1>Also im Generellen ist es ein Problem, Latency ist ein Problem, Qualität ist ein Problem,

02:00:00.950 --> 02:00:07.270
<v Gast 1>Arbeitszeit beim Zusammenschneiden der Audiospuren ist ein Problem.

02:00:07.510 --> 02:00:09.270
<v Gast 1>Fällt euch sonst noch was ein?

02:00:11.230 --> 02:00:14.510
<v Gast 1>Was macht noch so Remote-Podcasting schwierig?

02:00:15.470 --> 02:00:17.710
<v Gast 1>Zuverlässigkeit ist ein riesengroßes Problem.

02:00:17.790 --> 02:00:22.830
<v Gast 1>Wir hatten das schon vor der Sendung, dass ich mir jetzt auch gerade im Überlegen bin,

02:00:22.910 --> 02:00:29.790
<v Gast 1>einen Hardware-Recorder zu kaufen, weil ich teilweise halt auch schon von

02:00:29.790 --> 02:00:31.470
<v Gast 1>der Aufnahme Software enttäuscht wurde.

02:00:31.550 --> 02:00:34.270
<v Gast 1>Und da wäre es halt schon gut, wenn ich zumindest sagen könnte, okay,

02:00:34.510 --> 02:00:39.710
<v Gast 1>ich habe immerhin irgendeine Lösung, die für mich aufnimmt,

02:00:41.150 --> 02:00:42.990
<v Gast 1>und am besten zwei.

02:00:43.710 --> 02:00:50.350
<v Gast 1>Also ja, wie gesagt, ich möchte mich ungern nur auf eine Recording-Software

02:00:50.350 --> 02:00:54.910
<v Gast 1>verlassen, die auch im Zweifelsfall mal Fehler haben kann und einfach mal aufhören kann.

02:00:55.070 --> 02:01:00.910
<v Gast 1>Oder meine Festplatte ist voll oder mein Mac geht gerade in irgendwie in Schlafmodus,

02:01:00.990 --> 02:01:05.710
<v Gast 1>weil die Batterie leer ist und ich irgendwie vergessen habe, das Netzteil anzustecken und so weiter und so

02:01:05.710 --> 02:01:12.030
<v Gast 1>fort, wäre es halt uncool, wenn dann irgendwie drei Stunden Sendungen für die Cuts waren,

02:01:12.350 --> 02:01:17.070
<v Gast 1>weil bei einem der Teilnehmer das Recording nicht funktioniert.

02:01:17.790 --> 02:01:21.070
<v Gast 1>Und ja, also wenn man das, wenn man alles lokal macht, dann kann man halt sagen,

02:01:21.150 --> 02:01:26.110
<v Gast 1>okay, man nimmt auf einem Computer auf, man nimmt irgendwie nochmal jede einzelne Tonspur mit einem

02:01:26.110 --> 02:01:28.670
<v Gast 1>Hardware-Recorder auf und so weiter und so fort.

02:01:31.310 --> 02:01:36.750
<v Gast 1>Wenn man das remote macht, geht das zwar auch, aber dann muss man halt quasi das Equipment halt auch

02:01:36.750 --> 02:01:40.990
<v Gast 1>entsprechend verteilen an die einzelnen Teilnehmer, was halt wieder ein Kostenfaktor ist.

02:01:41.230 --> 02:01:41.550
<v Gast 1>Ja.

02:01:43.470 --> 02:01:49.630
<v Gast 2>Ja, vielleicht von den schlechten Sachen jetzt zu den guten, die Picks, würde ich behaupten.

02:01:51.310 --> 02:01:55.150
<v Gast 2>Mein erster Pick ist, muss jetzt vorsichtig sein, wie ich das formuliere,

02:01:55.630 --> 02:02:02.190
<v Gast 2>also wenn, wenn man als Linux-Benutzer größere Linux-ISO-Dateien aus dem Internet

02:02:02.190 --> 02:02:09.150
<v Gast 2>runterladen will, dann geht es ja öfter über BitTorrent und eventuell will man

02:02:09.790 --> 02:02:16.030
<v Gast 2>seine Heimleitung, also dem BitTorrent-Client nicht unbedingt bei sich auf dem Laptop oder auf dem Nass haben,

02:02:16.110 --> 02:02:20.750
<v Gast 2>dass die Heimleitung ein bisschen geschont wird, weil der ja doch ganz schön viel Upload drüber geht,

02:02:20.990 --> 02:02:25.230
<v Gast 2>sondern eventuell will man sich einfach irgendwo so ein VPS hinstellen,

02:02:25.390 --> 02:02:28.430
<v Gast 2>keine Ahnung, DigitalOcean oder sonst wo.

02:02:28.830 --> 02:02:35.630
<v Gast 2>Und theoretisch läuft da ja nicht großartig viel drauf, wie dieser Bitcoin-Client und das

02:02:35.630 --> 02:02:38.910
<v Gast 2>ganze Zeug einzurichten mit, oh, jetzt muss ich den Demon einrichten,

02:02:38.990 --> 02:02:42.270
<v Gast 2>das Webinterface und bla bla bla, ist alles recht nervig.

02:02:42.430 --> 02:02:44.990
<v Gast 2>Und da will ich einfach mal QuickBox.io picken.

02:02:45.150 --> 02:02:50.590
<v Gast 2>QuickBox ist so ein hässliches Shell-Skript mit ein bisschen anderem Zeug und einem Webview-Item rum.

02:02:50.830 --> 02:02:56.030
<v Gast 2>Und du stattest quasi einfach deine VPS und sagst hier einmal den Ubuntu-Server bitte,

02:02:56.190 --> 02:03:01.070
<v Gast 2>kopierst dieses Quickbox-Ding da rein und der setzt dir das Ding komplett auf mit,

02:03:01.310 --> 02:03:05.950
<v Gast 2>wenn du willst, auch Plex-Server und BitTorrent-Sync,

02:03:06.110 --> 02:03:10.750
<v Gast 2>um deine Linux-ISO-Dateien vom Server zu dir nach Hause zu kopieren.

02:03:10.910 --> 02:03:14.190
<v Gast 2>Und das macht der alles für dich, ohne dass du da was machen musst.

02:03:14.830 --> 02:03:15.150
<v Gast 2>Ja?

02:03:16.430 --> 02:03:21.470
<v Gast 1>Ja, natürlich, damit man auch dann seine Linux-ISOs auf dem iPad abspielen kann.

02:03:21.550 --> 02:03:22.750
<v Gast 1>Das ist natürlich wichtig.

02:03:22.990 --> 02:03:24.030
<v Gast 2>Richtig, genau.

02:03:24.270 --> 02:03:30.430
<v Gast 2>Und auf jeden Fall macht dieses Skript alles komplett für dich und richtet es ein und ändert den Standard

02:03:30.430 --> 02:03:32.910
<v Gast 2>SSH-Port und dieses ganze Gekrebel.

02:03:33.070 --> 02:03:39.710
<v Gast 2>Und gerade für sowas wie so eine Box, wo irgendwie nur ein bisschen Beturrent draufläuft,

02:03:39.790 --> 02:03:44.350
<v Gast 2>ist es mir eigentlich auch völlig egal, was da genau vor sich geht und welche Version und überhaupt.

02:03:44.590 --> 02:03:51.150
<v Gast 2>Ist dieses Skript echt gut und spart dir viel Zeit und sieht nett aus und hat so Bandbreite,

02:03:51.310 --> 02:03:55.230
<v Gast 2>Übersicht und wie viel Platte ist denn noch frei, alles im Webinterface,

02:03:55.470 --> 02:03:58.590
<v Gast 2>schön alles passwortgesichert, ist eine super Sache, kann ich empfehlen.

02:03:58.750 --> 02:04:00.910
<v Gast 2>Quickbox.io, ganz gut.

02:04:03.070 --> 02:04:09.310
<v Gast 1>Ja, jetzt wieder so ein Meta-Pick, den wir gerade benutzen, um unsere Shownotes zu editieren.

02:04:09.550 --> 02:04:13.230
<v Gast 1>Dropbox Paper ist ein echt cooles Produkt.

02:04:13.710 --> 02:04:15.470
<v Gast 1>Ist ganz gut, ist echt schön geworden.

02:04:15.710 --> 02:04:18.830
<v Gast 1>Also, ich weiß nicht, ob das so generell bekannt ist.

02:04:18.910 --> 02:04:24.670
<v Gast 1>Wir haben ja bis jetzt unsere Shownotes immer mit irgendwie Etherpad gemacht und dann irgendwie die

02:04:24.670 --> 02:04:28.030
<v Gast 1>Installation der Piratenpartei auf Piratenpad benutzt.

02:04:28.270 --> 02:04:31.710
<v Gast 1>Da ist jetzt allerdings das Problem, das wird schon wahrscheinlich gefühlt seit Jahren nicht mehr

02:04:31.710 --> 02:04:33.230
<v Gast 1>weiterentwickelt, großartig.

02:04:33.390 --> 02:04:37.150
<v Gast 1>Das läuft halt noch, man weiß halt auch nicht, wie lange noch und man weiß auch nicht,

02:04:37.870 --> 02:04:40.750
<v Gast 1>manchmal ist es auch down und manchmal gibt es irgendwo Wartungsarbeiten,

02:04:40.830 --> 02:04:42.270
<v Gast 1>wenn es gerade uncool ist.

02:04:42.510 --> 02:04:47.390
<v Gast 1>Und man hat dann irgendwie im Zweifelsfall keinen Zugriff auf die Shownotes und weiß nicht,

02:04:47.470 --> 02:04:48.830
<v Gast 1>worüber man reden möchte.

02:04:49.070 --> 02:04:50.590
<v Gast 1>Hatten wir alles schon?

02:04:51.070 --> 02:04:55.630
<v Gast 3>Ja, außerdem muss man da irgendwie halt einen Hosting-Server benutzen,

02:04:55.710 --> 02:04:59.870
<v Gast 3>der im Zweifel mal down ist oder gewartet werden muss.

02:05:00.030 --> 02:05:01.310
<v Unbekannt>Das ist halt irgendwie.

02:05:02.590 --> 02:05:02.990
<v Unbekannt>Meh.

02:05:03.710 --> 02:05:04.510
<v Gast 1>Genau.

02:05:04.990 --> 02:05:10.270
<v Gast 1>Und zudem ist es relativ alt und nicht mehr so hübsch und das funktioniert nicht besonders gut auf

02:05:10.270 --> 02:05:12.590
<v Gast 1>Mobilgeräten und so weiter und so fort.

02:05:12.750 --> 02:05:17.550
<v Gast 1>Also das stellt für mich auch öfters mal eine Hürde dar,

02:05:17.630 --> 02:05:20.670
<v Gast 1>weil ich halt, wenn ich irgendwie Ideen für Themen in Podcasts oder sowas habe,

02:05:20.750 --> 02:05:23.790
<v Gast 1>dann habe ich halt im Zweifelsfall gerade nur mal mein iPhone zur Hand.

02:05:24.030 --> 02:05:28.750
<v Gast 1>Und dann auf einem iPhone möchte ich jetzt nicht irgendwie einen Etherpad-Webclient benutzen,

02:05:28.830 --> 02:05:31.630
<v Gast 1>der überhaupt nicht auf Mobilgeräte optimiert ist.

02:05:32.110 --> 02:05:38.190
<v Gast 1>Und da kommt Dropbox Paper eigentlich ganz cool, weil das ist eine schön gemachte Lösung für

02:05:38.190 --> 02:05:43.710
<v Gast 1>kollaboratives Arbeiten, Editieren von Dokumenten, es unterstützt Codeblocks,

02:05:43.870 --> 02:05:48.430
<v Gast 1>wo wir jetzt halt irgendwie Markdown reinschreiben können.

02:05:48.590 --> 02:05:50.910
<v Gast 1>Es unterstützt Syntax-Highlighting.

02:05:51.550 --> 02:05:56.670
<v Gast 1>Es ist vom UI her sehr minimalistisch und sehr übersichtlich, aber eigentlich relativ,

02:05:57.310 --> 02:06:02.750
<v Gast 1>wie soll man sagen, relativ mächtig, was man so damit machen kann.

02:06:03.790 --> 02:06:09.950
<v Gast 1>Es macht so diese Aufgabe des Live-Zünkens, während man Sachen editiert, sehr gut.

02:06:10.190 --> 02:06:14.270
<v Gast 1>Also wir hatten da letztens auch so ein Fall, wo Leute wirklich fünf Leute in einem Dokument gleichzeitig

02:06:14.270 --> 02:06:17.230
<v Gast 1>editiert haben und es hat immer noch funktioniert.

02:06:18.830 --> 02:06:23.070
<v Gast 1>Und ein sehr großer Pluspunkt ist, es gibt zumindest für iOS,

02:06:23.230 --> 02:06:30.030
<v Gast 1>wahrscheinlich auch für Android und Co., gibt es mobile Apps, mit denen man da auch sehr schön auf

02:06:30.030 --> 02:06:32.350
<v Gast 1>kleineren Displays editieren kann.

02:06:32.590 --> 02:06:34.990
<v Gast 1>Und ja, also soweit funktioniert das ganz gut.

02:06:35.390 --> 02:06:41.470
<v Gast 3>Und am Ende ist es eben einfach nur eine Textdatei, die halt in den lokalen Dropbox-Ordner reingesunkt wird.

02:06:42.510 --> 02:06:42.830
<v Gast 3>Ja.

02:06:44.990 --> 02:06:51.550
<v Gast 1>Und am Ende kann man diese Textdatei halt auch einfach irgendwie nehmen und dann in sein Content

02:06:51.630 --> 02:06:55.070
<v Gast 1>Management-System werfen und dann wird da HTML draus generiert.

02:06:56.350 --> 02:06:57.630
<v Gast 2>Ausgezeichnet.

02:06:58.030 --> 02:06:59.310
<v Gast 1>Ausgezeichnet.

02:06:59.790 --> 02:07:02.750
<v Gast 2>Okay, der letzte Pick, Fly, Endspur.

02:07:02.990 --> 02:07:03.790
<v Unbekannt>Oh, äh, ja.

02:07:04.270 --> 02:07:05.070
<v Unbekannt>Noch ein Buch.

02:07:05.390 --> 02:07:10.270
<v Gast 1>Ich wollte das jetzt nicht unbedingt zu Lazefu dazu bringen, weil Lazefu ja eher so Fach-Fachliteratur ist.

02:07:10.670 --> 02:07:16.350
<v Gast 1>The Three Body Problem ist ein ganz cool geschriebener Science-Fiction-Roman,

02:07:16.750 --> 02:07:23.470
<v Gast 1>der mal im Gegensatz zu vielen anderen Sachen von einem chinesischen Autor

02:07:23.470 --> 02:07:29.470
<v Gast 1>kommt und dann halt auch dementsprechend in China spielt, beginnt irgendwie in den 60er Jahren in China,

02:07:29.630 --> 02:07:32.270
<v Gast 1>geht dann so langsam weiter in Richtung Zukunft.

02:07:33.550 --> 02:07:40.030
<v Gast 1>Es kommen interessante Dinge vor, Aliens, Quantenmechanik, sonstige Sachen.

02:07:41.230 --> 02:07:45.630
<v Gast 1>Englische Übersetzungen habe ich gelesen, die liest sich sehr gut.

02:07:45.790 --> 02:07:49.150
<v Gast 1>Und ja, das ist es eigentlich auch so im Großen und Ganzen ist ein guter,

02:07:49.230 --> 02:07:52.350
<v Gast 1>gut gemachter Science-Fiction-Roman, wenn man auf solche Dinge steht.

02:07:54.670 --> 02:07:56.110
<v Gast 2>Ausgezeichnet.

02:07:57.310 --> 02:07:59.150
<v Gast 2>Lukas, du noch was zu picken?

02:07:59.550 --> 02:08:04.910
<v Gast 3>Ja, ich könnte noch ein Buch picken, das ich im Moment lese.

02:08:05.630 --> 02:08:11.550
<v Gast 3>Ist auch ein Sachbuch und zwar heißt es auf Deutsch,

02:08:12.030 --> 02:08:14.910
<v Gast 3>glaube ich, sogar von einem deutschen Autor, es heißt Der totale Rausch,

02:08:15.070 --> 02:08:21.550
<v Gast 3>ist von Norman Ohler und beschäftigt sich mit der

02:08:22.190 --> 02:08:28.750
<v Gast 3>Nutzung von Drogen und der Rolle von Drogen insgesamt während des Dritten Reiches.

02:08:28.990 --> 02:08:35.950
<v Gast 3>Ich bin da drauf gestoßen, weil der Herr Autor vor wenigen Wochen ein AMA auf Reddit gemacht

02:08:35.950 --> 02:08:42.270
<v Gast 3>hat, auf den ich zufällig gestoßen bin, und habe mir dann daraufhin das Buch bestellt und es ist halt eine

02:08:42.270 --> 02:08:48.350
<v Gast 3>total faszinierende Facette des Dritten Reiches, die ich jetzt trotz des

02:08:48.350 --> 02:08:55.150
<v Gast 3>fünfmaligen Durchnehmens des Themas im Schulunterricht irgendwie bisher so noch nie gehört

02:08:55.150 --> 02:08:55.470
<v Gast 3>habe.

02:08:55.870 --> 02:09:01.470
<v Gast 3>Und wenn man sich da, also es ist halt, ich habe da Dinge gelernt, wie dass zum Beispiel Deutschland irgendwie

02:09:01.470 --> 02:09:06.750
<v Gast 3>in den 20er Jahren quasi der weltweite Drogenumschlagplatz war, weil eben in Deutschland irgendwie die ganzen

02:09:06.750 --> 02:09:12.350
<v Gast 3>cleveren Chemiker waren und dann haben die einfach immer des Koks für den Rest der Welt aufbereitet und solche

02:09:12.350 --> 02:09:12.910
<v Gast 3>Dinge.

02:09:13.310 --> 02:09:15.070
<v Gast 1>Die Koksenden Nazischärken.

02:09:15.310 --> 02:09:19.150
<v Gast 3>Oder so Theorien, wie dass vielleicht der Blitzkrieg gar nicht so gut funktioniert hätte,

02:09:19.230 --> 02:09:22.670
<v Gast 3>wenn die ganzen deutschen Soldaten nicht alle auf Amphetaminen gewesen wären.

02:09:24.190 --> 02:09:25.390
<v Gast 2>Ausgezeichnet.

02:09:25.790 --> 02:09:32.510
<v Gast 2>Liest sich sehr gut, ist relativ kurz und ich habe eine Episode von Dubai Friday auch direkt unter deinem

02:09:32.510 --> 02:09:35.790
<v Gast 2>Buch verlinkt: Restore the Dictator to Health.

02:09:35.870 --> 02:09:42.670
<v Gast 2>Da ging es auch so um Hitlers Amphetamine-Regiment, das er verabreicht bekommen

02:09:42.670 --> 02:09:42.910
<v Gast 2>hat.

02:09:43.150 --> 02:09:47.470
<v Gast 3>Ja, das war auf diesem, auf diesem, in diesem Reddit AMA hat dir dann auch ein Video verlinkt,

02:09:47.630 --> 02:09:54.270
<v Gast 3>wo man Hitler sieht, wie er, ich glaube, irgendwie im Berliner Olympiastadion

02:09:54.270 --> 02:09:59.950
<v Gast 3>sitzt oder so und halt ganz seltsam sich bewegt, sofort zurückwippt,

02:10:00.030 --> 02:10:04.910
<v Gast 3>mit den Knien hin und her wackelt und jeder, der schon mal irgendwie jemanden gesehen hat,

02:10:04.990 --> 02:10:07.550
<v Gast 3>der irgendwie hart auf Drogen oder auf Entzug war, der ist so ein bisschen.

02:10:08.990 --> 02:10:10.110
<v Unbekannt>Ja, das hört sich gut an.

02:10:10.910 --> 02:10:12.190
<v Unbekannt>Ich glaube, wir haben es, oder?

02:10:12.350 --> 02:10:13.710
<v Gast 1>Ja, ich glaube, wir haben es, ja.

02:10:14.030 --> 02:10:15.790
<v Gast 1>Dieses Mal auch gar nicht so unfassbar lang.

02:10:17.470 --> 02:10:20.110
<v Gast 1>Knapp über zwei Stunden ist eine gute Länge, finde ich.

02:10:20.350 --> 02:10:21.150
<v Gast 1>Könnten wir weiter so machen.

02:10:21.310 --> 02:10:21.870
<v Gast 1>Finde ich auch.

02:10:22.270 --> 02:10:23.790
<v Gast 1>Würde ich wieder produzieren.

02:10:25.790 --> 02:10:27.470
<v Gast 2>Would buy again, A plus.

02:10:28.590 --> 02:10:29.550
<v Unbekannt>Unter Ebayer.

02:10:30.190 --> 02:10:30.590
<v Unbekannt>E-Bayer.

02:10:31.790 --> 02:10:32.270
<v Unbekannt>E-Bayer.

02:10:34.030 --> 02:10:34.190
<v Unbekannt>Richtig.

02:10:34.590 --> 02:10:35.310
<v Unbekannt>Alles klar.

02:10:35.630 --> 02:10:38.110
<v Gast 1>Dann sage ich jetzt einfach mal Tschüss.

02:10:38.910 --> 02:10:42.990
<v Gast 1>Wir hören uns dann hoffentlich bald wieder und ansonsten habt Spaß.

02:10:43.870 --> 02:10:44.670
<v Gast 2>Am Gerät.

02:10:46.270 --> 02:10:47.070
<v Gast 2>Oder so.

02:10:48.030 --> 02:10:48.590
<v Gast 2>Tschüss.

02:10:49.230 --> 02:10:49.470
<v Gast 2>Okay.

02:10:49.790 --> 02:10:50.190
<v Gast 2>Tschüss.
