335 lines
5.7 KiB
Markdown
335 lines
5.7 KiB
Markdown
# Day 3
|
|
|
|
## Antipatterns und Missverstaendnisse in der Softwareentwicklung
|
|
|
|
Schlechte Loesungen fuer haeufige Probleme.
|
|
|
|
* Problem
|
|
* Seal Team 6
|
|
* Java
|
|
* Effekt (ProblemFactory)
|
|
|
|
### Versionierung
|
|
|
|
* Problem Versionierung mit Filenames
|
|
* Bastelt mal eben
|
|
* Git, svn, perforce ...
|
|
* Jeder darf ueberall einchecken.
|
|
* Effekt: Leute checken bins ein
|
|
* e: Leute checken versions filenames ein.
|
|
|
|
#### Besser
|
|
|
|
* Git ist ok
|
|
* Kleine patches
|
|
* Features einlesen
|
|
* Annahmen ueberpruefen, schnell failen
|
|
* Repos trennen ist hard
|
|
|
|
### Bugs fallen unterm tisch
|
|
|
|
* Bugs unterm tisch
|
|
* Bugtracker
|
|
* Wir haben viele Bugs
|
|
* Priorisierubg
|
|
* Alle anderen Bugs bleiben offe
|
|
|
|
Bugwelle
|
|
|
|
#### Idee
|
|
|
|
Bugfreien Code belohnen.
|
|
|
|
*Du Arsch hast einen Bug gemeldet. Jetzt kamm ich meine Hypothek nicht zahlen*
|
|
|
|
Mit Geld keine gute Idee
|
|
|
|
##### Anti anti pattern
|
|
|
|
Bugs im Bugtracker offen lassen fuer Berufssicherheit. Oder um nicht naechste Aufgabe zu bekommen.
|
|
|
|
### Geht nur am Entwickler rechner
|
|
|
|
* Geht nur am Entwickler rechner
|
|
* Buildserver
|
|
* Alter code aus antiken snapshots, fileshare.
|
|
* Effekt Build failed: Dev logged sich eim und aendert...
|
|
* Laeuft auf sehr spezieller Version.
|
|
- Keine updates auf neue lib/tool versionen
|
|
|
|
#### Rat
|
|
|
|
* Daily build
|
|
* Deterministisch, repoduzierbar
|
|
* Agilitaet, rollback.
|
|
* Fehler muessen schnell erkannt werden
|
|
|
|
### Build geht, laeuft aber nur am Dev pc
|
|
|
|
* Docker
|
|
* Irgendwelche images aus dem Internet
|
|
- Alter versionen
|
|
* Komponenten werden oft als statische Version eingebunden und nicht geupdated.
|
|
|
|
#### Ratschlag Container
|
|
|
|
* Deterministischer zuschand
|
|
* Triviale Rollbacks
|
|
* Am besten Mittagspause
|
|
* Komponenten isolieren nicht Monsterkontainer
|
|
|
|
* Integration!
|
|
|
|
### Code geht nicht
|
|
|
|
* Unit tests
|
|
* Bug wegtesten
|
|
* Niedirge coverage
|
|
|
|
Unitests sind um zu erkennen ob der Code noch (in der Zulunft geht) geht.
|
|
|
|
* Oft nur positive tests
|
|
* Bugs meist in der Fehlerbehandlung
|
|
|
|
100% coverage ist keine Garantie.
|
|
|
|
### Entwickler vergessen Testfaelle
|
|
|
|
* Tdd
|
|
* ? (noch nie im Freien gesehen)
|
|
|
|
### Unbekannt was der Code tut
|
|
|
|
* Dokumentation
|
|
* Wiki
|
|
* Navigation?
|
|
* Noch aktuell?
|
|
|
|
Wiki keine Loesung.
|
|
|
|
### Kommunikation
|
|
|
|
* Grossraumbueros
|
|
* Meetings ...
|
|
* Effekt: kann micht nicht konzentrieren
|
|
|
|
Meetings lieber selten. 1-on-1.
|
|
|
|
### Wir trauen code nicht
|
|
|
|
* Compilerwarnung weg
|
|
* Onion Code
|
|
- Gewrapter code den keiner versteht
|
|
- Fehler werden in Schichten behoben
|
|
|
|
* Release nur ohne offene Bugs
|
|
* Vorm release zumachen, danach auf
|
|
|
|
### Externer Audit
|
|
|
|
* Blackbox pentest
|
|
|
|
Nicht der code sondern Pentester wird getestet.
|
|
|
|
Wohl aus compliance.
|
|
|
|
* Fuzzing
|
|
|
|
Zufaellige Eingaben. Ershuetternd erfolgreich.
|
|
|
|
Fuzzer muss auch alle Kombinationen durchprobiern.
|
|
|
|
Ersetzt nicht andere Massnahmen.
|
|
|
|
### Welche Massnahme
|
|
|
|
Funktionierende Massnahme oder Messbare.
|
|
|
|
Managment nimmt lieber Messbar.
|
|
|
|
### Coder ueberfordert
|
|
|
|
* Thread modeling!
|
|
* Jedes theam macht Thread model
|
|
|
|
Oft am Dev team vorbei.
|
|
|
|
Es ensteht oft nur papier.
|
|
|
|
### Allgemeine Ratschlaege
|
|
|
|
* Fehlerkultur sonst werdwn Bugs versteckt
|
|
* Feedback
|
|
|
|
Bug sollte vom Verursacher gefixt werden um lernen zu ermoeglichen.
|
|
|
|
* Werte kommunizieren
|
|
|
|
Guter code besser als Menge. Nur mit Unit tests moeglich.
|
|
|
|
* Zeit zum Lernen geben
|
|
|
|
* Managment sollte nicht die Architektur vorgeben.
|
|
|
|
Wenn sie Offensichtlich ist hilts nicht.
|
|
|
|
Wenn nicht ist es vermutlich nicht die richtige.
|
|
|
|
### Ratschlaege
|
|
|
|
* Keine Ueberstunden
|
|
* Keine Unrealistische Vorhaben annehmen
|
|
* Zeit muss man sich nehmen
|
|
|
|
## Censorship in the Catalan referendum
|
|
|
|
* A lot of referendum mirrors
|
|
|
|
A lot of political orgs blocked.
|
|
|
|
* DNS tampering
|
|
* HTTP blocking
|
|
|
|
HTTP DPI with regex.
|
|
|
|
Censorship in place against illegal gambling used for political reason.
|
|
|
|
## cryptocurrencies, smart contracts, etc.
|
|
|
|
* 1970 - cryptographers acted as activists
|
|
|
|
Turned cryptographie from military secrete into a science.
|
|
|
|
* 2015 - Lightning Network
|
|
|
|
Overcome scaling limits.
|
|
|
|
Fast, cheap, conflicts can still be resolved cia blockchain.
|
|
|
|
Satoshi has clear vision, cash.
|
|
|
|
Both scientific breakthrough. CS thought this was impossible, bitcoin solved it.
|
|
|
|
And economic success.
|
|
|
|
Estimate lost and stolen btc ~10 billion $.
|
|
|
|
https://onchainfx.com/
|
|
|
|
* bitcoin
|
|
|
|
Very commited. No changes. Basically cult.
|
|
|
|
* Monero Security issues
|
|
|
|
Was inveted before certain cryptography breakthroughs.
|
|
|
|
Also a cult.
|
|
|
|
* ethereum sharding
|
|
|
|
Next thing they will do.
|
|
|
|
Splitting into subnetworks.f
|
|
|
|
### real or hype?
|
|
|
|
hype not just hype.
|
|
|
|
Lots of new valuable tech.
|
|
|
|
### will it be used for good or evil?
|
|
|
|
Inherently empowering.
|
|
|
|
Long run, large scale: very good
|
|
|
|
### Questions?
|
|
|
|
* Only really good reason right now speculation.
|
|
|
|
* Parent child chain approach?
|
|
|
|
- Dunno
|
|
|
|
* Source for figures on cc use for illegal drugs.
|
|
|
|
Rand corp.
|
|
|
|
Counting up drugs.
|
|
|
|
* Proof of stake
|
|
|
|
Interesting/promising.
|
|
|
|
Lock up a part of money to proof. Monies can get redistributed if transaction is proofable incorrect.
|
|
|
|
* Daily use
|
|
|
|
Safety.
|
|
|
|
User experience.
|
|
|
|
Scaleability.
|
|
|
|
* UX super important?
|
|
|
|
1. Make tools good for us to use.
|
|
2. Make everyone like use
|
|
|
|
Didnt work.
|
|
|
|
* Privacy
|
|
|
|
Least favourite tweet.
|
|
|
|
* Outlaw?
|
|
|
|
Some countries have.
|
|
|
|
China, outlawed some uses.
|
|
|
|
* Ceremony Workshop
|
|
|
|
Multiple people stopping each other from itroducing backdoors.
|
|
|
|
General purpose zero knwoledge proof.
|
|
|
|
* Seems like centralised protocls are winning.
|
|
|
|
Scale really well.
|
|
|
|
Self limitting factor.
|
|
|
|
* Uses
|
|
|
|
Donations.
|
|
|
|
Venezuela, fiat inoperable.
|
|
|
|
CryptoKitties
|
|
|
|
* Smart contract/contract
|
|
|
|
Shouldnt have called them programs not smart contracts.
|
|
|
|
* zsnarks
|
|
|
|
Metaphor.
|
|
|
|
Colorblind.
|
|
|
|
Billiard balls.
|
|
|
|
Proofing a truth without revealing addition imformation.
|
|
|
|
* Few people hold most bitcoins
|
|
|
|
Hopeful future tech.
|
|
|
|
* Working with jpmorgan
|
|
|
|
Help make blockchain to use for enterprise usecases. Helpfull for pursoading regulators, startups, enterprises that privacy is important.
|
|
|
|
They cant destroy cryptocurrencies.
|
|
|