Anmeldung Registrierung
Auto Hell Dunkel
Erweiterte Suche
  1. Startseite
  2. Podcasts
  3. Engineering Kiosk Podcast
  4. #63 Spaß mit Zahlen: Under- und Overflows, Rückwärtslaufende Zeit, Negative Modulos und Währungsbeträge
Herausforderungen mit Zahlen in der Programmierung: Hidden bugs,
Effekte auf die Realität und der richtige Umgang.

Der korrekte Umgang mit Zahlen in der Softwareentwicklung ist so
wichtig wie die Reifen bei einem Auto, um es zu fahren.

Obwohl viele Entwickler sagen, Mathematik ist ein täglicher
Bestandteil des Tages, so kommt man um die Verarbeitung von
Zahlen nicht drum herum.

Doch wie schon früher in der Schule, kann der Umgang mit Zahlen
sehr Herausfordernd sein. In dieser Episode sprechen wir über
klassische Fehler, die beim Umgang mit Zahlen in Software gemacht
werden, über skurriles Verhalten von Programmiersprachen aber
auch über die Effekte dessen auf die reale Welt.

Es geht um Datentypen in Programmiersprachen und deren
Wertebereiche, Probleme mit großen Zahlen und JSON,
Währungsumrechnung und die korrekte Speicherung, Integer-Under-
und Overflow, negative Modulo-Berechnungen, rückwärtslaufende
Uhrzeiten und wie verschiedene Programmiersprachen sich bei der
selben Berechnung anders verhalten.

Bonus: Ob Wolfgang Graf Zahl von der Sesamstraße kennt und warum
JavaScript nicht gut in dieser Episode davonkommt.

Unsere aktuellen Werbepartner findest du auf
https://engineeringkiosk.dev/partners

 

Das schnelle Feedback zur Episode:

(top) (geht so)

Feedback (gerne auch als Voice Message)

EngKiosk Community:
https://engineeringkiosk.dev/join-discord 

Email: stehtisch@engineeringkiosk.dev

Mastodon: https://podcasts.social/@engkiosk

Twitter: https://twitter.com/EngKiosk

WhatsApp +49 15678 136776

Gerne behandeln wir auch euer Audio Feedback in einer der
nächsten Episoden, einfach Audiodatei per Email oder WhatsApp
Voice Message an +49 15678 136776

Links

Katalog der ACM für Computer-Informatik/Forschungsbereiche:
https://en.wikipedia.org/wiki/ACM_Computing_Classification_System 

PHP Spaceship operator:
https://www.php.net/manual/en/migration70.new-features.php

Graf Zahl (Sesamstraße):
https://de.wikipedia.org/wiki/Sesamstra%C3%9Fe#Graf_Zahl

Go Programmiersprache: https://go.dev/

Numerische Datentypen in Go:
https://go.dev/ref/spec#Numeric_types

JavaScript Number Encoding:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number#number_encoding

TC39 Comittee zur Erweiterung von JSON um BigInt:
https://github.com/tc39/proposal-json-parse-with-source

LLVM CLang UndefinedBehaviorSanitizer:
https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html

Modulo mit negativen Zahlen:
https://torstencurdt.com/tech/posts/modulo-of-negative-numbers/

“Salami Taktik” Kleine Geldbeträge
stehlen: https://en.wikipedia.org/wiki/Salami_slicing_tactics 

Examples of problems with integers:
https://jvns.ca/blog/2023/01/18/examples-of-problems-with-integers/

Examples of floating point problems:
https://jvns.ca/blog/2023/01/13/examples-of-floating-point-problems/

Sprungmarken

(00:00:00) Intro

(00:01:03) Wie viel hat Informatik und Mathematik mit
Softwareentwicklung zu tun und Bitoperationen

(00:06:24) Das heutige Thema: Probleme mit Zahlen (integer,
float, double, decimals)

(00:08:09) Implizite Typ-Konvertierung bei Skriptsprachen und
verschiedene Basen von Zahlen

(00:10:37) Division in MySQL mit Konvertierung nach JSON wird zum
string

(00:12:39) Einstieg in Datentypen: int, int32, int64, signed,
unsigned, Wertebereiche, Go und JavaScript

(00:20:58) Problem mit großen Zahlen: Twitter Tweet IDs,
JavaScript BigInt und JSON

(00:26:51) Probleme mit Währungen: Rundungsfehler und die
korrekte Speicherung

(00:35:31) Probleme mit Wertebereichen: Under- und Overflows,
Signed und Unsigned Datentypen

(00:40:43) Under- und Overflow in der Realität: Das Jahr 2038 und
2036 Problem

(00:44:43) Probleme mit Zeit: Rückwärts Laufende Uhren,
Leap-Seconds und Monotonic-Clock

(00:52:46) Probleme mit Modulo: Negative Zahlen führen zu
verschiedenen Ergebnissen

(00:58:42) Weitere Probleme mit Zahlen: Portabilität,
Zahlen-Basen, UUID und Bit-Operationen

Hosts

Wolfgang Gassler (https://mastodon.social/@woolf)

Andy Grunwald (https://twitter.com/andygrunwald)

Feedback (gerne auch als Voice Message)

EngKiosk Community:
https://engineeringkiosk.dev/join-discord 

Email: stehtisch@engineeringkiosk.dev

Mastodon: https://podcasts.social/@engkiosk

Twitter: https://twitter.com/EngKiosk

WhatsApp +49 15678 136776
Episode melden

„#63 Spaß mit Zahlen: Under- und Overflows, Rückwärtslaufende Zeit, Negative Modulos und Währungsbeträge“

Worum geht es? Danach fragen wir noch nach dem Grund.

Abonnenten

Teilen

Mein Archiv

Deine Privatkopie der Folgen, die du nicht verlieren willst.

Podcast-Folgen verschwinden. Feeds werden auf die letzten Episoden gekürzt, Hoster räumen alte Dateien ab, Formate wechseln den Anbieter und lassen ihr Archiv zurück. Mit „Mein Archiv“ sichert podcast.de die Folgen deiner Podcasts für dich — angefangen bei den ältesten, denn die sind zuerst weg.

  • Deine gesicherten Folgen bleiben hörbar, auch wenn das Original offline geht.
  • Auch Folgen, die im heutigen Feed gar nicht mehr stehen — podcast.de kennt sie noch.
  • Herunterladen bleibt möglich, solange die Folge beim Podcaster liegt. Der zählt seine Abrufe wie bisher.
Startet bald

Sei beim Start von Mein Archiv dabei

Mein Archiv ist fast fertig. Trag dich ein, dann bekommst du eine E-Mail, sobald es losgeht – und bist von Anfang an dabei. Wir schreiben dir nur zum Start, keine Werbung, keine Weitergabe deiner Daten.

Du bekommst zuerst eine Bestätigungsmail. Abmelden geht jederzeit. Datenschutz