Wiki/congress-34c3-notes/2017-12-29_day3.md
2017-12-29 17:37:52 +01:00

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.