Joshua Thijssen
October 09, 2016
400

# Paradoxes and theorems every developer should know

October 09, 2016

## Transcript

1. @jaytaph 1
Joshua Thijssen
jaytaph
every developer should know

2. @jaytaph
Disclaimer:
scientist nor a
mathematician.
2

3. @jaytaph
German Tank
Problem
3

4. @jaytaph 4
15

5. @jaytaph 5

6. @jaytaph 5
53
72
8
15

7. @jaytaph 6
k = number of elements
m = largest number

8. @jaytaph
72 + (72 / 4) - 1 = 89
7

9. @jaytaph 8
Intelligence Statistics Actual
June 1940 1000 169
June 1941 1550 244
August
1942
1550 327
https://en.wikipedia.org/wiki/German_tank_problem

10. @jaytaph 8
Intelligence Statistics Actual
June 1940 1000 169
June 1941 1550 244
August
1942
1550 327
https://en.wikipedia.org/wiki/German_tank_problem
122

11. @jaytaph 8
Intelligence Statistics Actual
June 1940 1000 169
June 1941 1550 244
August
1942
1550 327
https://en.wikipedia.org/wiki/German_tank_problem
122
271

12. @jaytaph 8
Intelligence Statistics Actual
June 1940 1000 169
June 1941 1550 244
August
1942
1550 327
https://en.wikipedia.org/wiki/German_tank_problem
122
271
342

13. @jaytaph 9

14. @jaytaph 9
➡ Data leakage.

15. @jaytaph 9
➡ Data leakage.
➡ User-id's, invoice-id's, etc

16. @jaytaph 9
➡ Data leakage.
➡ User-id's, invoice-id's, etc
➡ Used to approximate the number of
iPhones sold in 2008.

17. @jaytaph 10
Monthly Invoice IDs
Monthly Invoice IDs
Monthly Invoice IDs
Monthly Invoice IDs
Jan 2476 2303
Feb 10718 14891
Mar 19413 27858
Apr 28833 41458
May 38644 55429
Jun 48633 55429
Jul 102606 59027 84961
Aug 109331 69715 100308
Sep 116388 80684 116020
Oct 123721 91935 132004
Nov 131241 103455 148341
Dec 139236 115276 164976

18. @jaytaph 11
Monthly Invoice IDs
Monthly Invoice IDs
Monthly Invoice IDs
Monthly Invoice IDs
Jan 2476 2303
Feb 10718 14891
Mar 19413 27858
Apr 28833 41458
May 38644 55429
Jun 48633 55429
Jul 102606 59027 84961
Aug 109331 69715 100308
Sep 116388 80684 116020
Oct 123721 91935 132004
Nov 131241 103455 148341
Dec 139236 115276 164976
Estimated subscriptions
Estimated subscriptions
Estimated subscriptions
Estimated subscriptions
Jan
Feb 8242 12588
Mar 8695 12967
Apr 9420 13600
May 9811 13971
Jun 9989 14525
Jul 10394 15007
Aug 6725 10688 15347
Sep 7057 10969 15712
Oct 7333 11251 15984
Nov 7520 11520 16337
Dec 7995 11821 16635

19. @jaytaph 12
Monthly Invoice IDs
Monthly Invoice IDs
Monthly Invoice IDs
Monthly Invoice IDs
Jan 2476 2303
Feb 10718 14891
Mar 19413 27858
Apr 28833 41458
May 38644 55429
Jun 48633 55429
Jul 102606 59027 84961
Aug 109331 69715 100308
Sep 116388 80684 116020
Oct 123721 91935 132004
Nov 131241 103455 148341
Dec 139236 115276 164976
Estimated growth / size
Estimated growth / size
Estimated growth / size
Estimated growth / size
Jan
Feb
Mar 105% 103%
Apr 108% 105%
May 104% 103%
Jun 102% 104%
Jul 104% 103%
Aug 103% 102%
Sep 105% 103% 102%
Oct 104% 103% 102%
Nov 103% 102% 102%
Dec 106% 103% 102%

20. @jaytaph
➡ Avoid (semi) sequential data to be leaked.
➡ Adding randomness and offsets will NOT
solve the issue.
➡ Use UUIDs
(better: timebased short IDs, you don't need UUIDs)
13

21. @jaytaph
Confirmation Bias
14

22. @jaytaph 15
Hypothesis....

23. @jaytaph 16
Evidence!

24. @jaytaph 17
Hypothesis conﬁrmed!

25. @jaytaph 18

26. @jaytaph
2 4 6
19
Z={…,−2,−1,0,1,2,…}

27. @jaytaph
21%
20

28. @jaytaph 21
5 8 ? ?
If a card shows an even number on one face,
then its opposite face must be blue.

29. @jaytaph
< 10%
22

30. @jaytaph 23
coke beer 35 17
If you drink beer
then you must be 18 yrs or older.

31. @jaytaph 23
coke beer 35 17
If you drink beer
then you must be 18 yrs or older.

32. @jaytaph 23
coke beer 35 17
If you drink beer
then you must be 18 yrs or older.

33. @jaytaph
for social exchange
24

34. @jaytaph
hint:
problem" in a more social context.
25

35. @jaytaph 26
5 8 ? ?
If a card shows an even number on one face,
then its opposite face must be blue.

36. @jaytaph 26
5 8 ? ?
If a card shows an even number on one face,
then its opposite face must be blue.

37. @jaytaph 26
5 8 ? ?
If a card shows an even number on one face,
then its opposite face must be blue.

38. @jaytaph
27

39. @jaytaph
Question:
28
> 50% chance
4 march
18 september
5 december
25 juli
2 februari
9 october

40. @jaytaph
23 people
29

41. @jaytaph
366* persons = 100%
30

42. @jaytaph
Collisions occur more
often than you realize
31

43. @jaytaph
Hash collisions
32

44. @jaytaph
16 bit value
300 elements
33

45. @jaytaph
rand(1,100000)
117 elements
34

46. @jaytaph
Watch out for:
35
➡ Too small hashes.
➡ Unique data.
➡ Your data might be less "protected" as
you might think.

47. @jaytaph
Heisenberg
uncertainty
principle
36

48. @jaytaph 37

49. @jaytaph 38

50. @jaytaph 39
x position
p momentum (mass x velocity)
ħ 0.0000000000000000000000000000000001054571800 (1.054571800E-34)

51. @jaytaph
The more precise you
know one property, the
less you know the other.
40

52. @jaytaph
observing!
41

53. @jaytaph
Observer effect
42
heisenbug

54. @jaytaph
43

55. @jaytaph
Benford's law
44

56. @jaytaph
Numbers beginning with 1 are
more common than numbers
beginning with 9.
45

57. @jaytaph
Default behavior for
natural numbers.
46

58. @jaytaph 47

59. @jaytaph
find . -name \*.php -exec wc -l {} \; | sort | cut -b 1 | uniq -c
48

60. @jaytaph
find . -name \*.php -exec wc -l {} \; | sort | cut -b 1 | uniq -c
48
1073 1
886 2
636 3
372 4
352 5
350 6
307 7
247 8
222 9

61. @jaytaph 49

62. @jaytaph
Bayesian filtering
50

63. @jaytaph
What's the probability of an
event, based on conditions that
might be related to the event.
51

64. @jaytaph
What is the chance that a
message is spam when it
contains certain words?
52

65. @jaytaph 53
P(A|B)
P(A)
P(B)
P(B|A)
Probability event A, if event B (conditional)
Probability event A
Probability event B
Probability event B, if event A

66. @jaytaph 54
➡ Figure out the probability a {mail, tweet,
comment, review} is {spam, negative} etc.

67. @jaytaph
➡ 10 out of 50 comments are "negative".
➡ 25 out of 50 comments uses the word
"horrible".
➡ 8 comments with the word "horrible" are
marked as "negative".
55

68. @jaytaph 56

69. @jaytaph 57

70. @jaytaph 58
"Your product is horrible and does
not work properly. Also, you suck."
"I had a horrible experience with
another product. But yours really
worked well. Thank you!"
Negative:
Positive:

71. @jaytaph 59

72. @jaytaph
60