Donnerstag, 4. April 2019

Konferenz: Chaos Engineering Day 2019 NYC

Es war episch. Prima Talks und tolle Gespräche. Vielen Dank an die Organisatoren und Sponsoren: Casey, NC1, Workbench und Netflix. Beim nächsten Mal, gibt es eine Talk von mir.




Freitag, 11. Januar 2019


  1. Integrate Jacoco into your Maven pom.xml.
  2. Add into your file .gitlab-ci.ymlecho -n "Total:" ; cat target/site/jacoco/index.html | grep -o 'Total[^%]*%' | grep -o -E '[0-9]+%$
  3. Add Badge in Gitlab under Setting.
  4. Gitlab scann the console for the Regex you given in Point 3.

Then you you've got this nice Gitlab Test coverage Badge.

Freitag, 7. September 2018

Mein Tool Empfehlung für Kollaboration und Kommunikation in der Softwareentwicklung


  1. Pair Programming
    1. Git
    2. Junit
    3. Videokonferenz
      1. Jitsi
      2. Appear
      3. Slack
  2. Andere Kollaboration
    1. Whiteboard: https://awwapp.com/
    2. Wiki: Confluence
    3. Kollaborativer Editor: http://meetingwords.com
    4. Terminfindung: Kalenderly
    5. Abstimmung: 
  3. SCRUM 
    1. JIRA
    2. Schätzen: Pointing Poker https://www.pointingpoker.com
    3. Retro: Retrium
    4. Voting https://www.menti.com/

Montag, 14. Mai 2018

Universelles Apple Zubehör seit fast 30 Jahren

Es gibt ein Werkzeug oder Hilfsmittel das ich seit fast 30 Jahren für meine Apple Geräte brauche.

Früher habe ich damit 3,5' Disketten aus meinem Mac befreit, heute säubere ich damit die Ladebuchse von meinem iPhone, damit ich es laden kann. Ich bin schon darauf gespannt, wann Apple dieses universelle Tool selbst vermarktet - wie wäre es mit iClip X oder MacClip Pro - Karl Klammer wäre sicher stolz.

Mittwoch, 2. Mai 2018

Prüfen von Java Libs auf bekannte Verwundbarkeiten

Es gibt ein gutes Tool mit dem man Java Libs auf bekannte OWASP Schwachstellen prüfen kann. Dieses Toll gib es als Plugins für diverse Build-Werkzeuge. Man kann es aber auch Out-Of-The-Box nutzen:

Installation:
brew install dependency-check

Für Grade gibt es ein Plugin, wenn man dieses nich nutzen möchte kann man alle Dependencies herunterladen, mit folgenden Grade Task:
task getDeps(type: Copy) {
   from sourceSets.main.runtimeClasspath
   into 'runtimeX/'
}


Ausführen und Erzeugen eines Report mit gefundenen Verwundbarkeiten
dependency-check --project haupt --scan runtimeX/ --suppression config/dependencyCheck/suppressions.xml --suppression config/dependencyCheck/suppressNetty.xml


In dem Report findet man gelegentlich False-Positive Warnungen, diese kann man mit Hilfe der Saupression-Dateien unterdrücken.


Link:

  1. https://www.owasp.org/index.php/OWASP_Dependency_Check

Prüfen von JavaScript Libs auf bekannte Verwundbarkeiten

OWASP ist hoffentlich für viele Entwickler eine bekannte Quelle, wenn es um Sicherheit von Software geht.
Mit Hilfe des Programms retire kann man seine JavaScript Libs auf OWASP bekannt Verwundbarkeiten prüfen:

Installation von retire via Yarn:
yarn global add retire

Prüfen auf JS Verwundbarkeiten:
retire -v --js --jspath myProject

Die Option -v sollt man möglichst mitgegeben, um zu sehen, das retire funktioniert bzw. der angegebene Pfad OK ist.


  1. Ursächliche JavaScript Library identifizieren und CVE-Vulnerabily verstehen
  2. Version der JavaScript Library anpassen
  3. Library in der Datei _.retireignore_ gegebenenfalls aufnehmen
Natürlich sollte man diesen C heck natürlich regelmässig wiederholen.

Dienstag, 10. April 2018

Postgresql Zombie Prozesse finden und beenden

Zombie gibt es überall, auch in Form von Queries in Datenbanken wie hier der Postgresql DB. Diese Zombies können auf unterschiedliche Weise entstehen, z.B. wenn eine Javaanwendung eine Query mach und in eine Excption gerät und dann die Ressourcen, d.h. hier die DB Query aufräumen. Die DB wartet dann ewig, dass die Java Applikation sich das Ergebnis der Query abholt, vergebens.

Mit der folgenden SQl Query kann man Zombies finden, hier Queries die älter als 30 Minuten sind.

select pid, age(query_start, clock_timestamp()), usename, query 
FROM pg_stat_activity 
WHERE query != '<IDLE>' AND query NOT ILIKE '%pg_stat_activity%'
AND query_start < NOW() - INTERVAL '30 minute'

Anschliessend kann man sie beenden:

select pg_terminate_backend(pid)

Einige nützliche Links

  1. https://gist.github.com/rgreenjr/3637525
  2. https://stackoverflow.com/questions/35319597/how-to-stop-kill-a-query-in-postgresql
  3. https://jobs.zalando.com/tech/blog/hack-to-terminate-tcp-conn-postgres/?gh_src=4n3gxh1