Docker Meetup in der x-root

Comment

Docker Meetup in der x-root

Im September startete eine Meetup-Reihe in Rosenheim für Softwareentwickler und Dev Ops. Die x-root Software GmbH organisierte gestern eines dieser Meetups zum Thema Virtualisierung mithilfe von Docker-Containern.

Nico Meisenzahl von panagenda begrüßte die knapp zwanzig Teilnehmer, bevor die Vorträge starteten. Tobias Jonas von der innFactory GmbH schaffte in “Introduction to Docker” ein gemeinsames Verständnis von der Virtualisierung mithilfe von Docker-Containern und schaffte damit einen guten Einstieg. David Steinkopff vertiefte dieses Wissen anschließend in “Von der virtuellen Maschine zum Container-Netzwerk mit docker-compose”. Anschließend ließ man den Abend ausklingen bei einem lockeren Kommunikationsaustausch bei Drinks & Snacks.

Wir bedanken uns bei allen Teilnehmern und freuen uns schon auf das nächste Meetup!

Comment

Vaadin DevDay Munich 2018

Comment

Vaadin DevDay Munich 2018

Wir waren auf dem Vaadin DevDay in München und haben uns dort auf den neuesten Stand hinsichtlich des Webframeworks für Rich Internet Applications gebracht.

Die Herausforderung verkürzter Release-Zyklen sollte man mit einer Pipeline aus Cloud-Technologien begegnen. Hier bieten sich beispielsweise Docker und Kubernetes an, um die Software mit verschiedenen Version an Java Compilern parallel zu testen. Ein Thema, das wir mit Sicherheit weiter verfolgen werden. Die in "Perfect Vaadin prototyping and development setup" vorgestellten Werkzeuge werden uns sicher dabei helfen. 

In "Using the Grid in Vaadin 8 and 10" wurde Grid als Kernkomponente vorgestellt und seine Entwicklung zwischen Vaadin 8 und 10 demonstriert. "Making forms in Vaadin 10" beschrieb das Grundgerüst der Web Components in Vaadin und ging zusätzlich auf Data Binding ein. Im Vortrag "Make a health check for your Vaadin application" wurde ein Prozess erläutert, durch den wir bereits in zahlreichen Projekten gegangen sind: die Identifikation von Memory Leaks und damit verbundenen Performance-Problemen in Java Anwendungen. 

"Spring patterns for Vaadin 10" war ein guter Vortrag zu Dependency Injection und dem Inversion of Control-Entwurfsmuster, dessen Prinzipien auch unabhängig von Spring anwendbar sind.

In der abschließenden Diskussionsrunde stellte sich das Vaadin-Team den Fragen, Kommentaren und Anmerkungen der anwesenden Teilnehmern und kommunizierte erfreulich offen über die Roadmap. Wir haben viele Informationen mitgenommen und sind schon gespannt darauf, wie sich die neuen Erkenntnisse im Arbeitsalltag umsetzen lassen. 

Comment

Die x-root auf der IKORO 2018

Comment

Die x-root auf der IKORO 2018

Die IKORO ist die Industrie- und Kontaktmesse der Hochschule Rosenheim. Die zweitägige Messe feiert in diesem Jahr ihr 25. Jubiläum und begrüßt rund 180 regionale und überregionale Unternehmen. Natürlich dürfen auch wir nicht fehlen und haben uns mit zweien unserer Softwareentwickler auf den Weg zur Hochschule Rosenheim gemacht. Mit im Gepäck haben wir einige Referenzen aus unseren Schwerpunkten Backend Development und Mobile Applications sowie Stellenangebote für ebendiese.

Wir freuen uns auf euch!

Comment

JavaLand 2018: Eine Achterbahn der Entwicklergefühle

Comment

JavaLand 2018: Eine Achterbahn der Entwicklergefühle

Rollercoaster & Java – eine Kombination, die gewöhnlich Spieleprogrammierern vorenthalten ist. Doch in Europas größter Java-Konferenz wurde dies für mehr als 1.900 Java-Enthusiasten zur Wirklichkeit - auf der JavaLand 2018, die heuer ihr fünfjähriges Jubiläum feiert. Unser Team Kiska durfte, neben diversen Achterbahnspektakeln, die aktuellen Neuheiten und Entwicklungen rund um die Technologie Java genießen.

Der Newcomer und Softwareentwickler Felix Schumacher demonstrierte in seinem Vortrag „Generierung von Regressionstests für Legacy Code“ einige interessante Konzepte zur Steigerung der Codecoverage von Legacy-Anwendungen. Diese „historisch gewachsenen“ Anwendungen lassen oft nur schlecht Erweiterungen zu. Um ein mögliches Refactoring zu gewährleisten, werden Regressionstests generiert, die bis zu einem gewissen Grad die Testbarkeit gewährleisten. Randoop und Evoseite sind Beispiele für solche Tools, die in diesem Rahmen vorgestellt wurden.

100% Code Coverage sind in Java Enterprise Anwendungen oft nur schwer zu erreichen. Stefan Macke, Softwarearchitekt und Anwendungsentwickler der Krankenversicherung Alte Oldenburger zeigte verschiedene Vorgehensweisen, wie übliche Komponenten einer Java-EE-Anwendung ohne großen Programmieraufwand isoliert voneinander getestet werden können. Von "einfachen" Unit-Tests mit JUnit 5, Spock und Mockito über leichtgewichtige Integrationstests mit Derby und Jetty bis hin zu kompletten End-to-End-Tests mit Arquillian, Selenium und WireMock wurden diverse Möglichkeiten für automatisierte Tests von Java-EE-Komponenten vorgestellt.

Ein weiterer sehenswerter Talk war der Vortrag von Lars Röwekamp mit dem Thema „Mittendrin statt nur dabei: Offline-first-Architekturen“. Dabei ging es um Webanwendungen die auch ohne stabile Internetverbindung richtig funktionieren. Im Gegensatz zum Always-on-Paradigma traditioneller Webanwendungen ist beim Offline-first-Ansatz eine permanente Netzwerkverbindung nicht Pflicht, sondern Kür. "Act locally, sync globally" statt dem bekannten Request-Response-Modell diente als Fazit des 40minütigen Talks.

Als herausragend stellte sich der Talk „Fallacies of Doom - Lessons Learned from Porting Doom 3 to Java“ von Mahmoud Abdelghany heraus. Dieser junge Programmierer portierte vor einigen Jahren den Egoshooter Doom 3 nach Java. Neben den Grundlagen der Spieleentwicklung wurde auf wesentliche Unterschiede und Hürden im Vergleich zur Entwicklung von Spielen mit C++ eingegangen.

Die JavaLand ist mit ihrer ausgefallenen Location für jeden Java-Entwickler und Rollercoaster-Fan auf jeden Fall einen Besuch wert. Wünschenswert wäre eine Erhöhung der Vortragsdauer der einzelnen Talks. Viele Sprecher mussten aus zeitlichen Gründen immer wieder Folien überspringen.

Comment

MobileTech 2018: Internet of Things, Voice Assistants, Augmented Reality

Comment

MobileTech 2018: Internet of Things, Voice Assistants, Augmented Reality

Die Münchener MobileTech 2018 führte seine Teilnehmer durch die Welt des Mobile Development. Wir waren mit zwei Leuten vor Ort und haben uns interessante Vorträge über das Internet of Things, Voice Assistants und Augmented Reality angehört. Viele dieser Vorträge haben uns neue Denkanstöße und Tipps geliefert, wie wir unsere tägliche Arbeit als Softwareentwickler verbessern und erleichtern können.

"Flutter - Yet another cross-platform solution?" von Alexander Frank (arconsis IT-Solutions GmbH) und Benedict Pregler (Schweizer Radio und Fernsehen) weckte unser verloren geglaubtes Interesse an plattformübergreifenden Lösungen. "Beautiful native apps in record time", verspricht Google und liefert mit Flutter ein Framework, welches native Apps auf Basis der hauseigenen Programmiersprache Dart erzeugt. Wir werden ein waches Auge auf die Entwicklung des, sich aktuell noch im Beta-Stadium befindlichen, Frameworks richten.

Alexander von Below von der Deutschen Telekom entführte uns in die Welt des Machine Learning in seinem Vortrag "I am Electro: My brain is bigger than yours! - Machine Learning in der Theorie. Die Praxis auf iOS" und kommentierte dieses mit zwei schlagfertigen Onelinern: "Korrelation entspricht nicht Kausalität", mahnt davor, Zusammenhänge aus unzureichenden Informationen abzuleiten. "Garbage in, Knowledge out" bekräftigt, dass Machine Learning nicht die Antwort auf alle Fragen ist. 

Christian Schwendtner (PROGRAMMIERFABRIK GmbH) präsentierte eine Query language for your API in seinem Vortrag "GraphQL - forget (the) REST?". GraphQL bildet eine interessante Alternative zu REST und identifiziert sich als Bindeglied zwischen schemalosen und schemabasierten Webservices - ohne den Overhead eines SOAP mit sich zu bringen.

Dass 2018 den Voice Assistants gehört, ist seit dem Raketenstart von Amazon Alexa kein Geheimnis mehr. Peter Friese (Google) demonstrierte die Implementierung eines solchen in seinem Vortrag "Building high quality for Google Assistant" und schaffte damit ein gemeinsames Verständnis von den Vorteilen und Fallstricken eines Voice Assistants.

Wir freuen uns über das geballte Wissen, das an diesen zwei Tagen in knapp dreißig Vorträgen konzentriert wurde und danken den Veranstaltern der MobileTech herzlich! Bis zur nächsten MobileTech!

Comment

Concat Konferenz 2018 in Salzburg

Comment

Concat Konferenz 2018 in Salzburg

Wir waren am Samstag, den 3. März 2018, auf der zweiten concat in Salzburg. Diese von Mitarbeitern und Studierenden der FH Salzburg veranstaltete Konferenz befasste sich mit den Themen Web und UX. 

Ungewöhnlich war der Einstieg mit einem zutiefst technischen Vortrag zu den Interna von Googles JavaScript Engine V8. Hier hätte der geneigte Zuhörer vermutlich eine Keynote über über die Kompatibilität von Webbrowsern erwartet, die dann später von Ola Gasidlo vorgetragen wurde. Ein Vortrag über die serverseitige Anwendung von Swift war vor allem für unsere iOS-Entwickler interessant, allerdings fehlt es hier noch etwas an Reife. Einen schönen Einblick in die Entwicklung von Mozilla gewährte uns Ursula Sarracini, die die Herausforderung von alter und neuer Codebasis unter dem Dach von Firefox darstellte.

Wirklich umgehauen hat uns der Vortrag "Build bridges, not walls - Design for users across cultures" von Jenny Shen. Sie verdeutlichte die Unterschiede zwischen verschiedenen Kulturen anschaulich und führte dem Publikum unbewusste Stereotypen in unterhaltsamer Weise vor. Hierdurch lernte man von Implikationen, die für eine gute UX zu berücksichtigen sind.

Die Konferenz war insgesamt sehr gut organisiert, auch wenn wir uns für das nächste Mal längere Vortragsdauern als zwanzig Minuten wünschen würden. Vielleicht könnte man sich hier an der NordicJS orientieren und die dritte concat auf zwei Tage verteilen, um den einzelnen Referenten mehr Zeit zu gewähren.

Comment

Building Evolutionary Architecture

Comment

Building Evolutionary Architecture

Softwarearchitektur ist ein abstraktes Konstrukt: am Anfang definiert man am Whiteboard verschiedene Komponenten sowie deren Zusammenspiel und schreibt möglicherweise umfangreiche Dokumentation. Während der folgenden Umsetzung merkt man früher oder später, welche Aspekte man selbst oder der Kunde vergessen hat. Dann werden Prozesse und Methodiken benötigt, um den notwendigen Anpassungen gerecht zu werden. 

Anlässlich dieses Themas veranstaltete man vergangenen Donnerstag, den 15.02.2018, eine Buchvorstellung in München. "Building Evolutionary Architecture" wurde von zwei der drei Autoren, Rebecca Parsons und Neal Ford, vorgestellt. Wir waren dabei und hörten uns bekannte und unbekannte Erfahrungen zur praktischen Weiterentwicklung bestehender Softwarearchitekturen an.

Das Fazit dieses Abends deckt sich mit unseren Erfahrungen: Architektur ist und bleibt die Summe seiner Trade-offs.

Comment

Android Smart Lock for Passwords and its pitfalls

Comment

Android Smart Lock for Passwords and its pitfalls

Recently we convinced one of our customers that Smart Lock for Passwords would be a neat feature for his app.

At the moment users have to enter their credentials on every login and every new device. We could and should increase customer satisfaction by offering a seamless transition from one installation to another.

Smart Lock for Passwords is a password management system that Google introduced in 2015. It stores third-party credentials in its safe and offers them to users who authenticate via Google, Facebook, Twitter or other accounts. Smart Lock is an alternative to Dashlane, Kaspersky Password Manager, LastPass and other password managers.

We are not talking about the entirely different Smart Lock, an intelligent screen lock, which was integrated into the Android operating system from version 5.0 onwards.

During the implementation of Smart Lock for Passwords we met several problems surrounding its container, the Google Play Services.

This blog post serves as a documentation as well as a guide for other developers that may stumble upon the same problems.

  • Google Play Service 11.8.0 and ProGuard
    Upgrading from version 11.6.2 to 11.8.0 comes with one grain of salt: Changes in the default shrinker lead to build breaks with a ProGuard configuration parser error. The solution is to downgrade to version 11.6.2 (more on that later) or to enable ProGuard for debug builds - set minifyEnabled and useProGuard to true - increased build times included (Instant Run to the rescue). Read More
     
  • Android O and AutoFill
    AutoFill shares the same keystore as Smart Lock for Passwords. It is therefor the default method for password convenience on devices with Android O and higher. This clashes with Smart Lock for Passwords. The Google Play Services 11.8.0 brought forceEnableSaveDialog() to disable this default behavior. Sadly there is no public method to set this flag on lower versions, other than using reflection or other dirty hacks. Read More

At the end we decided to stick with Smart Lock until Android O reaches a wider audience (as of January 2018 its distribution rate is less than one percent). Since we have to deal with AutoFill, we upgraded to the Google Play Services 11.8.0 and enabled ProGuard for the debug build. AutoFill is still on our todo list but at the moment we decided to deactivate it for the app by setting setImportantForAutofill.

Comment

droidcon 2017

Comment

droidcon 2017

Die droidcon London öffnete zum neunten Mal ihre Vorhänge und lud damit Android-Entwickler aus aller Herren Länder in das Business Design Centre ein. Die x-root nahm zum ersten Mal teil und schickte zwei ihrer Ingenieure über den Ärmelkanal. Hier konnten wir uns am 26. und 27. Oktober ein Bild davon machen, weshalb diese Konferenz als eine der bedeutendsten im Bereich Mobile Development gilt.

Die Konferenz wurde von Chet Haase und Romain Guy eingeleitet, die man aus dem Android Developers Backstage Podcast kennt. In dieser Keynote "Android: A Retrospektive", wie auch im höchst amüsanten "Comedy Talk" über eine fiktive Programmiersprache namens F.A.R.T., bewiesen sie ihr komödiantisches Talent, ohne jedoch den Fokus auf die harten Fakten und informativen Randnotizen zu verlieren.

Anschließend gaben sich Entwickler von Google, Facebook, Pinterest, xda developers und weiteren Softwarehäusern die Klinke in die Hand. Thematisch deckte man Android als Ganzes ab: Machine Learning, Reactive Programming, Android Security, API Development, Firebase, Git, Gradle und Lint. Der offensichtliche Star der Show war natürlich Kotlin, welches am zweiten Tag in einer Reihe von Vorträgen propagiert wurde. "Accessibility @ Scale" und "What's really new in Android Wear" beschäftigten sich hingegen mit Nischenthemen und erlaubten wichtige Blicke über den Tellerrand.

Am zweiten Tag betrat der eigentliche Star der Show die Bühne: Kotlin wurde im Mai als First-Class-Programmiersprache auf der Google I/O '17 deklariert. Mit Android Studio 3.0, welches wenige Tage zuvor freigegeben worden ist, erhält es offiziellen und tiefintegrierten Support. Die gut besuchten und zahlreichen Vorträge über Kotlin beweisen nun endgültig, dass es in der breiten Wahrnehmung der Android-Welt angekommen ist.

Die finale Keynote gab Jake Wharton, der die droidcon UK 2017 mit einem Blick hinter die Kulissen beendete: "Sinking your teeth into Bytecode" schaffte Verständnis dafür, was mit dem Code geschieht, den wir in Java und Kotlin hinterlassen, und wieso komplexe Tools wie ProGuard ihre Daseinsberechtigung haben.

Unser Fazit

Wir haben viel gelernt, tolle Menschen getroffen und viele Eindrücke in London gesammelt.
Daheim angekommen können wir es kaum erwarten, das neu Gelernte auszuprobieren und zu besseren Entwicklern zu werden!

Cheers!

Comment

Pixel all the way

Comment

Pixel all the way

Google präsentierte gestern eine neue Generation von Hardware in vielsagenden Farben wie Just Black, Clearly White und ... Kinda Blue.

Die Smartphone-Sparte Google Pixel erhält zwei Nachfolger: Das Google Pixel 2 von HTC erinnert mit seinen 5 Zoll noch stark an den Vorgänger und erhält die üblichen Detailverbesserungen. Einen größeren Satz nach vorne macht das Google Pixel 2 XL, welches seine 6 Zoll mit einem vergleichsweise schlanken Gehäuse kaschiert, wie man es bereits von den Edge-to-Edge-Displays eines Xiaomi Mi Mix, LG G6, Samsung Galaxy S8 oder iPhone X kennt. Darüber hinaus unterscheiden sich die Geräte lediglich in der Auflösung (2K in 18:9 statt Full HD in 16:9) und der Akkukapazität (3520 statt 2700 mAh). Der Klinkenanschluss wurde gestrichen und bleibt damit, ähnlich wie das drahtlose Laden, hinter neuen Standards und effizienteren Technologien zurück.
Neu bedeutet hier: Schnellladefunktion für sieben Stunden Akkulaufzeit innerhalb von fünfzehn Minuten und Bluetooth 5.0 für eine verbesserte Reichweite und Übertragungsgeschwindigkeit. Als kleines Highlight erwies sich eine Randnotiz: Das mit Project Treble gesetzte Ziel wurde ebenfalls erfüllt: Die Pixel 2 erhalten drei Jahre lang Betriebssystemupdates.

Die Bluetooth-Kopfhörer Pixel Buds fungierten in einer beeindruckenden Demonstration als Dolmetscher und übersetzten in Echtzeit zwischen Englisch und Schwedisch. Das erste Chromebook von Google hört auf den Namen Pixelbook und positioniert sich im oberen Mittelfeld aktueller Ultrabooks sowie vor seinem indirekten Vorgänger Pixel C dank Stiftbedienung und Chrome OS. Der Sprachassistent Google Home wird um den günstigeren Google Home Mini sowie den hochklassigen Google Home Max ergänzt.

Google Pixel Buds, Pixel 2 XL, PIxel 2, Home Mini, Home, Home XL, Clips, Daydream View, Pixelbook (v.l.n.r)

Comment

innVation:now - Neues Meetup im Stellwerk 18

Comment

innVation:now - Neues Meetup im Stellwerk 18

Am 21. September lud das Startup innFactory zum neuen Meetup innVation:now. Passend zum Veranstaltungsort, dem Rosenheimer Gründerzentrum Stellwerk 18, beschäftigte man sich mit dem Innovationsbegriff und der Innovationsfähigkeit von Unternehmen und Hochschulen.

Tobias Jonas eröffnete den Abend, bevor Ralf Exler, Head of Innovations bei Kathrein, die Beweggründe hinter Innovation analysierte und wie sich das im Firmenumfeld fördern lässt. Sein Vortrag war gespickt mit Anekdoten und konnte auch ohne Foliensatz fesseln. Prof. Dr. Gerd Beneken warb für das Innovationslabor der Hochschule Rosenheim, welches sich an Firmen aus der Region richtet und bereits eine beachtliche Anzahl an Projekten realisiert hat. Sebastian Bayerl stellte seinen Kriterienkatalog zur Messung der Innovationsfähigkeit vor, an dem er zusammen mit teilnehmenden Unternehmen arbeitet. 

Wir ziehen unseren Hut vor dem gelungenen Auftakt eines vielversprechenden Meetups und freuen uns schon auf den nächsten Abend!

Comment

Nordic.js 2017

Comment

Nordic.js 2017

Am 07. und 08. September pilgerten über 1.800 Softwareentwickler nach Stockholm zur vierten Nordic.js. Diese JavaScript-Konferenz glänzte bereits in der Vergangenheit mit hochwertigen Vorträgen und außergewöhnlichen Rahmenveranstaltungen. In diesem Jahr lag der Fokus auf Frameworks, Bibliotheken und Schnittstellen sowie unserer ethischen Verantwortung als Teil der Technologiebranche.

"Des hamma scho immer so gmacht", klingt auch hier in Bayern seltsam. Die Softwareentwicklung ist einem steten Wandel unterzogen - im Kleinen und im Großen. Anstatt für jedes Problem eine eigene Lösung zu zaubern, gilt es mittlerweile in vielen Fällen, die am besten geeignete Lösung zu finden. In der Welt von JavaScript kommt das oftmals einer Suche nach der Nadel im Heuhaufen gleich. Sacha Grief verschaffte uns daher in seiner Keynote "The State of JavaScript" gekonnt und auf unterhaltsame Art und Weise einen Überblick über aktuelle Trends und interessante Drittanbieterlösungen.

Laney Kuenzel Zamore und Adam Kramer von Facebook gewährten Einblicke in die Entstehungsgeschichte der Schnittstellenbeschreibungssprache GraphQL und ihrem JSON-Schema. Feross Aboukhadijeh demonstrierte Webanwendungen, deren Inhalte mithilfe der WebRTC API dezentral gehostet werden. Ben Schwarz von Calibre optimierte Ladezeiten und legte Webentwicklern ein Motorola Moto G samt 3G ans Herz, um ihre Webseiten in einer realitätsnahen Umgebung zu testen. Die Auszeichnung für die meisten Wörter pro Minute verdiente sich übrigens Mark Nadal, welcher P2P-Mesh-Datenbanken in einem irrsinnigen Tempo erklärte und live in JavaScript demonstrierte - sehr beeindruckend! Das Ergebnis werden wir wohl in GunDB sehen.

Karolina Szczur vermittelte in ihrem Vortrag "Building Inclusive Communities" elementare Werte. Die Technologiebranche ist ein großer Pool an Menschen verschiedenster Herkünfte und Wertvorstellungen. Um diese Branche gemeinsam voranzubringen, müssen wir uns unserer Privilegien bewusst werden und eigene Vorurteile ablegen. Beim "Dinner with strangers" verfolgt man ein ähnliches Ziel, als man sich zum Abendessen in der Stockholmer Innenstadt verabrete. Der Clou an der Sache: Anstatt sich mit den immer gleichen Bekanntschaften zu treffen, wurden die Gruppen wild zusammengewürfelt, wodurch Leute aus Deutschland, Polen, Portugal, Schweden, Puerto Rico und der Schweiz am gleichen Tisch saßen und sich über Sprachen, Kulturen und Technologie unterhielten. Sehr spaßig!

 Pingpong im Schwarzlicht zu Lasershow und Technomusik

Pingpong im Schwarzlicht zu Lasershow und Technomusik

 Code in the dark: Reverse Engineering einer Website in 15 Minuten ohne Preview

Code in the dark: Reverse Engineering einer Website in 15 Minuten ohne Preview

Comment