25. April 2017

synTechTalk: Jenkins für Entwickler

synTechTalk: Jenkins für Entwickler (Bild: https://wiki.jenkins-ci.org/display/JENKINS/Logo / Creative Commons Attribution-ShareAlike 3.0 Unported License)

Jenkins ist ein hervorragendes Tool für DevOps, da es sowohl den Entwicklungsprozess unterstützen als auch automatische Deployments durchführen kann. In diesem Artikel möchten wir uns auf die Vorteile konzentrieren, die Jenkins im reinen Entwicklungsprozess bietet. Für die Durchführung der hier vorgestellten Demo benötigt man ungefähr 30 Minuten.

Inhaltsverzeichnis

  1. Installation
  2. Einrichtung
  3. Das erste Projekt
  4. Entwickler entlasten
  5. Beseitigung potentieller Fehlerquellen
  6. Unit-Tests
  7. Benachrichtigungen
  8. Fazit

Ganzen Beitrag lesen

09. März 2017

synTechTalk: Selenium – Web Browser Automation in Java

Selenium – Web Browser Automation in Java (Bild: http://www.seleniumhq.org/)

Dieser Blogpost richtet sich an alle, die dabei sind, die Nutzung von Selenium zu erlernen oder die ein generelles Interesse an Browser-Automatisierung haben. Anhand eines kleinen praktischen Beispiels wird demonstriert, wie Selenium zum Testen von Webseiten genutzt werden kann. Als Voraussetzung werden Java-Grundkenntnisse angenommen.

Inhaltsverzeichnis
1. Was kann Selenium?
2. Wie funktioniert Selenium?
3. Testen mit Selenium WebDriver
4. Page Object Design Pattern

1. Was kann Selenium?

Seleniums Hauptfeature ist die Browser-Automatisierung. Diese unterteilt sich in zwei Teile – einmal die Selenium IDE und einmal den Selenium WebDriver. Mit der IDE lassen sich im Browser Aktionen „aufnehmen“. Diese Aufnahmen werden in der eigenen Skriptsprache „Selenese“ gespeichert und können beliebig wiedergegeben werden. Dies ermöglicht die Automatisierung von Abläufen im Browser.

Ganzen Beitrag lesen

03. Februar 2017

synTechTalk: Smart Contracts – oder: die vielen Möglichkeiten der Blockchain

synTechTalk: Smart Contracts – oder: die vielen Möglichkeiten der Blockchain (Foto: Minerva Studio/Shutterstock.com)

Mit Blockchain-Technologien lassen sich nicht nur Währungen neu denken und gestalten – unter dem Schlagwort “Smart Contracts” sind völlig neue Geschäftsmodelle bei der Verwaltung von Verträgen möglich. Dieser synTechTalk beschäftigt sich mit Smart Contracts und den konkreten Anwendungsmöglichkeiten. Als digitales Abbild herkömmlicher Verträge haben Smart Contracts insbesondere dort Vorteile, wo mit digitalen Gütern beliebiger Art gehandelt wird. Neben Einheiten einer Währung sind dies etwa Aktien oder Rechte an intellektuellem Eigentum. – Also ein interessanter Ansatz, Rechtssicherheit in der digitalen Welt zu gestalten.

Im ersten Teil ging es um die Funktionsweise der Blockchain und den Anwendungsfall für eine Kryptowährung am Beispiel Bitcoin. Es lässt sich allerdings noch weitaus mehr mit einer Blockchain ermöglichen. Mit Hilfe von Smart Contracts können alle Arten von digitalen Gütern verwaltet und organisiert werden. Dazu gehören neben Einheiten einer digitalen Währung (z.B. Bitcoin) beispielsweise Identitäten, Firmenanteile, Stimmrechte oder Zugangsrechte. Ganzen Beitrag lesen

27. Januar 2017

synTechTalk: Die Blockchain – eine Kette voller neuer Möglichkeiten

synTechTalk: Die Blockchain – eine Kette voller neuer Möglichkeiten (Bildquelle: Flickr, Jason Benjamin, CC BY-SA 3.0 DE, https://www.flickr.com/photos/jason_benjamin/12795733984)

Wir beschäftigen uns bei synaix nicht nur damit, wie sich Blockchain-Konzepte in zukünftige Geschäftsmodelle einfügen lassen, sondern auch mit deren konkreter Implementierung. In unserer Reihe „synTechTalk“ stellen wir die Konzepte näher vor.

Die Blockchain ist eine dezentrale Datenbank zur digitalen Organisation von Eigentumsrechten. Das Besondere an diesem Prinzip ist der aus dem Netzwerk hergestellte Konsensmechanismus, der die einzelnen Datenbankeinträge authentifiziert. Aufgrund der Dezentralität lässt sich hier auf Mittelsmänner verzichten. Damit bietet die Blockchain einen neuen Ansatz, sichere Transaktionen in der digitalen Welt abzubilden und bisherige Technologien zu verdrängen.

Technisch betrachtet ist eine Blockchain eine Datenbank, die als Kopie verteilt auf vielen Rechnern liegt. Diese Rechner bilden zusammen ein virtuelles Netzwerk. Dies impliziert, dass jeder Teilnehmer des Netzwerks die Informationen in der Datenbank lesen kann. Änderungen am Stand der Daten werden transaktional durchgeführt, also entweder komplett oder gar nicht, denn im Fehlerfall werden keine Änderungen festgeschrieben. Ganzen Beitrag lesen

08. Dezember 2016

synTechTalk: OSGI Advanced

synTechTalk: OSGI advanced - Bild: Lily http://www.freevector.com/jigsaw-puzzle (CC BY 4.0), synaix

Nach der Einführung in die Welt von OSGI gehen wir in diesem Beitrag einen Schritt weiter und beschäftigen uns mit einigen Tricks und Hilfsmitteln, mit denen wir die Services noch einfacher und besser gestalten können.

Alle hier vorgestellten Beispiele wurden auf dem Apache Servicemix getestet. Die Beispiele sollten auch in anderen Containern laufen, dafür sind ggf. einige kleinere Anpassungen notwendig. (Ein Hoch auf den Standard! ;-))

Funfact: Best Practice

Wenn man sich tiefergehend mit dem Standard beschäftigt und ein wenig recherchiert, stößt man auf einige Best Practices bezüglich OSGI. Doch nun kommt der absolute Geheimtipp: Wenn man mit OSGI arbeiten möchte, dann hält man sich am besten weit entfernt von den implementierten Klassen des Standards.

Uups! Wie kann es denn Best Practice sein, nicht mit OSGI zu arbeiten, wenn man mit OSGI arbeiten möchte? Ganzen Beitrag lesen

22. November 2016

synTechTalk: Stellschrauben der Suchmaschinen-Optimierung

synTechTalk: Stellschrauben der Suchmaschinen-Optimierung - Foto: pixabay.com/geralt

Wer schnell Informationen finden möchte, nutzt heute Internet-Suchmaschinen. Sie durchsuchen Milliarden von Webseiten auf Relevanz für unsere Anfrage und liefern uns vorselektierte Trefferlisten. Ziel jedes Webseitenbetreibers ist es natürlich, eine Platzierung möglichst weit oben in den Suchergebnissen zu erreichen. Im heutigen synTechTalk geben wir einen Überblick über die verschiedenen Stellschrauben, die der eigenen Webseite in den immer komplexeren Suchalgorithmen zu mehr Relevanz verhelfen.

Suchmaschinenanbieter

Die Wahl bei der Suchmaschine ist für die meisten Internetnutzer selbstverständlich Google. Konkurrenten wie Yahoo oder Bing und viele kleinere Suchmaschinenanbieter machen alle zusammen nur einen geringen Prozentsatz aus. Da jeder Suchmaschinen Betreiber das Ziel verfolgt, möglichst relevante Suchergebnisse zu liefern, ist die Suchmaschinen-Optimierung (SEO) für alle Betreiber sehr ähnlich. Ganzen Beitrag lesen

20. Oktober 2016

synTechTalk: GUI-Entwicklung mit JavaFX (Einführung)

synTechTalk: GUI-Entwicklung mit JavaFX (Einführung) - Foto: synaix GmbH

Heute im synTechTalk: Eine Einführung in die GUI-Entwicklung mit JavaFX.

Java bietet schon lange die Möglichkeit, grafische Oberflächen zu erstellen. Mit JavaFX wird dies noch einfacher. Zudem bietet JavaFX erstmals die Möglichkeit, die Anwendung mit Hilfe von CSS zu stylen und damit schnell ein modernes Design bereitzustellen.

Die Vergangenheit

  • AWT – Ein altes Framework für einfachste Oberflächen
  • Swing – Eine Erweiterung für AWT, die viele- aber nicht alle, Standard-Oberflächen-Elemente bereitstellt.

Die Gegenwart

JavaFX – Völlig neu entwickelt, modernes Design und einfach erweiterbar.

Genau wie schon bei AWT und Swing gibt es bereits eine Menge Bibliotheken für JavaFX.
Im Gegensatz zu den alten Frameworks gibt es aber auch einfache Tools zum Erstellen von nativen Launchern/Installern (.exe und co). Ganzen Beitrag lesen

30. August 2016

synTechTalk: AngularJS CRUD Beispielapplikation

Screenshot: synaix, AngularJS Logo by AngularJS.org website, MIT, https://commons.wikimedia.org/w/index.php?curid=19180291

Mit Hilfe von AngularJS lassen sich „leichtgewichtige“ Web-Anwendungen entwickeln. Im heutigen synTechTalk Beitrag stelle ich ein simples Beispiel für eine CRUD (Create, Read, Update, Delete) Webanwendung vor, die sich später einfach erweitern lässt.

Dabei gehe ich davon aus, dass Du erste Grundkenntnisse von AngularJS in der Version 1.x besitzt und daher auch schon einmal mit JavaScript und JSON gearbeitet hast. Außerdem sollten Kenntnisse in HTML(5) vorhanden sein.

Zunächst zeige ich den Inhalt der jeweiligen Datei und erläutere dann ein paar Worte zu den wichtigen Stellen.

Als Beispiel nehme ich eine Task-Entität, mit der wir uns kleine Aufgaben wie auf einer ToDo Liste merken können.

Die Dateistruktur

Fangen wir zunächst mit der Datei-Struktur des Projektes an:

  • Wir benötigen eine index.html, die als unser Frame fungiert, sowie einen js und partials Ordner.
  • Im js Ordner erstellen wir eine app.js. Diese ist das Herz unserer Applikation und versorgt unsere Views mit dynamischen Daten.
  • Im partials Ordner legen wir dann unsere Views in Unterordnern an sowie eine index.html, die den Inhalt der Hauptseite anzeigt.
  • Für die Tasks erstellen wir noch einen Unterordner in partials mit den Views für das Erstellen sowie Anzeigen der Tasks.

Ganzen Beitrag lesen

22. Juni 2016

synTechTalk: OSGI – eine Einführung

synTechTalk: OSGI - eine Einführung - Bild: Lily http://www.freevector.com/jigsaw-puzzle (CC BY 4.0)

Heute im synTechTalk: Eine Einführung in OSGI.

Weg von monolithischen Anwendungen, hin zu unabhängigen Services. Diesen Slogan hat sich die OSGI-Alliance (Open Services Gateway initiative) auf die Flagge geschrieben und viele Entwickler springen auf diesen Zug auf.

Der OSGI Standard

Die OSGI-Alliance hat einen Standard entwickelt, der es erlaubt, viele einzelne Java-Services zu verwalten. Das hat den Vorteil, dass diese Services unabhängig voneinander ausgetauscht werden können und laufen können. Es ist ebenfalls möglich, Services auf mehrere Systeme zu verteilen um eine Micro Service Architektur aufzubauen.

Die OSGI stellt dafür, wie bereits erwähnt, nur den Standard zur Verfügung. Daher gibt es mehrere unterschiedliche Implementierungen. Das Gute an dem Standard ist jedoch, dass entwickelte Inhalte auf jeder OSGI-Umgebung laufen können.

Mit dem Standard arbeiten: von Bundles und Services

Im Kontext von OSGI gibt es zwei wesentliche Begriffe: Bundles und Services.

Bundles sind abgeschlossene Softwareeinheiten, die für eine bestimmte Aufgabe implementiert werden. Bundles sind Java-Programme ohne Main-Methode. Stattdessen haben sie eine Activator-Klasse, die für das Starten eines Bundles zuständig ist.

Ganzen Beitrag lesen

04. Mai 2016

synTechTalk: WebSockets – eine Kurzvorstellung

Foto: pixabay.com/blickpixel

Zur Umsetzung erfolgreicher digitaler Geschäftsmodelle braucht es solides Technologie- und Architektur- KnowHow. Unsere DEV und OPS Teams geben Einblicke.

HTML5 hat eine Menge praktischer Neuerungen mit sich gebracht, Websockets sind eine davon.

WebSockets – was ist das überhaupt?

Kurz gesagt: WebSockets ermöglichen eine schnellere Kommunikation in beide Richtungen zwischen Browser und Webserver.

Der Alltag im Web sieht bekanntlich so aus: Der Client (z.B. Browser) fragt eine Ressource an, der Server antwortet. Der Client schickt die nächste Anfrage, der Server antwortet wieder.

So weit, so gut. Aber was, wenn der Server uns sofort etwas schicken will, zum Beispiel „Hey, du hast ’ne neue Nachricht!“? Bisher muss er warten, bis der Nutzer das nächste Mal die Seite aufruft und kann ihm dann die neue Nachricht mit in die Antwort packen. Dass das aber unpraktisch, langsam und nervig für den Nutzer ist, leuchtet wohl jedem ein, der schonmal gechattet hat. Ganzen Beitrag lesen