Übersicht der Inhalte vergangener HackTalks


HackTalk 07.09.2021

The Passionate Developer's Wishlist: Hard- und Software, die du als Entwickler schon immer haben wolltest

Steven Schwenke
Steven Schwenke

Steven Schwenke: My Semi-Perfect Development-Desk:

Seit einigen Jahren baue ich mir den besten Arbeitsplatz auf, den ich je hatte. Ein elektrisch verstellbarer Stehschreibtisch steht vor einem ergonomisch geformten Bürostuhl (kein Gaming-Sessel!) und beherbergt eine Moonlander Tastatur, eine Mad Catz Maus und eine Handvoll Tools für hochqualitative Videoübertragungen wie z.B. Beleuchtung. Das alles würde ich euch gern vorstellen und damit eine Diskussion anregen rund um das schöne Thema "Shoppen als Entwickler". Euer eigenes Setup interessiert mich und die anderen Gäste genauso wie das, was eurer Meinung nach noch nicht dabei ist. Auch Software darf hier natürlich nicht fehlen! Lasst uns also in einer gemütlichen Gesprächsrunde unsere Weihnachtswunschliste füllen und uns gegenseitig beraten.

Gadgets

Möbel

Hardware

Katrins Eigenbau-Keyboard: Katrin Keyboard

Ergänzungen aus Publikum:

RSS & Podcast

Software


HackTalk 03.08.2021

Searching for Sounds - Audio-Browsing für Sound Designer

Eric Nowak
Eric Nowak

Eric Nowak:

Schonmal einen Sound gesucht und nicht gefunden? Wer braucht denn so etwas? Was sind Audio-Metadaten? Kann man mit den Augen hören? Wofür man jede Menge Audioclips braucht, wie man sie durchleuchten und darstellen kann und was das alles mit Frontend-Entwicklung zu tun hat, findet ihr hier heraus! Ich führe euch unter die Oberfläche des Freesound-Explorers und geleite euch dabei in sicherer Entfernung durch die Grundlagen von React, Redux und Flask.

  • Software zur Audio-Bearbeitung für Film: ProTools, Nuendo
  • Zuerst viele Optionen auf jeweils einer Spur ablegen, dann die wegnehmen, die nicht verwendet werden sollen

ProTools Session

  • extrem viele Soundclips als Bibliothek verfügbar, mehrere Terrabyte
  • Sounds können nur in Echtzeit wahrgenommen werden und nur einzeln, im Gegensatz zu Bildern (Album-Funktion)
  • bildliche Darstellung von Sound als Wellenform hilft, ist aber nicht ausreichend
  • Metadaten (Samplerate, Bitdepth, ...) auch verwendbar für Suche, insbesondere Description wichtig
  • Metadaten wie Klangfarbe und Struktur können teilweise automatisch extrahiert werden
  • dennoch Auswahl durch den Sound Designer durch Lesen von massenweise Beschreibungstexten; damit eher Zufall, wenn der "richtige" Sound gefunden wird
  • verschiedene Ansätze, wie z.B. Audiofinder mit visueller Darstellung direkt neben dem Dateinamen oder Sonogramm
  • dennoch nicht ersichtlich, wie sich Sounds zueinander verhalten
  • Tool "Sononym" analysiert und stellt Klangfarben dar, damit Ähnlichkeitsmetriken zwischen verschiedenen Sounds ermittelbar
  • ist Grundlage für Similarity Map, also Darstellung der Ähnlichkeiten zwischen verschiedenen Sound Samples

FSE Metal Door Tags


HackTalk 06.07.2021

Developer on the Stage - Wie ihr euren ersten eigenen Vortrag erfolgreich vorbereitet, mit Spaß durchführt und effektiv nachbereitet.

Steven Schwenke
Steven Schwenke

Steven Schwenke:

Vorträge zu halten ist in der IT Community eine der wichtigsten Mittel, Wissen zu verteilen. Zusätzlich dazu erhöht der Sprecher seine eigene Sichtbarkeit und wird als Experte in seinem Thema wahrgenommen. Das sind nur zwei der vielen Vorteile eines Konferenz- oder Community-Event Vortrags. In diesem Teach-In lernst du von einem erfahrenen Speaker, wie du dein individuelles Thema findest, dich auf deinen Auftritt vorbereitest und erfolgreich vorträgst. Anschließend werfen wir einen Blick auf die oft vernachlässigte Nachbereitung und auf Materialien, die dir dabei helfen, ein erfolgreicher Speaker zu werden.

  • Wichtigste Informationen unter developeronthestage.com, insbesondere Newsletter
  • Am 13.07.21. startender Online-Kurs Speaker Mentoring erreichbar über Discord
  • Buch erhältlich auf Amazon
  • für den Anfang empfohlene Vortragsart: Erfahrungsbericht
  • für den Anfang empfohlene Event-Art: Firmeninternes Event
  • Nachbereitung nicht vergessen!

HackTalk 01.06.2021

KI-Services Real Talk: Was es wirklich heißt, KI zu entwickeln

Mirko Böttcher
Mirko Böttcher

Mirko Böttcher und Bodo Volkmer :

"Bei der Techniker Krankenkasse nehmen wir derzeit ca. alle drei Monate einen neuen KI-Service in Produktion.

Der Weg dorthin war jedoch lang und in Teilen steinig. Wie viele andere Unternehmen auch, standen wir vor drei Jahren noch vor einem Berg an Fragestellungen: Was sind eigentlich "gute" KI-Use Cases? Wie können wir die Erwartungen ausbalancieren, so dass diese nichtüberzogen sind aber die Aufbruchstimmung erhalten bleibt? Welchen Technologiestack nutzen wir? Was ist das beste organisatorische Setup für KI-Projekte?

Über die Zeit lernten wir auch, dass "Machine Learning machen" und "eine KI entwickeln" nicht unbedingt das Gleiche sind. Ziel sollte nicht (nur) ein gelerntes Modell mit hoher Güte, sondern eine wartbare, robuste und performante Software sein. Wieviel "Science" benötigt man also eigentlich für angewandte KI wirklich oder ist am Ende doch alles nur "Engineering"? In diesem Vortrag möchten wir anhand konkreter, realisierter Use Cases unsere Erfahrungen beim Aufbau einer KI-Entwicklung weitergeben. Im ersten Teil werden wir darüber berichten welche organisatorischen Herausforderungen wir überwunden haben, im zweiten Teil möchten wir unseren Technologiestack vorstellen und dabei speziell auf das Thema CI/CD im Kontext KI eingehen."

  • Logische Frage: "Was kann man eigentlich in einer Krankenkasse mit KI machen?"
  • Antwort: Alles rund um Diagnose und Krankheiten schonmal nicht, das braucht teilweise Monate, bis es zur Krankenkasse kommt.
  • ca. 40 Mil. Dokumente pro Jahr auf verschiedenem Wege der Krankenkasse zugeschickt
  • Beispiel: Arbeitsunfähigkeitsbescheinigung als Scan
  • Herausforderung: Digitale Erfassung - viel muss händisch eingepflegt werden
  • Alternative: Per KI erkennen lassen
  • Weiteres Feld: Stempelerkennung auf Dokumenten von Pflegediensten (Welche der ca. 6.000 Firmen?). Stempel wird oft auch außerhalb des vorgesehenen Bereiches gesetzt und ist schwer lesbar.
  • Häufig keine Vorstellung, was KI leisten kann
  • 2017 so gut wie keine KI-Systeme, heute viel mehr
  • häufig genannte Angst, dass KI die Arbeit wegnimmt; allerdings unbegründet
  • Angst vermeiden: KI als Lösung für Probleme nutzen, die Mitarbeiter schon immer gestört haben. Beispiel für nervige Tätigkeit: Manuelle Klassifikation von Dokumenten, durch Eingabe von Dokumentenklasse als Zahlencode.
  • Berechtigung für KI: Wenn Übergang eines Startzustandes in einen Zielzustand unbekannt ist (Vergleich Software-Entwicklung: Dort bekannt, was zu tun ist)
  • "Job Shadowing": Sachbearbeiter im Arbeitsalltag begleiten und Optimierungspotentiale erkennen. Z.B. manuelle Dokumentenerfassung, in der der Sachbearbeiter die ID der Firmen im Kopf hat und diese nach dem Erkennen des Stempels in das Erfassungssystem einträgt.
  • Güte des entwickelten Models gesichert dadurch, dass nur bestehende Prozesse durch KI optimiert werden. Diese oft schon durch Monitoring qualitätsgesichert. Somit auch Vergleich KI vs Mensch möglich.
  • mit modernen Frameworks: nicht z.B. Netze selbst schreiben, sondern bestehendes Framework nutzen
  • auch im Bereich KI viele Aspekte aus Software Engineering wichtig, z.B. Durchführung von Lasttests oder Schreiben von Unit-Tests
  • typische Rollen in einem KI-Projekt: Fachexperte, Data Scientist, Software Engineer, DevOps Engineer
  • durch sehr verschiedene Rollen, wie im klassischen Software Engineering Projekt, viel Kommunikation und Prozess notwendig
  • zusätzlich erschwerend: Übergabe "fertigen" Codes von z.B. Dienstleistern, die aufwendig angepasst werden müssen
  • große Frage: Wer hat für die produktive Softwarekomponente die Gesamtverantwortung?
  • Lösung: KI-Entwicklung geht am besten in agilen Teams ohne verteilte Rollen. "Jeder kann alles" (bis zu einem bestimmten Grad; es gibt natürlich weiterhin Spezialisten)
  • "KI-Entwicklung ist deutlich mehr Engineering als Science!" - häufig geht es um das Einbinden von APIs
  • "Schwelle von Softwareentwicklung zu KI-Entwicklung ist nicht groß"
  • bei der Entwicklung oft vernachlässigt: Monitoring der Systeme, von Anfang an!
  • dabei hilfreich, dass Bestandssysteme schon von Menschen monitored werden.
  • im KI-Bereich besonders ausgeprägt, verschiedene Optionen für Tooling auszuprobieren und auch zu testen
  • typische Deploy-Pipeline: Git, Jenkins, Pylint, Pytest, OpenShift, Locust (Performance- und Lasttest)
  • best practice: Pair von Data Scientist und erfahrenem Softwareentwickler
  • durch Locust möglich, beliebig viel Last auf REST-Schnittstellen erzeugbar durch Hinzuschalten von Pods
  • next step: vollständig automatisiertes und reproduzierbares Training von Modellen
  • Template für KI-Projekte: Cookiecutter
  • typische Probleme bei der Entwicklung eines KI-Systems gleich Probleme "typischer Softwareentwicklungprojekte", z.B. Upgrade der verwendeten Plattformen
  • besondere Herausforderung in Krankenkasse: keine Public Cloud Nutzung möglich, da hohe Datenschutzanforderungen. Damit alles on-premise aus z.B. OpenSource aufbauen.
  • gutes Beispiel für Notwendigkeit von Tests: Schlecht lesbare abfotografierte Arbeitsunfähigkeitsbescheinigungen vom System leicht lesbar, sauber eingescannte, gedruckte AUs erzeugte rote Tests. Lösung: Modell wurde nur mit handgeschriebenen Dokumenten trainiert.
  • ebenfalls Herausforderung: Änderung der "echten Welt", z.B. Auftauchen neuer Codes für Corona
  • klassische Softwareentwicklung verfolgt deduktives Vorgehen: Entwickler formalisieren Geschäftslogik als Regeln und Algorithmen; Daten werden vor Produktion zum Prüfen der Regeln und Algorithmen verwendet.
  • KI-Entwicklung verfolgt induktives Vorgehen: Entwickler lernen ein Modell aus Daten, das Geschäftslogik repräsentiert; Daten werden in der Produktion zum kontinuierlichen Überprüfen des Modells benötigt.
  • 3 Hauptbestandteile von KI-Entwicklung: Source Code + Modelle + Daten
  • wichtig: Mit allen Schnittstellen sprechen, z.B. vorher durchgeführte Datenaufbereitung ("Testdaten sehen ja anders aus als Produktivdaten!")

HackTalk 04.05.2021

Smart Home mit OpenHAB

Stefan Henschke
Stefan Henschke

Stefan Henschke : "Die Heimautomatisierung ist ein wunderbares Spielzeug und erfreut einen jeden Tag aufs Neue. Im Dschungel der angebotenen Smart Home Geräte verliert man sich aber sehr gerne. Welche Geräte sind gut und welche sind es nicht? Bei vielen Geräten bindet man sich außerdem häufig an die Infrastruktur des Herstellers. Stellt der Hersteller einmal seine Dienste ein, dann war das ein teurer Einkauf von Elektroschrott.

Ich zeige einen besseren Weg mit dem Open Source Tool OpenHAB, welches mich mittlerweile seit 6 Jahren in meinem zu Hause begleitet. Die Vielfalt von OpenHAB ist über die Jahre stark angewachsen. In meinem Talk zeige ich die Grundlagen des Systems und wie die ersten Schritte aussehen. Einen kleinen Einblick gebe ich in die Konfiguration einer Wohnung mit Automatisierung von iRobot, Sonos, Rollos, unterschiedlichen Lichtquellen, Luftsensoren und vielem weiteren."

  • seit erstem Vortrag bei HackTalk Upgrade von OpenHAB-Version 1 auf 3
  • Demonstration mit Lichtinstallation (LED mit Milchglas)
  • verschiedene Anwendungsfälle: Hausautomatisierung, Smart Meetering, Hausgeräte-Automatisierung, vernetzte Unterhaltungselektronik
  • verschiedene Protokolle, z.B. zwave von zigbee, KNX, HomeMatic aber auch WiFi, Bluetooth, DECT ULE (z.B. in alten Schnurlostelefon oder Mesh-Netzwerken)
  • damit großer Handlungsspielraum: WAS möchte ich automatisieren und WIE möchte ich das machen (mit welchem Protokoll)?
  • nicht mit jedem Protokoll alles ansteuerbar
  • OpenHAB = OpenSource-Projekt, welches Bindings (Adapter) zur Verfügung stellt, um Dinge miteinander zu verbinden
  • Beispiel: zigbee-Adapter = USB-Dongle mit Funk-Modul ermöglicht Verbindung von jedem Computer, für den es Treiber gibt, über zigbee
  • Setup: OpenHAB läuft auf RaspberryPi und spricht WiFi, zwave und zigbee
  • zwave-Aktoren sprechen automatisch miteinander; allerdings Security-Features wie z.B. Verschlüsselung
  • openHAB konfigurierbar über Web-Oberfläche inkl. komplettem Setup-Assistenten
  • openHAB modular aufgebaut und stark erweiterbar, z.B. gute Touch-Steuerung von Rollos über hab-panel
  • auch Wetter-Daten über öffentliche APIs nutzbar
  • Empfehlung: Firmware flashen bei Produkten um zu garantieren, dass sie nicht "nach Hause telefonieren". Alternative: Geräte in eigenem Netz ohne Internet
  • Datenvisualisierung in OpenHAB z.B. über Grafana
  • damit langfristige Datenhaltung der Umweltbedingungen in der eigenen Wohnung möglich; evtl. interessant für spätere Auswertung

Herstellerunabhängige Heimautomatisierung mit KNX

Cornelius Köpp
Cornelius Köpp

Cornelius Köpp : "Gebäudeautomatisierung gibt es schon länger als den Begriff "SmartHome". Mit KNX existiert ein Standard mit inzwischen 30-jähriger Historie, der von rund 500 Herstellern unterstützt wird. Ohne zentralen Server, oder gar Cloud-Zwang und somit eine robuste Lösung für die, die Ihre Nutzungsdaten nicht in unkontrollierbarem Umfang aus der Hand geben wollen. Der Vortrag gibt einen Überblick über die grundlegenden Konzepte von KNX."

  • KNX = herstellerunabhängige, dezentrale Lösung, nicht auf Heimautomatisierung beschränkt
  • sehr flexibel, oft in öffentlichen Gebäuden verwendet
  • "Smart Home" eigentlich erst richtig smart, wenn man selbst nichts mehr tun muss, da es automatisch läuft
  • Annahme: Haustechnik an sich muss sehr lange uverlässig funktionieren
  • Abhängigkeit von Hersteller-Cloud für Zuverlässigkeit und Datenschutz keine gute Idee (plus hohe Kosten)
  • für langfristig installierte Hardware auch wichtig: Lebensdauer für Verschlüsselungsverfahren der Funk-Technik
  • KNX ca. 30 Jahre alt und von rund 500 Herstellern entwickelt in der KNX Association
  • KNX seit langer Zeit kompatibel, sodass selbst alte Geräte angesprochen werden können
  • kabelgebunden
  • dafür Ruf, relativ teuer zu sein
  • nicht für sicherheitskritische Anwendungen vorgesehen
  • Übertragungsmedien: TP1 (4-adrige Leitung), PL(110) (über normales Stromnetz mit Neutralleiter), IP, RF (Funk)
  • Geräte im Schnitt ca. >100 Euro

HackTalk 13.04.2021

Audiosignalverarbeitung aka "Was ist eigentlich Schall?

Tim Dobrick
Tim Dobrick

Tim Dobrick : "Wir sind täglich von Geräuschquellen, Signalen und Musik umgeben. Wie selbstverständlich unterhalten wir uns über Apps wie Microsoft Teams, Zoom oder zahlreichen weiteren Anbietern live und verzögerungsfrei, als wenn wir uns gegenüberstehen würden. Doch was ist überhaupt ein Geräusch, eine Stimme, Musik - welche Prozedur muss der Schall durchlaufen, um aus unserem Mund bis zum Ohr unseres Remote-Kollegen zu gelangen? Ich gebe einen Überblick über den gesamten Signalweg und beleuchte dabei Aspekte wie etwa Mikrofoncharakteristik, Analog/Digital-Wandlung, Klangerzeugung und Audio-Kompression."

Setup für diesen HackTalk

  • Schall = mechanische Schwingungen in Luft
  • gemessen wird der Schalldruck in Pascal
  • übliche Einheit für den Schalldruckpegel ist das Dezibel (dB -> ein Zehntel Bel), es gibt das logarithmische Verhältnis zu einem Referenzwert an. 0 dBSPL = 0,002 Pa (Hörschwelle bei 1 kHz), 94 dBSPL ~ 1 Pa

  • Schall tritt in verschiedenen Frequenzen auf, hörbarer Schall liegt zwischen 16 Hz - 20 kHz, die Schwingungsfrequenz bestimmt die empfundene Tonhöhe
  • ein (dynamischer) Lautsprecher ist eine durch Elektromagnetismus in Schwingung versetzte Membran
  • ein dynamisches Mikrofon hat einen sehr ähnlichen Aufbau wie ein Lautsprecher, wird nur "anders herum benutzt"
  • ein "Dynamisches Mikrofon" benötigt keinen Strom und ist sehr robust
  • ein "Kondensatormikrofon" wandelt mit Hilfe von Kapazitätsänderungen Schall in elektrisches Signal um: Plattenkondensator mit Membran und Gegenelektrode. Bessere Klangaufnahme, dafür empfindlicher.
  • Mikrofone sollten in einer "Spinne" aufgehängt werden, um Erschütterungen am Ständer abzufangen
  • ebenfalls sinnvoll: Popschutz, um "Druckwelle" harter Laute (wie "P" und "T") abzudämpfen
  • Richtcharakteristiken von Mikrofonen: Kugel für Aufnahme aus allen Richtungen, Niere für Aufnahmen von vorn, Superniere wie Niere nur mit Ausprägung auch nach hinten und stärker gerichtet, Acht z.B. für Sänger von zwei Seiten
  • Erzeugung synthetischer Geräusche über Oszillator oder Rauschgenerator
  • Grundformen von Schwingungen in der Subtraktiven Synthese: Sinus-, Rechteck-, Dreieck- und Sägezahnkurven
  • zusätzlich Wave-Tables, Filter und Hüllkurve
  • moderne Musik auf alten Instrumenten
  • braunes, blaues, rosa, weißes Rauschen alles Zufallszahlen, nur mit unterschiedlichen Filtern
  • A/D-Wandler = Analog-Digital-Umsetzer
  • D/A-Wandler = Digital-Analog-Umsetzer
  • Samplerate = Abtastrate in Hertz, also wie oft in einer Sekunde der Audio-Pegel erfasst wird (8 kHz für Telefon, 44,1 kHz auf CD, 48 kHz für Film etc.)
  • Samplingtiefe in Bit, auch Auflösung genannt, ist nicht Bitrate! Gängig 16, 24 oder 32 Bit
  • Bitrate ist "Bandbreite", in kBit/s
  • Obertöne
  • Komprimierte digitale Formate: MP3, WMA, OGG, Opus, AAC (verlustbehaftet), FLAC, ALAC (verlustfrei)
  • weniger "Kompression" (@Overload: auch Effekt zur Einschränkung von Lautstärkeschwankungen -> Kompressor), mehr "Reduktion", mit Nutzung von Fast-Fourier-Transformation
  • Datenreduktion
  • Live Coding Pop Music with Python and SuperCollider
  • Latenzen und Active Noise Cancelling
  • Dolbi Media Processing Demo
  • Psychoakustischer "Surround-Effekt" (8D Audio) nur mit Stereo-Signal am Beispiel von 'ATB - Ecstasy (Morton Granau Remix)' (Tipp: Mit Kopfhörern anhören!)
  • Spacial Audio Demo: Dolby Atmos vs Auro 3D (Tipp: Mit Kopfhörern anhören!)
  • Einige Grundlagen der Psychoakustik

Synthetisch Schall erzeugen


HackTalk 02.03.2021

Ein Einfühungscrashcourse in AWS

Steven Schwenke
Steven Schwenke

Steven Schwenke : "Die Amazon Web Services (AWS) sind ein Wald von hunderten Services, die etliche Anwendungsfälle abdecken und besonders zu Beginn schwer zu durchblicken sind. Steven gibt deshalb einen Einblick in die wichtigsten Services wie EC2, IAM, S3, Beanstalk und Cloudfront und erklärt die grundlegendsten Konzepte wie on demand computing, Regions, ACs und Scaling. Der Vortrag ist ganz bewusst hands-on und wird viel Platz für Fragen lassen."

  • schöner Überblick über AWS Global Infrastructure
  • Region = regionale Ansammlung von Rechenzentren, z.B. Frankfurt
  • Availability Zone (AZ) = voneinander unabhängige Menge von Rechenzentren innerhalb einer Region (Frankfurt hat z.B. 3)
  • Service S3 = Dateien in "Bucket" speichern; Hosten statischer Websites sehr einfach möglich
  • Service CloudFront = globaler Proxy, um auf S3 gehostete statische Webseiten schneller auszuliefern, indem diese regional gecached werden
  • Service EC2 = virtuelle Maschinen, auf denen gerechnet wird
  • Service Beanstalk = Platform as a Service, basierend auf EC2, um einfacher direkt jar für z.B. ein Backend laufen zu lassen
  • Service Certificate Manager = für z.B. TLS-Zertifikate
  • Service Route 53 = DNS, z.B. zur Verwaltung von Domains
  • EC2 können auch als Spot-Instanzen betrieben werden (oder als reservierte Instanzen)
  • AutoSpotting: "Saves up to 90% of AWS EC2 costs by automating the use of spot instances on existing AutoScaling groups. Installs in minutes using CloudFormation or Terraform. Convenient to deploy at scale using StackSets. Uses tagging to avoid launch configuration changes. Automated spot termination handling. Reliable fallback to on-demand instances."
  • Service Lambda = statt ganze virtuelle Maschine zu starten, stattdessen nur Code direkt ausführen
  • Benchmarking AWS Lambda runtimes in 2019

Infrastructure as Code

Sönke Lampe
Sönke Lampe

Sönke Lampe: ""CDK" ist einer der vielen Services in AWS und steht für "Cloud Development Kit". Dieses Framework bietet uns die Möglichkeit, Infrastruktur mittels gängiger Programmiersprachen (Java, Typescript, Go und andere) aufzubauen. Somit kann man echten Code für den Aufbau der Umgebung nutzen, statt unübersichtlicher YAML Dateien. Dieses als "Infrastructure as Code" bezeichnete Konzept setzt sich in der Cloud mehr und mehr durch. In meinem Vortrag möchte ich euch anhand einer einfachen Beispielanwendung zeigen, wie einfach es ist, eine AWS Infrastruktur mittels CDK-Framework aufzubauen."

  • Infrastructure as Code der Weg, wie man Infrastruktur zur Verfügung stellt
  • CDK nur einer der möglichen Wege, z.B. auch Cloudform und TerraForm. Unterschied: CDK funktioniert mit Code, die Alternativen definieren die Infrastruktur durch z.B. yml.
  • CDK "Hello World" an sich schon recht kompliziert, lohnt sich aber, da viele Vorteile wie Nutzung von Programmierstrukturen
  • einfaches Beispiel: React App
  • zuerst React App generieren und als statische Seite in S3-Bucket kopieren
  • Infrastruktur selbst wird in eigenem Projekt beschrieben (also zwei: eines für Frontend, eines für Infrastruktur), in TypeScript
  • AWS stellt verschiedene Bibliotheken zur Verfügung, um mit SDK zu arbeiten
  • Definition verschiedener Phasen ("Stages"), z.B. S3 Bucket erstellen, aus Github Code laden und dort ablegen
  • diese direkt im Code abbildbar, z.B. "new S3.Bucket()" mit den Parametern für den Bucket
  • verschiedene Actions bereits verfügbar, z.B. GitHubSourceAction zum auschecken von Source oder CodeBuildAction zum Bauen
  • Deployment via AWS CLI
  • dazu erstmal notwendig: cdk bootstrap, um AWS für die Arbeit mit CDK vorzubereiten
  • Deployment mit "cdk deploy myID"
  • geschriebener Code wird in CloudFormation Template überführt und dieses dann ausgeführt, um die Ressourcen zu erstellen
  • auch getriggerte, automatische Aktion bei neuem Github-Commit programmierbar
  • viele Bootstrapping Templates bereits verfügbar

HackTalk 02.02.2021

Investigation of Diachronic Representations of Embedded Pharmaceutical Entities

Florian Hensel
Florian Hensel

Florian Hensel: "Steigende Mengen an Veröffentlichungen und die Suche nach Beziehungen zwischen Entitäten sind längst auch im medizinischen Bereich angekommen. So versucht man, Beziehungen zwischen Wirkstoffen und Krankheiten anhand der veröffentlichten Paper automatisch zu finden. Dass man hier für NLP-Modelle nutzt, insbesondere word2vec, hat sich vielfach durchgesetzt. Da Worte in unterschiedlichen Kontexten stehen und diese auch zeitabhängig sind, ergibt sich ein Problem mit den Word Embeddings des word2vec Modells. Dieses lässt sich auch bei Wirkstoffen finden. In meiner Master-Arbeit habe ich mich damit beschäftigt, eben diese Problematik im medizinischen Bereich zu lösen. Dabei wurde eine Methode genutzt, die eine Verbesserung des ursprünglichen Word Embeddings in verschiedenen Punkten erreicht. Insbesondere interessant ist die Erhöhung der Modellqualität um 30%."

  • große Mengen an Fachliteratur soll durchsucht werden nach Assoziationen zwischen Entitäten
  • Training von Word Embeddings, die eine mathematische Repräsentation eines Wortes darstellen
  • Wörter können in verschiedenen syntaktischen Kontexten stehen, implizieren in der Regel eine unterschiedliche Semantik
  • Semantic Shift ist die Veränderung der Bedeutung eines Wortes über die Zeit
  • ein Wort kann für verschiedene Bedeutungen stehen, so steht ein Wirkstoff (z.B. "Aspirin") immer in Verbindung mit einer Krankheit, gegen die er wirkt
  • deshalb mehrere Repräsentationen für ein einzelnes Wort notwendig
  • dynamische Ermittlung von Kontexten nach Wirkstoffen: 1970 viel "Aspirin und Angina", heutzutage fast gar nicht mehr in Texten zu finden, stattdessen "Aspirin und Thrombose"
  • PMI-Matrix: Pointwise Mutual Information = Wert, wie stark zwei Worte zusammenhängen. Alle Worte paarweise miteinander vergleichen ergibt Matrix.
  • mit diesem Prinzip: Suche nach Wirkstoff-Krankheitspaaren
  • Suche über Dokumentenkollektion medizinischer Veröffentlichungen von über 100 Jahren
  • Beispiel: Aspirin und Asthma PMI-Wert von einem hohen PMI_Wert in vielen Jahrzehnten; Aspirin und Diabetes sehr selten und dann auch sehr gering
  • anschließend Einsatz von Word2Vec = neuronales Netz, welches Wort auf umgebenden Satz abbildet
  • Analyse von 32 GB an Textdaten (Medizinische Veröffentlichungen zwischen 1900 und 2010)
  • Nutzung eines Treshold: niedriger Treshold ergibt viele Repräsentationen und dann pro Repräsentation zu wenig Trainingsdaten. Zu hoher Threshold, zu wenig/ keine Repräsentationen
  • Wortvektoren: sehr selten vorkommendes Wort oder sehr Divers vorkommende Worte (z.B. Bindeworte, "und", "oder") kurzer Wortvektor, Worte mit eindeutigem Kontext langer Wortvektor (z.B. Fachbegriffe)
  • mit vorher hergestellter eindeutiger Repräsentation eher lange Vektoren
  • sobald Beziehungen zwischen Fachentitäten bestehen, auch übertragbar auf andere Fachgebiete
Schematischer Ablauf des Prozesses von Kontextermittlung bis zur Nutzung der Word Embeddings

rc3 - Das Chaos geht remote

Josha von Gizycki: "Zwischen Weihnachten und Silvester fand auch dieses Jahr der Chaos Communication Congress, RC3 statt 37C3 genannt, rein digital statt. Wie das funktioniert hat, woher der andere Name kommt und ob das typische Konferenz-Feeling aufkam, berichtet uns Kongress-Veteran Josha."

RC3 Logo
  • Hauptseite des RC3
  • zwischen Weihnachten und Neujahr jährlich größte Hacker-Veranstaltung mindestens Europas, vom Chaos Computer Club seit Jahrzehnten organisiert mit ca. 35.000 Besuchern im letzten Jahr
  • mit rc3 erstmalig remote aufgrund Corona
  • in online-Welt c3Adventure über 200 Assemblies
  • Tradition: Infrastructure-Review-Vortrag mit Bericht, wie der Kongress technisch aufgebaut wird
  • zusätzlich Workshops und Vorträge
  • alles massiv parallel gestreamt
  • auch Lesungen mit z.B. Qualityland 2.0 und Cory Doctorow
  • z.B. Vortrag über Hack von Nintendo Game noch vor dem offiziellen Start
  • auch Engel-Konzept über Signal auch dieses Jahr wieder umgesetzt, mit 1.487 Engeln, 17,5 Wochen Arbeitszeit geleistet
  • 138 Simultanübersetzer
  • Infrastruktur mit 9 TB RAM und rund 1.700 CPU Cores
  • technische Lösung DSGVO-konform: sehr niedriges Loglevel / Logs auf /dev/null umgeleitet
  • gut funktionierende Technik: nur 42% Auslastung
  • Infrastruktur auch einen live durchgeführten (ungeplanten) DDOS-Angriff überlebt
  • größte Jitsi-Konferenz mit 94 Teilnehmern
  • Aufzeichnungen der vergangenen Kongresse
  • "Gleich nach dem Streamingbeginn brach alles zusammen, dann war es wieder da" - warum geht das nicht mit den Schulen?“

HackTalk 05.01.2021

Grundlagen Github CI/CD und Workflows

Portrait Patrick-Oliver Groß
Patrick-Oliver Groß

Patrick-Oliver Groß: "Continuous Integration/Continuous Deployment (CI/CD) überbrückt die Lücken zwischen Entwicklungs- und Betriebsaktivitäten, indem Automatisierung beim Erstellen, Testen und Bereitstellen von Anwendungen realisiert wird. Eine solche Automatisierung ist vor allem in (Software-)Projekten relevant, in denen viele Personen gemeinsam and derselben Code-Basis arbeiten. Ein prominentes Beispiel für verteilte Zusammenarbeit an Code ist Open Source Software (OSS). Viele OSS Projekte sind heutzutage auf GitHub zuhause. Im Jahr 2018 führte GitHub "GitHub Actions" ein. Dieser neue Service erweitert GitHub um automatisierbare und anpassbare CI/CD Workflows. Zuvor musste auf externe Services, wie zum Beispiel Azure Pipelines oder Travis CI zurückgriffen werden. In diesem Vortrag stelle ich die grundsätzliche Nutzung von GitHub Actions am Beispiel des OSS Projekts "Karmabot" vor. Hierbei wird zum Beispiel die automatisierte Durchführung von Tests bei jedem Pull-Request realisiert."

  • Vollständige Präsentation hier
  • Patrick auch Organisator von PyBraunschweig
  • Wesentlicher Gedanke: Automatisierung nutzen um dafür zu sorgen, dass Code ständig ausführbar und getestet ist und ausgeliefert wird
  • durchgehender Stream: Ab Code-Schreiben bis hin zu Deployment im operativen Betrieb ist alles automatisiert
  • menschliche Fehler aus Prozess heraushalten
  • 2018 Einführung von Github Actions
  • damit Natives CI/CD für Github-Projekte
  • "Actions" = einfachstes Kommando ausführen, z.B. Terminal-Commands
  • "Steps" = Reihenfolge von Actions
  • "Jobs" werden gestartet von einem Event
  • "Workflows" = Sammlung verschiedener Jobs
  • "Events" löst Workflow aus
  • "Runner" führt Actions aus, Art kleiner Container, z.B. Ubuntu
  • Beispiel: Karmabot (in Python geschriebener Slack-Bot)
  • pre-commit: a framework for managing and maintaining multi-language pre-commit hooks
  • live-stream der Entwicklung vom Tool auf Twitch
  • Github Actions in Github-Repo unter Reiter "Actions"
Screenshot von Github CI/CD
  • Definition über Datei im Source-Code
  • über "matrix" können verschiedene Versionen von Python genutzt werden
  • für offene Repositories kostenfrei
  • in Github Enterprise kostenpflichtig
  • "Matrix" nutzbar für z.B. Testen mit verschiedenen Versionen einer Sprache
  • Github Packages = Registry ähnlich wie Artifactory, also für gebaute Artefakte für weitere Verarbeitungsschritte. Liegen in über dem Projekt angeordneten Organisation. Für Zugriff ist Github-Account notwendig.
  • Github CodeQL = statische Codeanalyse
  • CodeQL und Actions können in PRs abgebildet werden, sodass sie für jeden PR durchlaufen (Quality Gates)
  • anderes Beispiel: agrirouter-api-java von Sascha Doemer
  • Github Actions auch als Cron-Job nutzbar, z.B. für Checken von Netz-Ressourcen
  • Artikel über Zugriff auf private Packages in unterschiedlichen privaten GitHub-Projekten

42 Wolfsburg stellt sich vor

Max Senges: "42 Wolfsburg is a full-time programming education where you start from absolute scratch and graduate as a highly qualified junior developer in 1 year or as a highly qualified software engineer in 3 years! Through our world-class curriculum, you learn with your peers, develop projects, and earn points to pass levels - and we cover your fees from start to finish!"

  • Vorstellung 42 Wolfsburg durch Max Senges, CEO
  • Konzept 2013 in Paris erstmalig umgesetzt, mittlerweile in 33 Locations weltweit
  • in Deutschland in Heilbronn und in Wolfsburg
  • 42 Wolfsburg ist gemeinnütziger Verein, von Stadt Wolfsburg und Volkswagen ins Leben gerufen
  • Finanzierung: 3,7 Mil. Euro initial von VW plus 2 Mil. Euro pro laufendes Jahr
  • Studium kostenfrei für Studenten
  • digitale Transformation soll beflügelt werden
  • Aufbau eigenes Curriculum
  • "no professors, no lectures, no certificate!"
  • eher Hacker-Mentalität
  • sehr viel Wert auf Eigenmotivation und Proaktivität
  • durch viel Pair-Programming Aufbau von social skills
  • zur Zeit Aufbau von "SEA:ME" = Software Engineering Automotive & Mobility Ecosystems
  • Idee, mit digitaler Neupositionierung deutsche Automobilindustrie voran zu treiben
  • Zusammenwirken mit anderen Organisationen wie Ostfalia, TU BS, Fablab und Coworkingspace
  • Positionierung gegenüber Berufsschule und dualer Ausbildung: bei 42 Wolfsburg ganz andere Art des Lernens, da keine Vorlesung, spielerischer Umgang und "moderner" Campus im Google-Style
  • momentan keine Ausbildung im staatlich anerkannten Sinne, also Teilnehmer weiterhin kindergeldberechtigt
  • Fellowship-Programm

Jitsi


HackTalk 01.12.2020

European Summer of Weather Code

Portrait Helena Schmidt
Helena Schmidt

Helena Schmidt : "Auch in einer Welt in der Daten eine immer größere Rolle spielen, lässt sich trotzdem Unsicherheit nicht immer vermeiden. Manchmal reichen die Daten nicht aus, um eine sichere Aussage zu treffen, manchmal ist die Zukunft schlicht ungewiss. Aber Daten können helfen diese Unsicherheit in Zahlen auszudrücken. Nur sind Zahlen oft nicht hilfreich, ohne das gesamte Wahrscheinlichkeitsmodell dahinter zu verstehen. Wie Unsicherheiten in verständliche Aussagen überführt werden können, ist ein Thema das Helena Schmidt an vielen Punkten bearbeitet. Beispielhaft wird es in ihrem Vortrag um den European Summer of Weather Code gehen, bei dem sie zusammen mit Rebecca Husemann ein neues Verfahren um Unsicherheiten von Wettervorhersagen verständlich zu machen entwickelt hat. In diesem Jahr startete sie außerdem einen Podcast über Data Science, in dem auch immer wieder das Thema Unsicherheit zur Sprache kommt - Und entsprechend gab es auch eine Folge über das Wetterprojekt von Helena und Rebecca."

  • Podcast Datenleben, Folge über das hier vorgestellte Projekt mit Pecca
  • European Center for Medium-Range Weather Forecasts (ECMWF) organisierte 2018 European Summer of Weather Code
  • Helena und Pecca beworben mit Thema "Innovative Visualizations"
  • viele Ideen, z.B. sea level pressure = Luftdruck für die gesamte Welt auf Normalnull. Eher für Meteorologen verständlich, nicht für Enduser.
  • Vorhersagen unsicherer je weiter in die Zukunft
  • weitere Idee: Unsicherheit visualisieren?
  • bestehende Lösung für Wind: windy.com
  • bisherige Lösungen immer zur selben Zeit am Tag, z.B. Mittag.
  • schon interessanter: Kachelmannwetter mit dargestellter Unsicherheit (Ensemble von 51 leicht unterschiedlich gerechneter Modelle)
  • Design-Prinzipien sollten beachtet werden, z.B. dass gleiche Farben immer die gleiche Bedeutung haben. Gleiche Schattierungen sollten für gleiche Wahrscheinlichkeiten stehen.
  • Prototyp für animierte Vorhersage mit Darstellung aller im Ensemble vertretenen Modelle
  • value-suppressing uncertainty pallette = Mittel zum Ausdruck unwahrscheinlicher Werte
  • letztendliche Lösung:
  • Daten aus API vom ECMWF, leider nur für bestimmte Zeit zugänglich
  • als Web-App mit Python implementiert
  • viele Herausforderungen mit Matplotlib bei graphischen Darstellung
  • erstaunlich: selbst wenn morgen sehr unklar, morgen wieder ziemlich klar. Dachte "je weiter in Zukunft, desto unsicherer" + "extreme Ereignisse zerstören Vorhersagen für alle künftigen Tage"
  • für Landwirtschaft oder Event-Veranstaltungen oder PV-Optimierungen innovative Darstellungen vermutlich extrem wertvoll - wie machen die das? => Spezialisten nutzen eher Profi-Tools, wenn dann eher für Consumer
  • Verkauf der Daten an Enduser nur über Deutschen Wetterdienst

Bild der entwickelten Anwendung

Advent of Code


HackTalk 03.11.2020

Mit rapid User-Test Produktqualität spielerisch verbessern

Portrait Stefan Henschke
Stefan Henschke

Stefan Henschke: "Im Rahmen meiner Bachelorarbeit habe ich ein Serious Game konzeptioniert. Für Spiele ist der individuelle Spaß der Nutzer von besonderer Bedeutung, deshalb war die Usability und das Nutzerfeedback extrem wichtig. Bereits bei der Konzeptionierung wurde deshalb auf Nutzerfeedback in kurzen Nutzertests auf Basis eines PDF Prototypen Wert gelegt. In diesem Talk zeige ich, wie innerhalb von 15 Minuten mit Testpersonen wertvolles Feedback gewonnen werden kann."

  • Human-centered Design = Standard mit mehreren Phasen
  • Plan -> Kontext -> Anforderungen -> Entwurf -> Evaluation -> Anforderungen erfüllt ODER nochmal zu Kontext
  • Rapid User Testing in Stufe "Evaluation"
  • Damit Testen verschiedener Entwürfe möglich
  • Persona = virtuelle Person mit ganz konkreten Interessen, Kenntnisse und einem Hintergrund
  • spätere Testgruppe sollte möglichst dicht an den Personas liegen
  • ein Interesse der Persona heraussuchen und darauf konzentrieren
  • für anzufertigende Anwendung: Rapid Prototyping
  • möglichst einfache, schnelle testweise Umsetzung zum schnellen Testen, z.B. Click-Dummy oder Papier, die einem User vorgezeigt und auf einfache Weise benutzt werden
  • so Entwicklung mehrerer Prototypen, die nach und nach immer besser werden
  • letzter Schritt: Evaluation: "Ist die Anforderung erfüllt?"
  • Gruppe von 5 Testpersonen findet 80% aller Usability-Probleme, ca. 15 Personen annährend 100%
  • naheliegender, als 15 unterschiedliche User zu finden: Test mit 5 Testpersonen wiederholen
  • kurze Testeinheiten von 15 Minuten mit nur einem Test-Szenario(ein Aspekt, der besonders hervorgehoben wird, z.B. Farbgebung oder Menuführung)
  • Überlegung: Rapid User Test online stattfinden lassen?
  • Testpersonen sind mit Versuchsleiter über Internet verbunden
  • Versuche werden protokolliert, zusammengefasst zu Testbericht
  • in Testbericht quantitative Analyse: Wie oft sind welche Ereignisse passiert?
  • damit leicht Priorität für nächste Iteration der Umsetzung und iterative Entwicklung der Testdurchläufe möglich
  • "Nutzererlebnis messbar machen" + "Annahmen spielen überhaupt keine Rolle mehr"

Quellen:

Thema Keyboards:


HackTalk Braunschweig 03.03.2020

  • Datalab - Machine Learning an der TU: Zwei Master-Studierende der TU Braunschweig stellen ihre Arbeit im Rahmen des jährlich an der TU stattfindenden Datalabs vor. Dabei wurden verschiedene Probleme im Bereich IT-Sicherheit unter anderem mit Hilfe von Machine Learning gelöst. Es geht um verschiedene Challenges, die zum Beispiel mit SVMs und anderen Techniken aus der Mustererkennung umgesetzt wurden.

HackTalk Braunschweig 28.01.2020

Noél Funke stellt Hackers4Good vor:

  • Kern: sammeln Hardware von Resellern, IT-Firmen, Wiederverwendung dieser Hardware 
  • seit vielen Jahren auf Privatebene organisiert, Verein "Hackers4Good e.V." seit 2020
  • Projekt "Web-Individualschule Bochum": Schule, in der Jugendliche Realschule rein online abschließen können (Skype-Sessions). Zielgruppe: Autisten, Mobbing- oder Gewaltgeschädigte etc. Ebenfalls wird jährlich ein Stipendium vergeben. Problem: Einige Jugendliche bekommen zwar vom Amt den Kurs bezahlt, haben aber keine IT-Hardware. Deshalb Organisation der Hardware über den Verein als Geschenk, inklusive Support. 16 Lehrer in Bochum, 240 Schüler bundesweit. Abiturabschluss in Arbeit.
  • zusätzliches Projekt in diesem Rahmen: 15 Schüler bauen gemeinsam Roboter komplett aus 3D-Drucker. Verschiedene Teams für verschiedene Teile, die letztendlich verteilt entwickelt werden aber auch montiert werden.
  • Projekt Polarkreis: seit 5 Jahren jedes Jahr im Winter mit "Paul" hinfahren mit Wunschbriefen von Kindern, welche vom Weihnachtsmann beantwortet werden. Mittlerweile aus Niedersachsen und NRW Briefe von Kindern mitgenommen, welche original vom Weihnachtsmann unterschrieben und mit Weihnachtsmann-Briefmarke frankiert werden. Dieses Jahr erstmalig Erfüllung der Wünsche der Kinder aus Spendengeldern (oft kleine Wünsche). 5 Tage Fahrt hin, 5 Tage zurück.
  • Projekt Albanien-Tour: Mit Allrad-Offroad-LKW-Community abwechselnd in Bergdörfer in Albanien und Rumänien anfahren mit LKW-Ladungen voll Kleidung, Spielsachen und Schulmaterial etc. 
  • Projekt "Technologie für Südafrika": Partnerfirma hat 13 Gebäude bereits gebaut als Schul- und Zufluchtsort, verwaltet von Mission. Dort besonders: Stabile Strom- und Internetversorgung, Klassenräume mit Laptops, in einigen Jahren Ausbildungssystem für technische Berufe etablieren. Verein übernimmt technischen Part.
  • Next Steps: Logo für Verein, Aufbau Facebook-Seite.
     

HackTalk Wolfsburg 03.12.2019


HackTalk Wolfsburg 02.07.2019

  • https://www.humblebundle.com
  • in Unix-Terminals: "echo" vor Befehl setzen, damit sichtbar wie dieser verarbeitet wird. Beispiel: "echo rm *" wird aufgelöst zu "rm bla.txt blubber.txt"
  • https://rclone.org zum Synchen von Dateien und Ordnern zwischen allen möglichen Speichersystemen
  • Polly = direkt bei AWS Sprache zu Text: https://aws.amazon.com/polly/
  • Prometheus (https://prometheus.io/docs/prometheus/latest/getting_started/) vs InfluxDB (https://www.influxdata.com)
  • https://www.formula-student.nl
  • Neues von Boston Dynamics ;) https://www.youtube.com/watch?time_continue=173&v=dKjCWfuvYxQ
  • https://www.shiftphones.com - Phones aus 100% recycelten Handys mit alternativen Betriebssystemen, deutsche Firma
  • $interessanterMensch: https://www.youtube.com/channel/UCDrekHmOnkptxq3gUU0IyfA
  • $interessanterMensch#2: https://www.youtube.com/watch?v=UtNYzv8gLbs
  • $interessanterMensch#3: https://www.youtube.com/user/onemeeeliondollars
  • $interessanterMensch#4: https://www.youtube.com/user/steventhebrave
  • noch mehr interessante Videos: https://www.youtube.com/channel/UC7_gcs09iThXybpVgjHZ_7g
  • https://www.youtube.com/user/lara6683
     

HackTalk Braunschweig 25.06.2019

Container-Volume Backups mit Restic

  • Speaker: Boris Schaa
  • automatisiertes Backup- und Restore-Tool, auch in Cloudogu Ecosystem genutzt
  • wichtig: sämtlicher State sollte außerhalb des Containers sein, siehe Prinzip 12-factor-app
  • deshalb Nutzung von Docker-Volumes, die im Container genutzt werden, aber den Zustand außerhalb des Containers belassen
  • Blog-Post auf Cloudogu Blog enthält viele Informationen der vorgestellten Themen
  • Restic: schnelles Backup, einfach und auch verschlüsselt (geht nicht ohne Verschlüsselung)
  • Restic benötigt immer ein Backup-Repository, in welches das Backup gespeichert wird ("restic init")
  • Backup:
    • Container stoppen
    • "restic backup pfad/zum/docker/volume"
  • Geschwindigkeit des Backups: 5,4 GB in 40 Sekunden
  • "restic snapshots" zeigt vorhandene Backups
  • gleiche Dateien werden nicht doppelt gespeichert, sondern intern referenziert
  • Backups können mit beliebig vielen Tags getagged werden
  • "restic restore [id] --target path/to/target" zum Wiederherstellen (auch beim Wiederherstellen Container stoppen!)
  • "restic stats" bietet Statistiken, z.B. Größe der Backups
  • Backups löschen: "restic forget [hash]"
     

HackTalk Wolfsburg 04.06.2019

Die Schattenseiten der Gaming-Industrie


HackTalk Braunschweig 28.05.2019

Vorstellung des Stratum0 (Hackerspace in Braunschweig)

  • stratum0.org/
  • ständig offener Space

HackTalk Wolfsburg 02.04.2019

Java Projects

  • Amber
  • Loom
  • Panama
  • Valhalla

Marp

Apollo Guidance Computer


HackTalk Braunschweig 26.03.2019


Heimautomatisierung mit openHAB und RaspberryPi

  • https://www.openhab.org
  • OpenSource-Projekt
  • herstellerunabhängig
  • openHAB bringt einfaches Web-UI mit, aktuell PaperUI (http://paper-io.com) oder Google Material (https://material.io/design/)
  • USB-Dongle an Raspi, Z-Wafe (https://www.z-wave.com) = proprietäres Funknetzwerk, an dem z.B. Rollos hängen, die über den Controller gesteuert werden
  • Z-Wafe-Controller an Rollos können ebenfalls in C programmiert werden
  • Controller an Rollos recht intelligent: Messen u.a. auch Widerstände der Motoren. Somit ermittelbar, wann Motor kaputt geht.
  • Z-Wafe = Mesh-Netzwerk = jeder Controller ist ein Repeater, damit werden Signale über die Menge aller Geräte weitergeleitet
  • anderes Mesh-Netzwerk: Zigbee (https://www.digi.com/resources/standards-and-technologies/zigbee-wireless-standard)
  • Kommunikation kann aber auch über WLAN direkt über FritzBox laufen, wenn Endgeräte das unterstützen
  • Konfigurierbar, welcher Controller auf welchen anderen im Netzwerk hört (damit der Nachbar nicht das Licht ausschaltet ;) )
  • kleiner Z-Wafe-Controller inklusive Aktor (Motor): ca. 20€, kompliziertere und kraftvollere ca. 50€
  • Stromversorgung jedes Controllers per Netzspannung
  • Reichweite ohne Antenne bis zu 50 Meter (Luftlinie), in Wohnung ca. eine Wand
  • Regelwerk in einzelnen Dateien abgelegt via XText, jedoch kein richtiger Editor - aber als VisualStudioCode-Erweiterung openHAB Editor (https://www.openhab.org/docs/configuration/editors.html)
  • Beispiel: Lichtsteuerung so steuern, dass man gut aufwacht: geht langsam an (gedimmt)
  • Testbarkeit: Controller werden angelernt und bekommen dabei ihre möglichen Wertebereiche mit, sodass bei der Steuerung nichts kaputt gehen kann
  • Verbindung von Controllern innerhalb des Netzwerks unverschlüsselt über HTTP GET
  • "If this than that": (https://ifttt.com) nutzbar z.B.: Wenn Anruf über Smartphone, geht automatisch Musik in der Heimanlage aus
  • Isolation von außen über eigenes Netzwerk möglich
  • Blueray-Player auch smart, sodass bei Einlegen einer Disk auch das Licht ausgeht
  • Mycroft: The Open Voice Assistant: https://www.kickstarter.com/projects/aiforeveryone/mycroft-mark-ii-the-open-voice-assistant
  • Präsenzmelder: Müssen auf Raum angelernt werden und bekommen sofort mit, wieviele Personen im Raum sind: https://www.fibaro.com/en/products/motion-sensor/ - kann sogar CO-Wert und andere messen
  • Lampen: Philipps Hue, MeLight
  • gibt auch Aktoren, die in fertige Schalter eingebaut werden können
  • Ansteuerung über Smartphone über MyOpenHAB (https://myopenhab.org), dort Konto erstellen und ohne Änderung an der eigenen Fritzbox von außen ins Netzwerk steuern
  • Heizungssteuerung z.B. https://www.homematic.com, damit z.B. steuerbar, ob Gaskessel anfeuern oder auf Sonnenstunden warten
  • viele moderne Heizungen bereits moderne Komponenten (z.B. Vaillant und Wolff)

HackTalk Wolfsburg 05.03.2019

Kubernetes

- = API zum Deployen von Anwendungen
- Cluster = Netzwerk aus Nodes (=physische oder virtuelle Maschinen mit Docker installiert)
- alle Nodes eines Clusters sind untereinander "trusted", also ist es sinnlos, Nodes in einem anderen Netzwerk zu haben
- besonderer Node: Master = normaler Node plus API-Server, d.h. der Anfragen, die über die API gehen, gehen immer an den Master-Node
- persistente Daten liegen in distributed key-value-store
- gewünschter Zustand des Clusters wird deklarativ beschrieben, Cluster kümmert sich darum, diesen gewünschten Zustand herzustellen (durch "Controller")
- pro Node n pods = "smallest unit of deployment", Bsp. bei Java: Container mit Tomcat-Server
- Pod kann auch aus mehreren Containern bestehen
- "Service" = Zugriff auf eine Anwendung per Zugriff auf den Pod unpraktisch, da Pods beliebig geändert werden können. Service = Facade / Weiterleitung / Endpunkt zum Ansprechen einer Anwendung.
- "Volume" = Daten im Container sind volatil, deshalb müssen sie woanders gespeichert werden. Volumes werden dazu in Container gemounted.
- "Namespace": Cluster in namespaces geteilt, sodass eine Anwendung mit dem gleichen Namen in verschiedenen Namespaces 2x laufen kann (aber nicht innerhalb des gleichen Namespaces!) + Setzen von Ressourcen-Limits und Berechtigungen auf Namespace-Ebene
- Erstellen und Verwalten von Pods durch höherklassige Abstraktionen wie ReplicaSets ("von meiner Anwendung bitte 4 Pods!"), Deployment (= ReplicaSet plus Update-Strategie), StatefulSet, DaemonSet, Jobs (selbstterminierende Container)
- Rancher = Verwaltung für beliebig viele Kubernetes-Cluster (Kubernetes bringt nur eine sehr einfache eigene UI mit)
- durch Port-Forward Zugriff auf Pod von außen möglich (auf welchem Node der Pod läuft, ist egal) (Pod durch Name und Namespace identifizieren)
- Kubernetes kann tote pods automatisch neustarten (Lebenszustand durch Readiness-Probes innerhalb eines "Deployments" definierbar)
- Ingress ("Eintritt") = Reverse-Proxy, der HTTP-Anfragen von außen auf die im Cluster befindlichen Anwendungen routed
- ConfigMaps = für Konfigurationen
- Secrets = für z.B. Zugangsinformationen
- ConfigMaps und secrets werden pro Deployment festgelegt, sodass die Pods im Deployment darauf zugreifen können


HackTalk Braunschweig 26.02.2019

Reactive vs asynchron

  • Asynchron und nicht blockierend + Backpressure
    • Umzugsanalogie: 10 Leute schleppen Möbel aus der Wohnung, 1 stapelt im LKW
    • Reactive Streams kann das
  • Immutability ist eine hilfreiche Eigenschaft für Event-Objekte
  • Publisher und Subscriber
    • Subscriber meldet Kapazität an Publisher mit subscribe(int)
    • Publisher liefert mit onNext(elment) Elemente an den Subscriber
  • Niemals mehr angefordert wurden: Backpressure
  • 3 Endebedingungen
  • Reactive Streams ist ein API von JDK
    • RxJava2
    • Reactor
  • Asynchron 
    • kennt keinen Backpressure
    • Futures sind immer nur 1 Element, nicht viele (wie ein Flux)
    • Zuordnungen auf Threads, die eventuell trotzdem blockieren

HackTalk Wolfsburg 05.02.2019

Tiny App Platform

  • https://github.com/tinosteinort/tiny-app-platform
  • Menge von Shell-Skripten
  • Applikationen über Ordnerstruktur auf Raspi abgelegt + Run-Skript für Start
  • TAP lädt Apps hoch, startet und stoppt sie
  • Installationsskripte werden per SSH auf Raspi gepiped, damit landen keine Skripte auf dem Raspi
  • ob App läuft, wie bei Cloudfoundry: Beim Starten Prozess-ID abspeichern und regelmäßig nachsehen, ob ID noch da

 

KeePass-Erfahrungen

https://send.firefox.com
 


HackTalk Braunschweig 29.01.2019

Automatisiertes Risiken-Management für 3rd-Party-Bibliotheken

Siemens- und Audi-Ingenieure bekommen keine Fliesen mehr

  • Link (Spiegel Online)

HackTalk Wolfsburg 08.01.2019

Angular Lernen

  • https://github.com/msg-DAVID-GmbH/AngularWorkshop
  • https://www.udemy.com/the-complete-guide-to-angular-2/
  • https://github.com/stevenschwenke/angularTestingDemo
  • https://github.com/stevenschwenke/springsecurityworkshop

Reverse Engineering

  • Terraria on Steam https://steamcommunity.com/app/105600
  •  .NET binaries decompilen mit ILSpy (https://github.com/icsharpcode/ILSpy)
  •  Verwalten mehrerer Mods gleichzeitig: ModLoader für Terraria: https://github.com/blushiemagic/tModLoader

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