Schlüsseltechnologie

Schlüsseltechnologie

By Xyrillian NoisesTechnology
Download on the App Store

Schlüsseltechnologie episodes

  • STP008: 2D-Grafik

    Hier nun der zweite Teil unserer Reihe über die Herkunft und Darstellung von Grafik.

    Genießen sie heute Funfacts und Kaufberatung auf mittelmäßigem Niveau.

    Shownotes
    • computergenerierte Bilder sind rasterisiert (in Bildpunkte unterteilt)

      • jeder Bildpunkt hat genau eine Farbe
      • generell sind verschiedene Rasterisierungen möglich (z.B. bei Facettenaugen von Insekten meist hexagonale Rasterung)
      • bei Computern meist quadratische Pixelraster: vereinfacht Speicherabbildung und bestimmte Berechnungen, die Nachbarpixel einbeziehen
      • Farbe ist nicht eine einzige Zahl, sondern ein Punkt in einem mehrdimensionalen Farbraum

        • verschiedene Farbräume/Farbmodelle je nach Anwendung
          • RGB (Rot-Grün-Blau): für selbstleuchtende Monitore mit drei verschiedenen Grundfarben (Beispiel aus einem CRT-Monitor)
          • YUV (Y-Luminanz, UV-Chrominanz) etc.: für Fernsehbildschirme (abwärtskompatibel zu Schwarzweißfernsehern, die UV ignorieren und nur Y anzeigen)
          • HSV und CIELAB: modellieren die natürliche Farbwahrnehmung des Menschen
          • CMYK (Cyan-Magenta-Yellow-Black): für Druckprozesse mit vier Standardtinten
          • Farbräume sind meistens dreidimensional, weil wir drei Arten von Farbrezeptoren im Auge haben (zum Vergleich: Fangschreckenkrebse haben bis zu 12 Rezeptorarten und bräuchten also einen zwölfdimensionalen Farbraum)
          • Beispielrechnung: Wie groß ist der Datenstrom zu einem normalen Computermonitor?

            • angenommen 4K-Auflösung: 3840x2160 Pixel
            • angenommen 8 Bit Farbtiefe: 8 Bit pro Pixel und Farbe, also 3 Byte pro Pixel (es gibt auch schon Monitore mit 10 Bit oder 12 Bit Farbtiefe)
            • angenommen 60 Hz, also 60 Bilder pro Sekunde
            • Ergebnis (ohne Datenkompression): 3840 * 2160 Pixel / Bild * 3 Byte / Pixel * 60 Bilder / Sekunde = 1.39 GiB/s bzw. 11.1 Gib/s
            • zum Vergleich: komprimiertes 4K-Video typischerweise 2 MiB/s (16 Mib/s), Kompressionsfaktor ~700
            • Bildaufbau in traditionellen Systemen mit 2D-Grafik (z.B. Spielkonsolen der 80er und frühen 90er) erfolgt meist mittels Sprites

              • Sprites: einzelne vorgefertigte Bilder (z.B. Glyphen einer Terminal-Schriftart oder einzelne Objekte in einem Videospiel)
                • Pixel-Art
                • Grafikprozessor erhält eine Liste von Sprites mit den entsprechenden Positionen, an denen diese eingefügt werden sollen
                • Bild entsteht als Überlagerung aller Sprites in ein Gesamtbild
                • Gesamtbild liegt somit im Videospeicher vor (einem separaten Speicher des Grafikprozessors) und kann dann zum Monitor geschickt werden (siehe auch Double Buffering und V-Sync)
                • in Abgrenzung dazu: Vektorgrafik

                  • Beschreibung eines Bildes mittels grafischer Primitiven (Rechtecke, Kreise, Linien, Kurven)
                  • Bildaufbau durch Rasterisierung dieser Primitiven, z.B. mittels des Bresenham-Algorithmus
                  • bis Ende der 90er oft mittels separater Koprozessoren (z.B. Super FX), da die normalen Prozessoren nicht schnell genug waren
                  • Bildaufbau in traditionellen Desktopsystemen (z.B. Windows 95 bis XP) ist eine Mischung aus beiden

                    • Fensterrahmen, Knöpfe etc. als Vektorgrafik (teilweise in Sprites vorgerendert)
                    • Textsatz ebenfalls auf Basis vorgerenderter Sprites für die einzelnen Zeichen, die wiederum als Vektorgrafik definiert sind
                    • seit den 2000er-Jahren werden auch 2D-Bilder zunehmend auf der Grafikkarte berechnet, denn:

                      • Grafikkarten bzw. Grafikprozessoren (GPUs) sind seit diesem Punkt hinreichend allgegenwärtig
                      • GPUs sind für diese Aufgabe deutlich effizienter (sowohl in Geschwindigkeit als auch Energieverbrauch)
                      • GPUs können auch fortgeschrittene Effekte wie Schattierungen oder Animationen effizient berechnen
                      • 1 hr 23 min
                      • STP007: Speicherhierarchie

                        Für große Teile der Anwender liegt sie im Verborgenen. Versteckt unter Plastik- und Metallgehäusen ist die Welt der Speicher ein ebenso fremder wie faszinierender Ort. Doch auch hier herscht eine strenge Rangordnung, bestimmt allein von Geschwindigkeit und Ausdauer. Hört selbst, welch beschwerlicher Weg sich auftut, wenn Bits sich auf die Reise machen, um verarbeitet zu werden.

                        Shownotes
                        • Rückbezug zu STP003: Logikgatter

                          • damit Rechnen möglich
                          • für Eingabewerte und Ausgabewerte ist ein Speicher erforderlich
                          • Kurzabriss zum Thema Harvard-Architektur vs. Von-Neumann-Architektur

                          • grundsätzliche Arten von Speichern

                            • flüchtiger Speicher: braucht Strom zum Halten von Daten
                            • nichtflüchtiger Speicher: behält Daten auch im ausgeschalteten Zustand
                            • Der ideale Speicher wäre groß, schnell, nichtflüchtig, und beliebig oft wiederbeschreibbar.
                            • da wir keinen idealen Speicher haben: Speicherhierarchie
                            • In der folgenden Liste der verschiedenen Hierarchiestufen sind alle konkreten Zahlenwerte nur illustrative Beispielwerte für Hardware der aktuellen Generation.

                              • Stufe 1: Festplatte

                                • nichtflüchtig, groß und günstig (ab etwa 25 Euro pro TiB)
                                • Zugriffsgeschwindigkeit: 2.5 bis 10 ms (bei 3 GHz: 7,5 bis 30 Millionen Takte) plus Übertragungszeit
                                • Zugriff immer mindestens in Blöcken zu 4 KiB, besonders effizient beim Zugriff auf Sequenzen aufeinanderfolgender Blöcke
                                • Stufe 2: SSD

                                  • etwas teurer als Festplatten (ab etwa 90 Euro pro TiB)
                                  • aber Zugriffsgeschwindigkeit: 0.05 ms (bei 3 GHz: 150.000 Takte)
                                  • anders als bei Festplatten schneller Wahlzugriff
                                  • Stufe 3: Arbeitsspeicher (RAM)

                                    • ab hier flüchtig (Vorteil: öfter wiederbeschreibbar ohne Qualitätsverlust)
                                    • deutlich teurer (ab etwa 4 Euro pro GiB, entspr. ~4000 Euro pro TiB)
                                    • gerade deswegen meist kleiner als die nichtflüchtigen Speicher
                                      • übliche Größen: von 2-4 GiB bei Smartphones oder kleinen Notebooks bis mehrere TiB bei Servern
                                      • Zugriffsgeschwindigkeit: 15 ns Latenz plus Übertragungszeit, insgesamt z.B. 65 ns (bei 3 GHz: 200 Takte)
                                      • Stufe 4: Cache (Zwischenspeicher) des Prozessors

                                        • ab hier fest in den Prozessor eingebaut
                                        • Abbilder von einzelnen Zeilen (je 64 Byte) aus dem Arbeitsspeicher
                                        • Größe: 4-16 MiB
                                        • Zugriffsgeschwindigkeit: 1-5 ns (bei 3 GHz: 3-15 Takte)
                                        • Stufe 5: Registerbank des Prozessors

                                          • Größe: 64 bis einige 100 Byte
                                          • Zugriffsgeschwindigkeit: meist 1 Takt
                                          • nur dieser Speicher kann vom CPU direkt für Berechnungen verwendet werden
                                          • andere mögliche Hierarchiestufen

                                            • Stufe 0: Speicher auf anderen Computern im Netzwerk
                                            • Stufe 2,5: nichtflüchtiger RAM (noch nicht weitverbreitet)
                                            • Speicher aus Sicht des Programmierers

                                              • Abstraktion: lineare Kette von bytegroßen Speicherzellen, die fortlaufend nummeriert sind (Speicheradressen)
                                              • Probleme mit dieser Abstraktion:
                                                • kleinste sinnvolle Schreibmengen (4/8 Bytes bei Registern, 64 Bytes bei RAM, 4 KiB bei Festplatte/SSD)
                                                • Caching-Verhalten
                                                • Einfluss auf effizientes Rechnen: viel wichtiger als schnelles Rechnen ist lokales Rechnen
                                                • Beispiel: Repräsentation von 2D-Feldern (z.B. Grafiken) und effizientes Bearbeiten derselben
                                                • Quelle: "What every programmer should know about memory"

                                                  1 hr 3 min
                                                • STP006: Kommandozeilen und Unix-Philosophie

                                                  Computer haben heute unglaublich leistungsfähige Grafik. Warum verwenden so viele Computer-Experten dann immer noch textbasierte Terminals?

                                                  Shownotes
                                                  • Begriffsklärung

                                                    • Kommandozeile: allgemein jede textbasierte Steueroberfläche
                                                    • Terminal ("Endpunkt"): ursprünglich ein einfacher Computerarbeitsplatz, der an einen Großrechner angeschlossen ist und eine Kommandozeile zur Steuerung desselben bereitstellt; heutzutage synonym mit Terminal-Emulator (ein Programm, das denselben Zweck erfüllt)
                                                    • Shell (auch "Befehlszeile" genannt): ein Programm, das die Grundstruktur der Befehlsinteraktion im Terminal bereitstellt und das Ausführen und Kombinieren konkreter Befehle ermöglicht
                                                    • Befehl: ein Programm, das in der Shell ausgeführt wird und eine konkrete Aktion bewirkt
                                                    • Warum werden Terminals oft gegenüber grafischen Oberflächen (GUI) bevorzugt?

                                                      • Weil es viel cooler ist.
                                                      • bessere Handhabbarkeit eines großen Funktionsumfangs, nach entsprechender Einarbeitung (vgl. GUI mit 1000 Knöpfen vs. Kommandozeile mit 1000 Befehlen)
                                                      • Programmierbarkeit: Textmakros sind einfacher und robuster als GUI-Makros
                                                      • Kombinierbarkeit: Textbausteine sind auf offensichtliche Art und Weise kombinierbar, grafische Bearbeitungsschritte nur begrenzt
                                                      • Fernwartung: Übertragung von Text braucht weniger Bandbreite als Übertragung einer GUI
                                                      • Zugriff bei Problemen oder bei Neuinstallation: wenn GUI nicht mehr oder noch nicht geht, geht oft noch das Terminal
                                                      • Nachteile von Terminals

                                                        • schlechtere Auffindbarkeit von Funktionen ("Discoverability")
                                                        • steile Lernkurve
                                                        • Befehlszeilen gibt es überall, aber besonders prägend ist die von Unix

                                                          • Unix: Familie von Betriebssystemen
                                                          • ursprünglich Anfang der 1970er bei Bell Laboratories entwickelt von
                                                            • Dennis Ritchie
                                                            • Douglas McIlroy
                                                            • Ken Thompson
                                                            • Brian W. Kernighan wurde im Gespräch auch erwähnt. Er schrieb viele Programme für Unix und half, awk zu entwickeln.
                                                            • wichtige aktuelle Vertreter: Linux (und damit Android), macOS, BSD-Familie
                                                            • Gründe für den fortwährenden Einfluss des originalen Unix:
                                                              • Quellcode war für universitäre Nutzung frei zugänglich
                                                              • vergleichsweise einfacher und modularer Aufbau
                                                              • dadurch einfach auf neue Systeme übertragbar
                                                              • Unix-Philosophie

                                                                • Formulierung von Douglas McIlroy: "Mache nur eine Sache und mache sie gut."
                                                                • Formulierung von Richard P. Gabriel: "Schlechter ist besser." (Einfachheit ist wichtiger als alle anderen Eigenschaften eines Programmes wie Fehlerfreiheit, Konsistenz oder Vollständigkeit, da die Weiterentwicklung vereinfacht wird.)
                                                                • weitere Formulierungen siehe verlinkter Wikipedia-Artikel
                                                                • Unix-Philosophie im Kontext des Terminals

                                                                  • meist nicht ein Befehl, der die ganze Aufgabe erledigt; sondern viele kleine Befehle, die kombiniert werden können
                                                                  • gemeinsames Datenmodell: Ströme von Textdaten, die außerdem zumeist zeilenweise verarbeitet werden
                                                                  • Kombinieren der einzelnen Befehle erfolgt interaktiv (direkt in der Shell) und dadurch iterativ (schrittweise durch wiederholtes Probieren und Anpassen der Befehlszeile)
                                                                  • Beispiel: Wir wollen aus einem gegebenen Text die häufigsten Wörter bestimmen.

                                                                    • Eingabedatei: BGB als Markdown-Datei aus der inoffiziellen Quelle https://github.com/bundestag/gesetze
                                                                    • Schritt 1: Einlesen der Datei
                                                                      • cat index.md
                                                                      • Schritt 2: jedes Wort auf eine eigene Zeile
                                                                        • cat index.md | tr ' ' '\n'
                                                                        • passt nicht ganz, aber ist für unsere Zwecke gut genug ("Schlechter ist besser")
                                                                        • Schritt 3: Wörter sortieren, dann identische Wörter zusammengruppieren und zählen
                                                                          • cat index.md | tr ' ' '\n' | sort | uniq -c
                                                                          • Schritt 4: Wörter nach ihrer Häufigkeit sortieren
                                                                            • cat index.md | tr ' ' '\n' | sort | uniq -c | sort -k1 -n
                                                                            • Schritt 5: nur die letzten 20 Zeilen, die die häufigsten Wörter enthalten
                                                                              • cat index.md | tr ' ' '\n' | sort | uniq -c | sort -k1 -n | tail -n 20
                                                                              • siehe unten: Auszüge aus den Ausgaben jedes einzelnen Schrittes
                                                                              • Abendgedanken: Eine Lernkurve ist nicht unbedingt ein Nachteil. Es ist durchaus wertvoll, wenn ein Programm seinem Nutzer richtig kommuniziert, wie viel Einarbeitung und Wissen erforderlich ist. Siehe LaTeX vs. Word.

                                                                              • Im Gespräch erwähnt wurden auch:

                                                                                • Noam Chomsky
                                                                                • Alan Turing
                                                                                • Steve Jobs
                                                                                • Errata: Der Begriff "Mem" wurde nicht von Douglas Hofstadter eingeführt, sondern von Richard Dawkins (in seinem Buch "Das egoistische Gen").

                                                                                  Auszüge aus den einzelnen Schritten des Beispiels

                                                                                  Jeweils mit | head, um nur die ersten 10 Zeilen zu zeigen.

                                                                                  Schritt 1
                                                                                  $ cat index.md | head
                                                                                  ---
                                                                                  Title: Bürgerliches Gesetzbuch
                                                                                  jurabk: BGB
                                                                                  layout: default
                                                                                  origslug: bgb
                                                                                  slug: bgb
                                                                                  ---
                                                                                  # Bürgerliches Gesetzbuch (BGB)
                                                                                  Schritt 2
                                                                                  $ cat index.md | tr ' ' '\n' | head
                                                                                  ---
                                                                                  Title:
                                                                                  Bürgerliches
                                                                                  Gesetzbuch
                                                                                  jurabk:
                                                                                  BGB
                                                                                  layout:
                                                                                  default
                                                                                  origslug:
                                                                                  bgb
                                                                                  Schritt 3

                                                                                  Hier sieht man keine Wörter im engeren Sinne, sondern Folgen von Sonderzeichen, deren Zeichen aus technischen Gründen vor den eigentlichen Buchstaben einsortiert werden. In der ganz ersten Zeile taucht die Anzahl von Zeilen auf, die nach Schritt 2 komplett leer waren (zum Beispiel Leerzeilen, die im Ursprungsdokument Absätze voneinander trennen).

                                                                                  $ cat index.md | tr ' ' '\n' | sort | uniq -c | head
                                                                                  18490
                                                                                  1 #
                                                                                  5 ##
                                                                                  35 ###
                                                                                  376 ####
                                                                                  1216 #####
                                                                                  1015 ######
                                                                                  24 (§
                                                                                  6 (§§
                                                                                  1 *
                                                                                  Schritt 4

                                                                                  Aufgrund der Sortierreihenfolge sehen wir hier besonders seltene Ergebnisse mit je einem Treffer.

                                                                                  $ cat index.md | tr ' ' '\n' | sort | uniq -c | sort -k1 -n | head
                                                                                  1 #
                                                                                  1 *
                                                                                  1 ,
                                                                                  1 0,75
                                                                                  1 1).
                                                                                  1 1\.
                                                                                  1 1005
                                                                                  1 1006
                                                                                  1 1007
                                                                                  1 1008
                                                                                  Schritt 5

                                                                                  Das Endergebnis.

                                                                                  $ cat index.md | tr ' ' '\n' | sort | uniq -c | sort -k1 -n | tail -n 20
                                                                                  1374 auf
                                                                                  1383 nach
                                                                                  1391 für
                                                                                  1448 ist
                                                                                  1523 von
                                                                                  1568 so
                                                                                  1574 das
                                                                                  1630 wenn
                                                                                  1692 in
                                                                                  1850 zu
                                                                                  1953 nicht
                                                                                  2127 und
                                                                                  2628 den
                                                                                  2737 dem
                                                                                  2909 oder
                                                                                  3584 §
                                                                                  4718 des
                                                                                  5980 die
                                                                                  8602 der
                                                                                  18490
                                                                                  1 hr 29 min
                                                                                • STP005: Netzwerk-Schichtenmodell

                                                                                  Wie in Folge 0 bereits erwähnt, tun wir viele Dinge mit Computern. Genauer tun wir sie in oder mit dem Internet.

                                                                                  Damit das funktionert ist es nötig vielerlei Protokolle übereinander zu stapeln. Wir präsentieren -- den Network Stack.

                                                                                  Shownotes
                                                                                  • Vorbemerkung: Daten im Computer bzw. im Computernetzwerk sind immer nur Zahlen

                                                                                    • Wenn wir Texte haben, haben wir tatsächlich Zahlenfolgen, von denen jede Zahl für einen Buchstaben steht.
                                                                                    • Wenn wir Bilder haben, haben wir tatsächlich Zahlenfolgen, von denen jede Zahl für den Farbwert eines Bildpunktes steht.
                                                                                    • etc.
                                                                                    • Rückerinnerung zu STP002: Protokolle

                                                                                      • Wikipedia: "Ein Kommunikationsprotokoll ist eine Vereinbarung, nach der die Datenübertragung zwischen zwei oder mehreren Parteien abläuft. In seiner einfachsten Form kann ein Protokoll definiert werden als eine Menge von Regeln, die Syntax, Semantik und Synchronisation der Kommunikation bestimmen."
                                                                                      • Beispiel aus dem normalen Leben: Interaktion zwischen Kunde und Verkäufer
                                                                                      • Computer-Netzwerke brauchen einen ganzen Stapel von Protokollen, die aufeinander aufbauen

                                                                                        • Problemlösung auf verschiedenen Ebenen: physikalische Signalübertragung, Suche von Verbindungspfaden, Fehlerkorrektur, finale Anwendung
                                                                                        • Nachrichten einer höheren Schicht werden in Nachrichten der nächsttieferen Schicht eingewickelt
                                                                                          • metaphorisches Beispiel: verpacktes Geschenk in Postpaket in Postwertsack in Cargo-Flugzeug
                                                                                          • Austauschbarkeit einzelner Teile des Stapels: z.B. höhere Protokollebenen hängen (fast) nicht davon ab, ob die Übertragung mittels Ethernet oder DSL oder WLAN oder LTE etc. läuft
                                                                                            • innerhalb der Metapher: Paket kann sowohl über Luftpost als auch per Schiff zugestellt werden
                                                                                            • Lehrmodell: OSI-Modell (Open Systems Interconnection) mit 7 Schichten; entspricht aber nicht ganz der Realität
                                                                                            • Schicht 1: Bitübertragungsschicht ("Physical Layer")

                                                                                              • bei kabelgebundenen Wegen Spezifikation der Kabel (Aderanzahl, Materialien, Schirmung, etc.) und Stecker
                                                                                              • bei kabellosen Wegen Spezifikation des Frequenzspektrums etc.
                                                                                              • auf dieser Ebene im Allgemeinen nur Folgen von Bits (Nullen und Einsen)
                                                                                              • Problem: echte Welt ist fehlerbehaftet (Störsignale)
                                                                                              • Schicht 2: Sicherungsschicht ("Data Layer")

                                                                                                • Realisierung einer fehlerfreien Übertragung zwischen direkt miteinander verbundenen Geräten
                                                                                                • Bitfolgen werden zu Frames zusammengefasst und mit Prüfsummen versehen
                                                                                                  • zu Prüfsummen siehe STP004
                                                                                                  • MTU: Maximum Transfer Unit (maximale Nutzlast in einem Frame)
                                                                                                  • manchmal enthalten: Protokolle zum Neustarten fehlgeschlagener Übertragungen (z.B. WLAN), ansonsten nur Verwerfen kaputter Frames (z.B. Ethernet)
                                                                                                  • hier meist hohe Komplexität aufgrund strenger Anforderungen an Verarbeitungsgeschwindigkeit
                                                                                                  • Schicht 3: Vermittlungsschicht ("Network Layer")

                                                                                                    • Schicht 1 und 2 war nur für Geräte, die direkt miteinander verbunden sind (bzw. maximal durch Switches und Repeater verbunden)
                                                                                                    • Schicht 3 verschaltet mehrere solche lokale Netzwerke miteinander
                                                                                                    • Router: Computer, der mit mehreren Netzwerken verbunden ist und dazwischen vermittelt
                                                                                                    • Internet ist paketbasiert (wie die Post), nicht verbindungsbasiert (wie das Telefonnetz)
                                                                                                    • auf Schicht 3 große Einigkeit in den Protokollen, um Interoperabilität zu ermöglichen
                                                                                                    • IP (Internet Protocol)
                                                                                                      • Zuweisung global gültiger Adressen ("IP-Adressen"), z.B. 91.198.174.192 für IP-Version 4 oder 2620:0:862:ed1a::1 für IP-Version 6
                                                                                                      • IP-Pakete können über Netzwerkgrenzen hinweg an den Adressaten zugestellt werden; enthalten Rückadresse für Antwortpakete
                                                                                                      • IP-Adressen nicht immer eindeutig auf einen Computer zugewiesen
                                                                                                        • eine global erreichbare Adresse für mehrere Computer, z.B. Anycast (vgl. Großkundenadressen bei der Post)
                                                                                                        • private Adressen für die Verwendung in lokalen Netzwerken (analog zu internen Adressen in der Hauspost einer einzelnen Firma)
                                                                                                        • ICMP (Internet Control Message Protocol)
                                                                                                          • z.B. Ping, Pfad-MTU-Aushandlung, Anzeige von nicht verfügbaren Empfängern
                                                                                                          • NAT (Network Address Translation)
                                                                                                            • Anwendungsfeld: ein ganzes lokales Netzwerk hat nur eine öffentliche IP-Adresse
                                                                                                            • Router übersetzt IP-Adressen beim Übergang aus dem lokalen Netzwerk oder ins lokale Netzwerk
                                                                                                            • weitere Protokolle insb. für die dynamische Verschaltung von Netzwerken, z.B. BGP (Border Gateway Protocol)
                                                                                                            • Schicht 4: Transportschicht ("Transport Layer")

                                                                                                              • Erweiterung von Schicht 3 um Sitzungsverwaltung und Fehlerkorrektur (analog zum Verhältnis von Schicht 2 zu Schicht 1)
                                                                                                              • Problem: IP-Adressen identifizieren nur Computer, nicht die Programme auf dem Computer
                                                                                                              • getrennte Sitzungen mittels Ports
                                                                                                                • Verbindung eindeutig identifizierbar durch die Verbindung aus Quelladresse, Quellport, Zieladresse und Zielport
                                                                                                                • TCP (Transmission Control Protocol)
                                                                                                                  • garantierte fehlerfreie Zustellung der Datenpakete jeder Verbindung in der jeweils richtigen Reihenfolge
                                                                                                                  • z.B. für große Downloads und Uploads (HTTP)
                                                                                                                  • Fehlerkorrektur in TCP
                                                                                                                    • verpflichtendes Bestätigen erfolgreicher Übertragungen
                                                                                                                    • Sender hält Daten in einem Sendefenster vor, bis der Empfang von der Gegenseite bestätigt wurde; analog Empfangsfenster beim Empfänger
                                                                                                                    • Überfüllungskontrolle: Sendefenstergröße wird angepasst, wenn die Fehlerrate zunimmt (weil jemand auf dem Weg Pakete verwerfen muss)
                                                                                                                    • für den Benutzer sichtbar als "TCP Slow Start" (Downloads fangen meist erst mit geringer Geschwindigkeit an und werden dann schneller, sobald die optimale Sendefenstergröße gefunden wurde)
                                                                                                                    • UDP (User Datagram Protocol)
                                                                                                                      • keine Fehlerkorrektur; im Prinzip nur IP + Ports
                                                                                                                      • z.B. für Echtzeit-Anwendungen (Voice over IP), wo geringe Verzögerung wichtiger ist und der Verlust einzelner Pakete hingenommen werden kann
                                                                                                                      • Schicht 5-7: Anwendungsschicht ("Application Layer")

                                                                                                                        • feinere Aufteilung nicht wirklich hilfreich, da die verschiedenen Aspekte zunehmend schwer voneinander zu trennen sind
                                                                                                                        • Protokolle auf dieser Ebene: z.B. HTTP/HTTPS (Webseiten), SMTP/IMAP (E-Mail), DNS (Namensauflösung)
                                                                                                                        • Grenzen des Schichtenmodells

                                                                                                                          • tiefere Schichten können durch höhere Schichten abgebildet werden; Beispiel: VPN-Protokolle (Virtual Private Network; Protokolle der Schicht 7, das einen Datenkanal der Schicht 3 darstellt)
                                                                                                                          • Schicht 8? Schicht 9?
                                                                                                                          • Zum Weiterhören

                                                                                                                            • der großartige Podcast Request for Comments (dessen Produzentin natürlich Baecker und nicht Bauer heißt; ttimeless nimmt alle Schuld auf sich)
                                                                                                                            • hier der erwähnte RFC-Podcast über TCP
                                                                                                                            • außerdem die angesprochene Episode vom Chaosradio Express: CRE197 IPv6
                                                                                                                            • Lesestoff ;)

                                                                                                                              • ADSL over wet string
                                                                                                                              • Twelve Networking Truths
                                                                                                                              • 1 hr 22 min
                                                                                                                              • STP004: Passwörter

                                                                                                                                Es geht um die Gretchenfrage der IT-Sicherheit. Wie müssen Passwörter aussehen?

                                                                                                                                Wie sollen sie gespeichert werden? Wieviel Salz muss an ein Passwort?
                                                                                                                                Kann man sie ersetzen? Und vor allem, wie würde Xyrill das alles machen, würde ihm doch endlich die Weltherrschaft übertragen?

                                                                                                                                Shownotes

                                                                                                                                Through twenty years of effort, we've successfully trained everyone to use passwords that are hard for humans to remember, but easy for computers to guess.

                                                                                                                                Wir haben zwanzig [mittlerweile dreißig – d. Red.] Jahre lang allen eingeredet, Passwörter zu verwenden, die schwer zu merken sind, aber leicht von Computern geraten werden können.

                                                                                                                                Quelle: Zitat aus XKCD Comic #936.

                                                                                                                                • Motivation: Authentifizierung (Identitätsbeweis)

                                                                                                                                  • mögliche Auth.faktoren:
                                                                                                                                    • etwas, das ich weiß (z.B. Passwort, PIN, Sicherheitsfrage)
                                                                                                                                    • etwas, das ich habe (z.B. Chipkarte, Hardware-Token, TOTP/HOTP)
                                                                                                                                    • etwas, das ich bin (z.B. Fingerabdruck, Iris-Abbild)
                                                                                                                                    • Ein-Faktor-Auth. vs. Zwei-Faktor-Auth.
                                                                                                                                    • Theorie: Hash-Funktionen

                                                                                                                                      • Hash-Funktion:
                                                                                                                                        • Wikipedia sagt als Begriff "Streuwertfunktion", das erklärt es ganz gut
                                                                                                                                        • Anwendungsfelder: Hashtabellen, Prüfsummen
                                                                                                                                        • kryptografische Hash-Funktion:
                                                                                                                                          • kollisionsresistent und dadurch zur "Ein-Weg-Verschlüsselung" geeignet
                                                                                                                                          • typische Hash-Länge: 256 Bit = 32 Byte = 64 Hexadezimalziffern
                                                                                                                                          • Größenvergleich: 2^256 Nanosekunden = 3 Mio. Trio. Trio. Trio. Jahre
                                                                                                                                          • Ziel: Passwort nicht direkt auf dem Webserver speichern
                                                                                                                                            • Server speichert nur Hash vom Passwort
                                                                                                                                            • zur Überprüfung präsentiertes Passwort hashen und mit gespeichertem Hash vergleichen
                                                                                                                                            • Salting: zu jedem Hash noch ein Extra-Zufallstext, damit dasselbe Passwort nicht immer denselben Hash ergibt
                                                                                                                                            • Was können Nutzer machen, um sich zu schützen?

                                                                                                                                              • schwer ratbare Passwörter verwenden
                                                                                                                                                • keine persönlichen Informationen hineinkodieren (Namen von Angehörigen oder nahestehenden Personen, Geburtsdaten, etc.)
                                                                                                                                                • NICHT "passwort" oder "123456" oder "123qwe"
                                                                                                                                                • z.B. XKCD-Schema: Wörterbuch aufschlagen, vier zufällige Wörter wählen
                                                                                                                                                • NICHT bekannte Phrasen (z.B. Bibelverse)
                                                                                                                                                • Passwörter nicht wiederverwenden
                                                                                                                                                  • Wenn überall das gleiche Passwort verwendet wird, sind alle Konten gleichzeitig offen.
                                                                                                                                                  • Mit dem Zugang zum E-Mail Konto kann die "Passwort zurücksetzen"-Funktion ausgenutzt werden.
                                                                                                                                                  • Wenn du nur ein starkes Passwort benutzt, dann das für das E-Mail-Konto.
                                                                                                                                                  • Passwort-Manager verwenden
                                                                                                                                                    • auf dem lokalen PC: KeePassXC
                                                                                                                                                    • oder cloud-basiert: Bitwarden (Server kann man auch selbst betreiben)
                                                                                                                                                    • oder für Nerds: pass
                                                                                                                                                    • Passwörter nicht mit anderen teilen, auch nicht "nur mal schnell"
                                                                                                                                                      • siehe IT-Support-Scam
                                                                                                                                                      • bei Mehrbenutzersystemen auch mehrere Benutzerkonten verwenden
                                                                                                                                                      • Passwort nur auf vertrauenswürdigen Seiten eingeben
                                                                                                                                                        • nicht Links in irgendwelchen Mails folgen (siehe Phishing-Scam), sondern direkt zur bekannten Webseite navigieren
                                                                                                                                                        • Passwort für Webseiten ändern, bei denen die Datenbanken gestohlen wurden
                                                                                                                                                          • in vielen Passwort-Managern als automatische Prüfung integriert
                                                                                                                                                          • Rant: Sicherheitsmaßnahmen, die nicht wirklich bessere Sicherheit bringen

                                                                                                                                                            • Sicherheitsfragen
                                                                                                                                                            • Passwortbeschränkungen: maximal N Zeichen, mindestens ein Sonderzeichen etc.
                                                                                                                                                            • Zwangswechsel nach N Monaten
                                                                                                                                                            • Was können Webseitenbetreiber machen, um Auth. sicher zu machen?

                                                                                                                                                              • Passwörter nur mit starken Hashes ablegen (Argon2, SCrypt, BCrypt, notfalls auch PBKDF2)
                                                                                                                                                              • 2FA unterstützen
                                                                                                                                                              • HIBP-API verwenden, um Passwort-Wiederverwendung zu erschweren
                                                                                                                                                              • Gibt es eine Alternative zu Passwörtern?

                                                                                                                                                                • anderer Faktor (z.B. Hardware-Token oder Biometrie): nicht unbedingt besser, nur anders (Abwägungsfrage)
                                                                                                                                                                • Zwei-Faktor-Auth.
                                                                                                                                                                • Anmeldungslink per E-Mail
                                                                                                                                                                • 1 hr 31 min
                                                                                                                                                                • STP003: Logikgatter

                                                                                                                                                                  Heute erklärt Xyrill Logikgatter. Und das, obwohl er selbst nicht so genau weiß, was da drin ist.

                                                                                                                                                                  Das ist aber auch nicht zwingend nötig – sagt er –, denn es kommt ja darauf an, was sie tun.
                                                                                                                                                                  Obwohl die meisten Logikgatter scheinbar sehr langweilig sind, schaffen wir es nur, damit zu addieren.
                                                                                                                                                                  Allerdings ist das für ttimeless auch genug für den Anfang.

                                                                                                                                                                  Shownotes
                                                                                                                                                                  • Rückblick STP001: Binärzahlen sind dargestellt als Folge von Bits

                                                                                                                                                                    • z.B. 16-Bit-Zahl entspricht 16 Stromleitungen, an denen die Spannung an oder aus ist
                                                                                                                                                                    • Ziel: Berechnungen auf solchen Zahlen

                                                                                                                                                                      • z.B. Addition zweiter 16-Bit-Zahlen: 2x16 = 32 Bit gehen rein, 16 neue Bit kommen raus
                                                                                                                                                                      • Wie kombiniert man Bits sinnfällig?
                                                                                                                                                                      • Logikgatter: Bausteine für solche Schaltkreise
                                                                                                                                                                        • allgemein ein oder zwei Eingänge und ein Ausgang
                                                                                                                                                                        • ansonsten Logikschaltung bzw. Logikbaustein, der aus mehreren Gattern zusammengesetzt ist
                                                                                                                                                                        • Logikgatter mit einem Eingang und einem Ausgang

                                                                                                                                                                          • Gatter unterscheiden sich in der Ausgabe bei Eingabe 0 (2 Optionen) und in der Ausgabe bei Eingabe 1 (2 Optionen)
                                                                                                                                                                          • insgesamt 2x2 = 4 mögliche Gatter
                                                                                                                                                                            • 0 -> 0, 1 -> 0 – Ausgang ist konstant Null (langweilig)
                                                                                                                                                                            • 0 -> 0, 1 -> 1 – Ausgang ist gleich Eingang (langweilig)
                                                                                                                                                                            • 0 -> 1, 1 -> 0 – Ausgang ist Negation des Eingangs (NOT-Gatter)
                                                                                                                                                                            • 0 -> 1, 1 -> 1 – Ausgang ist konstant Eins (langweilig)
                                                                                                                                                                            • Logikgatter mit zwei Eingängen und einem Ausgang

                                                                                                                                                                              • vier mögliche Eingaben (00, 01, 10, 11) und je zwei mögliche Ausgaben (0, 1) -> 2^4=16 mögliche Gatter
                                                                                                                                                                              • darunter sechs langweilige Gatter
                                                                                                                                                                                • Ausgang ist konstant Null
                                                                                                                                                                                • Ausgang ist konstant Eins
                                                                                                                                                                                • Ausgang ist gleich Eingang 1
                                                                                                                                                                                • Ausgang ist gleich Eingang 2
                                                                                                                                                                                • Ausgang ist Negation von Eingang 1
                                                                                                                                                                                • Ausgang ist Negation von Eingang 2
                                                                                                                                                                                • sechs nützliche Gatter Logikgatter
                                                                                                                                                                                  • AND: Sind beide Eingänge 1?
                                                                                                                                                                                  • OR: Ist wenigstens ein Eingang 1?
                                                                                                                                                                                  • XOR: Ist genau ein Eingang 1? bzw. Sind beide Eingänge unterschiedlich?
                                                                                                                                                                                  • NAND: Ist wenigstens ein Eingang 0?
                                                                                                                                                                                  • NOR: Sind beide Eingänge 0?
                                                                                                                                                                                  • NXOR, XNOR: Sind beide Eingänge gleich?
                                                                                                                                                                                  • vier verbleibende Gatter sind nicht so intuitiv, können aber bei Bedarf aus den obigen Gattern zusammengesetzt werden
                                                                                                                                                                                  • Beispiel für eine Logikschaltung: Addiernetz

                                                                                                                                                                                    • Idee analog zum Addieren auf Papier wie in der Grundschule mit Übertrag
                                                                                                                                                                                      • Beispiel hier: 35 + 47 = 82
                                                                                                                                                                                      • Halbaddierer: zwei Eingänge, zwei Ausgänge
                                                                                                                                                                                        • Zwei Ein-Bit-Zahlen werden zu einer Zwei-Bit-Zahl addiert.
                                                                                                                                                                                        • Ausgang 1 = XOR (erste Stelle der addierten Zahl)
                                                                                                                                                                                        • Ausgang 2 = AND (zweite Stelle der addierten Zahl)
                                                                                                                                                                                        • z.B. bei dezimal: 5 + 7 = 2 + Übertrag 1
                                                                                                                                                                                        • in binär: Ausgang 1 = XOR, Ausgang 2 = AND
                                                                                                                                                                                        • Volladdierer: drei Eingänge, zwei Ausgänge
                                                                                                                                                                                          • Wie der Halbaddierer, aber nimmt auch den Übertrag der vorherigen Stelle mit.
                                                                                                                                                                                          • z.B. bei dezimal: 3 + 4 + Übertrag 1 = 8 + Übertrag 0
                                                                                                                                                                                          • Addiernetz für N-Bit-Zahlen: 2N Eingänge, N Ausgänge
                                                                                                                                                                                            • ein Halbaddierer für die erste Stelle
                                                                                                                                                                                            • je ein Volladdierer für jede weitere Stelle
                                                                                                                                                                                            • Überlauf: Was ist, wenn der finale Übertrag nicht 0 ist?
                                                                                                                                                                                              • Option 1: als Zustand im Prozessor speichern, der später abgefragt werden kann
                                                                                                                                                                                              • Option 2: als Fehler behandeln, Prozess oder Prozessor anhalten
                                                                                                                                                                                              • Warum sind Logikgatter interessant?

                                                                                                                                                                                                • starke Abstraktionsebene: fast das gesamte Verhalten des Computers als Rechenmaschine ist aus Logikgattern zusammengesetzt
                                                                                                                                                                                                • konkrete Hardware (z.B. konkrete Art von Transistoren) ist oberhalb der Ebene der Logikgatter fast unerheblich
                                                                                                                                                                                                • aber natürlich: keine Abstraktion ist perfekt...
                                                                                                                                                                                                • Beispiel: Schaltverzögerung -> Takt
                                                                                                                                                                                                • 42 min
                                                                                                                                                                                                • STP002: Aufruf einer Webseite

                                                                                                                                                                                                  Die meisten tun es. Viele täglich. Teils hundertfach oder öfter.

                                                                                                                                                                                                  Aber was passiert eigentlich, wenn wir es tun?
                                                                                                                                                                                                  Die Rede ist natürlich von Webseiten.
                                                                                                                                                                                                  Wir sprechen darüber, wer alles am Aufrufen und Anzeigen von all den Informatinen beteiligt ist, die wir uns täglich beschaffen.
                                                                                                                                                                                                  Und über Kekse!!!

                                                                                                                                                                                                  Shownotes
                                                                                                                                                                                                  • Schritt 1: Webseitenadresse, z.B. https://de.wikipedia.org/wiki/Computer

                                                                                                                                                                                                    • https: Protokoll (wie wir mit der anderen Seite reden)
                                                                                                                                                                                                    • de.wikipedia.org: Domain-Name (wo die andere Seite zu finden ist)
                                                                                                                                                                                                    • /wiki/Computer: Pfad (welches Dokument wir von der anderen Seite haben wollen)
                                                                                                                                                                                                    • Schritt 2: Namensauflösung

                                                                                                                                                                                                      • Datenverbindungen im Internet gehen nur mit einer IP-Adresse (sieht aus wie 192.168.12.169 oder fe80::42e2:30ff:fe12:17b)
                                                                                                                                                                                                      • Webseitenadressen enthalten Domain-Namen, weil:
                                                                                                                                                                                                        • menschenlesbar
                                                                                                                                                                                                        • kann auf mehrere verschiedene Server verweisen (Lastverteilung, Redundanz, Geo-Routing)
                                                                                                                                                                                                        • Frage: Welche IP-Adresse gehört zu dem Domain-Namen? -> Namensauflösung mittels Domain Name System (DNS)
                                                                                                                                                                                                        • Computer der Benutzerin kennt einen DNS-Server (meist vom Internetanbieter)
                                                                                                                                                                                                        • DNS-Server kann zu jedem Domain-Namen die richtige IP-Adresse bestimmen
                                                                                                                                                                                                        • Privatsphäre-Relevanz: dein DNS-Server kennt alle Domains, die du besuchst
                                                                                                                                                                                                        • Schritt 3: Verbindung zum Webserver

                                                                                                                                                                                                          • Broadcast vs. Unicast
                                                                                                                                                                                                            • Fernsehen/Radio/etc. ist Broadcast (eine sendet einmal, viele empfangen)
                                                                                                                                                                                                            • Internet ist im Allgemeinen Unicast (eine sendet, eine empfängt) wie das Telefonnetz
                                                                                                                                                                                                            • grobe Analogie: IP-Adressen zu Telefonnummern (Ländervorwahl, Ortsvorwahl, Durchwahl, etc.)
                                                                                                                                                                                                            • Datenleitung steht, jetzt können wir unser Protokoll (HTTPS) darüber sprechen
                                                                                                                                                                                                              • Wikipedia: "Ein Kommunikationsprotokoll ist eine Vereinbarung, nach der die Datenübertragung zwischen zwei oder mehreren Parteien abläuft. In seiner einfachsten Form kann ein Protokoll definiert werden als eine Menge von Regeln, die Syntax, Semantik und Synchronisation der Kommunikation bestimmen."
                                                                                                                                                                                                              • HTTPS verwendet Verschlüsselung, da sonst jeder entlang des Weges mitlesen könnte
                                                                                                                                                                                                                • TLS: Aushandlung einer Transportverschlüsselung, dann Überprüfung der Identität des Servers
                                                                                                                                                                                                                • Server muss dazu ein Zertifikat für seinen Domain-Namen haben
                                                                                                                                                                                                                • Datenleitung mit Verschlüsselung steht, jetzt kann HTTP gesprochen werden (HTTPS = HTTP mit TLS)
                                                                                                                                                                                                                  • HTTP: allgemein Protokoll zum Herunterladen und Hochladen von Dateien (Hochladen z.B. auch beim Abschicken von Webseiten-Formularen)
                                                                                                                                                                                                                  • Schritt 4: Webseite

                                                                                                                                                                                                                    • Computer der Benutzerin fragt über die bestehende HTTPS-Verbindung nach dem Dokument unter dem Pfad in der Webseitenadresse
                                                                                                                                                                                                                    • Server liefert eine Datei, üblicherweise im HTML-Format
                                                                                                                                                                                                                    • Hausaufgabe: im Browser Webseite öffnen und im Rechtsklick-Menü "Element untersuchen" wählen
                                                                                                                                                                                                                    • HTML: Dokumentenformat
                                                                                                                                                                                                                      • dieselbe Grundkategorie wie PDF oder DOC
                                                                                                                                                                                                                      • aber mehr für die Bildschirmanzeige als für den Druck optimiert
                                                                                                                                                                                                                      • seit 2000 zunehmend auch für dynamische Inhalte ("Webanwendungen")
                                                                                                                                                                                                                      • Schritt 5: Ressourcen

                                                                                                                                                                                                                        • HTML alleine enthält nur die Dokumentenstruktur und den Text
                                                                                                                                                                                                                        • weitere Teile der Webseite liegen in anderen Dateien, auf die das HTML verweist und die der Browser separat herunterlädt
                                                                                                                                                                                                                          • CSS: Darstellungsanweisungen (z.B. "alle Absätze mit 1,5 Zeilen Zeilenhöhe")
                                                                                                                                                                                                                          • Bilder, Audios, Videos
                                                                                                                                                                                                                          • Skripte für dynamische Inhalte
                                                                                                                                                                                                                          • siehe auch: Webseite wird schon angezeigt, aber Bilder erscheinen erst nach und nach
                                                                                                                                                                                                                          • Verweise auch auf Dokumente auf anderen Domains möglich
                                                                                                                                                                                                                            • Privatsphäre-Relevanz: Tracking-Pixel und Tracking-Skripte
                                                                                                                                                                                                                            • Schritt 6: Cookies

                                                                                                                                                                                                                              • HTTP an sich ist zustandslos: Anfrage nach einem Dokument ist nicht abhängig davon, was ich vorher angefragt hatte
                                                                                                                                                                                                                              • Problem: Wie ordnet man die Anfrage nach einem Dokument zu einer Benutzerin zu? (z.B. um Anmeldestatus oder Warenkorb zu verfolgen)
                                                                                                                                                                                                                              • Cookie: kleine Datei, die der Server bei einem Dokument mitschickt und die vom Browser aufbewahrt wird
                                                                                                                                                                                                                              • beim nächsten Request werden alle Cookies von diesem Server wieder mitgeschickt
                                                                                                                                                                                                                              • Privatsphäre-Relevanz: Tracking durch Facebook-Cookie etc.
                                                                                                                                                                                                                              • Exkurs: "Was passiert, wenn ich einen Podcast abrufe?"

                                                                                                                                                                                                                                • prinzipiell genauso, aber statt HTML anderes Dokumentenformat
                                                                                                                                                                                                                                • RSS: "Really Simple Syndication" ("wirklich einfache Verbreitung")
                                                                                                                                                                                                                                • RSS-Dokument ist ein Feed
                                                                                                                                                                                                                                  • Feed = Liste von Nachrichten
                                                                                                                                                                                                                                  • vergleichbar mit dem Feed auf Twitter oder Facebook
                                                                                                                                                                                                                                  • RSS ursprünglich für Blogs und Nachrichtenwebseiten entwickelt (Titel, Kurzbeschreibung, Link zur Webseite)
                                                                                                                                                                                                                                  • für Podcasts statt Link zur Webseite Links zu den Audio-Dateien
                                                                                                                                                                                                                                  • 56 min
                                                                                                                                                                                                                                  • STP001: Zahlensysteme

                                                                                                                                                                                                                                    Wir versuchen uns daran, verschiedene Zählsysteme zu erklären.

                                                                                                                                                                                                                                    Xyrill will zum Wohl aller die Weltherrschaft an sich reißen, und wir hauen auf den Amerikanern rum.
                                                                                                                                                                                                                                    Außerdem in dieser Folge: Liverechnen von Xyrill und spannende Dinge mit Fingern von ttimeless.

                                                                                                                                                                                                                                    Shownotes
                                                                                                                                                                                                                                    • Rekapitulation: Wie funktionieren die alltäglichen Zahlensysteme?

                                                                                                                                                                                                                                      • römische Zahlen: Additionssystem mit Fünferteilung
                                                                                                                                                                                                                                      • Maya-Zahlensystem: Vigesimalsystem zur Basis 20
                                                                                                                                                                                                                                      • arabische Zahlen: Stellenwertsystem zur Basis 10
                                                                                                                                                                                                                                      • Basis ist prinzipiell frei wählbar
                                                                                                                                                                                                                                        • Basis 10 wegen Fingerzählen
                                                                                                                                                                                                                                        • Basis 20, wenn man auch die Zehen dazu nimmt (Spuren in vielen europäischen Sprachen)
                                                                                                                                                                                                                                        • Basis 12 ("Dutzend", Stundenteilung) erlaubt viele gerade Teilungen
                                                                                                                                                                                                                                        • ähnlich für Basis 60 (Babylon)
                                                                                                                                                                                                                                        • Hybridsystem aus Stellenwert- und Additionssystem: z.B. Aussprache arabischer Zahlen im Deutschen, z.B. chinesische/japanische Zahlen
                                                                                                                                                                                                                                        • Dualsystem/Binärsystem: Stellenwertsystem zur Basis 2

                                                                                                                                                                                                                                          • praktisches Beispiel: ttimeless' Binär-Armbandur
                                                                                                                                                                                                                                          • zuschauen wie Binärzahlen wachsen: Onlinebinäruhr
                                                                                                                                                                                                                                          • zuerst von Gottfried Wilhelm Leibniz für Logikberechnungen genutzt
                                                                                                                                                                                                                                          • vielseitig darstellbar in technischen Anwendungen
                                                                                                                                                                                                                                            • Mechanik: Klappe auf/zu
                                                                                                                                                                                                                                            • Elektronik: Strom an/aus
                                                                                                                                                                                                                                            • Pneumatik: Druck/kein Druck (Beispiel: pneumatische Roboter)
                                                                                                                                                                                                                                            • Programmierung: true/false
                                                                                                                                                                                                                                            • etc.
                                                                                                                                                                                                                                            • z.B. in Elektronik: mehr als zwei Spannungswerte möglich, aber dann anfälliger für:
                                                                                                                                                                                                                                              • Störsignale im Kabel
                                                                                                                                                                                                                                              • Spannungsschwankungen (z.B. durch Entladen der Batterie)
                                                                                                                                                                                                                                              • etc.
                                                                                                                                                                                                                                              • Abgrenzung "binär" vs. "digital" (Wortherkunft "digital": lat. "digitus" = Finger)
                                                                                                                                                                                                                                              • Hexadezimalsystem: Basis 16

                                                                                                                                                                                                                                                • für die kompakte Notation von Binärzahlen
                                                                                                                                                                                                                                                • im Prinzip nur für Menschen bedeutsam
                                                                                                                                                                                                                                                • Ziffern 0-9, A-F
                                                                                                                                                                                                                                                • Notation in der Mathematik: Subskript mit der Basis (z.B. 42_10 = 24_16)
                                                                                                                                                                                                                                                • Notation in der Informatik: blanke Zahl ist dezimal (z.B. 42), Präfix "0x" ist hexadezimal (z.B. 0x24)
                                                                                                                                                                                                                                                  • manchmal auch "0b100100" für binär und "0o52" für oktal
                                                                                                                                                                                                                                                  • Größenordnungen oberhalb von 0/1

                                                                                                                                                                                                                                                    • Oktett: 8 Bit (256 Zustände)
                                                                                                                                                                                                                                                    • Byte: kleinste einzeln addressierte Speichermenge (heutzutage so gut wie immer 8 Bit)
                                                                                                                                                                                                                                                    • Kilobyte, Megabyte, Gigabyte, etc.: Multiplikator 1000 (KB,MB,GB)
                                                                                                                                                                                                                                                    • Binärpräfixe Kibibyte, Mebibyte, Gibibyte, etc.: Multiplikator 1024 (KiB,MiB,GiB)
                                                                                                                                                                                                                                                    • Einheitensymbole: kleines "b" für Bit, großes "B" für Byte (wichtig für Netzwerktechnik, da Geschwindigkeiten oft in Megabit/Sekunde etc. angegeben sind)
                                                                                                                                                                                                                                                    • 52 min
                                                                                                                                                                                                                                                    • STP000: Was ist Informatik?

                                                                                                                                                                                                                                                      In der ersten... nein, nullten Folge sprechen wir über die grundlegenden Muster von Informatik und Mathematik.

                                                                                                                                                                                                                                                      Dazu gehört, dass Informatik sowieso das einzig neue seit fließend Wasser, und Mathematik keine Naturwissenschaft ist.
                                                                                                                                                                                                                                                      Außerdem in dieser Folge: Was Trommeln im Stadion mit dem Wetter und Turing mit λ zu tun haben.

                                                                                                                                                                                                                                                      Shownotes
                                                                                                                                                                                                                                                      • Einleitung: Erklärung des Podcastkonzepts durch ttimeless

                                                                                                                                                                                                                                                      • Informatik ist das vllt. einzige wirklich neue eigenständige Studienfach des 20. Jh.

                                                                                                                                                                                                                                                        • Crossover aus Mathematik (Strukturwissenschaft) und Elektrotechnik (Ingenieurwissenschaft)
                                                                                                                                                                                                                                                        • mittlerweile eigenständig aufgrund Größe und unterschiedlicher Lernstruktur
                                                                                                                                                                                                                                                          • ähnlich der Abgrenzung zwischen Medizin und Biologie
                                                                                                                                                                                                                                                          • vielleicht vergleichbar mit der Bildung einer neuen Spezies: unterschiedlich genug zu allen anderen Disziplinen
                                                                                                                                                                                                                                                          • Fokus in dieser Folge eher auf Mathematik als auf Elektrotechnik (Xyrill ist hier eher Theoretiker)
                                                                                                                                                                                                                                                          • Mathematik: keine Naturwissenschaft, sondern Strukturwissenschaft

                                                                                                                                                                                                                                                            • Untersuchung von "ausgedachten" Systemen
                                                                                                                                                                                                                                                            • meist Bezug zu realen Dingen (z.B. Arithmetik, Rechnen mit Zahlen im Kopf und auf dem Zettel, ein grundsätzliches Element der Mathematik)
                                                                                                                                                                                                                                                            • aber auch viel Grundlagenforschung (z.B. Primzahlen)
                                                                                                                                                                                                                                                            • Teilbereiche der Mathematik sind erfolgreich, wenn sie reale Probleme lösen
                                                                                                                                                                                                                                                              • Handel -> Arithmetik
                                                                                                                                                                                                                                                              • Architektur -> Geometrie
                                                                                                                                                                                                                                                              • Wechselstromtechnik -> Komplexe Zahlen
                                                                                                                                                                                                                                                              • Rechenmaschinen -> theoretische Informatik (Xyrill nennt es "Berechnungstheorie")
                                                                                                                                                                                                                                                              • Warum "Berechnungstheorie"?

                                                                                                                                                                                                                                                                • Mathematik begnügt sich mit Aussagen wie "X ist lösbar", "X existiert"
                                                                                                                                                                                                                                                                • Informatik muss immer auch erklären, wie etwas lösbar ist
                                                                                                                                                                                                                                                                  • "Ein Algorithmus ist eine eindeutige Handlungsvorschrift zur Lösung eines Problems oder einer Klasse von Problemen. Algorithmen bestehen aus endlich vielen, wohldefinierten Einzelschritten."
                                                                                                                                                                                                                                                                  • "Algorithmus": benannt nach einem iranischen Universalgelehrten aus dem 8. Jhd. (al-Chwarizmi)
                                                                                                                                                                                                                                                                  • Algorithmen gab's also auch schon, bevor es "Informatik" hieß
                                                                                                                                                                                                                                                                    • Arithmetik: Primzahlen finden (Sieb des Erastothenes)
                                                                                                                                                                                                                                                                    • Geometrie: Umkreis eines Dreiecks finden
                                                                                                                                                                                                                                                                    • Knotenkunde
                                                                                                                                                                                                                                                                    • maschinelles Abarbeiten von Algorithmen erfordert besonders präzise Formulierung
                                                                                                                                                                                                                                                                      • Menschen kommen mit ungenauen Erläuterungen oder reinen Zielbeschreibungen klar
                                                                                                                                                                                                                                                                      • Beispiel: Wörter alphabetisch sortieren
                                                                                                                                                                                                                                                                      • Beispiel: Gegeben zwei Zahlen, welche ist kleiner und welche ist größer?
                                                                                                                                                                                                                                                                      • "Berechenbarkeit" ist ein universales Konzept
                                                                                                                                                                                                                                                                        • nicht an bestimmte Arten von Rechnenmaschinen gebunden
                                                                                                                                                                                                                                                                        • Algorithmen können auch von Hand ausgeführt werden
                                                                                                                                                                                                                                                                        • Church-Turing-These: alle universellen Rechenmaschinen sind äquivalent (Turingmaschinen, Lambda-Kalkül, Primitiv-rekursive Funktionen)
                                                                                                                                                                                                                                                                          • nicht rigoros bewiesen, aber stimmt für alle bisher gefundenen universellen Rechenmaschinen
                                                                                                                                                                                                                                                                          • Durch das Aufschreiben von Algorithmen zeigen wir, dass wir ein Problem so gut verstanden haben, dass eine Maschine es für uns lösen kann.

                                                                                                                                                                                                                                                                          • Deswegen ist Informatik die Schlüsseltechnologie der modernen Welt.

                                                                                                                                                                                                                                                                            49 min

                                                                                                                                                                                                                                                                          About Schlüsseltechnologie

                                                                                                                                                                                                                                                                          From the publisher's feed

                                                                                                                                                                                                                                                                          Die IT hat unser Leben in den letzten Jahrzehnten von Grund auf verändert. Aber wie funktioniert sie wirklich? Das möchte ttimeless mal erklärt bekommen. Zum Glück hat Xyrill Antworten.

                                                                                                                                                                                                                                                                          More shows like Schlüsseltechnologie

                                                                                                                                                                                                                                                                          Freak Show by Metaebene Personal Media - Tim Pritlove

                                                                                                                                                                                                                                                                          Freak Show

                                                                                                                                                                                                                                                                          9 Listeners

                                                                                                                                                                                                                                                                          Lage der Nation - der Politik-Podcast aus Berlin by Philip Banse & Ulf Buermeyer

                                                                                                                                                                                                                                                                          Lage der Nation - der Politik-Podcast aus Berlin

                                                                                                                                                                                                                                                                          219 Listeners

                                                                                                                                                                                                                                                                          Logbuch:Netzpolitik by Metaebene Personal Media - Tim Pritlove

                                                                                                                                                                                                                                                                          Logbuch:Netzpolitik

                                                                                                                                                                                                                                                                          5 Listeners