Dies ist eine Übersicht der Inhalte der vergangenen HackTalks.

 

HackTalk Braunschweig 27.11.2018

Schwächen von und Alternativen zu JPA

  • Slides mit Anmeldung auf Gitlab (Login z.B. mit Twitter-Credentials)
  • 89 Annotations in JPA, damit hohe Komplexität
  • Criteria API = Abstraktion von native queries
  • Berechtigung: dynamisch statements zusammen bauen + Typsicherheit
  • low-level-Alternative: String-Queries händisch zusammenbauen
  • Global vs local transaction: global z.B. wenn gemeinsame Aktionen in MessageQueue und DB zurückgerollt werden sollen
  • Pattern "Transaction per Webrequest"
  • ORM als Antipattern
  • Probleme mit Caching
  • Alternativen: No-SQL, JDBC-Template, Spring Data JDBC, Speedment, Reactive

Andere Themen

HackTalk Braunschweig 30.10.2018

VueJS

  • Framework für SinglePageApplications
  • Alternative zu Angular und React
  • rein Java Script, kein Kompilieren notwendig (TypeScript aber optional verwendbar!)
  • damit leichtgewichtiger
  • sehr kleine mimized einbindbare JS von 30kb
  • Template, Script und Style in einer Datei (in Angular in verschiedenen Dateien)
  • props = von außen in eine Komponente hineingeben, in Angular @Input
  • v-for = Iteration über Itemas, in Angular ngFor
  • viele weitere Parallelen zwischen Angular und Vue
  • Browser-Extensions in DevTools, in Angular Augury

Bulma

  • leichtgewichtiges Bootstrap (etwas weniger Komponenten + kein JQuery)
  • unabhängig von einem Framework (im Gegensatz zu ngxBootstrap)

Buefy

  • Merge von Vue und Bulma
  • ähnlich zu PrimeNG

 

  • Kebab-Case vs CamelCase

HackTalk Wolfsburg 02.10.2018

API Gateways: Spring Cloud Netflix (Zuul)

  • erweiterbarer HTTP-Proxy
  • Loadbalancer -> Proxy (=Zuul) -> Webservice
  • Zuul = u.a. Überwachung für Fehlerfälle über die Menge der Webservices (so trotz vieler unterschiedlicher Web-Services Überblick über gesammten Netzwerkverkehr eines Clients); Definition von Filtern (= Interceptor) für Requests
  • Cross-Cutting Concerns wie Tracing, Logging, Authentifizierung auf HTTP-Ebene vor der Business-Logik abgefangen und umgesetzt, somit Business-Logik sauberer
  • von Netflix entwickelt, später aber Kooperarion mit Pivotal, daraus Spring Cloud Netflix entstanden
  • Zuul 2 z.B. auf Netty-Basis (statt Jetty), damit Blocking und Non-Blocking IO, damit weniger Last
  • Spring Cloud Gateway = offizielles Produkt von Pivotal
  • Canary-Deployments über Zuul abbildbar durch Filter

Emojis in Commit-Nachrichten

HackTalk Braunschweig 25.09.2018

Testdatengenerator

StackShare

  • Tech Stack von facebook: https://stackshare.io/facebook/facebook
  • zum Beispiel auf https://stevenschwenke.de/techvita

Structure101

  • Tool zum Finden von Circular Dependencies, Darstellen von Architekturdiagrammen und Definieren von Architekturregeln
  • https://structure101.com/resources/#resources=0

HackTalk Wolfsburg 04.09.2018

Kotlin for Beginners

  • https://meikellp.github.io/kotlin-for-beginners/
  • von 40 Entwicklern bei JetBrains entwickelt
  • neben Java einer der offiziellen Android-Sprachen
  • statically typed
  • kann auf Java Bytecode compiled werden
  • kann parallel zu Java in einem Projekt verwendet werden
  • viele Libraries, u.a. Spring, offiziell Support für Kotlin
  • kein "Killer-Feature" gegen Java, dafür eine Menge kleinerer Features, die das Entwickeln erleichtern
  • Types by default null-safe (Bsp. leerer String deklarieren = leerer String statt null), null kann aber auch zugewiesen werden (also kein Schutz vor NPE)
  • optionale Parameter + named Parameter sorgen dafür, dass viel weniger overloaded Methoden benötigt werden
  • in when-statements (= switch in Java) Bereiche und Negation möglich
  • val = immutable, var = mutable
  • "class User(var firstName: String, var lastName: String)" generiert Konstruktor und getter und setter
  • zusätzlich mit optionalen und named Parametern ziemlich kleine Datenklassen, die dennoch alles können
  • extrem viele Extensions, die sehr viele Workarounds ablösen
  • Operator Overloading = "+" und "-" überschreiben, z.B. für eigene Daten-Wrapper-Klassen (Bsp. Vektoren)
  • "Mit Kotlin kann man alles machen, was man mit Java machen kann, und umgekehrt" + komplettes Ineinander-Arbeiten möglich
  • Elvis-Operator ebenfalls enthalten
     

HackTalk Wolfsburg 07.08.2018

Rust for Beginners

- Quelle: https://github.com/Tobi823/rust_for_beginners
- von Mozilla, um bestimmte Teile des Browsers besser schreiben zu können
- 2015 erstes stable Release
- kein Carbage Collector, Speicher durch spezielle Syntax "automatisch" freigegeben
- sichere Implementierung von Nebenläufigkeit (im Sinne von "security")
- kein null
- keine Vererbung
- statisch typisiert
- Cargo = Package Manager
- Killer-Feature im Vergleich zu Java: Ownership: Nur eine (!) Variable kann zu einem Zeitpunkt auf einen Wert zugreifen. Sehr günstig für Nebenläufigkeit.

Andere Themen

 

HackTalk Braunschweig 31.07.2018

- (Dmitrij) Windows Subsystem for Linux
    - nicht nur Emulator
    - Großteil des Funktionsumfangs von einem Linux
    - WSL erstmal aktivieren, dann läuft Subsystem (seit Windows 10 März 2017)
    - in Subsystem können Distributionen registriert werden
    - wslconfig = welche Distributionen installiert sind
    - "bash" startet (aus cmd heraus) Bash
    - "wsl" startet ebenfalls Linux (scheint das gleiche zu sein wie "bash")
    - Ubuntu, Debian, Suse, Kali zur Zeit verfügbar (über Microsoft Store oder über manuellen Workaround über Microsoft Dokumentation)
    - direkter Zugriff auf das Dateisystem des Linux; ist nur ein Ordner (konfigurierbar, wo)
    - auch beliebige Linux-Distributionen installierbar über https://github.com/Microsoft/WSL-DistroLauncher
    - Bash der Linux-Installation kann auch auf Windows-Ordner zugreifen - beide OS sind also quasi ineinander gemerged (vom Dateisystem her)
    - bash "git --version"    führt Git des Linux aus
    - Überlegung: Fireforx unter Linux laufen lassen = sicherer, da nochmal sandboxed
    - xserver von Windows nicht offiziell supported, deshalb Linux-Anwendungen in Windows-Fenster anzeigen nicht gut
    - Umschalten zwischen verschiedenen installierten Linuxen möglich über wslconfig /1
    - Diskussion über Sinnhaftigkeit ergibt kein absolutes Killer-Feature
    - WSL ist ein Entwicklertool, nicht für das Laufen lassen produktiver Services. Zum Beispiel sind verschiedene Netzwerk-Services auch nicht verfügbar.
- (Olli) Oh my Zsh unter Windows nutzen
    - in IntelliJ Terminal einstellbar, z.B. direkt bash.exe
    - auch möglich: in WSL Symlink setzen auf Windows-Executable. Somit aus Linux heraus Executables in Windows ausführbar.
    - zsh = alternative Shell zu Bash
    - Oh my Zsh = viel Autocomplete, z.B. für Git-Branches
- imdone.io
    - statische Code-Analyse nach TODO und Generieren eines Task-Boards
- Josha: Bilder Aufbau HOA (Hacken Open Air)

HackTalk Wolfsburg 08.05.2018

  1. MKN Wolfenbüttel - Großküchen aus der Region mit IT drin und überall auf der Welt benutzt
  2. (Stefan) DSGVO (Hinweis: Dies sind rechtlich nicht bindende Mitschriften!)
    1. bisher: Flickenteppich in Europa, da jedes Land eigene Datenschutzvorgaben
    2. neu: europaweite Datenschutz-Verordnung = Verordnung, die in den einzelnen Staaten verbindlich ab 25.05.2018 gilt
    3. einige Anpassungs-Gesetze in den einzelnen Ländern durch Öffnungsklauseln, die Spielraum zulassen
    4. Gilt auch für alle Unternehmen, die Services in Europa anbieten (und nicht in Europa sitzen)
    5. DSGVO wird oft überall umgesetzt, statt Ausnahmen für EU zu implementieren
    6. neue große Änderung: Strafrahmen erheblich erhöht + Einzelpersonen auch haftbar (statt das Unternehmen)
    7. personenbezogene Daten = Daten, die mit verhältnismäßigem Aufwand einer Person zugeordnet werden können (Beispiel: Online-Handle oder IP-Adressen)
    8. Datenminimierung: Nur noch Daten erheben, die zum Zweck des Dienstes wirklich benötigt werden
    9. Aber: Wenn User Einverständnis gibt, auch noch zusätzliche Daten erhebbar
    10. Sobald Daten in Auftrag von Jemand anderem verarbeitet werden, muss ein Vertrag dafür existieren - Beispiel: Einsicht in die DB von Dienstleister
    11. Schutz bezieht sich nur auf natürliche (nicht juristische) Personen
    12. Kopplungsverbot: erhobene Daten dürfen nur für das verwendet werden, wofür sie erhoben wurden
    13. Datenmissbrauch: Betroffene innerhalb von 72h zu melden
    14. aber auch: Viele neue Rechte!
    15. vorgestellte Präsentation hier

HackTalk Braunschweig, 24.04.2018

  1. Großküchenbauer in Wolfenbüttel: MKN: www.mkn.de/
  2. Diskussion über DevOps und NoOps
  3. Steven stellt JHipster und Angular vor
  4. Olli stell RoyalJS vor
  5. Audi E-Tron vs Tesla

HackTalk Wolfsburg, 03.04.2018

  1. Coreboot
    1. = open-source Firmware, die insbesondere ältere Lenovo-Laptops bespielen kann
    2. Vorteil zu Firmware anderer Hersteller: so wenig wie möglich selbst machen
    3. Coreboot startet andere "Payloads" wie z.B. UEFI
    4. Vorgehen: Hardware-seitig an Chip rangehen mit von Ebay bestelltem "Testclip", welcher über einen Raspi Coreboot aufspielt
    5. Ähnliche Projekte: libreboot, linuxboot
  2. Neue IDEA-Version da
  3. Killer-Drohnen mit Face-Recognition

HackTalk Wolfsburg, 06.02.2018

  1. OAuth
    1. Authorisieren von Zugriff auf Ressourcen, nicht Authentifizierung
    2. OAuth 1 und 2 nicht kompatibel - alle Teilnehmer müssen die gleiche Version nutzen
    3. Scopes - z.B. "Mein Jenkins darf nur Repositories lesen, aber nicht schreiben"
    4. Scopes frei definierbar
    5. Refresh-Tokens werden mit den Authorisierungsschritten mitgeliefert. Client ist jeweils 100 Tage lang berechtigt. Quasi schneller ablaufende Zertifikate, die dauernd aktualisiert werden müssen.
    6. Freigabe durch z.B. Twitter führt dazu, dass Seite X direkt auf Twitter weiterleitet. Dort anmelden und sich damit authentifizieren => Das ist also das, was OAuth eben nicht selbst macht. Deshalb die Weiterleitung.
    7. OpenID ist für Authentifizierung
    8. Bsp: Github-Repos bauen lassen über Travis
  2. Ideen-Besprechung TravelShare - eine Event-Plattform für Reisen
  3. Booten
    1. https://www.golem.de/news/freie-linux-firmware-google-will-server-ohne-intel-me-und-uefi-1710-130840-2.html 
    2. https://libreboot.org/
    3. https://www.coreboot.org/

    HackTalk Braunschweig 30.01.2018

    1. (Steven) Mikado-Methode

    HackTalk Wolfsburg 09.01.2018

    1. Blue Green Deployments
      1. = Konzept zur Bereitstellung von Software
      2. 2 produktiv einsatzfähige Umgebungen (blue und green), nur eine davon aktiv
      3. auf der einen Umgebung neue Version vorbereiten und testen
      4. dann LoadBalancer umschalten auf diese neue Version
      5. dann andere Umgebung hochziehen
      6. Fallback: 2. Umgebung nicht hochziehen, dann jederzeit zurückrollbar    
    2. gitignore.io
    3. Chip-Design vs Sicherheit ;)
    4. Empfehlung youtube: Monolith in Microservices aufbrechen
    5. Klasse Authenticator -> setDefault() -> mit Plain Java durch Proxy
    6. https://spring.io/tools/sts/all

    HackCamp Wolfsburg 05.12.2017

    1. (Steven) Vorstellung Mikado-Methode
    2. Organisatorisch: 200€ Spenden an Digitalcourage - yeay und danke! Gleichzeitig aber Rückgang Spenden, deshalb keine Sweets mehr. Wie seht ihr das?

    HackCamp Braunschweig 28.11.2017

    1. Tee und Mate als notwendige Entwicklungswerkzeuge
    2. Lisa + Dmitrij: Analyse Git-Repository (Neo4J, R)
      1. Repository: https://github.com/dmitrij-drandarov/Git-Repository-Analysis
    3. Tino: Java Service Loader
    4. Themen für nächstes Mal (30.01.):
      1. (Steven) Mikado-Methode hands-on: Bitte eigenen Rechner mitbringen!
      2. (Diskussion) Wann gehören IDEA-Metadaten eingecheckt?

    HackCamp Braunschweig 18.11.2017

    HackTalk Braunschweig 24.10.2017

    Vorstellung Cloudogu

    • - "cloudogu ecosystem"
    • - windows-kiste mit Vagrant
    • - Vagrant zieht virtuelle Maschine hoch mit Dimensionierung, Netzwerkeinstellungen etc.
    • - Vagrant-File = Beschreibung virtueller Maschine = Infrastrukturbeschreibung
    • - Vagrant kann mit Providern die Beschreibung "ausführen", also Container hochfahren
    • - = Infrastructure as code
    • - Ansible installiert Software aus einem beschriebenen Soll-Zustand
    • - Cloudogu gibt am Anfang alles, um eine VW zu starten. Hat Standard-Vagrant-File und kann dementsprechend out-of-the-box eine virtuelle Maschine starten
    • - einrichten und konfigurieren dieser bisher leeren Box über Webinterface
    • - Cloudogu Ecosystem = Ubuntu, welches vorkonfiguriert mit bestimmenr Software ausgestattet werden kann
    • - jede Cloudogu-Instanz registriert sich in Backend (von Triology hosted) und bekommt von dort z.B. Lizenz-Informationen
    • - sehr verständliches und einfaches Webinterface, um Cloudogu-Instanz zu konfigurieren
    • - Anschluss LDAP und Mail
    • - Dogus = angebotene Tools, welche auch über Webinterface instaliert werden können
    • - Dependency Management zu Dogus = nur möglich, eine funktionierende, valide Box zu bauen
    • - Definition "Dogu" = Tool, welches mit anderen Dogus interagiert
    • - Dogus sind technisch gesehen Docker-Container, die in einer Registrierung registriert sind. Damit auch möglich, eigene Dogus zu beschreiben und zu registrieren
    • - Dogus sinnvoll, da sinnvolle Standard-Konfiguration für jedes Dogu gegeben
    • - bei neuen Versionen von z.B. Sonar werden neue Versionen von Dogus von Triology zur Verfügung gestellt => damit Garantie, dass bei Updates nichts kaputt geht
    • - möglich, eigene Dogus zu erstellen, die nicht von Triology supported und unterstützt werden - dann aber keine Garantie, dass nichts kaputt geht
    • - verschiedene Geschätsmodelle denkbar, Open Source aber Fakt. Auf Website 2 Editionen: Community (kostenlos), Subscription Edition (Support)
    • - Links zu allen installierten Tools automatisch auf der Website angezeigt
    • - Cockpit = Webseite als Dashboard
    • - nicht-freie Tools, z.B. Bamboo statt Jenkins, werden in Zukunft unterstützt, momentan nicht
    • - Dashboard zeigt Widgets aus installierten Tools, z.B. Jenkins Builds oder Auslastung etc. Dashboard ist damit Zusammenfasser aus den installierten Tools
    • - UseCase "Instanz für Entwicklungsteam" am besten damit abbilbdar, dass z.B. Oracle DB daneben steht, also nicht mit in Cloudogu zu sein

     

     

    • VersionEye wird eingestellt - sehr schade.
    • Maven Version Ranges - what are they good for?
    • nächste Themen:
      • Lisa + Dmitrij: Analyse Git-Repository (Neo4J, R)
      • Tino: Java Service Loader
      • Sven: Lombok (übernächstes Mal)
      • Olli: Domain Driven Design (übernächstes Mal)

     

     

    HackTalk Wolfsburg 28.09.2017

    1. (Steven) Remote Working - Wie Entwicklungsarbeit sich in Nearshore verlagert und wie wir remote viel glücklicher arbeiten können.
    2. (Steven) Diskussion Lombok & Immutables
    3. (Steven) Spring 5 GA.
    4. Folgetermin?
    5. HackCamp

    HackTalk Braunschweig 26.09.2017

    1. (Jens) Grundlagen funktionaler Programmierung

    HackTalk Braunschweig 29.08.2017

    1. HackCamp 2017 Braunschweig findet statt - Themen werden gesucht!
    2. Devoxx4Kids: 25.11. Hamburg - Es werden Mentoren gesucht!
    3. (Olli) Krypto Grundlagen:
      • Angriffsvektor
      • Vertraulichkeit + Integrität + Authentizität 
      • Passwörter speichern in DB: Hash + Salt
      • Salt & Pepper
      • Kerckhoffs Prinzip
      • symmetrische vs asymmetrische Verschlüsselungen
      • kryptografisch sichere Zufallszahlenenerierung
      • Message Authentification Code
      • SSL
      • TLS
    4. WLAN Router - FritzBox oder Strom-LAN
    5. Waschmaschinen greifen andere Computer an
    6. Braunschweig hat eine Java Script User Group: http://royaljs.de

     

     

    HackTalk Wolfsburg 01.08.2017

    1. (Schakko) Ethereum

    • Blockchain = verteilte Datenbank
    • Integrität durch Hashing sichergesetllt
    • Blockchain kann nur appended werden, also nur Daten hinzufügen
    • mehrere Cryptowährungen, die darauf aufsetzen
    • Ethereum = Fork von Bitcoin

    2. Amazon Roboter (youtube)

    3. Microships selbst bauen (youtube)

    HackTalk Braunschweig 25.07.2017

    1. (Sven) Pipelines mit Jenkins 2

    • Pipelining sinnvoll für z.B. Tests auf mehreren Datenbanken (Oracle und MySQL)
    • Jenkinsfile in Projekt ablegen, welches z.B. Agentes und Stages definiert
    • in Jenkins Repository angeben, Jenkinsfile wird automatisch gefunden und geladen
    • alle Stages werden im gleichen Workspace ausgeführt, damit sind z.B. Daten für alle Stages verfügbar
    • aber auch einzelne Build-Steps isoliert konfigurierbar
    • nette graphische Darstellung der entstehenden Pipeline, so einfach erkennbar, welche Fehler es wo gab
    • gut vereinbar mit Jenkins Merge-Requests-Plugin: Damit wird in Gitlab bei z.B. Merge Requests die Pipeline durchlaufen

    2. (Jens) AssertJ

    • AssertJ = Matcher für JUnit-Tests. In Standardkonfiguration von JUnit ausgeliefert, obwohl es auch eine Version gibt ohne ausgelieferten Matcher. Mit JUnit 5 keine Matcher-Bibliothek ausgeliefert, man muss sich explizit für Hamcrest oder AssertJ entscheiden.
    • Assertions schreiben für JUnit
    • Nicht wie bei JUnit zwei Parameter angeben, sondern assertThat("someString").isEqualTo("someOtherString")
    • damit mit Autocompletion sehr viele Möglichkeiten aufrufbar, nicht wie bei Hamcrast erst Matcher schreiben
    • damit mit z.B. contains() auch schönere Fehlerausgabe, da das ausgegeben wird, was erwartet wird und was Realität war
    • außerdem Chaining möglich, z.B. erst contains(), dann endsWith()
    • mit SoftAssertions werden alle Assertions ausgeführt, auch wenn einige davon fehl schlagen - damit eine Fehlermeldung mit allen fehlschlagenden Assertions, schön durchnummeriert
    • schönes Testen von Collections, z.B. assertThat(myList).contains("eins", "zwei"); - geht auch mit containsExactly() - auch hier mit schöner gesprächiger Fehlerausgabe
    • pro-Methode-Assert auf Exceptions, damit auch möglich, in die Exception-Message zu sehen

    3. Themen für nächstes Mal: Jens "Grundlagen funktionaler Programmierung"

    HackTalk Wolfsburg 04.07.2017

    1. Nächste Themen:
      1. Schakko: Ethereum

    HackTalk Braunschweig 27.06.2017

    1. Big List of naughty strings
    2. Java Faker
    3. IDEA shortcut: "Ctrl + . " = Methoden auf- und zuklappen
    4. (Tino) FLDA (Fixed Length Data Accessor). Bereits nutzbar, auch wenn (noch) geringe Version.
    5. Coveralls: Coverage-Badges in Github (am Beispiel vom Java Faker)
    6. Diskussion: hohe Versionsnummern durch Semantic Versioning
    7. SpaceX: 2 Starts innerhalb von 2 Tagen
    8. Test Coverage in IDEA über mehrere Module (Github)
    9. Fähigkeiten von Tesla in der Unfallverhütung (Youtube)

    HackTalk Wolfsburg 06.06.2017

    1. Info für nächstes Mal: Nur ein Thema 1h, dann Magic Sealed
    2. Thomas: Docker
      1. Container = gezippte, virtuelle Festplatte erweitert mit Befehlen
      2. Dockerfile = Konfiguration
      3. in Dockerfile: Base-Image
      4. Container bauen aufeinander auf, angebbar in Dockerfile mit "FROM"
      5. fertige Container können in der Registry hinterlegt werden
      6. Einbindung in Spring durch Spring Boot
      7. Property-Dateien im Docker-Umfeld blöd, es muss alles über Umgebungsvariablen laufen. Für lokale Entwicklung Property-Datei mit Spring-Placeholdern verwendet, z.B. ${myVariable : myContext} verwendet lokal myVariable und deployed die Umgebungsvariable "myContext".
      8. gebaute jar wird mit "docker build" in Docker-Container verpackt
      9. Container ist immer self-containing running
      10. Images mit Jenkins automatisch bauen und deployen lassen
      11. Good Practice: automatisch gebaute Images sollten in die Registry geladen werden und von dort aus laufen gelassen
      12. Orchestrierung z.B. mit Rancher (oder Kubernetes). Ebenfalls als Docker-Container verfügbar. Definiert Umgebungen, um Container laufen zu lassen inkl. Überwachung und Definition von Umgebung wie Volumes.
    3. Schakko: Apache Kafka
      1. = Message-System für verschiedene Sprachen wie Java, Scala, Ruby, ...)
      2. MQ = Message Queue. 2 Arten: Normale Queue mit jeweils genau einem Producer und genau einem Consuner und Topic, welche einen Producer hat und viele Consumer. Kafka nur 1:n-Beziehung mit Topics (keine Queues)
      3. Consumer subscriben auf Topics und empfangen dann alle Nachrichten in dieser Topic
      4. Anwendungsgebiet: Große Datenmengen werden verarbeitet und können von Kafka schnell während des Streamens verarbeitet => Sehr spezieller Anwendungsfall, der für die meisten Anwendungen nicht relevant ist.
      5. Alternativen zu Kafka: ActiveMQ, RabbitMQ, WebsphereMQ
      6. Unterschied zu Alternativen: Sliding Window: Die letzten n Messages werden gespeichert und erst spät verworfen - bei den Alternativen werden sie sofort verworfen.
      7. Für "normalere" Anwendungsfälle: SpringXD

    HackTalk Braunschweig 30.05.2017

    1. Immutable Collections in Java: JEP-269 scheint immutable collections zu versprechen, ist aber nicht das, was man wirklich alles braucht
    2. Jens stellt Kerbal Space Program vor - Vorsicht, suchtgefährend!
    3. (Sven) Gitlab = Git Repository Software
      1. große Ähnlichkeit zu Github
      2. Neuanlegen oder Clonen existierender Git-Repositories
      3. Funktionen ähnlich wie in Github, z.B. Graphen von Contributors oder Commit-Graphen und Merge-Request
      4. viele Plugins, z.B. für Wikis für Dokumentation oder für Zusammenarbeit mit Jenkins
      5. ebenfalls Code Reviews mit Kommentaren und Votes möglich
      6. sinnvoll für Repositories, über die man komplette Kontrolle hat
      7. UI sieht sehr schick aus
    4. Jenkins
      1. Version 2 schon länger verfügbar
      2. erst seit einigen Monaten: Blue Ocean. Macht Handhabung einfacher durch Formulierung von Pipelines
      3. Alternative zur Jenkins-Pipeline: concourse.ci (von Pivotal-Entwicklern)
      4. generell hat sich bei Jenkins eine Menge getan in der letzten Zeit
    5. Digital Lab von VW in Berlin - scheint ganz modern zu sein
    6. In Git sehr große Dateien speichern: Git Large File Storage
    7. Microsoft ist fertig geworden, alle Projekte auf Git umzustellen
    8. Driving Technical Change (Buch)
    9. Nächste Themen:
      1. (Sven) Pipelines mit Jenkins 2
      2. (Tino) FLDA (Fixed Length Data Accessor)
      3. (Jens) AssertJ
      4. (Sven) Lombok

    HackTalk Wolfsburg 02.05.2017

    1. Schakko: AWS (Amazon Web Services) rockt für ... alles. Irgendwie. Auch Seiten.
    2. Schakko: Cooles Confluence-Plugin: "Stash-Plugin" oder "Stash for Confluence" zum Darstellen von Code in Confluence
    3. (Stefan) Travis CI
      1. Presentation auf Github Pages
      2. Cloud-basiertes Continuous Integration Tool
      3. keine eigene Infrastruktur notwendig, da Cloud-basiert
      4. extrem einfache Github-Integration - jedes Github-Projekt lässt sich schnell in Travis integrieren
      5. kostenlos für öffentliche Repos
      6. läuft mit aktuell 30 Programmiersprachen und 16 Datenbanken
      7. zur Konfiguration muss im root des Projektes .travis.yml - Datei notwendig; Prüfung der Konfiguration mit Travis Weblint möglich
      8. über services (in yml-Datei) Zuschalten von z.B. Datenbanken möglich
      9. auch Angaben der zu bauenden Branches einfach möglich
      10. durch Angabe von Skripten alles mögliche ausführbar vor oder nach dem build
      11. Testen gegen z.B. verschiedene Java- oder php-Versionen möglich
    4. buildmystring.com kann Strings zusammenbauen für Java und alles mögliche ... ja schwer zu erklären, einfach mal gucken
    5. (Karsten) DSL für Views
      1. Single Responsibility Principle: Sollte nur einen Grund geben, eine Codestelle zu ändern
      2. Don't repeat yourself: jedes Konzept nur eine Implementierung
      3. beide Prinzipien anwenden: ein Modell wird von mehreren Templates genutzt
      4. Generation Gap Pattern: generierte Klasse teilweise überschreiben, um Sonder-Funktionalität abbilden zu können, trotzdem generierten Code zu haben
    6. Themenvorschläge für die nächsten Male:
      1. Steven: Management 3.0
      2. Thomas: Docker
      3. Schakko: Kafka

    HackTalk Braunschweig 25.04.2017

    1. (René Pfeuffer) Git Bisect
      1. René hat ein Github Repo geschrieben
      2. Git Bisect wird mit Git mitgeliefert
      3. mögliche Practice in Git: Commits squashen, damit die Timeline lesbarer ist. Nicht gut, da Informationen verloren gehen, die mit Git Bisect analysiert werden könnten
      4. Git Bisect durchsucht Git Tree, z.B. "In welchem Commit ist denn mein Test kaputt gegangen?". Würde man manuell vielleicht per binärer Suche machen - geht aber auch automatisiert.
      5. Definition des aktuellen Standes als "bad", hier gibt es einen Fehler
      6. Definition eines vergangenen Standes als "good", also kein Fehler
      7. Git Bisect checktout automatisch einen Stand zwischen "bad" und "good. Dann manuell markieren als "good" oder "bad", z.B. durch Testausführung
      8. Neues Commit ermitteln, wieder testen usw.
      9. DAS Totschlagargument dafür, dass man einen dokumentierenden Test schreiben sollte, sobald einen Defect gefunden hat. => Damit Git Bisect funktioniert
      10. "git bisect mvn test" führt automatisch Tests aus und wechselt auf die entsprechenden Branches. Ergebnis ist exact der kaputtmachende Commit.
      11. Falls Fehler schon vor 3 Monaten eingebaut, aber erst jetzt Test für Fehler gebaut (also Test nicht in den alten bisherigen Commits vorhanden): Neuen Test schreiben. Bei Wechsel auf anderen Branch löscht Git diesen neuen Test nicht, sodass er bei Maven ausgeführt wird und rot läuft.
      12. Oder mit "git bisect start HEAD base run ./my_special_script.sh" irgendein beliebiges Skript ausführen.
      13. Hinweis: Maven kann dazu gebracht werden, nur den einen neuen Test auszuführen, der den Fehler dokumentiert.
    2. (Josha) Blockchain
      1. einfach verkettete Liste
      2. jeder Knoten hat Hash vom Vorgänger
      3. an jedem Knoten können "Dinge" hängen
      4. Knoten in der Mitte kann nicht ausgetauscht werden, da dann Hashes nicht mehr stimmen
      5. genutzt für Authentifizierung, Spamabwehr (Hashcash), Bitcoin
    3. Smart Contracts
    4. Bitcoins, Stefan Tilkov Vortrag: https://speakerdeck.com/stilkov/blockchain-the-slowest-most-fascinating-database-youll-ever-see
    5. Steven hat kurz Marp vorgestellt
    6. Neusprech "Full Stack Developer" = Mädchen für alles
    7. Jens spricht über die JAX
      1. eine der größten Konferenzen
      2. hektisch
      3. sehr hochqualitative Vorträge
      4. schlechter Kontakt mit Speakern, weil viele Menschen
      5. Masse verläuft sich - man sieht sich nicht so häufig
    8. Mal wieder eine Podcast-Empfehlung: OmegaTau Flugsicherung in München
    9. Vintage Space auf Twitter
    10. Elon Musk "Neuralink and the brains magical future"
    11. Nächste Themen:
      1. (Sven) Gitlab
      2. (Karsten) DSL für UI am Beispiel Prime Faces
      3. (Jens) Kerbal Space Program

    HackTalk Wolfsburg 04.04.2017

    1. Präsentationen mit Markdown mit Marp
    2. (Schakko) AWS Autoscaling
      1. vertikale Skalierung = mehr Leistung (CPU, Speicher), horizontale Skalierung = Verteilung
      2. horizontale Skalierung skaliert besser ;)
      3. gibt verschiedene Load-Balancer, die die Last verteilen
      4. Daten nicht mehr lokal speichern, stattdessen global mit S3 (Simple Storage Service) oder EFS von Amazon
      5. Anwendung kann auch stateless sein, z.B. mit JWT (Json Web Token)
      6. Datenbank muss mit Skalierung umgehen können (Replizieren der Daten zwischen Instanzen). Mehrere Read-Only Slaves, einen Master zum drauf Schreiben.
      7. pgPool für z.B. Failover, da diese von AWS nicht zur Verfügung gestellt wird
      8. fancy monitoring und schnelles Dazubuchen neuer Instanzen per Web-Interface
      9. Load-Balancer (LB) kostenlos / günstig bei AWS dabei
      10. Launch Configuration (LC) mit Konfigurationsangaben
      11. Autoscaling Group (ASG) mit Angaben, wieviele Instanzen wann wie dazugeschaltet werden sollen, Beispiel "Rechenzentrum Frankfurt 1 ist weg, umschalten auf Frankfurt 2"
      12. 2 Arten der Skalierung: Scaling Policies (mit Metriken) oder Scheduled Actions (zu Zeitpunkt Aktion). Rampup-Time wird berücksichtigt.
      13. Konfiguration sehr einfach über Webinterface
      14. Anwendung muss Skalierung ermöglichen, dafür gibt es mehrere Möglichkeiten wie Git-Repository direkt bei Amazon, Puppet, Ansible, ...
      15. Kostenkontrolle: Ein Account pro Projekt!
      16. Kopieren von Konfigurationen zwischen Installationen per Terraform
    3. (Steven) Idee von Jens: Repository zum Debugging-Üben eingerichtet, bitte commiten :)
    4. DB Unit zum Vergleich von Datenbank-"Images"
    5. (Steven) Nächstes Mal Vorstellung Management 3.0 ? => Ja
    6. (Steven) Bericht Javaland 2017, Mitschrift auf Repo
    7. Nächstes Mal:
      1. (Stefan) Travis CI
      2. (Steven) Management 3.0
      3. Modellgetrieben mit PrimeFaces

    HackTalk Wolfsburg 07.03.2017

    1. (Steven) Vorstellung Grundlagen Domain Driven Design
    2. Der Magic (the Gathering) - Virus greift weiter um sich
    3. Weiterbildung neben dem Beruf, wie geht das am besten? Wir haben über Teilzeitarbeit und Lerngewohnheiten geredet.

    HackTalk Braunschweig 28.02.2017

    1. Magic the Gathering - es gibt mehr Leute, die das spielen, als man so denkt! ;) Jeden 2. Freitag gibt es bei msg-DAVID eine Spielrunde.
    2. Nächstes Mal HackTalk Braunschweig fällt aus, weil Javaland. Gibt Freibier und jede Menge Futter. Und Achterbahn mit viel Platz. Und ein paar Talks ... thematisch.
    3. (Josha) Bericht vom 33C3. Ich hätte mitschreiben können, was Josha gezeigt und erzählt hat. Aber hey, Congress.
    4. (Steven) Grundlagen von Git und die Verwendung des neuen GitKraken 2.0
    5. InMemory-Datenbanken und Verwendung in "echter" Umgebung
    6. Nächstes Mal: Josha: Blockchain + René oder Olli "Bisect" in Git zum Fehlerfinden

    HackTalk Wolfsburg 07.02.2017

    1. Kerberos

      • Authentifizierung über Kerberos-Server
      • 3-köpfig: Client + Kerberos-Server + Dienst für den Client
      • unterstützt Single Signon (einmal anmelden, alle im Server angemeldeten Dienste nutzen)
      • Tickets = Eintrittskarten für Services. Da Tickets Lebenszeit haben, werden Dictionary Attacks sehr schwierig.
      • Kerberos-Server ist Single point of failure und muss deshalb sehr gut geschützt werden
    2. NTLM (Network Lan Manager)

      • Vorgänger von Kerberos
      • von Microsoft entwickelt wurden, funktioniert nur in Windows-Netzen
      • ermöglicht Single Signon über HTTP
      • unsicher durch mögliche man in the middle attacke und pass the hash attacke
    3. Dateien testbar lesen

      • Code in Tinos Git Repository
      • Parsen von Festlängendateien (pro Zeile immer gleiche Anzahl von Attributen mit immer gleicher Länge)
      • Wrapper-Klassen, die mehr Lesbarkeit bieten
    4. Log4J bietet in neuester Version Logging über Lambdas. Mit Methodenreferenzen nur dann Strings formatieren, wenn Log enabled ist. Damit teure Operation sparen.

    HackTalk Braunschweig 24.01.2017

    1. Tino: Entwicklung für WebStarter am Beispiel von Game of Life mit JavaFX: JNLP-Anwendung = "Java Network Launching Platform", eine aus dem Web gestartete Java-Anwendung, die in einer Sandbox läuft. Ähnlich wie damals bei den Applets. JNLP-Datei bescheibt Abhängigkeiten, zu startende Klasse etc. Java lädt automatisch neuere Teile evtl. neuerer JNLP-Versionen runter (ist rein Java). Änderung von Oracle: Unsignierte Anwendungen können nicht mehr gestartet werden! Damit eigenen Keystore mit eigenem Zertifikat erstellen und in den Java Trust Store laden. Muss auch jeder machen, der die Anwendung ausführen möchte. Damit nicht "run everywhere" ;) JNLP-Datei kann generiert werden, z.B. durch Maven. Optionale Einstellung: Anwendung läuft in einer Sandbox und fragt den Anwender, ob es eine Aktion durchführen darf oder nicht. Achtung: Angaben in Manifest-Datei müssen mit Angaben in JNLP übereinstimmen! Auch für die Entwicklung notwendig, JNLP-Datei von einem echten Server runterzuladen, lokaler Ordner reicht nicht. Ausführung der Anwendung nicht mit java.exe, sondern mit javaws.exe. Schreiben von lokalen Dateien (z.B. mit JAXB) mit JNLP-API. Löst Dialog aus, damit der User der Anwendung Dinge erlauben kann.
    2. Warum Git viel cooler ist als alles andere.
    3. Warum IntelliJ IDEA viel coolet ist als alle anderen IDEs.

    HackTalk Wolfsburg 03.01.2017

    1. Tesla hat angekündigt, ab 2017 alle Model S mit Hardware auszurüsten, die komplett autonomes Fahren erlaubt. Wir haben uns über die technischen Probleme unterhalten wie Rechenleistung und Bandbreite. Außerdem sehr problematisch: Wenn alle Autos irgendwann mal x Kameras und sonstige Sensoren haben, kann man sich nicht mehr unerkannt in der Nähe von Straßen aufhalten.
    2. Homeoffice / Remote Working ist super. "Besser als im Büro", weil mehr geschafft und flexibler. Und besseres Essen. Funktioniert evtl. nur für einen bestimmten Typ Menschen. Man muss strukturiert und diszipiliniert sein. 40 Stunden-Woche ist nicht mehr zeitgemäß. Auch vor-Ort-Arbeiten in der IT heutzutage ist nicht mehr zeitgemäß. Soziale Kontakte müssen aber aktiv angegangen werden. Wichtig: Schlussstrich ziehen können nach der Arbeit, um die Abgrenzung zur Freizeit zu bekommen. Einfach nur Rechner zuklappen könnte zu wenig sein.
    3. Steven stellt die neue auf Drupal 8 basierende Seite vor und dankt allen HackTalk-Besuchern für die 100€, die wir in 2016 an Digitalcourage e.V. spenden konnten.
    4. Tino: ServiceLocator Pattern als Alternative zu Dependency Injection. Hintergrund ist, dass Reflection und damit Spring nicht erlaubt war in seinem Kontext. Aus Experimenten ist das Bean-Repository entstanden, was das ServiceLocator-Pattern von Martin Fowler umsetzt. Dynamische (zur Laufzeit) und statische (zur Compile-Zeit) ServiceLocator. Im Grunde eine Map aus hash eines Services und einer Factory-Methode zum Erstellen der Bean.
    5. Steven: Writing tests for legacy code demo. Interessant: http://stefanbirkner.github.io/system-rules/
    6. Screeps - Open World MMO zum Programmieren lernen
    7. Machine Learning for Software Engineers - jede Menge Spiele zum AI-Lernen
    8. Amazon Alexa spielt verrückt
    9. Themenvorschläge für nächstes Mal:
      1. Kerberos (Authentifizierung) und NTLM (NT Lan Manager, von Windows für Single Sign-On)
      2. Lesbar und testbar auf Dateien zugreifen (z.B. CSV)
      3. übernächstes Mal: Systemintegrationstests mit PowerShell und Check_MK

    HackTalk Braunschweig 29.11.2016

    1. "Der Bottleneck Mainframe", Host-Systeme, Cobol
    2. TWS = Tivoli Workload Scheduler
    3. in Java text-based GUIs bauen mit https://github.com/mabe02/lanterna
    4. http://highscalability.com/
    5. Cluster für große Lasten
    6. Awesome Java Code Workshop: https://github.com/stevenschwenke/WritingAwesomeJavaCodeWorkshop
    7. Visibility Modifier
    8. Software teilen in Layer und Slices
    9. Arbeiten für VW - schwierig heutzutage. "This was a couple of software engineers who put this in for whatever reason," von Michael Horn bei Diesel-Geschichte.
    10. SISO = Shit in, shit out.
    11. https://en.wikipedia.org/wiki/Conway's_law
    12. Software"Projekt" ohne Ende
    13. https://en.wikipedia.org/wiki/Hofstadter's_law => Schätzungen können gar nicht korrekt sein! ;)
    14. Programmiersprache Befunge: https://de.wikipedia.org/wiki/Befunge

    HackTalk Braunschweig 02.11.2016

    1. Sofortüberweisung ist böse. Man muss sich oder muss sich nicht mit seinen Kontodaten anmelden. Es droht Datenverlust oder nicht.
    2. Private Homepage: Impressum oder nicht?
      1. Angeblich schon dann Impressum notwendig, sobald recherchierter Inhalt präsentiert wird.
      2. Impressum als Bild darstellen ist verboten, da nicht barrierefrei.
      3. Regelung ist schon immer so, aber es rennen momentan wieder viele Abmahnanwälte rum.
      4. Generator z.B. unter https://www.e-recht24.de/impressum-generator.html
      5. "Bist du Blog, hast du schlecht" => alle Blogger müssen ein Impressum haben
    3. (Steven) GitKraken ab sofort für kommerziellen Einsatz kostenpflichtig (60€)!
      1. Evtl. Problem, erst kostenfrei, dann kostenpflichtig
    4. Atlassian Toolstack im Konzern-Umfeld laufen lassen. Kosten und Vor- und Nachteile.
    5. Competing Standards: https://xkcd.com/927/
    6. (Steven) API-Design mit Lambdas
    7. (Schakko und Steven) FluentAPIs und DSLs

    HackTalk Braunschweig 25.10.2016

    1. http://www.braveclojure.com/ mit kostenlosem online Buch zum Lernen. Echt gut aufbereitet. Wir haben uns Joshas Code angesehen - echt viele Klammern! Clojure ist Klasse!
    2. RaspberryPI im Auto mit Touchscreen + als Panel für Besprechungsräume.
    3. Smartphone als Server für RaspberryPI Zero für fahrende Motorrad-Clouds
    4. (Steven) GitKraken ab sofort für kommerziellen Einsatz kostenpflichtig!
    5. (Steven) API-Design mit Lambdas
    6. (Steven) Fluent APIs
    7. (Steven) Pure Functions

    HackTalk Wolfsburg 18.10.2016

    1. Slack oder Mattermost als Plattform für Kommunikation innerhalb des Unternehmens. Gründe, das zu benutzen: Von überall (auch Handy) nutzbar, schnelle Kommunikation für z.B. (syntax-highlighted) Code Reviews, Durchsuchbarkeit, im Vergleich zu Mail einfacher zu handhaben (keine "Höflichkeits-Konventionen", Pull statt Push)
    2. https://discovery.cryptosense.com/ zum Checken von Crypto auf Webseiten
    3. Stagefright gibt es immernoch auf einigen Geräten
    4. JavaForumNord
    5. Laser Tag, Escape Room, "Keep Talking and Nobody Explodes", Jackbox Games,
    6. Krakengymnastik
    7. Klaus Kinski - muss man kennen
    8. Last Week Tonight mit Edward Snowden
    9. Immernoch kein Global Day of Code Retreat in Braunschweig ...
    10. HackCamp dieses Jahr wird wohl nichts mehr. Idee von Schakko: Management-Startup-Wargaming-Workshop, in dem wir eine Startup-Idee mal von 0 bis 100 durchdenken.

    HackTalk Braunschweig 27.09.2016

    1. Botnet-Angriff auf Brian Krebs durch Internet of things. Mein Kühlschrank greift also Leute an? Ui ... Je mehr "intelligente" Glühbirnen also verkauft werden, desto größer könnten Botnetze werden.
    2. Nordkorea hat 28 Internetseiten.
    3. Lasertag in Braunschweig. Laser Rebellion ist wohl besser als Black Mission Area.
    4. Schlechtes Deutsch gibt es überall. Deppen-Apostsroph und überflüssige Anführungsstriche.
    5. Studieren in Magdeburg, Braunschweig
    6. Vor- und Nachteile von PHP (schwach getyped, kein Multithreading. Trotzdem riesig viele Frameworks, die darauf laufen.)
    7. Java Forum Nord, da muss man hin
    8. Podcast von Gerrit: http://podcast.meistermeier.com/

    HackTalk Wolfsburg 06.09.2016

    1. (Steven) Lasertag?
      1. Rockt total, aber anstrengend
      2. Lasertag ist kommunikativer als Paint Ball
      3. in Braunschweig z.B. bei http://www.black-mission-area.de/lasertag/
    2. (Schakko) togglz, eine Bibliothek für Feature-Toggles. Sinnvoll, Features über mehrere Sprints in die Applikation "einschleichen" zu lassen, und dann im Ganzen scharf zu schalten?
      1. Beispiel unter https://github.com/schakko/spring-boot-togglz-sample
      2. Grundlegender Gedanke: Feature wird nur angewendet, wenn irgendein Switch gesetzt ist
      3. bekanntes Beispiel: Facebook hat sehr viele Features auf dem master, aber nur selektiv freigeschaltet
      4. Features sind als Enumerations definiert, welche die Klasse "Feature" implementieren muss. Interface hat Methode isActive() und gibt an, ob das Feature aktiv ist oder nicht.
      5. Methode isActive aus dem Enum muss im Code abgegriffen werden
      6. Alternative: Verschiedene Frameworks unterstützen togglz, z.B. Thimeleaf.
      7. togglz bietet Website an zum Verwalten der Features. Alternativ könnten die Features auch über eine DB verwaltet werden oder mit eigener Implementierung. Togglz läuft aber im selben Applikations-Container wie die Hauptanwendung, es müsste also immer auf die Website zugegriffen werden können.
      8. Features können mit Annotationen gruppiert werden
      9. Activation Strategies können genutzt werden, um bestimmte Anwendergruppen bestimmte Features nutzen zu lassen. Es können auch eigene Activation Strategies geschrieben werden.
    3. Mozilla Observatory zum Testen von Sicherheitslücken in Websites
    4. (Steven und Tino) Bericht vom Herbstcampus in Nürnberg
    5. (Steven) Hochschule zum Lernen von Programmieren geplant
    6. (Steven) How to best coffee in the world

    HackTalk Wolfsburg 02.08.2016

    1. (Schakko) PokemonGo. Auf Grabsteinen rumlungernde "junge Menschen", die aber immerhin draußen sind. "Computer spielen und draußen bewegen - beides nervt!". App hacken durch Fälschen von GPS-Koordinaten? Geht. GeoCaching war vorher da. Ingress gab es auch noch.
    2. Axanar (Star Trek Fan Film)
    3. (Steven) GitKraken hat eine kommerzielle Version
    4. Microsoft Cognitive Services
    5. (Steven) API-Design with Lambdas
    6. JKeyLockManager zum bequemen Ausführen gelockter Codeteile
    7. Java EE, current status.
    8. (Schakko) togglz, eine Bibliothek für Feature-Toggles. Sinnvoll, Features über mehrere Sprints in die Applikation "einschleichen" zu lassen, und dann im Ganzen scharf zu schalten?
    9. wissenschaftspodcasts.de
    10. HackTalk Wolfsburg ab demnächst bei NeosIT!

    HackTalk Wolfsburg 05.07.2016

    1. Amazon Web Services, Cloud-Computing, Lastabschätzung.
    2. Microservices mit Spring: "bootiful microservices" von joshlong, auch als Video.
    3. Microsoft kooperiert mit Red Hat
    4. Security Operations Center bei VW
    5. PIT-Testing
      1. pitest.org
      2. Mutationstesting
      3. in Java z.B. mit PIT-Testing
      4. beim Testen wird der Code verändert = Mutanten
      5. Mutanten simulieren fehlerhaften Code
      6. PIT prüft, ob Tests ausreichend sind
      7. "Mutanten werden von Unit-Tests bekämpft"
      8. "Nur tote Mutanten sind gute Mutanten"
      9. Folge von PIT: Mehr Tests schreiben, damit Logik des Codes besser abgedeckt ist.
      10. Wenn Code sich z.B. aus Versehen mal ändert, fangen die Tests das ab? Tests werden also robuster gemacht.
      11. Maven-Build schlägt fehl bei Fehlern
      12. Diskussion über Anwendbarkeit. Für Schnittstellen und bestimmte Fokus-Stellen gut, oder als Metrik für die Qualität von Unit-Tests.
    6. Working Effectively with Unit Tests
    7. Practical Unit Testing with JUnit and Mockito
    8. TeamFX = loser Zusammenschluss von JavaFX-Experten zum Vorantreiben von JavaFX. Aktivitäten hier einsehbar.
    9. Ottos Webservice-Infrastruktur
    10. Feature-Branches auf Git - Rekord: 35 Branches parallel
    11. Microsoft HoloLens. Eher zum professionellen Einsatz, weniger Zocken.
    12. Maik Pfingsten. Mit dem Typ lohnt es sich mal, sich zu beschäftigen. :)
    13. Schakko stellt nächstes Mal vor: "togglz". Wunschthema Steven: Java Toggles = Bibliothek für Feature-Toggles. Wer hat damit schonmal gearbeitet? Wie ein- und ausschalten von Features? (über Admin-Oberfläche, zur Runtime, ... ?) Sinnvoll, Features über mehrere Sprints in die Applikation "einschleichen" zu lassen, und dann im Ganzen scharf zu schalten?
    14. Active Directory Integration Plugin für WordPress (Schakko)
    15. Neo4J (Schakko)

    HackTalk Braunschweig 28.06.2016

    1. Anwälte, die sich auf VW-Betrug spezialisieren. Arglistige Täuschung vs Gewährleistung.
    2. Blackbird, ein Transformer, der Fahreigenschaften von beliebigen Fahrzeugen konfiguriert bekommen kann.
    3. Tenacious D hat ein neues Album! (seit 2012 ;) )
    4. Neues "Antiterror-Gesetz" in Kraft getreten + Zwangs-Digital-Stromzähler für alle! Yeah (not)
    5. i3systems = Unternehmszusammenschluss in Braunschweig (17 Unternehmen)
    6. uMatrix = Plugin zum Wegblocken von Zeug, was nicht direkt von einer bestimmten Website kommt. Google Schriftarten gehören nicht in eine Website eingebunden!
    7. Java Forum Nord
    8. Embedded Tomcat Example von Tino
    9. Dropwizard = diverse Web Server in einem Framework
    10. Weihnachtskalender von Digitalcourage
    11. BigDecimal compareTo / equals? =>  StackOverflow
    12. Am I unique browser security
    13. Übrigens "intelligente" Stromzähler: Roman "Blackout"
    14. unbedingt alle Bücher lesen von Cory Doctorow
    15. Organisation HackCamp (in Braunschweig)
    16. Bilder vom letzten Mal?

    HackTalk Wolfsburg 07.06.2016

    1. Scala im produktiven Code - Projektrisiko oder Chance?
    2. regionale Entwicklungen: VW, Akku-Fabrik in Salzgitter
    3. Glasfaserabdeckung in Deutschland, Vektoring, LTE überall aber nicht hier. Micro-Trenching und Telefontechnologie.
    4. Organisation HackCamp (in Braunschweig)
      • Interesse und Angebot für AKKA / Scala / Spark
      • Steven: evtl. Java Advanced, wenn bis dahin schon halbwegs fertig
      • Active Directory Integration Plugin für WordPress (Schakko)
      • Synchronisierung von Benutzern von Active Directory zu anderen Applikationen
      • Coderetreat (Steven)
      • Orga: Termin ab August. Steven organisiert Location in Braunschweig.
    5. Clean Code Developers
    6. NoNameFound - Der (neue) Java-Podcast der Region Braunschweig / Wolfsburg von Gerrit Meier.
    7. Steven: "How I use DTOs"
    8. Steven: "IncompatibleClassChangeError"
    9. Info: Wir sind auf meetup.com vertreten, Braunschweig und Wolfsburg
    10. Sven bereitet mal was zu PIT vor
    11. Active Directory Integration Plugin für WordPress (Schakko)
    12. Neo4J (Schakko)
    13. The State of Code Quality 2016 - (Wie) Macht ihr Code Reviews?

    HackTalk Braunschweig 31.05.2016

    1. Oracle vs Google
      1. Hintergrund ganz gut erklärt in Logbuch Netzpolitik Folge 182
      2. Java innerhalb von Oracle aber eher "kleine Nummer"
    2. NoNameFound - Der (neue) Java-Podcast der Region Braunschweig / Wolfsburg von Gerrit Meier.
      1. erste Folge mit Jens Schauder, zweite mit Gerrit Grunwald
    3. "JTwoEEE" sagt man nicht mehr. Heißt jetzt "Java EE" ("Java-Eh-Eh").
    4. Java EE bei Oracle nicht mehr so gepushed: JSRs, bei denen der Lead bei Oracle liegt, geringe Aktivität.
    5. Scala User Group BS: Gab es mal, wird wieder gestartet. Jens von der Java User Group Ostfalen macht auch gern Scala, da geht doch was! Scala wird momentan auf Geschwindigkeit optimiert von einer eigens dafür ausgegründeten Firma Lightbend. "Scala Build Tool" (SBT). Scala wird gern bei Big Data und generell verteiltem Rechnen verwendet - z.B. Apache Spark.
    6. AKKA implementiert das Actor-Model. Wird auch von vert.x verfolgt in Java.
    7. "Du hast eine Lieblings-Bibliothek?" - "Ich hab sogar T-Shirts davon!"
    8. Jugend hackt Nord sucht noch Mentoren
    9. ähnliches Event in Braunschweig: Coder Dojo vom Stratum0
    10. Clean Code Developer mit Gürtelgraden
    11. Java Advanced Workshop - Was muss eurer Meinung nach jeder Java-Entwickler wissen?
      1. new BigDecimal(double) vs BigDecimal.valueOf().
      2. BigDecimal.compareTo() vs BigDecimal.equals().
      3. ThreadLocal verwenden oder nicht? Threads aufräumen nicht vergessen. oder gar nicht verwenden?
      4. Parallelität generell wichtig
      5. Futures
      6. varargs
      7. Seiteneffektfreiheit in Methoden. Pure Functions
      8. Exception-Handling: Suppressed Exceptions, try-with-resources
      9. NullObjects (leere Liste statt null)
      10. Collections.unmodifiableList
      11. Optionals in Java 8
      12. Date/Time- API ab Java 8
      13. (Clean Code: Namensgebung, Strukturierung, Dokumentation etc.)
      14. yagni
      15. Einführung in JUnit
      16. @NotNull Annotation
      17. Artikel von Angelika Langer
      18. getter/setter für ALLLES
      19. visibility modifiers - package private ist eine gute Idee, wenn es um Tests geht. Auch Klassen können "nicht public" sein!
      20. Java packages sind nicht hierarchisch!
      21. How to implement a singleton. + Sollte man das überhaupt tun?
      22. Reflection
      23. Generics: z.B. Type Erasure
      24. super-Methoden
      25. Collections: Unterschiede zwischen verschiedenen Maps, Lists etc
      26. Enums
      27. Class Loading
      28. Classpath

    HackTalk Wolfsburg 03.05.2016

    1. Was war beim letzten Mal in Braunschweig los?
    2. meetup.com zur Organisation von Veranstaltungen - Nutzen für HackTalks?
    3. Schakko Meinung zu jgit-flow: Maven sollte nicht für Aufgaben benutzt werden, für die es nicht geeignet ist. Entwicklungsprozess sollte nicht mit Maven gemanaged werden. Macht pom unnötig länger.
    4. JAXB (Tino)
      • Java-Objekte in xml und umgekehrt (Marshalling / Unmarshalling)
      • Anwendung: z.B. Konfigurationsdateien rausschreiben
      • Seit Java 6 im JDK enthalten, damit keine Fremdbibliotheken notwendig. Einbinden anderer Versionen aber möglich.
      • BindingCompiler generiert aus xsd-Dateien (Schema-Dateien) Java-Klassen
      • SchemaGen generiert aus Java-Klassen xsd-Dateien
      • JAXBContext enthält Klassen, die marshalled / unmarshalled werden können
      • Zu marshallende Klasse wird mit Annotationen versehen, um das Aussehen des generierten xml zu beeinflussen
      • Default-Werte können per Annotation gesetzt werden. Sind nach xml-Spezifikation umgesetzt.
      • Generierte xsd-Dateien sollten woanders abgelegt werden, als selbstgeschriebene Sourcen. Möglich durch Maven-Plugin "BuildHelper".
      • Packages können beim Unmarshalling angepasst werden. Somit Generieren von Klassen im eigenen Projekt-Skope möglich aus xsd-Dateien, die woanders liegen.
      • Auch Anpassung von Datentypen möglich durch xml-Adapter. Somit z.B. "value"-Attribut im xml als String übersetzen.
      • Date-and-Time-Datentypen noch nicht nativ möglich, aber durch Plugin.
      • Zyklische Abhängigkeiten werden erkannt, Fehler wird geworfen. Kann auch programmatisch behandelt werden durch Annotation @XMLTransient und Methode afterUnmarshall().
      • einige Features zwar in Referenzimplementierung, aber nicht in Spezifikation. Kann sich deshalb ständig ändern. Beispiel: Einrückung der xml-Datei, JAXB-Fragment: nur einen Teil einer xml-Datei schreiben (z.B. xml-Präambel weglassen).
      • xml-Dateien können gegen Schema validiert werden
      • Sourcen der gezeigten Beispiele
    5. Themen für nächstes Mal:
      1. hashCode() and equals() - wie macht ihr das?
      2. Active Directory Integration 2
      3. Ionic Framework
      4. Neo4j
      5. Code Retreat
    6. Clojure. Steven hat Jemanden, der da echt fit ist und z.B. zum nächsten HackCamp kommen könnte. Wir besprechen, ob wir daran Interesse haben. -> nur Schakko hat Interesse

     

    HackTalk Braunschweig 26.04.2016

    1. Was war beim letzten Mal in Wolfsburg los?
    2. Autos sind fahrende Computer: Linux auf dem Model S. Tesla Giga-Factory.
    3. Ant, Maven, Gradle, Lirejarp und wie man Projekte von einem zum anderen umbaut. Feststellung: Irgendwie werden solche Umbauten immer erst "im Geheimen" gemacht ... komisch.
    4. Joseph Pelrine: "Wann willst du wissen, dass du ein Problem hast?"
    5. git-flow mit GitKraken (Steven) und jgit-flow (Oli). 
      1. Originaler gitflow-Artikel und Cheat Sheet.
      2. jgit-flow = Maven-Plugin von Atlassian, in dem man die git-flow-Schritte als Task ausführen kann. Maven-Plugin muss mit Git-Parametern konfiguriert werden, sodass es im Prinzip die Git-Commands auf einer Konsole ausführt.
      3. Könnte sein, dass das Plugin nicht weiter gepflegt wird - letzte Änderung ist ein Jahr alt.
      4. Versionsnummern können ebenfalls automatisch hochgezählt werden, auch in Child-Module hinein ("autoVersionSubmodules" und "updateDependencies" auf true stellen). Entscheidung, welche Version für "release start" genommen wird, über Abfrage in Konsole.
      5. Plugin kann automatisch "SNAPSHOT" wegschneiden und zählt automatisch Versionsnummern hoch.
      6. Dieses Plugin macht also mehr als nur gitflow.
      7. Maven Versions Plugin zählt Versionen im Projekt hoch und scannt nach neuen Versionen
      8. ... kann auch mit einem Goal aus dem site-Lifecycle eine schöne HTML generieren, in der man hübsch sieht, welche Versionen aktualisiert werden müssen. Kann z.B. im CI-Server angezeigt werden.
    6. Clojure. Steven hat Jemanden, der da echt fit ist und z.B. zum nächsten HackCamp kommen könnte. Wir besprechen, ob wir daran Interesse haben. -> weniger Interesse
    7. beim nächsten Mal:
      1. JAXB (Tino)
      2. Neo4J (Josha)
      3. Ruby Sinatra (Josha)
      4. Microservices. Dazu gab es eine schöne JUG-Veranstaltung. Steven fasst diese zusammen und wir werden über das Thema diskutieren. Auf Jaxenter gab es eine Umfrage dazu. Ergebnis: 39% haben noch nie mit Microservices zu tun gehabt, 21% lediglich damit experimentiert, 17% nutzen sie teilweise und eben so viele halten den Ansatz für problematisch. Nur 11% arbeiten wirklich produktiv damit.
      5. Büchlein-Seminar machen!

     

    HackTalk Wolfsburg 05.04.2016

    1. Umfrage, in der ihr Wolfsburg tollst machen könnt
    2. "Quellcode von WordPress ist grauselig"
    3. Post baut Elektroautos, Tesla Model 3 wird erschwinglich, Apple baut auch Autos ... wird Autos-Bauen zur Commodity?
    4. Tesla-Ladestationen in Deutschland
    5. Giga-Factory von Tesla
    6. 1. HackTalk Braunschweig. War super!
    7. Interesse "Mein kleines schwarzes Büchlein - Selbstorganisation auf 190cm³" - ist vorhanden, gern!
    8. GitKraken 1.0
    9. Rancher 1.0
    10. IT-Szene neben VW in der Umgebung etablieren
      1. Breitbandanbindung verbessern
      2. Community-Events fördern
      3. steuerliche Anreize für junge und kleinere Unternehmen
      4. Büroräume schaffen
      5. "Why Java Wolfsburg startups will make you question everything"
    11. Java 8 Optional - ersetzt ihr schon eure null damit?
    12. "iJUG fordert von Oracle ein klares Bekenntnis zu JavaFX" (Java Aktuell 02-2016)
    13. Android Marshmallow ist cool!
    14. Schakkos Developer Resources bei Github

     

    HackTalk Braunschweig 22.03.2016

    1. Regex und Gültigkeit von Mail-Adressen. "Es ist kompliziert."
    2. code.ninja ist schon weg. Schade.
    3. stratum0 rockt. Mit Holodeck und so.
    4. "Habe mich mit meinem Chef auseinandergelebt"
    5. "Technology Evangelist"
    6. Deutsches Sportabzeichen (Anforderungen)
    7. Scrum und seine merkwürdigen Ausprägungen beim Kunden
    8. Retromat
    9. Simon Sinek - "Start with why" (TED Talk)
    10. Buch: Agiles Produktmanagement (Roman Pichler)
    11. Wunschthemen für nächstes Mal: Ruby, Spring
    12. Umfrage: letzter Dienstag im Monat ist ein guter Termin für HackTalk BS

     

    HackTalk 01.03.2016

    1. 3D-Scan und -Druck
    2. IntelliJ IDEA Plugin CodeGlance für Voransicht des Codes
    3. Coole Editoren: Sublime, Atom
    4. Komische Gebäude-Architektur, die Lüftungsprobleme und Alarme auslöst oder Zwangsverdunklung auslöst
    5. Why automated tests are important mit anschließender Diskussion über wann welche Tests sinnvoll sind
    6. A-Mapper von Arno Haase oder Dozer zum Mappen von Objekten aufeinander
    7. Möbel Boss hat ein Datenschutzproblem: Eure Kundendaten werden nicht gelöscht, wenn ihr dies anfordert. Ihr bekommt Werbe-SMS auf Handynummern, die ihr dort nur zur Benachrichtigung angekommender Bestellungen (nicht zum Versand von Werbung) angegeben habt. Zweifacher Verstoß gegen BDSG §35.
    8. Boston Dynamics ärgert Roboter
    9. How to I18n in JavaFX and IntelliJ IDEA

    HackTalk 09.02.2016

    1. halt-mal-kurz.de, das Kartenspiel der Känguru-Chroniken
    2. exploding kittens Kartenspiel
    3. Kutschfahrt zur Teufelsburg Kartenspiel
    4. Pandemie, ein kooperatives Brettspiel
    5. Jagd auf roter November, kooperatives Brettspiel
    6. Arkham Horror, noch ein kooperatives Brettspiel
    7. Ideen für das nächste HackCamp:
      1. ELK-Stack lokal installieren für ein beliebiges Projekt, damit man es mal am Laufen hat. Evtl. Schritt-für-Schritt-Anleitung bauen.
      2. RoboCode - KI programmieren, um (digitalen) Roboter zu steuern. Teams, die gegeneinander spielen?
    8. "How to have Überblick über Spring": Spring MVC -> Spring Data -> Spring Data REST -> Spring Boot -> Spring Security
    9. Stratum0 Hackspace in Braunschweig - rockt!
    10. Bald ist wieder JavaLand!
    11. "Call for Action" Blogpost kommt bald vom Steven bezüglich IT-Mentoren-Plattform
    12. "Coderetreat auf dem letzten HackCamp hat Spaß gemacht!" - Steven: Es gibt bald ein Howto für die Organisation eines Coderetreats. Grundlage u.a. Corey Haines "4 rules of simple design"
    13. HackTalk / HackCamp in Braunschweig - es geht voran.
    14. interessanter nächster JUG-Vortrag: JUnit Lambda
    15. Authy, two-factor-Authentifizierung. Geht vermutlich auch mit Github, siehe hier.
    16. tox.chat, ein Ende-zu-Ende-verschlüsselter Chat- und Telefonclient
    17. Spark, "a tiny Java web-framework"

    HackTalk 07.01.2016

    1. Spiele zum Programmieren lernen: Human Ressourece Machine, TIS 100, Hack'n'Slash, Uplink, Hacknet, else Hart.Break()
    2. "Hack This Site!"
    3. "Heutzutage kann man seinen Schaltplan mit Software designen, ein Gehäuse drumherum drucken und nachts die Software dafür schreiben".
    4. Gasleck in Kalifornien. Nicht gut.
    5. Noch im Januar HackCamp mit Hälfte Coderetreat und Hälfte offene Themen geplant. Erstmal WOB.
      1. Themen: EmotionML (Gerhard), Web 3.0 / Semantic Web (Gerhard), Java 8 (Steven), JavaFX (Steven), Rancher (Oberfläche Docker), Gradle (Jens), AngularJS (Schakko)
      2. Weiteres Vorgehen: Räume NEOS IT OK, Steven: Doodle für genauen Termin, bis Mittwoch deadline
    6. Alternativer Termin HackTalk: 1. Dienstag oder Mittwoch im Monat? Steven macht Doodle.
    7. Und nochmal: freakshow
    8. Kollaboratives Coden: pairprogramwith.me, saros (Eclipse-Plugin),

    HackTalk 03.12.2015

    1. Aktuelles rund um VW. Angst um Jobverlust vs. "Mein Urlaub ist gefährdet". Feststellung: Im Konfigurator sind auf einmal alle Autos BlueMotion. Hmm.
    2. Coderetreat - Es besteht Interesse an der Durchführung eines coderetreats, auch im Rahmen des nächsten HackCamps. Bereichte des letzten Coderetreats in Braunschweig: Von Steven, von Olli. Idee: nur die Hälfte des HackCamps als Coderetreats, die andere Hälfte "normal".
    3. Docker und Dockercraft
    4. nächstes HackCamp: Vielleicht in Braunschweig? (Haus der Wissenschaft etc.), terminlich 1. Quartal nächstes Jahr.
    5. HackTalk in Braunschweig (als zusätzliches Angebot zum HackTalk in Wolfsburg): Interesse ist da. In Wolfsburg würden noch mindestens 6 Entwickler dabei sein. Frage: Wie diese Veranstaltungen synchronisieren thematisch?
    6. "Hyperagile Projekte"
    7. "Scrum", "Scrum-Ansatz", "Scrummerfall", "Waterscrum", "Scrum + X" - gute Podcast-Episode von Maik Pfingsten, Scrum als Festpreis
    8. design-types.net - Finde heraus, wie du Software- und Systemdesign erstellst, also welcher Typ von Designer du bist.
    9. Uncle Bobs Videos auf cleancoders,com
    10. The Ben Hack Show - Hardware-technische Hackereien mit Fun-Factor
    11. Fynn Kliemann - alle möglichen Bauprojekte lehrreich und witzig dargestellt

    HackTalk 05.11.2015

    1. umfangreiche Diskussion Netzneutralität ("Abschaffung der Netzneutralität - das wäre ein Grund für mich, nicht mehr bei Telekom zu kaufen")
    2. OmegaTau 158 DE-CIX
    3. Freifunk-Frankfurt und Freifunk
    4. momentane Spendengelder werden 50/50 auf Refugees Emancipation und Digitalcourage e.V. verteilt
    5. Damit das mal klar ist: Disketten sind schreibgeschützt, wenn sie "zu" sind! :D
    6. Hacktoberfest - T-Shirts für Pull-Requests bei Github
    7. Java Forum Nord war super!
    8. 3D-Engine in Excel
    9. Asteroid Now von Florian Freistetter über z.B. Space Lift

    HackTalk 01.10.2015

    1. VW-Diesel-Skandal und die Auswirkungen auf die IT: Verantwortung von Entwicklern, technische Zusammenhänge
    2. IntellijIDEA Lizenzmodell
    3. Atlassian geht an die Börse
    4. "Im Internet kann man sich bekannt machen" - Folgen von unachtsamem Auftreten im Netz
    5. Internetkultur: isnichwahr.de und 9gag.com
    6. Not safe for work podcast
    7. nächstes HackCamp: erst ab November. Themen: JavaFX Advanced, Semantic Web, EmotionML (interessante Master-Arbeit dazu hier), Java Advanced (Immutable objects als Thema nicht vergessen)

    HackTalk 03.09.2015

    1. Harley Davidson E-Version, elektrischer Golf, E-Mobility, "Stromsäulen dahin packen, wo man warten muss: Arzt und Behörde", Toyota Mirai
    2. künstliche Blätter, die Elektrizität "erzeugen"
    3. Shariff
    4. Verschlüsselte Mails, Warum können große Unternehmen kein PGP?!
    5. Buchempfehlung: The Martian, Ready Player One
    6. Let's encrypt
    7. JUnit Lambda
    8. OmegaTau Podcast Gemini
    9. Astronaut's Guide to life on earth

    HackTalk 06.08.2015

    1. Navigation im Auto mit Android und Apple. VW-Radios kommen mit 4-stündigen Podcasts nicht klar.
    2. "IT gehört heutzutage in jedem Unternehmen zur Kernkompetenz"
    3. Cherry Switches, da gibt es viele Unterschiede. Die ohne Umschaltpunkt sind zum Zocken und eigentlich nicht zum Arbeiten im Sinne von Tippen geeignet, dafür sind die mit Umschaltpunkt. Die braunen sind recht laut. Das Cherry MX-Board 3.0 hat ein tolles Layout.
    4. Mad Catz R.A.T. 7
    5. Windows 10: noch nicht updaten, es gibt noch Schwächen. Außerdeme organisatorische Hindernisse beim Vertrieb von Treibern für Windows 10. Aber es hat virtuelle Desktops!
    6. Signieren von Treiber
    7. "Das erste Mal lyncen ist kostenlos"
    8. Breitbandoffensive vs 60GB GTA V Update
    9. alte Spiele runterladen (legal und kostenfrei)
    10. Weil wirs noch nicht hatten: Fefes Blog
    11. TIS-100, ein Spiel, in dem man Assembler schreibt. Oder schreiben muss, je nachdem.

    HackTalk 02.07.2015

    1. Signalübertragung an Katastrophen-Sirenen. Die auf dem Dorf stehenden Anlagen werden über bestimmte Funkfolgen angesprochen und lösen dann aus.
    2. Firma Telenot oder Kaba stellt Alarmanlagen mit Haustiererkennung her
    3. Freifunk und die Abdeckung in Deutschland
    4. Mal wieder waren Podcasts das Thema. Empfohlen werden:
      1. omega tau podcast - sehr tiefgehende, meist technisch-orientierte Podcasts
      2. Logbuch-Netzpolitik - aktuelle Entwicklungen von (netz)politischen Themen, mit viel Nebeninformationen
      3. freakshow - in technische Themen sehr tiefgehende Gesprächs-Runde, in der alle möglichen Bereiche abgedeckt werden
    5. cmdbuild hilft, alle möglichen Artefakte zu organisieren. So können z.B. alle Fahrzeuge einer Fahrzeugflotte verwaltet werden, inklusive Standort
    6. sqlfiddle ermöglicht schnelles Testen von SQL
    7. Shippable baut automatisch Github- und Bitbucket-Repositories
    8. drone tut das selbe, ist aber auf eigener Infrastruktur installiertbar, da OpenSource
    9. Structure101 analysiert Software-Architekturen und unterstützt umfangreiches Refactoring
    10. Structurizr erstellt schöne Architektur-Graphiken aus Code
    11. Faker erstellt künstliche Daten in PHP
    12. opentopomap.org bietet offene, topologische Karten. Wir haben uns darüber unterhalten, diese Karten für Navi-Systeme von Elektro-Fahrrädern zu nutzen, um bessere Reichweitenvorhersagen zu treffen.

     

    HackTalk 04.06.2015

    1. Threema, TextSecure und RedPhone 
    2. Allways-On Microphone bei Messagern
    3. Android System-Details
    4. Planung 4. HackCamp

     

    HackTalk 07.05.2015

    Gehostet von der NeosIT, welche ein Grillfest ausgetragen hat. Danke dafür! :)

     

    (HackTalk April wegen Feiertag und Urlaub ausgefallen)

     

    HackTalk 05.03.2015

    1. Elektromobilität: mit dem Fahrrad
      • Elektronik und Programmierung
      • "Velomobil"
      • Brompton Falträder
      • Platinen mit CNC Fräse ätzen
      • Hobbykeller mit Werkstatt und CNC-Fräse
    2. Web-Shops
    3. Nutzen und Aufbereiten von GPS-Daten
      • OpenStreetMap
      • Graphendatenbanken und Nutzung für GPS-Daten
      • dichtebasierte Clusterverfahren zur genauen Ermittlung des Ortes eines Ereignisses
      • bluethooth beacons
    4. WPF - Windows Presentation Foundation
    5. "Mit Excel geht das aber"
    6. "graue Dienste" / "bunte Dienste" bei VW

    Loading...