Andreas Bruns

Softwareentwicklung für Oldenburg und Bremen

5. Februar 2018
von bruno
Kommentare deaktiviert für Kalender-Server im Haushalt mit Radicale

Kalender-Server im Haushalt mit Radicale

Vor drei Jahren habe ich meinen Banana Pi mit der OwnCloud ausgestattet. Da der Einplatinencomputer als OwnCloud-Server doch etwas langsam agierte, bin ich bei der Datei-Verwaltung auf ein performanteres System umgestiegen. Für die Kalenderfunktionen habe ich mit Radicale (A Free and Open-Source CalDAV and CardDAV Server) auch einen einfachen, leichtgewichtigen Ersatz gefunden.

Radicales Eigenschaften sind vollkommen ausreichend für meinen Anwendungsbereich als Familienkalender und passen hervorragend zu dem eher leistungsschwachen Banana Pi:

  • Kalender-Anbindung von Clients über CalDAV, WebDAV und HTTP
  • Adressbuch-Anbindung von Clients über CardDAV, WebDAV und HTTP
  • kaum Installation und Konfiguration notwendig
  • arbeitet mit Dateien und benötigt keine Datenbank
  • implementiert nur die wichtigsten Spezifikationen
  • Unterstütung von Authentifizierung

Weiterlesen →

8. Januar 2018
von bruno
Kommentare deaktiviert für 34C3 – Chaos Communication Congress in Leipzig

34C3 – Chaos Communication Congress in Leipzig

Zwischen Weihnachten und Neujahr fand wieder der Chaos Communication Congress statt. Mit 15000 Teilnehmern kam das CCH in Hamburg nicht mehr als Austragungsort in Frage und so wurde die Veranstaltung auf das Leipziger-Messegelände verlegt.

Viele der spannenden 34C3 – Vorträge aus Technik, Politik, Kultur und Gesellschaft sind als Stream verfügbar, wobei man einige Vortragenden aus dem Internet und Fernsehen kennt:

Weiterlesen →

29. November 2017
von bruno
Kommentare deaktiviert für Schwachstellen finden dank Dependency-Check der OWASP

Schwachstellen finden dank Dependency-Check der OWASP

Diese Woche veröffentlichte die Non-Profit-Organisation OWASP (Open Web Application Security Project) nach vier Jahren Ihre neueste Version der OWASP Top Ten. Die OWASP widmet sich der Sicherheit von Web-Anwendungen und weist mit ihren Top Ten auf die gravierendsten Sicherheitsschwachstellen in Web-Anwendungen hin. Damit stärkt sie das Sicherheitsbewusstsein von Unternehmen und Entwicklern und gibt Hilfestellung bei der Entwicklung von sicheren Web-Anwendungen.

Neben der Erstellung von Security-Dokumenten und Security-Empfehlungen entwickelt OWASP auch freie Security-Werkzeuge. Mit ihrem Flagship-Projekt OWASP Dependency Check gehen sie die Nummer Neun der Top Ten an: Nutzung von Komponenten mit bekannten Schwachstellen (Using Components with Known Vulnerabilities). Eingesetzte Bibliotheken können mit dem Werkzeug auf Sicherheitsschwachstellen geprüft werden, die bei der National Vulnerability Database (NVD) dokumentiert sind. Weiterlesen →

11. August 2017
von bruno
Kommentare deaktiviert für Open Space – Zwei Tage durchgehende Kaffepausen

Open Space – Zwei Tage durchgehende Kaffepausen

In meinem aktuellen Projekt hatte ich das Vergnügen an einem Open Space teilzunehmen, zu dem mein Kunde in Stuttgart mehr als 50 Entwickler aus ganz Deutschland für zwei Tage eingeladen hatte. Aus verschiedenen Gründen war ein Austausch zwischen allen Entwicklern nach einem Jahr Entwicklungsarbeit sinnvoll:

  • die Entwickler konnten sich persönlich kennenlernen, während sie zuvor größtenteils nur Kontakt über Kollaborationswerkzeuge hatten (z.B. Confluence, Jira, Slack)
  • entwickelte Software sollte bald in Produktion gehen und der Betrieb ist von den Entwicklern zu leisten (DevOps-Ansatz)
  • unterschiedliche Projektteams müssen teilweise ähnliche Herausforderungen meistern und konnten sich dazu direkt austauschen

Das Konzept des Open Spaces wurde in den 80er-Jahren entwickelt. Teilnehmer betonten bei einer normalen Konferenz in einem abschließenden Austausch, dass die Gespräche in den Kaffeepausen noch spannender waren als die organisierten Vorträge. Daraus ergab sich die Idee, dass sich die Teilnehmer größtenteils selber organisieren sollten, um einen möglichst großen Ideen-Austauch zu unterstützen – fast wie durchgehende Kaffeepausen 🙂 . Es haben sich Regeln und Begriffe für einen Open Space etabliert, die Teilnehmer zu Beginn der Veranstaltung kennenlernen (Gesetz der zwei Füße, Schmetterlinge, Hummeln). Weiterlesen →

14. Mai 2017
von bruno
Kommentare deaktiviert für Offenes WLAN in Harpstedt mit den Freifunkern

Offenes WLAN in Harpstedt mit den Freifunkern

Am Donnerstag fand eine interessante Veranstaltung zu dem Thema „Offenes WLAN und Freifunk“ im Harpstedter Hotel „Zur Wasserburg“ statt. Der Bremer-Freifunker Simon Stößer stellte nach Einladung von den Jusos (vertreten durch Daniel Helms) die Freifunker-Community und deren Konzepte vor. In der Kreiszeitung ist dazu ein aufschlussreicher Artikel erschienen: „Freifunk Bremen“ strebt nicht nach Profit

Auf der Webseite der Freifunker und Wikipedia erfährt man die Hintergründe und die Ziele/Visionen der Freifunker:

  • Aufklärung und Sensibilisierung zum Thema Kommunikations- und Informationsfreiheit
  • Verminderung der digitalen Spaltung
  • Ungehinderte Verbreitung von Wissen und Ressourcen
  • Menschen dazu befähigen, eigene Netze aufzubauen und zu betreiben
  • Vorhandene und neue Sozialstrukturen fördern und vernetzen

Freifunk verbindet! from Philipp Seefeldt on Vimeo.

Weiterlesen →

29. April 2017
von bruno
Kommentare deaktiviert für GitLab – AllInOne-Werkzeug für Clean Code Developer

GitLab – AllInOne-Werkzeug für Clean Code Developer

Die Initiative Clean Code Developer (CCD) möchte mit Bewusstheit und Prinzipien die Professionalität im Software-Entwicklungsprozess stärken. Die Entwicklung soll durch den Einsatz der passenden Werkzeuge unterstützt werden:

In einem vorherigen Artikel habe ich SonarQube vorgestellt, mit dem wir Code Coverage Analyse und Metriken der statischen Codeanalyse abgedeckt haben. Für die anderen Werkzeuge können wir die passende Software installieren oder entsprechende Internet-Services nutzen: Git (Datei-Versionskontrolle), Redmine oder Trello (Issue-Tracking), Travis-CI oder Jenkins (Continuous-Integration, Continuous-Delivery)

Der bei Entwicklern beliebte Internetdienst GitHub vereinigt schon viele der Werkzeuge. Das zur Zeit noch weniger bekannte GitLab bietet uns sogar noch einen größeren Funktionsumfang, der die meisten Werkzeuge des Clean Code Developers umfasst. Wer seine Projektdaten keinem Cloud-Service anvertrauen kann oder möchte, der kann sich GitLab selber installieren und behält die volle Kontrolle über seine Daten.

GitLab Projekte

GitLab Projekte

Weiterlesen →

28. März 2017
von bruno
Kommentare deaktiviert für Sicherheit von Webanwendungen und der Saftladen

Sicherheit von Webanwendungen und der Saftladen

Als Betreiber einer Webseite/Webanwendung sollte man sich bewusst sein, dass ein System im Internet ständigen Bedrohungen ausgesetzt ist. Statische Webseiten bieten dabei weniger Bedrohungspotential als dynamische Webanwendungen mit Kundendaten, sodass die Auswirkungen von unkritisch bis unternehmensbedrohlich reichen können:

  • Manipulation/Abschaltung der Webseite
  • unbewusste Verbreitung von Schadcode (Würmern, Viren) bei den Besuchern
  • Übernahme des Servers in ein Botnet
  • Webserver als Einfallstor in das Unternehmensnetzwerk
  • Entwendung von Kundendaten (siehe Datenpanne/Datenleak)

Wenn man seiner Verantwortung für seine Webseite/Webanwendung nachgehen und sein System absichern möchte, dann stellt sich die Frage – wie? Einen guten Einstieg bieten die folgenden Links:

Wer auch mal aktiv in die Rolle eines Angreifers schlüpfen möchte, der kann sein gewonnenes Wissen als Hacker anhand des Webshops OWASP-Saftladen ausprobieren. Weiterlesen →

26. November 2016
von bruno
Kommentare deaktiviert für SonarQube für die Analyse des Programmcodes

SonarQube für die Analyse des Programmcodes

Während der Softwareentwicklung nutzen wir diverse Methoden im Team, um die eigenen Qualitätsanforderungen am Programmcode zu erfüllen, wie Code Reviews, Pair Programming oder Mob Programming. Ergänzend zu den Maßnahmen helfen Werkzeuge für automatisierte statische Code-Analysen. Im Java-Bereich werden PMD (Bad Practices erkennen), Checkstyle (Einhalt von Coding-Styles), FindBugs (Bugs finden) und Emma/JaCoCo (Testabdeckung) gerne genutzt. Das Konfigurieren und die Integration der Werkzeuge in die Entwicklungsumgebung oder der Build-Pipeline ist jedoch zeitaufwendig und nicht trivial.

Das freie verfügbare SonarQube vereinigt die genannten und auch viele andere Werkzeuge unter einer einheitlichen Oberfläche und stellt die Ergebnisse als Webanwendung bequem zur Verfügung. Wer also schnell mal ein Einblick in sein Projekt bezüglich folgender Punkte benötigt, der kann sich mit der angehängten SonarQube-Installationsanleitung einfach seinen eigenen SonarQube-Server aufsetzen.

  • Projekt-Übersicht mit dem zeitlichem Verlauf
  • Statistiken zum Projekt: Line of Codes, Tests, Testabdeckung,
  • Verletzungen von Programmierrichtlinien (Coding-Styles)
  • Erkennung von Bad Practices und Schwachstellen im Design
  • Erkennung von potentiellen Bugs, doppelten und ungenutzten Programmcode
  • Erkennung von Sicherheitslücken, z.B. mit Find Security Bugs
  • bereits angehäufte technische Schulden

SonarQube - Projekt-Übersicht

SonarQube – Projekt-Übersicht

Weiterlesen →

27. Oktober 2016
von bruno
Kommentare deaktiviert für Virtualisierung für DevOps mit Docker

Virtualisierung für DevOps mit Docker

Ein Trend der letzten Jahre im Bereich der Softwareentwicklung ist das Zusammenführen von Entwicklung (Development) und Betrieb (Operator), der mit dem Begriff DevOps beschrieben wird. Passenderweise entstehen dazu auch weitere neue Konzepte und Werkzeuge, die mich als Entwickler (und jetzt auch DevOp) unterstützen.

Ein wichtiges Konzept ist dabei Infrastructure as Code, dass die Server-Infrastruktur als Programmcode revisioniert abgelegt wird und jederzeit automatisiert aufgesetzt werden kann. Die Virtualisierungssoftware Docker nutzt dieses Konzept und ermöglicht es Entwicklern, Server-Infrastruktur besonders einfach auf unterschiedlichsten Umgebungen bereitzustellen und zu betreiben.

Zunächst einmal ein kurzer Überblick zu den Vorteilen von Virtualisierung mit Docker und dann folgt ein kurzes Beispiel.

  • einfach portierbare Docker-Container laufen auf unterschiedlichsten Umgebungen
  • lokale Entwicklungsumgebung funktioniert identisch wie die produktive Umgebung
  • Docker-Container lassen sich einfach ausrollen
  • Anwendungen laufen in einer Docker-Sandbox isoliert
  • Unterstützung vieler Cloud-Provider (Amazon ECS, Google Container Engine, MS Azure)
  • aktuelle Docker-Images der Software-Hersteller: Ubuntu, WordPress, Java, MySQL, PostreSQL
  • freie Software, umfangreiche Dokumentation und Werkzeuge

Weiterlesen →

30. September 2016
von bruno
Kommentare deaktiviert für Datenbank-Update zu PostgreSQL 9.6 + pgAdmin 4

Datenbank-Update zu PostgreSQL 9.6 + pgAdmin 4

Am Donnerstag ist die Version 9.6 des populären PostgreSQL-Datenbanksystems erschienen. Das passt mir gerade ganz gut, weil ich mein bestehendes PostgreSQL wegen noch nicht unterstützten JSON-Funktionen von der Version 9.4 auf 9.5 migrieren will.

Wer gerade nicht die neusten PostgreSQL-Funktionen nutzt, könnte trotzdem von einem Update profitieren. Gleichzeitig ist nämlich auch das Admin-Werkzeug pgAdmin in der Version 4 mit einem ganz neuen Design erschienen.

pgAdmin 4 - Dashboard

pgAdmin 4 – Dashboard

Falls man die Daten seiner alten Datenbank in die neue Datenbank überführen möchte, dann muss man die auszuführenden Schritte etwas planen. Bei mir sah das so aus: Weiterlesen →