Software-Entwickler Backend (m/w/d)
19.07.2023Schwerpunkt: Backend-Entwicklung mit Java
Mit individueller Softwareentwicklung ist die VIRALITY GmbH als zuverlässiger Partner unter anderem für mehrere DAX Unternehmen tätig. Dabei erstellen wir performante Software im Intranet, mobil, im Web, nativ oder plattformübergreifend, geeignet für Smartphones, Wearables oder Desktop PCs. Als Ausgründung der LMU München steht der Bereich Forschung & Entwicklung für uns als Innovationsmotor. Forschungsprojekte mit mehreren Industriepartnern und dem Land Bayern als Partner stärken unsere Kreativität und unser Know How.
Dein Aufgabengebiet
- Entwicklung von Backend Software auf Basis von Java Frameworks
- Konzeption und gemeinsame Lösungsfindung mit unseren Kunden
- Selbstständiges Arbeiten und Umsetzen von komplexen Aufgabenstellungen
Deine Kenntnisse
- Umfangreiches Wissen in Java
- Erfahrung mit Frameworks wie Spring und Play
- Kenntnisse in der Web Entwicklung (REST Services, SOAP, AJAX)
- Kenntnisse bei der Modellierung (UML)
- Erfahrung bei Softwaretests (JUnit, Mocking)
- Erfahrung bei Entwicklungsprozessen (Scrum, Agile)
- Routine im Umgang mit Versionsverwaltung (GIT)
Persönliche Voraussetzungen
- Abgeschlossenes Studium (Informatik, Medieninformatik) oder vergleichbar
- Gute Deutsch und Englisch Kenntnisse in Wort und Schrift
- Selbstständige und zuverlässige Arbeitsweise
- Teamfähigkeit und kundenorientierte Arbeitsweise
- Spaß in der Kombination eines kleinen Startups und der Arbeit mit internationalen Großkonzernen
Wir bieten:
- die Mitarbeit bei Projekten mit namhaften Kunden und zukunftsweisenden Technologien in anspruchsvollen Projekten
- Raum, sich zu verwirklichen in einem wachstumsstarken Umfeld, das erfolgreiches und selbständiges Arbeiten ermöglicht
- flexible Arbeitszeiten, ein junges Team und flache Hierarchien
- kostenlosen Kaffee und frisches Obst für unsere Mitarbeiter 😉
Interessiert? Wir freuen uns auf deine Bewerbung unter jobs@virality.de !
Für Rückfragen steht dir Benno Rott unter 089 960 15 220 gern zur Verfügung.
Software-Entwickler Mobile iOS (m/w/d)
19.07.2023Schwerpunkt: Mobile Applications für iOS
Mit individueller Softwareentwicklung ist die VIRALITY GmbH als zuverlässiger Partner unter anderem für mehrere DAX Unternehmen tätig. Dabei erstellen wir performante Software im Intranet, mobil, im Web, nativ oder plattformübergreifend, geeignet für Smartphones, Wearables oder Desktop PCs. Als Ausgründung der LMU München steht der Bereich Forschung & Entwicklung für uns als Innovationsmotor. Forschungsprojekte mit mehreren Industriepartnern und dem Land Bayern als Partner stärken unsere Kreativität und unser Know How.
Dein Aufgabengebiet
- Entwicklung von iOS Software in Objective C und Swift
- Konzeption und gemeinsame Lösungsfindung mit unseren Kunden
- Selbstständiges Arbeiten und Umsetzen von komplexen Aufgabenstellungen
Deine Kenntnisse
- Umfangreiches Wissen in Objective C
- Erfahrung mit Swift
- Kenntnisse in der Web Entwicklung (REST Services, SOAP)
- Kenntnisse im Bereich User Interface Design
- Erfahrung bei Entwicklungsprozessen (Scrum, Agile)
- Routine im Umgang mit Versionsverwaltung (GIT)
Persönliche Voraussetzungen
- Abgeschlossenes Studium (Informatik, Medieninformatik) oder vergleichbar
- Gute Deutsch und Englisch Kenntnisse in Wort und Schrift
- Selbstständige und zuverlässige Arbeitsweise
- Teamfähigkeit und kundenorientierte Arbeitsweise
Wir bieten:
- die Mitarbeit bei Projekten mit namhaften Kunden und zukunftsweisenden Technologien in anspruchsvollen Projekten
- Raum, sich zu verwirklichen in einem wachstumsstarken Umfeld, das erfolgreiches und selbständiges Arbeiten ermöglicht
- flexible Arbeitszeiten, ein junges Team und flache Hierarchien
- kostenlosen Kaffee und frisches Obst für unsere Mitarbeiter 😉
Interessiert? Wir freuen uns auf deine Bewerbung unter jobs@virality.de !
Für Rückfragen steht dir Benno Rott unter 089 960 15 220 gern zur Verfügung.
Software-Entwickler Mobile Android (m/w/d)
19.07.2023Schwerpunkt: Mobile Applications für Android
Mit individueller Softwareentwicklung ist die VIRALITY GmbH als zuverlässiger Partner unter anderem für mehrere DAX Unternehmen tätig. Dabei erstellen wir performante Software im Intranet, mobil, im Web, nativ oder plattformübergreifend, geeignet für Smartphones, Wearables oder Desktop PCs. Als Ausgründung der LMU München steht der Bereich Forschung & Entwicklung für uns als Innovationsmotor. Forschungsprojekte mit mehreren Industriepartnern und dem Land Bayern als Partner stärken unsere Kreativität und unser Know How.
Dein Aufgabengebiet
- Entwicklung von Android-Projekten für Smartphones, Tablets und Wearables
- Konzeption und gemeinsame Lösungsfindung mit unseren Kunden
- Selbstständiges Arbeiten und Umsetzen von komplexen Aufgabenstellungen
Deine Kenntnisse
- Umfangreiches Wissen in Java und Android
- Kenntnisse in der Web Entwicklung (REST Services, SOAP)
- Kenntnisse im Bereich User Interface Design
- Erfahrung bei Entwicklungsprozessen (Scrum, Agile)
- Routine im Umgang mit Versionsverwaltung (GIT)
Persönliche Voraussetzungen
- Abgeschlossenes Studium (Informatik, Medieninformatik) oder vergleichbar
- Gute Deutsch und Englisch Kenntnisse in Wort und Schrift
- Selbstständige und zuverlässige Arbeitsweise
- Teamfähigkeit und kundenorientierte Arbeitsweise
Wir bieten:
- die Mitarbeit bei Projekten mit namhaften Kunden und zukunftsweisenden Technologien in anspruchsvollen Projekten
- Raum, sich zu verwirklichen in einem wachstumsstarken Umfeld, das erfolgreiches und selbständiges Arbeiten ermöglicht
- flexible Arbeitszeiten, ein junges Team und flache Hierarchien
- kostenlosen Kaffee und frisches Obst für unsere Mitarbeiter 😉
Interessiert? Wir freuen uns auf deine Bewerbung unter jobs@virality.de !
Für Rückfragen steht dir Benno Rott unter 089 960 15 220 gern zur Verfügung.
PHP-Software-Entwickler (m/w/d)
19.07.2023Schwerpunkt: PHP-Entwickler
Mit individueller Softwareentwicklung ist die VIRALITY GmbH als zuverlässiger Partner unter anderem für mehrere DAX Unternehmen tätig. Dabei erstellen wir performante Software im Intranet, mobil, im Web, nativ oder plattformübergreifend, geeignet für Smartphones, Wearables oder Desktop PCs. Als Ausgründung der LMU München steht der Bereich Forschung & Entwicklung für uns als Innovationsmotor. Forschungsprojekte mit mehreren Industriepartnern und dem Land Bayern als Partner stärken unsere Kreativität und unser Know How.
Dein Aufgabengebiet
- Entwicklung von Backend-Software auf Basis von PHP-Frameworks
- Konzeption und gemeinsame Lösungsfindung mit unseren Kunden
- Selbstständiges Arbeiten und Umsetzen von komplexen Aufgabenstellungen
Deine Kenntnisse
- Umfangreiches Wissen in PHP
- Erfahrung mit Frameworks wie Doctrine und/oder Laravel
- Kenntnisse in der Web-Entwicklung (REST-Services, JSON, AJAX)
- Erfahrung bei Softwaretests (PHPUnit)
- Erfahrung bei Entwicklungsprozessen (Scrum, Agile)
- Routine im Umgang mit Versionsverwaltung (GIT)
Persönliche Voraussetzungen
- Abgeschlossenes Studium (Informatik, Medieninformatik) oder vergleichbar
- Gute Deutsch- und Englisch-Kenntnisse in Wort und Schrift
- Selbstständige und zuverlässige Arbeitsweise
- Teamfähigkeit und kundenorientierte Arbeitsweise
- Spaß in der Kombination eines kleinen Startups und der Arbeit mit internationalen Großkonzernen
Wir bieten:
- die Mitarbeit bei Projekten mit namhaften Kunden und zukunftsweisenden Technologien in anspruchsvollen Projekten
- Raum, sich zu verwirklichen in einem wachstumsstarken Umfeld, das erfolgreiches und selbständiges Arbeiten ermöglicht
- flexible Arbeitszeiten, ein junges Team und flache Hierarchien
- kostenloses Obst und besten Kaffee 😉
Interessiert? Wir freuen uns auf deine Bewerbung unter jobs@virality.de !
Für Rückfragen steht dir Benno Rott unter 089 960 15 220 gern zur Verfügung.
Fullstack-Developer (m/w/d)
19.07.2023Vollzeit, Teilzeit oder Werkstudent
Mit individueller Softwareentwicklung ist die VIRALITY GmbH als zuverlässiger Partner unter anderem für mehrere DAX-Unternehmen tätig. Dabei erstellen wir performante Software – im Intranet, mobil, im Web, nativ oder plattformübergreifend, geeignet für Smartphones, Wearables oder Desktop-PCs. Für die Weiterentwicklung unserer Kunden-Projekte suchen wir zum nächstmöglichen Zeitpunkt einen Fullstack-Developer.
Dein Aufgabengebiet
- Konzeption, Entwicklung und Optimierung von Software-Lösungen mit modernen Frontend- sowie Backendtechnologien gemeinsam mit unseren Kunden
- Mitwirken im gesamten Entwicklungsprozess – von der Anforderungsanalyse, über die Implementierung bis zur technischen Dokumentation
- Kontinuierliche Optimierung bestehender Applikationen mit Fokus auf die Skalierbarkeit und die Performance sowie Erweiterung dieser um neue Feature
- Selbstständiges Arbeiten und Umsetzen von komplexen Aufgabenstellungen
Deine Kenntnisse
- Umfangreiche Kenntnisse in verschiedenen Programmiersprachen
- Routine im Umgang mit Versionsverwaltung (GIT)
- fundierte Erfahrung in der Architektur und Programmierung von Webanwendungen im Frontend- und/oder Backend-Bereich
- Erfahrung mit Web-Techniken wie HTML, CSS, JavaScript, Angular, Node.js
- sicherer Umgang mit relationalen Datenbanken von Vorteil
- Erfahrungen in der Entwicklung von RESTful Services von Vorteil
Persönliche Voraussetzungen
- Abgeschlossenes/laufendes Studium der Informatik oder vergleichbar
- Gute Deutsch- und Englisch-Kenntnisse in Wort und Schrift
- Selbstständige und zuverlässige Arbeitsweise
- Teamfähigkeit und kundenorientierte Arbeitsweise
- Du bist offen gegenüber neuen Technologien und entwickelst dich selbst gerne weiter
- Spaß in der Kombination eines kleinen Startups und der Arbeit mit internationalen Großkonzernen
Wir bieten:
- die Mitarbeit bei Projekten mit namhaften Kunden und zukunftsweisenden Technologien in anspruchsvollen Projekten
- Raum, sich zu verwirklichen in einem wachstumsstarken Umfeld, das erfolgreiches und selbständiges Arbeiten ermöglicht
- flexible Arbeitszeiten, ein junges Team und flache Hierarchien
- kostenloses Obst und besten Kaffee 😉
Interessiert? Wir freuen uns auf deine Nachricht unter jobs@virality.de. Für Rückfragen steht dir unser Geschäftsführer Benno unter der Nummer 089 215 398 010 gerne zur Verfügung.
Clean Architecture
30.05.2018Bei der Software-Entwicklung liegt der Fokus oftmals auf der reinen Funktionalität der Software, da der Kunde erwartet, dass die gewünschten Funktionen durch die Software korrekt abgedeckt sind. Neben der Funktionalität dürfen aber die anderen Eigenschaften guter Software nicht vernachlässigt werden: die Möglichkeit, die Software zu warten, zu erweitern und bereitzustellen. Deshalb setzen wir in der Virality bei neuen Projekten vermehrt auf das Clean Architecture Prinzip (Martin, Robert C. Clean Architecture. Pearson, 2017), welches sich vor allem in umfangreichen Projekten bewährt hat.
Details vs. Anwendungslogik
Eine gute Architektur erlaubt es, Änderungen ohne großen Aufwand durchzuführen. Dies wird auch dadurch erreicht, dass Detail-Entscheidungen so spät wie möglich getroffen werden, um bei neuen Anforderungen möglichst flexibel agieren zu können. Diese Details können zum Beispiel die Wahl der Datenbank, die Art der Netzwerk-Kommunikation oder die grafische Benutzeroberfläche sein. Die eigentliche Logik der Anwendung darf zu diesen Details keine Abhängigkeiten haben. In Abbildung 1 sind diese Details in der äußersten Schicht angesiedelt, die schwarzen Pfeile verdeutlichen, dass Abhängigkeiten stets nur von außen (Details) nach innen (Logik) zeigen dürfen. Dadurch kann beispielsweise auch spät in der Entwicklung die Datenbank oder die Benutzeroberfläche ausgewechselt werden, ohne dass die eigentliche Logik der Anwendung angepasst werden muss. Alle Komponenten einer Anwendung, die in der Zukunft voraussichtlich angepasst oder ausgetauscht werden müssen, sollten in dieser äußersten Schicht angesiedelt sein. Dazu gehören beispielsweise Bibliotheken und Frameworks. Verwendet man Framework-spezifischen Code nur in der äußeren Schicht, kann die Logik der Anwendung einfacher auf andere Plattformen portiert werden, da alles in den übrigen Schichten unverändert übernommen werden kann.
(Martin, Robert C. Clean Architecture. Pearson, 2017)
Use Cases
Besonders erwähnenswert ist die Schicht “Use Cases” des Modells, die in der Abbildung als dritte Schicht von außen dargestellt ist. Durch die zentrale Anordnung der Schicht ist bereits klar, dass es hier um Anwendungslogik geht. Bei einem Use Case handelt es sich um eine bestimmte Aktion die meist durch den Nutzer ausgelöst wird. Das kann zum Beispiel bedeuten, dass der Nutzer einen neuen Kontakt in sein Kontaktbuch eingibt und bestätigt. In diesem Fall würde die entsprechende View die eingegebenen Daten an ihren Presenter übergeben und dieser den AddNewContactUseCase starten (statt Use Case wird auch der Begriff “Interactor” verwendet). Der Use Case würde den neuen Kontakt zum Beispiel in die Datenbank schreiben oder über das Netzwerk versenden.
Kontrollfluss
Eine oft gestellte Frage ist, wie man die Abhängigkeiten von inneren zu äußeren Schichten verhindert. Wie kann zum Beispiel der AddNewContactUseCase ein Element in die Datenbank speichern, ohne die Datenbank zu kennen? Dies kann durch Anwendung des Dependency Inversion Principle an allen Stellen, an denen der Kontrollfluss von einer inneren Schicht zu einer äußeren geht, erreicht werden. Das bedeutet, dass auf der zentraleren Schicht ein Interface definiert wird, welches auf der äußeren Schicht implementiert wird. Die zentralere Schicht kommuniziert dann lediglich über dieses Interface mit der äußeren Schicht, wodurch keine Abhängigkeit von innen nach außen besteht.
Abstraktheit
Ein weiteres wichtiges Prinzip ist die Zunahme der Abstraktheit zur Mitte hin: Je weiter man sich in den Schichten nach innen bewegt, desto abstrakter wird der Code. Das bedeutet, dass in der Anwendungslogik deutlich mehr abstrakte Klassen und Interfaces zu finden sind als in den äußeren Bereichen. Hier wiederum sind die meisten Klassen konkrete Implementierungen, die die Anwendungslogik mit der “Außenwelt”, also der Anwendungsumgebung verbinden. Bei der Datenspeicherung wäre zum Beispiel ein Repository-Interface in einer zentralen Schicht angeordnet, während die tatsächliche Kommunikation mit der Datenbank als konkrete Implementierung auf der äußeren Schicht liegt.
Fazit
Die Verwendung von Clean Architecture führt bei uns zu einer besseren Code-Struktur, deutlich effizienteren Arbeitsweise, und generell einer höheren Qualität der Software. Auch neue Kollegen können sich durch die Übersichtlichkeit schnell in Projekte einarbeiten. Außerdem kann auf Änderungswünsche der Kunden schnell reagiert werden, da meist nur wenige Anpassungen nötig sind.
Chadly Marouane zu Methoden zur Lokalisierung, Aktivitäts- und Kontexterkennung basierend auf dem Framework OpenCV
17.01.2018Chadly Marouane ist seit Juni 2013 Software Engineer bei der Virality und hat dabei sowohl an zahlreichen Softwareprojekten als auch an Forschungsprojekten mitgewirkt. Nebenbei hat er an der LMU München promoviert und konnte so ein weiteres fachliches Interesse verfolgen.
Chadly, kannst du kurz erzählen, was du in deiner täglichen Arbeit so machst?
Ich mache klassische Software-Entwicklung mit dem Fokus auf mobile Anwendungen, speziell aus dem Bereich der Mobilen und Verteilten Systeme. Dabei konzeptionieren und entwickeln wir gemeinsam im Team Lösungen für größere und auch kleinere Unternehmen. Dies können umfangreiche Smartphone-Anwendungen, nutzerfreundliche Web-Anwendungen oder auch komplexe Verwaltungs- und Nutzersysteme sein. Neben der klassischen Software-Entwicklung für Kunden arbeiten wir auch an eigenen Ideen und Produkten, wie beispielsweise DieSchulApp oder auch die Keypocket-App. DieSchulApp entstand aus der Zusammenarbeit und Kooperation mit der LMU München und einer Realschule in Bayern. Diese vereinfacht die herkömmlichen Kommunikationswege innerhalb der gesamten Schulfamilie erheblich. Die Keypocket-App haben wir mit Hilfe eines geförderten Forschungsprojektes entwickeln können. Dabei haben wir eine App entwickelt, die ein sicheres Verwalten und Benutzen von Zugangsdaten ermöglicht. In allen unseren Lösungen integrieren wir unser Know-How aus den Bereichen Sicherheit, Nutzerfreundlichkeit und moderne sowie zuverlässige Technologien. Insgesamt versuche ich täglich die Software-Welt ein wenig besser zu machen 😉
Darüber hinaus hast du auch noch promoviert und letztes Jahr deine Arbeit abgeschlossen. Was war das Thema deiner Promotion?
Genau, ich habe Anfang Juli meine Promotion abgeschlossen. Das Thema der Arbeit lautet „Visuelle Verfahren für ortsbezogene Dienste“. Dabei geht es darum, Menschen mithilfe einer herkömmlichen Kamera (Smartphone, Bodycam oder Wearable) in alltäglichen Situationen zu unterstützen. Visuelle Verfahren können eingesetzt werden, wenn herkömmliche Systeme, wie z. B. Ortungssysteme innerhalb von Gebäuden, an ihre Grenzen stoßen. GPS-Systeme oder andere Ortungssysteme benötigen dafür meist eine aufwändige technische Infrastruktur. Im Rahmen der Dissertation wurden speziell die Position, die Aktivität und der augenblickliche Kontext bestimmt und rekonstruiert. Die Verfahren verwenden hierfür die Videoaufzeichnungen der Kamera und werten diese in Echtzeit aus. Dadurch ist es möglich, einem Nutzer beispielsweise bei der Navigation innerhalb großer Gebäude oder bei der Bereitstellung von weiteren Informationen zu helfen – ohne jegliche Infrastruktur nur mithilfe einer einfachen Kamera.
Du hast kürzlich auf der Open Munich einen Vortrag zu einem ähnlichen Thema gehalten. Der Titel war „Methoden zur Lokalisierung, Aktivitäts- und Kontexterkennung basierend auf dem Framework OpenCV.“ Worum geht es dabei?
In dem Vortrag habe ich einige visuelle Verfahren und Systeme vorgestellt, die ich im Laufe meiner Promotion entwickelt habe. Zentraler Bestandteil des Vortrags war das Computer Vision Framework OpenCV, da die meisten meiner Verfahren auf Basis dieses Frameworks entwickelt wurden. Dabei bin ich speziell auf die Verfahren der Lokalisierung und Aktivitätserkennung eingegangen, z. B. auf das visuelle Indoor-Positionierungssystem MoVIPS, das mit Hilfe einer Smartphone-Kamera die eigene relative Position bestimmt. Ein weiterer Bestandteil dieses Systems ist der visuelle Schrittzähler und Kompass, der auf Basis von Live-Bildern, die aus der Ego-Perspektive aufgezeichnet werden, vollständige Pfade bzw. Wegstrecken rekonstruieren kann. Interessant ist dabei, dass man mithilfe dieser Live-Bilder aus der Ego-Perspektive auch Aktivitäten wie das Laufen, Gehen, Stehen, Treppensteigen oder auch Links- und Rechtsdrehungen sehr gut identifizieren kann. Einfache und kurze Trainingsdaten reichen bereits aus, um geeignete Klassifizierer mit Verfahren des maschinellen Lernens zu erzeugen. Insgesamt wollte ich mit dem Vortrag zeigen, dass man visuelle Verfahren heutzutage relativ einfach und sinnvoll einsetzen kann.
Wie können visuelle Verfahren in der Praxis eingesetzt werden?
Visuelle Verfahren können unseren Alltag allgemein vereinfachen und zum Teil eine Vielzahl von täglichen Abläufen und Prozessen automatisieren. Somit sind sie in vielen Bereichen einsetzbar. Eine visuelle Gestenerkennung lässt sich zum Beispiel zur Steuerung von schwer zu bedienenden Systemen oder Geräten verwenden. Im Bereich der Augmented Reality sind visuelle Verfahren zur Bestimmung der Kamera und zur realistischen Darstellung von virtuellen Objekten im realen Raum unabdingbar. Visuelle Verfahren spielen aber auch in der Robotik sowie beim autonomen Fahren eine entscheidende Rolle für den Erfolg und die Sicherheit der Systeme. Sie sind für das Erkennen und rechtzeitige Ausweichen von Hindernissen erforderlich. Dies wird durch mehrere Kameras und visuelle Sensoren gewährleistet, um die Umgebung vollständig zu erfassen und richtig einzuschätzen. In naher Zukunft werden wir immer mehr Systeme sehen, die ohne den Einsatz visueller Verfahren nicht mehr funktionieren.
Warum sind visuelle Verfahren inzwischen so wichtig?
Uns begleiten immer mehr visuelle Sensoren in unserem Alltag. Allein das Smartphone besitzt bereits mehr als zwei Kameras, die wir im Alltag häufig zum Fotografieren und Filmen einsetzen. An unserem Laptop oder Arbeitsplatz nutzen wir ebenfalls die Kamera, um damit Video-Konferenzen abzuhalten. Durch die rasante technische Entwicklung ist der Einsatz von visuellen Sensoren oder auch Kameras unausweichlich geworden. Besonders die Tatsache, dass die Stückkosten für solche Sensoren immens gesunken sind und damit immer häufiger verbaut werden, macht sie so vielfältig einsetzbar. Zudem ist die Größe dieser visuellen Sensoren um ein Vielfaches geschrumpft, so, dass deren Umfang mittlerweile kleiner als eine 1 Cent Münze ist. Trotz dieser Vielzahl an Kameras und visueller Sensoren gibt es bisher noch viel zu wenig eingesetzte Verfahren, die diesen Umstand sinnvoll ausnutzen. Dabei gibt es immer mehr Anwendungsfälle bei denen der Einsatz visueller Verfahren sehr sinnvoll und praktikabel wäre.
Danke für das nette Gespräch.
fastlane – Automatisierung des Build und Release Prozesses für iOS Apps
21.11.2017Als Softwareentwicklungsteam steht man ständig vor neuen Herausforderungen – eine davon ist der Deploymentprozess. Von außen betrachtet, wirkt dieser meist einfach und so wird der Aufwand schnell unterschätzt. In der Realität ist es jedoch anders: der Releaseprozess ist deutlich komplexer und zeitaufwendiger als es auf den ersten Blick scheint. Vor allem im Bereich der iOS-Entwicklung ist o.g. Prozess besonders langwierig und komplex. Es werden unzählige Zertifikate und Profile benötigt bzw. im Laufe des Gesamtprozesses erstellt. Für jede App existiert eine AppID, für jeden Entwickler eine Code Signing Identity sowie ein Provisioning Profile für jede App und jeden Entwickler, all dies selbstverständlich für jede potentielle Umgebung (z. B. Development und AppStore). Hieraus folgt, dass die Menge an Profilen und Zertifikaten, in Abhängigkeit von der Anzahl an Projekten und Entwicklern rasant ansteigen kann und schnell unübersichtlich wird. Hinzu kommt der Aufwand, diese Profile und Zertifikate zu verwalten. Außerdem sollten die Screenshots, welche im AppStore zu sehen sind auch aktuell gehalten werden. Mit zunehmender Anzahl an unterstützten Sprachen und Geräten steigt diese Zahl enorm, z. B. haben 10 verschiedene Sprachen, 5 verschiedene Geräte à 5 Screenshots zur Folge, dass bei jedem Release manuell 250 Screenshots zu erstellen sind.
Für die Vereinfachung dieses Prozesses nutzen wir das Framework „fastlane“. Es übernimmt die Zertifikat- und Profilverwaltung, das Erstellen neuer Versionen und der dazugehörigen Screenshots sowie den Testflight- oder AppStore-Upload. fastlane selbst besteht aus unzähligen Tools, welche je nach Use-Case kombiniert werden können, um den eigenen individuellen Releaseprozess zu automatisieren. Für einen neuen iOS-Release nutzen wir beispielsweise folgende Tools:
- snapshot: erstellt automatisierte Screenshots für jede nötige Devicegröße sowie Lokalisierung
- frameit: packt einen Device Frame um die zuvor erstellten Screenshots
- scan: startet unsere Tests und für den Fall, dass diese nicht erfolgreich sind, wird die Ausführung an dieser Stelle abgebrochen
- match: managed die notwendigen Zertifikate und Profile in einem gesonderten Repository
- gym: baut und packt die getestete App und signiert sie
- pilot: lädt die App inklusive Metadaten etc. auf TestFlight
- deliver: Alternative zu pilot, lädt alle Screenshots, Metadaten und die signierte App auf iTunes-Connect
Wenn all diese Schritte erfolgreich abgeschlossen wurden, befindet sich ein neuer Build im Apple Review Prozess und wird im Anschluss automatisch für den AppStore freigegeben. Kombiniert man dies zusätzlich mit einem Continuous Integration-Tool, kann man o.g. Prozess fast vollständig automatisieren und spart somit die kostbare Zeit der Entwickler, welche stattdessen für die Weiterentwicklung der Software verwendet werden kann.
Visuelle Verfahren zur Orts-, Aktivitäts- und Kontexterkennung
28.08.2017Durch die rasante Entwicklung und Verbreitung mobiler Endgeräte, wie z.B. Smartphones, Tablets und Wearables, ist die Anzahl ortsbezogener Dienste enorm angestiegen. Viele Anwendungen ortsbezogener Dienste sind nicht mehr aus unserem Alltag wegzudenken. Sie sind Teil unseres Lebens geworden und beeinflussen unsere zukünftigen Entscheidungen und Verhaltensweisen. Dabei nutzen wir z.B. die Wetter-App am Morgen, um zu schauen ob wir den Regenschirm brauchen, schauen in die Verkehrsanbindungs-App, um den schnellsten Weg zur Arbeit zu finden, und informieren uns in der lokalen Nachrichten-App über aktuelle Themen. Überall begegnen uns Situationen, in denen wir diese Dienste aus Informationsbedarf oder Zeitvertreib immer wieder nutzen.
Dabei haben fast alle ortsbezogenen Dienste gemein, dass sie die aktuelle Position eines Nutzers sowie seine Aktivität zur Bereitstellung ihrer Dienste nutzen. Um die aktuelle Position oder gar die Aktivität eines Nutzers zu bestimmen, werden Sensordaten und Schnittstellen über das eigene mobile Endgerät verwendet. Dabei kommen funkbasierte Technologien wie GPS oder WLAN zum Einsatz. Trotzdem mangelt es immer noch an Verfahren zur Ortsbestimmung und Positionierung, die es erlauben, eine durchgehende Positionsbestimmung an allen Orten zu ermöglichen.
Motiviert durch die hohe Verbreitung von Kamerasensoren in Smartphones und Tablets sowie die gleichzeitig geringen Kosten, der autarken Funktionsweise und der rasanten Entwicklung im Bereich der Bildverarbeitung, ist der Einsatz visueller Verfahren zur Positionsbestimmung und Aktivitätserkennung erstrebenswert. Besonders durch die technologische Entwicklung und die Einführung einer ganz neuen Geräteklasse, der sogenannten Wearables, ist die Chance solche Verfahren weiter zu entwickeln immens gestiegen. So werden Geräte wie z.B. die Google Glass oder Microsoft Holo Lens bereits mit visuellen Verfahren betrieben, da sie grundsätzlich eine oder mehrere Kamerasensoren einsetzten, um die Lage der Kamera oder anderer Objekte im Raum zu bestimmen. Dadurch können Anwendungen der Augmented Reality realisiert werden, um z.B. virtuelle Objekte realitätsgetreu und in Echtzeit anzuzeigen.
Bereits heute werden zahlreiche Polizisten in den USA und auch in Deutschland mit sogenannten Bodycams ausgestattet, um einen vollständigen Polizeieinsatz überwachen zu können. Dabei lassen sich durch die aufgezeichneten Videosequenzen zahlreiche Informationen ableiten, um Sachverhalte rekonstruieren und besser verstehen zu können. Diese Informationen können in naher Zukunft bereits in Echtzeit analysiert und ausgewertet werden. Dadurch könnten Einsätze effizienter und sicherer gestaltet werden.
Allgemein lässt sich mit visuellen Sensoren, insbesondere durch die günstigen Kamerasensoren, eine Reihe von sinnvollen Verfahren zur Bestimmung der Position, der Lage, der Aktivität und des Kontextes realisieren.
Im Folgenden soll ein allgemeiner Einblick über Verfahren aus dem Bereich des maschinellen Sehens geben werden. Anschließend werden visuelle Verfahren für ortsbezogene Dienste vorgestellt, die im Rahmen der Promotion von Chadly Marouane unterstützend durch die Virality GmbH und die Ludwig-Maximilians-Universität entwickelt worden sind. Diese Verfahren nutzen die Videosequenz einer mobilen Kamera, die entweder von einer Person getragen oder an einer Person direkt befestigt wird. Anhand dieser Verfahren werden die aktuelle Position, die gegangene Trajektorie sowie die getätigten Aktivitäten einer Person bestimmt.
Verfahren aus dem Bereich des maschinellen Sehens
Das Gebiet des maschinellen Sehens ist ein stetig wachsendes Feld, welches in einem rasanten Tempo immer komplexere Systeme und Verfahren hervorbringt. Hinter jedem Verfahren und System steht eine meist einfache Kamera, die einzelne oder ganze Sequenzen von Bildern aufzeichnet. Um aus einem einzelnen Bild oder einer Sequenz Informationen ableiten zu können, muss man wissen welche Informationen aus einem Bild verwendet und wie man diese Informationen möglichst vollständig und automatisiert extrahiert. Dafür muss zunächst eine geeignete Bildrepräsentation gefunden werden, um diese Bildinformationen verarbeiten zu können. Außerdem sind Verfahren der Vorverarbeitung, Analyse und Extraktion notwendig, um aus diesen Informationen intelligente und automatisierte Verfahren und Systeme entwickeln zu können.
In den letzten dreißig Jahren haben sich die Verfahren im Bereich des maschinellen Sehens immens weiterentwickelt. Besonders Verfahren zur Erkennung von Objekten, die eine Beschreibung, eine Vermessung, Lagebestimmung und Klassifizierung vornehmen, werden häufig eingesetzt, um Entscheidungen für automatisierte Prozesse zu bestimmen. Aber auch das tatsächliche Verstehen und Deuten von Bildinhalten und ganzen Bildszenen hat sich in diesem Bereich sehr stark weiterentwickelt
Allgemein werden Verfahren des maschinellen Sehens sehr erfolgreich im industriellen Umfeld eingesetzt. Besonders zur Kontrolle von Produkten und ganzen Prozessabläufen werden zahlreiche Methoden der Bildverarbeitung eingesetzt. Diese rasante Entwicklung im industriellen Bereich hat dazu beigetragen, dass ganze Forschungszweige an neuen Lösungen und Erweiterungen visueller Verfahren entwickeln und diese bereits erfolgreich in ihre Produkte integrieren. Die größte Schwierigkeit stellt der Einsatz von solchen Verfahren in natürlichen Umgebungen dar. Viele Verfahren sind für den Einsatz in industriellen Umgebungen entwickelt worden, in denen die Umgebung eigens für das Verfahren angepasst und einer ständigen Kontrolle unterzogen wird. Dies führte gerade im letzten Jahrzehnt zu einem Umdenken bei der Entwicklung solcher Verfahren und ganzer Systeme. Besonders im Bereich der Automobilindustrie werden viele Verfahren für das sichere Fahren in natürlichen Umgebungen wie dem Straßenverkehr weiterentwickelt und mit Hinblick auf das autonome Fahren stets verbessert.
Insgesamt decken die Verfahren des Tracking, Objekterkennung, Odometrie und Lagebestimmung sowie der Augmented Reality die zurzeit aktivisten Bereiche des maschinellen Sehens in der Industrie und Forschung dar.
Visuelle Ortsbestimmung, Aktivitäts- und Kontexterkennung
Speziell Positionsverfahren, die visuelle Daten aus optischen Sensoren wie einer Kamera verwenden, sind in den letzten Jahren sehr populär geworden. Optische Sensoren sind günstig zu produzieren und bereits in vielen mobilen Geräten, wie z.B. Smartphones und Tablets, verbaut. Das ist mit ein Grund, weshalb sie für Aufgaben der Lokalisierung und Navigation in kleinen Robotern, Drohnen (Micro Aerial Vehicle) oder auch im Kontext mit Menschen bereits heute eingesetzt werden.
Visuelle Verfahren, speziell aus dem Bereich der visuellen Odometrie, haben den Vorteil ohne jegliche künstliche Infrastruktur zu funktionieren. Ein Nachteil bei klassischen visuellen Positionierungssystemen, die auf Basis von Bildvergleichen zwischen der aktuellen Kameraaufnahme und einer Menge von Standortbildern den Standort eines Nutzers bestimmen, stellt die Standortbilder-Datenbank dar. Hierfür müssen zahlreiche und aktuelle Standortbilder erzeugt und eingepflegt werden, um eine genaue Positionierung für ein großes Areal bereitzustellen.
Dagegen benötigen Verfahren aus dem Bereich der visuellen Odometrie keinerlei Datenbank oder Vorwissen über einen zu lokalisierenden Bereich, um eine erfolgreiche Positionierung durchzuführen. Anhand von visuellen Features können Verfahren der visuellen Odometrie die Eigenbewegung der Kamera bestimmen, um daraus anschließend die eigene Position zu berechnen. Erste Ansätze der visuellen Odometrie haben ihren Ursprung im Bereich der Raumfahrttechnik. Speziell für die Mond- und Mars-Rover wurden solche visuellen Verfahren entwickelt. Verfahren wie die satellitengestützte Positionierung und Navigation sind wegen fehlender Satelliten auf Mond oder Mars nicht möglich. Ebenfalls ist eine Positionierung mittels klassischer Odometrie basierend auf dem Antriebssystem zu ungenau, da die Beschaffenheit der Mond- und Marsoberfläche zu sandig und staubig ist. Mittlerweile werden solche Verfahren auch unter irdischen Bedingungen verwendet, um bewegliche Objekte oder einzelne Personen zu positionieren und zu navigieren.
Durch die Einführung einer neuen Geräteklasse, der sogenannten Wearables, wie z.B. der Google Glass oder Microsoft Holo Lens, sind sinnvolle Anwendungsbereiche der visuellen Odometrie entstanden.
Allgemein setzen Verfahren der visuellen Odometrie Bildinformationen einer oder mehrerer Kameras ein. Ziel der visuellen Odometrie ist es, die Eigenbewegung allein aus einer Sequenz von aufeinanderfolgenden Kamerabildern abzuschätzen.
Relative Veränderung von Features zwischen zwei aufeinanderfolgenden Bildpaaren
Im Rahmen der Promotion von Chadly Marouane wurden gemeinsam mit der Virality GmbH und Ludwig-Maximilians-Universität visuelle Verfahren zur Ortsbestimmung, Aktivitäts- und Kontexterkennung auf Basis der Grundlagen der visuellen Odometrie und des maschinellen Sehens entwickelt. Dabei wurden ein visueller Kompass, ein visueller Schrittzähler sowie ein Verfahren zur Aktivitäts- und Kontexterkennung entwickelt, die alle auf Basis von visuellen Feature-Veränderungen innerhalb von Videosequenzen aufsetzen.
Visueller Schrittzähler und Kompass
Anders als bei den klassischen Verfahren der visuellen Odometrie wird ein visueller Schrittzähler und ein visueller Kompass eingesetzt. Dabei unterscheidet sich die hier entwickelte Methode dadurch, dass die Features nicht zur Rekonstruktion von 3D-Koordinaten verwendet werden, um daraus eine Bewegung abzuleiten und zu messen, sondern ausschließlich zur Bestimmung der gegangenen Schritte und Bewegungsrichtungen. Das heißt, dass eine Trajektorie durch die gegangenen Schritte und die Bewegungsrichtung bestimmt wird. Als Eingabe verwenden der Schrittzähler und der Kompass eine vorverarbeitete Videosequenz. Die Videosequenz wird mit Hilfe einer Kamera, die aus der Ego-Perspektive einer Person aufzeichnet, erstellt.
30 gegangene Schritte: Relative Veränderung von Features innerhalb einer Videosequenz aufgezeichnet aus der Ego-Perspektive
Anhand der relativen Feature-Veränderungen zwischen zwei aufeinanderfolgenden Bildern innerhalb einer solchen Videosequenz lassen sich markante Muster erkennen. Diese werden zur Ableitung von gegangen Schritten herangezogen. Dabei werden die Schritte anhand der relativen Kontrastveränderungen zwischen zwei Feature-Paaren erkannt. Solche Kontrastveränderungen lassen sich mit einem Glanzpunkt auf einer Glasfläche vergleichen. Bewegt man sich auf diesen Glanzpunkt zu, pendelt dieser mit jedem Schritt entweder nach links oder rechts. Durch diese Eigenschaft lassen sich einzelne Schritte erkennen und sich sogar auf den linken oder rechten Fuß eingrenzen.
(links) Rekonstruierte Trajektorie anhand des visuellen Schrittzählers und Kompass – (rechts) Versuchsperson mit einer Body-Mount Kamera (GoPro Hero Wifi)
Um die Verweildauer an einer aktuellen Position zu bestimmen, wird jeweils die Schrittfrequenz verwendet. Somit lassen sich schnell abgelaufene Pfadabschnitte bestimmen und deutlich von langsam gegangenen Pfadabschnitten und Stillstands Phasen unterscheiden.
Darstellung unterschiedlicher Schrittgeschwindigkeiten – Laufphase, Gehphase und Stehphase
Visuelle Aktivitäts- und Kontexterkennung
Leider ist die Schrittfrequenz nicht immer ein guter Indikator zur Bestimmung einer Aktivität oder gar zur Erkennung eines Kontextes. Daher wurde ein Verfahren entwickelt, dass auf Basis aller Attribute eines Feature-Paares reagiert. Hierfür wurden Verfahren des maschinellen Lernens verwendet, die auf Basis von Trainingsdaten geeignete Klassifikatoren entwickeln. Diese wurden verwendet, um aus einer unbekannten Videosequenz Aktivitäten zu erkennen.
Nicht jede Aktivität kann durch einen Klassifikator zu 100 % erkannt werden. Jedoch wurde bereits im vorherigen Abschnitt gezeigt, dass sich klassische Aktivitäten, wie das Laufen, Gehen und Stehen, bereits einfach anhand des Schrittzählers und der Schrittfrequenz unterscheiden lassen. Neben diesen klassischen Aktivitäten sollen Aktivitäten wie das Treppensteigen, Kurven gehen oder auf der Stelle drehen ebenfalls erkannt werden. Auch Kontexte lassen sich dadurch anhand eines Klassifikators relativ einfach unterscheiden. Besonders große Menschenmengen, wie man sie auf Großevents antrifft, Altstädte, dir durch ihre markanten Fassaden und engen Gassen auffallen, sowie Park- und Freizeitanlagen lassen auf bestimmte Kontexte zurück schließen, wie z.B. Festivalbesuche, Urlaubsbesuche oder Sportaktivitäten.
Das hier vorgestellte Verfahren beschränkt sich jedoch zunächst nur auf die Erkennung von Aktivitäten, wie z.B. Gehen, Stehen, Laufen, Kurven gehen, Treppensteigen, etc.:
Klassifizierung von Aktivitäten – (von oben nach unten) die ersten drei Graphen stellen unterschiedliche Ausprägungen der Feature-Attirbute dar, der letzter Graph stellt die Ergebnisse des Klassifikators (erkannte Aktivitäten) dar.
Die unterschiedlichen Ausprägungen der Attribute eines Feature-Paares eignen sich sehr gut zur klaren Unterscheidung unterschiedlicher Aktivitäten. Dabei sind bereits kurze Videosequenzen (ca. 3 min.) ausreichend um geeignete Trainingsdaten zu erhalten, die zur Entwicklung eines ausreichend guten Klassifkators verwendet werden können.
Fazit
Die vorgestellten Verfahren sind noch in einem frühen Stadium der Reife und sind daher noch verbesserungsfähig. Insgesamt lassen sich jedoch die vorgestellten Verfahren sinnvoll kombinieren und einsetzen. Sie bieten die Möglichkeit, allein anhand von visuellen Informationen eine Lage- und Positionsbestimmung sowie eine Aktivitätserkennung zur Verfügung zu stellen.
Es bleibt weiterhin interessant, wie sich visuelle Verfahren zukünftig bemerkbar machen und eingesetzt werden. Schon heute gibt es zahlreiche Beispiele für den erfolgreichen Einsatz visueller Verfahren in unserem Alltag.
So werden zahlreiche Kamerasensoren und visuelle Verfahren in moderne Automobile eingesetzt, um Teilbereiche des Fahrens autonom und sicher zu gestalten. Auch der Erfolg von Head-Mounted Displays, wie z.B. der Oculus Rift und der HTC Vive, gibt den visuellen Verfahren eine immer größer werdende Bedeutung. Die Displays werden in erster Linie zum Abbilden virtueller Welten eingesetzt, jedoch wechselt der Fokus immer mehr auf das Erweitern unserer Realität durch virtuelle Objekte. Hierfür benötigt man robuste Verfahren, die die Eigenbewegung, die Position und den aktuellen Ort sowie den vollständigen Kontext ermitteln können, um möglichst realitätsgetreu virtuelle Objekte in unsere Realität zu integrieren. Die vorgestellten visuellen Verfahren können dazu beitragen, diese Systeme zu unterstützten und zu erweitern. Jedoch werden auch diese visuellen Verfahren an ihre Grenzen kommen und nicht allein ausreichen um diese Anforderungen vollständig zu erfüllen. Trotz dieser Möglichkeiten, die visuelle Sensoren und visuelle Verfahren mit sich bringen, ist ein robustes Verfahren und System erst durch den Einsatz unterschiedlicher Sensoren geben. Daher kann nur durch eine Informationsfusion, welche Daten aus unterschiedlichen Sensoren vereint, eine präzise Aussage über die Position, Aktivität und den Kontext einer Person geben werden.
Virality auf den TechDays Munich 2017
23.06.2017Auch heuer war die Virality GmbH wieder auf den Tech Days in München präsent! Viele Gespräche, Ideen, Austausch, Innovationen und Kunst hat den Tag zu etwas besonderem Gemacht. Mit unserer Lösung “Positioner” zeigen wir, wie sekundenschnelle On-Demand-Positionierung für Callcenter funktioniert. Unser zum Patent angemeldetes System haben wir in einem 2-Minuten Pitch erläutert und anschließend mit den Zuhörern diskutiert.
Besonderes Interesse fand auch in diesem Jahr wieder unser Authentifizierungslösung KeyPocket, bei der das Smartphone die klassische Benutzername-Passwort-Kombination ersetzt. Insbesondere die Firmen aus der Security-Branche sowie Forschungsinstituten zeigten sich begeistert.
Nicht zuletzt gab es viele interessante Gespräche zu unserem Geschäftsfeld Softwareentwicklung in München – von der Entwicklung von mobilen Apps für Android und iOS bis hin zu komplexen Backend-Systemen für Chatbots gab es vielfältige gemeinsame Projektideen.
Wir bedanken uns bei allen Besuchern unseres Messestandes für alle Gespräche und Diskussionen und freuen uns bereits jetzt auf die TechDays 2018!
Alexa Skill mit Node-RED und IBM Bluemix entwickeln
18.04.2017Sprachsteuerung und Chatbots sind in aller Munde. Neben Siri, Google Now und Cortana ist inzwischen auch Amazon Alexa in Deutschland verfügbar und erfreut sich steigender Beliebtheit. Die Entwicklung dafür ist kein Hexenwerk – dieser Artikel gibt eine kurze Einführung für die Umsetzung. Dazu benötigen wir:
- Amazon Alexa
Wir verwenden im Büro ein Amazon Alexa Dot – die kleine Variante bietet ausreichend Möglichkeiten und lässt sich für einen besseren Klang einfach mit einer Bluetooth-Box verbinden. Weitere Informationen sind auf Amazon zu finden. - Alexa Skills Kit
Das Alexa Skills Kit bietet die Spracherkennung. Auf Basis von Beispielsätzen lernt Alexa die Absichtserkennung und liefert diese Absicht mit vielen weiteren Optionen an ein beliebiges REST-Interface. - Node-RED
Als Serveranwendung verwenden wir Node-RED. Damit lässt sich auf einfache und schnelle Art und Weise die Annahme von HTTP-Requests realisieren, über bestimmte Funktionen können einfach und schnell API-Calls gesendet und das Ergebnis als einfache HTTPS-Response zurückgemeldet werden. - IBM Bluemix
Für Hosting mit einfachem Deployment verwenden wir IBM Bluemix. Die PaaS-Lösung bietet einfaches Hosting von Node-RED-Anwendungen und skaliert bei Bedarf einfach mit den Anforderungen mit. Bluemix kann auch 30 Tage kostenlos getestet werden, natürlich ist aber auch jede andere Hosting-Möglichkeit eine Alternative.
Intent-Konfiguration und Sprachsteuerung für Alexa
Nach Installation des Alexa Dots kann mit dem selben Account direkt ein Amazon Developer Account eröffnet werden. Mit der Erstellung eines neuen Skills und der Benennung ist die Einrichtung abgeschlossen. Wichtig ist dabei der Punkt “Invocation Name”, da auf diesen Namen der zukünftige Skill aktiviert wird. Für die Spracherkennung geht es direkt weiter zum “Interaction Model”:
Im Interaction Model werden alle möglichen Absichten für das Skill definiert und die Spracherkennung trainiert. Dazu folgt Amazon ähnlich wie IBM Conversation dem Modell von Intents: Zu jeder Skillabsicht werden mehrere Beispielsätze formuliert. Um eine breite Abdeckung verschiedener Anfragen zu verstehen, sind mindestens fünf Samples pro Intent zu empfehlen. Dabei muss der Satz am Ende nicht exakt matchen: Alexa trainiert seine Spracherkennung laufend fort so dass Abwandlungen und Mischungen der einzelnen Beispiele sehr exakt erkannt werden und Alexa die eigentliche Absicht des Nutzers damit sehr gut erkennt. Das Anlernen des Systems erfolgt über den Button “Build Model”.
Im Bereich “Configuration” wird anschließend noch eine API-URL eingetragen. An diese URL sendet Alexa während der Ausführung ein POST-Request, schickt relevante Informationen zum Nutzer mit und wartet anschließend auf eine Antwort. In unserem Fall senden wir den POST-Request ganz einfach an ein Node-RED-Backend bei IBM.
Node-RED-Backend für Alexa-Skills
Links oben startet das NodeRED-Script mit einem HTTPS-POST-Request auf /alexaCalling. Im Anschluss wird die Funktion “get intent name” aufgerufen. Zwei einfache Zeilen geben aus dem komplexen Alexa-Request-Object die für das Beispiel einzig relevante Information zurück: Den Intent-Namen:
msg.payload = msg.payload.request.intent.name;
return msg;
Anschließend erfolgt ein Switch mit drei Alternativen: Für “Messages” und “Substitutions” werden API-Calls ausgeführt. Die Informationen von mehreren Objekten werden dabei in einer einfachen loop-Funktion zusammengeführt und als String weitergereicht:
var tmp = "";
tmp = "Der API-Aufruf hat folgende Informationen geliefert:\n";
for (var data in msg.payload) {
tmp += msg.payload[data].subject + "\n";
}
msg.payload = tmp;
return msg;
Im dritten Fall der Switch-Weiche erfolgt eine Weiterleitung zu IBM Conversation: Hier kann eine individuelle Spracherkennung mit weiteren Entitäten erfolgen. Auch hier wird das Ergebnis im String “payload” des msg-Objektes verarbeitet. In jedem Fall erfolgt im vorletzten Knoten “prepare Alexa-answer” die Vorbereitung für den Alexa-Output, der im letzten Knoten zurückgegeben wird:
msg.payload = {
"version": "1.0",
"sessionAttributes": {
"supportedHoriscopePeriods": {
"daily": true,
"weekly": false,
"monthly": false
}
},
"response": {
"outputSpeech": {
"type": "PlainText",
"text": msg.payload
},
"shouldEndSession": true
}
}
return msg;
Mit anschließenden Klick auf “Deploy” wird das Backend auf Basis von NodeRED per Continuous Integration ausgerollt und ist sofort verfügbar. Ein kurzer Test ist im “Service Simulator” möglich.
Ist der Test im Alexa Service Simulator abgeschlossen, kann der neue Skill direkt mit dem mit dem Account verbundenen Alexa Dot getestet werden.
Fazit
Der Beitrag zeigt: Die Entwicklung eines einfachen Skills für Amazon Alexa ist keine große Kunst. Mit NodeRED ist sehr schnell ein mächtiges Backend gezimmert, das zudem viele verschiedene Komponenten bereits bereithält – insbesondere im Bereich der Hausautomatisierung ist hier sehr viel vorab verfügbar, gleichzeitig können durch vorkonfigurierte Komponenten die angebundenen APIs auch einfach als Chatbots z.B. für Slack vergeben werden.
Für komplexere und sichere Systeme sind nichtsdestotrotz Erfahrung und umfangreiches Wissen notwendig. Für Fragen und Diskussionen stehen wir gerne zur Verfügung.
Mit DieSchulApp zur DIDACTA 2017
14.02.2017Mit neuem Logo, Website und eigenem Messestand stellen wir unser Produkt DieSchulApp auf der DIDACTA 2017 in Stuttgart vor. Mit knapp 100.000 Besuchern ist sie die größte Bildungsmesse in Europa. Im Ausstellungsbereich “Bildung & Technologie” werden innovative Technologien für Schulen und Bildungseinrichtungen gezeigt. DieSchulApp vernetzt mit Schnittstellen die verschiedensten Informationen einer Schule auf einer einheitlichen Plattform und sorgt so für optimale Kommunikation und Organisation für Schüler, Eltern und Lehrer.
Besuchen Sie uns in Halle 4, Stand B71. Wir freuen uns auf Ihren Besuch!
DieSchulApp auf der DIDACTA 2017 in Stuttgart
Gewinner beim Digital Innovation Award der Stadt München
05.12.2016Wir freuen uns über einen tollen 3. Platz beim Pitch-Battle auf der Digitale Welt Convention 2016! Ronny Schlüter setzte sich mit seinem starken Vortrag über das Produkt Positioner in der Nominierung bei 24 eingereichten Ideen und im Publikumsvoting gegen einen starken Vortrag der Siemens-Tochter Unify durch.
Mit dem von uns präsentierten System Positioner kann z.B. bei einem Autounfall extrem schnell, zuverlässig und einfach die eigene Position an Dienstleister wie Abschleppdienste, Versicherungen oder auch Rettungsleitstellen übertragen werden.
Nach spannenden Battles mit überwältigendem Feedback aus dem Publikum sind wir stolz, dass unser Positioner zu den Gewinnern gehört! Zu den weiteren Preisträgern gehören Intelligence on Wheels (ebenfalls Platz 3), die Hyve AG (Platz 2) sowie Cleverciti Systems GmbH (Platz 1).
Digitale Welt Convention / Flughafen Muenchen / München / 01.12.2016
Foto: Stephan Goerlich / FMG
Jira – Start eines Jenkins-Builds per Webhook
28.11.2016Mit diesem Artikel stellen wir eine Lösung vor, mit der sich ein beliebiger Jenkins-Job starten lässt, sobald in JIRA eine neue Version freigegeben wird. Mit der Verknüpfung zwischen dem Release-Management in Jira und einem automatischen Deployment verbinden damit mehrere Vorteile:
- die Release-Entscheidung obliegt dem Projektmanager
- automatisches Deployment garantiert einen erfolgreichen Prozess bzw. einen definierten Abbruch im Fehlerfall
- jedes Deployment wird zusammen mit den passenden Tickets in JIRA sauber dokumentiert
Zum Einsatz kommen JIRA in der Version 6.4 und Jenkins in der Version 2.19. Die Lösung ist, soweit möglich mit dem neuen Pipeline Konzept von Jenkins umgesetzt. Dies erlaubt es den größten Teil der Konfiguration von Jenkins als Code in einem Source Code Repository (z. B. GIT) zu verwalten. Das ist deswegen erstrebenswert, weil so eine Historie der Konfiguration gespeichert wird und auch ähnliche Projekte schneller konfiguriert werden können, als über die Jenkins Web-UI.
Grundsätzlicher Ablauf
Zunächst wird beim Release einer neuen Version in JIRA ein Webhook auf eine bestimmte URL auf der Jenkinsinstanz aufgerufen. Dadurch wird ein zu erstellender Job (JIRA Release Job) ausgeführt, der detaillierte Daten zum JIRA Release und Project über die Web API abruft und aufgrund dieser Informationen entsprechende weitere Build-Jobs mit etwaigen Parametern starten kann. In der folgenden Abbildung ist der grundsätzliche Ablauf des Prozesses dargestellt:
JIRA Webhook
Webhooks können bei JIRA als System Administrator unter dem Punkt „System“ -> „Advanced“ / „Erweitert“ -> WebHooks verwaltet werden. Über die Schaltfläche „Create a WebHook“ / „Einen Webhook erstellen“ oben rechts gelangt man zu einem umfangreichen Formular. Dort muss zuerst ein Name („Jenkins Release Version“) für den Webhook vergeben werden. Im URL-Feld wird ein Link nach folgendem Muster angegeben werden:
https://<user>:<password>@jenkins.example.com/buildByToken/buildWithParameters?job=jira-release-version&token=<TOKEN>&VERSION_ID=${version.id}&PROJECT_ID=${project.id}
Dabei muss neben Benutzername und Passwort für die Basic Authentication Methode und der Domain zu Jenkins auch der TOKEN ersetzt werden. TOKEN ist ein zu erstellender zufälliger String der sicherstellen soll, dass Jobs nur durch autorisierte Systeme gestartet werden können. Die Autorisierung ist dahingehend redundant, da durch die nötige Benutzerauthentifizierung sowieso verhindert wird, dass Unbefugte Jobs starten können. Es scheint jedoch keine andere Möglichkeit zu geben, einen Jenkins-Job von außen zu starten, ohne ein Sicherheitstoken anzugeben.
Der job-Parameter der URL legt den Build-Job fest der durch den Aufruf angestoßen wird. Der Wert muss entsprechend angepasst werden, falls im weiteren Verlauf der Name des Jenkins-Jobs anders gewählt wird. Die verbleibenden zwei Parameter VERSION_ID und PROJEKT_ID enthalten Platzhalter, die von JIRA beim Veröffentlichen einer Version beim Aufruf des Webhooks mit den entsprechenden Werten ersetzt werden.
Unter der Überschrift „Ereignisse“ / „Events“ befindet sich eine Reihe von Checkboxen, die den Auslösezeitpunkt des Webhooks festlegen. Dort muss unter „Projetbezogene Ereignisse“ / „Project related events“ -> „Version“ der Punkt „veröffentlicht“ / „released“ angeklickt werden.
Nicht in die Irre treiben lassen darf man sich durch die Filterbox unter der Überschrift „Vorgangsbezogene Ereignisse“ / „Issue related events“. Dort können JQL (JIRA Query Language) Filter-Ausdrücke eingetragen werden, die das Auslösen des Webhooks auf z.B. bestimmte Projekte begrenzen. Leider haben diese JQL-Ausdrücke bei projektbezogenen Ereignissen keine Wirkung. Dies ist einer der Hauptgründe, warum im Verlauf des Artikels ein expliziter Dispatch-Job in Jenkins angelegt wird, der dann die eigentlichen Build-Jobs auslöst.
Nachdem alle Einstellungen festgelegt sind, wird der Webhook in JIRA abschließend gespeichert.
JIRA Release Job
Der zweite wesentliche Teil ist der JIRA Release Job, der in Jenkins konfiguriert wird.
Bevor hier ins Detail gegangen wird, müssen folgende Jenkins-Plugins installiert werden;
- HTTP Request Plugin (v 1.8.12)
- Build Authorization Token Root Plugin (v 1.4)
Als nächstes muss ein neuer Pipeline Job angelegt werden. Der gewählte Name ist in diesem Beispiel „jira-release-version“. Falls ein anderer gewählt werden soll, muss entsprechend der Parameter job in der Webhook URL im vorangegangenen Abschnitt angepasst werden. Neben dem Groovy-Build-Script muss manuell auch noch der Build-Trigger eingestellt werden. Dieser befindet sich im Abschnitt „Build Triggers“ und heißt „Builds von außerhalb starten (z.B. skriptgesteuert)“. Nach dem Anklicken der Checkbox ist noch der Authentifizierungstoken einzutragen. Dieser muss identisch mit dem in Wert TOKEN aus dem vorherigen Abschnitt sein.
import groovy.json.JsonOutput
import groovy.json.JsonSlurperClassic
properties([parameters([string(defaultValue: '', description: 'Version ID from JIRA', name: 'VERSION_ID'), string(defaultValue: '', description: 'Project ID from JIRA', name: 'PROJECT_ID')]), pipelineTriggers([])])
node {
stage ('Get Version Name') {
echo "JIRA version id: ${env.VERSION_ID}"
def versionResponse = httpRequest authentication: 'Jenkins Crowd User', url: "https://jira.example.de/rest/api/2/version/${env.VERSION_ID}", validResponseCodes: '200'
echo JsonOutput.prettyPrint(versionResponse.content)
env.VERSION_NAME = new JsonSlurperClassic().parseText(versionResponse.content)["name"]
echo "JIRA version name: ${env.VERSION_NAME}"
}
stage ('Get Project Name and Key') {
echo "JIRA project id: ${env.PROJECT_ID}"
def projectResponse = httpRequest authentication: 'Jenkins Crowd User', url: "https://jira.example.de/rest/api/2/project/${env.PROJECT_ID}", validResponseCodes: '200'
echo JsonOutput.prettyPrint(projectResponse.content)
env.PROJECT_NAME = new JsonSlurperClassic().parseText(projectResponse.content)["name"]
env.PROJECT_KEY = new JsonSlurperClassic().parseText(projectResponse.content)["key"]
echo "JIRA project name: ${env.PROJECT_NAME}"
echo "JIRA project key: ${env.PROJECT_KEY}"
}
stage ('Start Project') {
if ('TEST' == env.PROJECT_KEY) {
build job: 'test-version-script', parameters: [string(name: 'VERSION_NAME', value: env.VERSION_NAME)], wait: false
}
}
}
Das Build Skript aus dem Listing startet mit zwei Import-Anweisungen. Diese werden benötigt um JSON zu verarbeiten, das im Verlauf des Jobs geparst und ausgegeben wird. Die folgende Properties- Anweisung konfiguriert zwei Buildparameter, VERSION_ID und PROJECT_ID, die vom Webhook beim Aufruf befüllt werden.
Die ersten beiden Stages des Scripts haben einen ähnlichen Aufbau. Mit den numerischen Werten, die mit den Parameter VERSION_ID und PROJECT_ID dem Jenkins-Job übergeben werden, kann die API von JIRA abgefragt werden und somit unter anderem der Versionsname an nachfolgende Build-Jobs übergeben werden sowie der Projekt-Schlüssel als einfaches Unterscheidungskriterium für die Selektion des nachfolgenden Build-Jobs bestimmt werden. Zwar werden mit dem Webhook der mittels POST an Jenkins geschickt wird auch ein JSON Body übertragen, dem Autor ist jedoch kein Weg bekannt diesen innerhalb des Builds auszulesen. Daher wurde der Weg gewählt, die JIRA API anzufragen.
Der Eintrag für den authentication Parameter der httpRequest Methode muss zuvor in der globalen Jenkinskonfiguration unter dem Abschnitt „Http Request“ -> „Basic/Digest Authentication“ eingestellt werden. Über den Parameter validResponseCodes lassen sich die HTTP Request Codes einschränken, die der Build als erfolgreiche akzeptiert. In diesem Fall scheint eine Einschränkung auf 200 OK sinnvoll. Die abgefragten Werte werden nach dem Parsing zu den Umgebungsvariablen des Jobs hinzugefügt (VERSION_NAME, PROJECT_KEY, PROJECT_NAME).
Die letzte Job-Stage verwendet die zuvor abgefragten Werte und entscheidet anhand des unveränderlichen JIRA Projektschlüssel welcher Folgebuild angestoßen werden soll. Eine Übergabe von Parametern ist dabei möglich
Der wait Parameter des build Befehls legt fest, ob Jenkins auf das Ergebnis des nachfolgenden Builds warten soll und dessen Buildstatus in den Build mit einbinden soll oder den Build lediglich anstößt. Aus unserer Sicht soll sich jedoch der Dispatch-Job den angestoßenen Build nicht zu Eigen machen und daher nicht auf seine Beendigung warten.
Fazit
Für die eigentlich einfach erscheinende Aufgabe einen bestimmten Jenkins-Job beim Freigeben einer Version in JIRA anzustoßen, wird durch einige Stolpersteine in JIRA und Jenkins und dessen Plugins schnell ein komplexer Prozess. Dieser Artikel hat einen Weg aufgezeigt, wie sich die Klippen umschiffen lassen und damit das gewünschte Ergebnis erzielen lässt.
Visual Odometry for pedestrians based on orientation attributes of SURF
23.11.2016Autoren:
Chadly Marouane,
Robert Gutschale,
Claudia Linnhoff-Popien
Abstract: With the decreasing size and prize of cameras, visual positioning systems for persons are becoming more attractive and feasible. A main advantage of visual methods is that they can be independent of any infrastructure and are therefore applicable in indoor as well as outdoor scenarios. As such, they are an attractive alternative to infrastructure based methods. This paper presents a method that uses visual data to create a two-dimensional trajectory of the pedestrians movement. A camera that is mounted on the persons upper body is used to obtain the image data. With the SURF algorithm, feature points that posses specific attributes are extracted from the image frames. Based on these attributes, the method determines the pedestrians steps and estimates the heading at each step. As each determination of a new position is based on previous estimations, the method accumulates errors with increasing distances. An extensive evaluation with different test persons for various scenarios demonstrates that the method achieves a reasonably good overall accuracy for shorter distances. For distances of up to 25 meter, a mean error of 5.52 meter for indoor scenarios and of 7.56 meter for outdoor scenarios has been determined. Furthermore, the method is also reliably functional at increasing walking and running speeds. An additional evaluation shows the usability of one of the SURF-attributes for the implementation of an activity detector for different movement speeds. The method robustly detects steps with a high accuracy at an error rate of approximately one percent. However, just like other Pedestrian Dead Reckoning methods, the heading estimation proves to be challenging and to be a source of errors.
Konferenz: SAI Intelligent Systems Conference 2016
Step and activity detection based on the orientation and scale attributes of the SURF algorithm
23.11.2016Autoren:
Chadly Marouane,
Andre Ebert,
Claudia Linnhoff-Popien
Abstract: In recent years, the importance of location-based services and indoor positioning systems increased significantly for both, research and industry. Visual localization systems have the advantage of not depending on dedicated infrastructure and thus they are interesting for navigation within buildings. While there are already approaches which are using pre-recorded databases of reference images to obtain an absolute position for a given query image, suitable applications which are estimating the relative movement of pedestrians out of a first person perspective video are still missing. This paper presents a novel approach for a pedometer as well as for an activity detector using a such a first person perspective video stream of a pedestrian as input data. The system counts the number of steps and furthermore detects current activities of a user. Therefore, we analyze all video input data with the SURF algorithm in order to extract robust feature points. Especially the orientation and scaling properties of this feature points are used for an accurate measurement.
Visual odometry using motion vectors from visual feature points
23.11.2016Autoren:
Chadly Marouane,
Marco Maier,
Alexander Leupold,
Claudia Linnhoff-Popien
Abstract: In recent years, location-based services and indoor positioning systems gained increasing importance for both, research and industry. Visual localization systems have the advantage of not being dependent on dedicated infrastructure and thus are especially interesting for navigation within buildings. While there are already approaches of using pre-recorded databases of reference images to obtain an absolute position for a given query image, suitable means to estimate the relative movement of pedestrians from an ego perspective video are still missing. This paper presents a novel visual odometry system for pedestrians. The user carries a mobile device while walking – the camera aims into the direction of walking. Using only the video stream as input, the system generates a two-dimensional trajectory, which describes the path traveled by the user. Both, the user’s current heading as well as the walking direction are estimated based on the movement of visual feature points in successive video frames. In order to assess the accuracy of the system, it is evaluated in three different scenarios (indoors in an university building, in an urban area and in a city park). Not relying on reference points (for instance provided by a database, which references visual feature points with geo-data), the error accumulates with distance traveled. After a walked distance of 100 meters, the average error lies between 4.6 and 13.9 meters (depending on the scenario). Consequently, the system is a promising approach for visual odometry, which can be used in conjunction with existing absolute visual positioning systems or as a core part of a future SLAM (simultaneous localization and mapping) system.
Automatisierung mit Jenkins 2 und dem Pipeline Plugin
23.11.2016Als agil arbeitendes Unternehmen gehört es in der Virality zur Tagesordnung, Software zu veröffentlichen und möglichst früh Kundenfeedback in die weitere Verbesserung des Produkts einfließen lassen zu können. Dabei haben sich im Laufe der Zeit Best-Practices durchgesetzt, die uns – durch Build-Tools und Konsolenskripte unterstützt – schnell zu einem Release führen.
Diese manuellen Releases funktionieren zwar meist gut, haben aber auch Probleme: Genannt sind hier in erster Linie Fehler bei der Ausführung des Ablaufs, weil Schritte vergessen oder bewusst übersprungen werden. Die manuelle Ausführung hat zudem den Nachteil, dass kein Protokoll von dem Deployment gespeichert wird, sodass im Fehlerfall nicht nachvollzogen und verglichen werden kann, was schief gegangen ist. Nicht zuletzt können lokale Builds auch nicht sicherstellen, ob diese auch auf anderen Maschinen ausgeführt werden können.
Um diese Probleme zu beheben, setzen wir Jenkins ein um möglichst viele Schritte im Build- und Deploymentprozess zu automatisieren. Das behebt nicht nur obengenannte Probleme, sondern spart auch Zeit und motiviert: repetitive Aufgaben müssen nichtmehr durch Entwickler erledigt werden sondern funktionieren einfach! Wichtig beim Einsatz von Tools, speziell auch im Kontext von Jenkins ist uns, dass diese Tools unsere nicht Abläufe dominieren, sondern diese unterstützen und vereinfachen.
Jenkins ist dafür die richtige Wahl: Es existieren sehr viele Plugins, die alle möglichen Aspekte eines Builds anpassbar machen. Die Konfiguration der Plugins fand in Version 1 von Jenkins durch Zusammenklicken auf der Weboberfläche statt. Seit Version 2 existiert nun die Möglichkeiten Groovy Skripte zur Konfiguration zu verwenden, die wiederum in einem SCM (Source Code Management System) verwaltet werden können. Dies ermöglicht die Nachvollziehbarkeit von Änderungen in der Konfiguration und speichert diese direkt beim Projektcode. Dadurch bleiben auch die Beziehung zum Projekt und dessen Buildanweisungen erhalten.
In der folgender Zeit werden an dieser Stelle eine Reihe von Artikeln veröffentlicht, die einige Aspekte unserer Abläufe und teilweise technische Lösungen für das noch recht junge und an manchen Stellen nicht ganz runde Pipeline Plugin System beschreibt.
Wir freuen uns, falls das zu Inspiration für die eigenen Abläufe führt und hoffen auf regen Austausch zu dem Thema!
Nominierung zum Digital Innovation Award der Stadt München
27.10.2016Die Virality GmbH wurde für den Digital Innovation Award der Digitalen Stadt München e.V. nominiert. Die Jury – unter anderem Lothar Borrmann (Corporate Technology Siemens AG), Ralf Schneider (Group CIO Allianz) und Michael Zaddach (CIO Flughafen München) – wählte aus allen Einsendungen 8 nominierte Firmen aus. Deren Konzepte werden am 01.12.2016 auf dem DigiCon 2016 vorgestellt. Der Gewinner des Awards wird von allen Zuschauern gewählt – allein das Publikum entscheidet.
Die Virality präsentiert das System Positioner, mit dem ohne Installation eine exakte Positionierung von Personen in Echtzeit unter Berücksichtigung der Privatsphäre ermöglicht wird.
Auf dem Event pitchen 4 StartUps gegen die Ideen von großen Konzernen. Neben der Virality GmbH hat die Jury folgende Unternehmen ausgewählt:
Großunternehmen | KMUs |
---|---|
Allianz Deutsche Telekom Generali Unify |
Clevercity Systems HYVE AG Intelligence on Wheels Virality |
Die Virality freut sich auf das Event und einen spannenden Wettbewerb der Unternehmen!
Virality auf den TechDays Munich 2016
12.07.2016Auch in diesem Jahr wird die Virality GmbH als Anbieter innovativer Softwareprodukte, Lösungen und Konzepte wieder Aussteller der techdays munich vom 13. – 14.07.2016 auf dem Gelände des Werksviertel in München sein.
2 DAYS FULL OF KEYNOTES, WORKSHOPS, PANELS, PITCHES AND ART ALL AROUND
THIS YEARS TOPIC: MOBILITY & IDENTITY
LIVE HACKING, FASHION ZONE, DJ SAMPLING WORKSHOP & PARTY
“During two days Munich becomes a hotspot for founders, entrepreneurs and creatives in cyberspace. Innovation managers from the corporate world mingle with digital natives to exchange their views on ongoing transformation, new ways of creation, organizing or accelerating innovation.”
(Quelle: http://techdaysmunich.com)
Wir freuen uns darauf, mit Besuchern, Mitbewerbern und Kunden in den direkten Austausch zu gehen und unsere Lösungen im Bereich Mobility and Identity vorstellen zu dürfen.
Digitale Stadt München
19.04.2016Die Virality GmbH ist Gründungsmitglied im Verein Digitale Stadt München e.V. Der Verein hat den Zweck, den Standort München zu stärken und München zu einer europaweit führenden Metropole der Medien, IT und Telekommunikation zu machen und die Moderation von Innovationsprozessen zum Vorteil des Standorts München vorzunehmen. Geschäftsführer Benno Rott unterstützt die Entwicklung des Vereins aktiv als Vorstandsmitglied und vertritt dabei insbesondere die Interessen von klein- und mittelständischen IT-Unternehmen.
Mit der Vernetzung lokaler Unternehmen im Bereich Digitalisierung wird ein starkes Netzwerk aus Forschern, Innovationstreibern und -umsetzern sowie Anwendern geschaffen. Wir freuen uns über diese Entwicklung und die weiteren Aktivitäten im Vereinsverbund!
Gründungsmitglieder der Digitalen Stadt München e.V.
KeyPocket für Windows Login und Active Directory Anbindung
25.02.2016Seit dem 14. Dezember befindet sich mit dem Update von KeyPocket auf Version 2.1 eine umfangreiche Erweiterung der KeyPocket-Funktionalität in den App Stores:
KeyPocket Windows Login
Passwörter merken gehört nun auch für Windows Nutzer zu den Aufgaben, die ein sicheres und benutzerfreundliches Tool für Sie übernimmt.
Auch unsere Kunden im Business Bereich können sich freuen!
Für Unternehmen besteht die Möglichkeit zur Integration eines Active Directory und Automatisierung des Passwort-Änderungs-Prozesses mit KeyPocket. Der Nutzer wird bei Bedarf nur noch über die Änderung seines Passworts informiert.
Ein weiteres Feature ist die Änderung des Passworts nach jedem Login.
So bringen wir die IT-Sicherheit in Ihrem Unternehmen auf ein neues Level und entlasten Ihre Mitarbeiter.
Bei Interesse informieren Sie sich unter www.keypocket.de oder kontaktieren Sie uns unter info@keypocket.de.
KeyPocket Business – Mobile Authentisierung im Unternehmensalltag
19.02.2016Autoren:
Chadly Marouane,
Benno Rott
Abstract: Immer mehr Anwendungen und digitale Dienste verlagern sich in die Cloud, insbesondere im Unternehmenskontext. Dadurch entstehen neue Anforderungen an die Sicherheit. Zwar bieten viele Systeme im Web ein detailliertes Sicherheitskonzept, der Zugang zu diesen Diensten wird jedoch meist durch ein einfaches Kennwort geschützt. Insbesondere im Unternehmensumfeld werden hohe Anforderungen an ein sicheres Passwort gestellt. Dies hat jedoch zur Folge, dass Passwörter schwieriger zu merken sind und deshalb viele Mitarbeiter Passwörter fahrlässig notieren, unverschlüsselt abspeichern oder mehrfach verwenden. Um diesen Herausforderungen gerecht zu werden, stellen wir ein Konzept zur sicheren Verwaltung von Zugangsberechtigungen im Unternehmensumfeld vor. Dabei soll das Konzept die Anforderungen bezüglich Sicherheit, Usability und Einsatz im Unternehmenskontext berücksichtigen.
Journal: Informatik-Spektrum 2016
Link: link.springer.com/article/10.1007/s00287-016-0952-y
Offizielle Freigabe von KeyPocket Add-on durch Mozilla
05.02.2016Am 5. Februar 2016 hat die Mozilla Foundation, Mozilla Add-ons Gruppe, das KeyPocket Addon für Firefox Browser offiziell freigegeben.
Dabei hat das Add-on den Status “Full Review”, den höchsten Überprüfungsstatus für über den Mozilla Store bereitgestellte Add-ons, erhalten.
Mozilla beschreibt den Qualitätsstandard wie folgt:
“Add-ons in the full review track undergo full code review, as well as functional testing. These add-ons are subjected to the highest quality bar. In exchange, they are given the highest precedence in search results, and present the most streamlined install experience to users.”
Die Prüfung erfolgt dabei in den Bereichen Sicherheit, Benutzererlebnis, Inhalt, Technologie, Quellcode, Datenschutz und Nutzerdaten und Einhaltung von Mozilla Richtlinien durch ein internes Review-Team der Mozilla Foundation.
Weitere Informationen sowie den Link zum Mozilla Add-on Portal finden Sie auf www.keypocket.de.
Quelle: https://assets.mozilla.org
KeyPocket – Improving Security and Usability for Provider Independent Login Architectures with Mobile Devices
11.12.2015Autoren:
André Ebert,
Chadly Marouane,
Benno Rott,
Martin Werner
Abstract: Nowadays, many daily duties being of a private as well as of a business nature are handled with the help of online services. Due to migrating formerly local desktop applications into clouds (e.g., Microsoft Office Online, etc.), services become available by logging in into a user account through a web browser. But possibilities for authenticating a user in a web browser are limited and employing a username with a password is still de facto standard, disregarding open security or usability issues. Notwithstanding new developments on that subject, there is no sufficient alternative available. In this paper, we specify the requirements for a secure, easy-to-use, and third-party-independent authentication architecture. Moreover, we present KeyPocket, a user-centric approach aligned to these requirements with the help of the user’s smartphone. Subsequently, we present its state of implementation and discuss its capabilities and features.
Konferenz: 11th EAI International Conference on Security and Privacy in Communication Networks
SURFLogo – Mobile Tagging with App Icons
11.12.2015Autoren:
Chadly Marouane,
Andre Ebert
Abstract: Mobile tagging became more and more popular in commercials, magazines, newspapers, and other applications during the last years.
In context of commercials, a bar code containing the advertisers internet address is often used to refer a customer to related online content.
Due to their robustness as well as their comparably high fault-tolerance in case of low quality pictures, QR-Code systems are commonly used for that task.
Connected to that topic we present a special procedure for mobile tagging, which uses a distinct logo or image in order to refer to certain information instead of a QR-Code.
Our procedure was optimized to work with a conventional smartphone — the only prerequisite for usage is the possession of a smartphone capable of capturing and analyzing the different logos with our smartphone application.
To match the logos with related information and to determine their uniqueness we introduce a new similarity measure on basis of SURF feature points and a contour comparison.
Konferenz: 7th EAI International Conference on Mobile Computing, Applications and Services
Start des Pilotbetriebs von DieSchulApp an der Realschule Poing
24.11.2015Gemeinsam mit unserer Partnerschule, der Dominik-Brunner-Realschule in Poing, startet der Pilotbetrieb von DieSchulApp. Mit einer Auswahl an Lehrern, Schülern und Eltern wird insbesondere die nahtlose Integration des jeweils aktuellen Vertretungsplans sowie der Terminfunktion auf Herz und Nieren getestet. Insbesondere dass Lehrer immer aktuell über ihre eigenen Vertretungen informiert werden, kommt dabei sehr gut an.
VIRALITY Smart Cube – analoge Steuerung digitaler Funktionen
24.10.2015Mit dem Virality Smart Cube verbinden sich digitale und analoge Welt. Nutzer können den Würfel mit verschiedensten Funktionen belegen und diese durch Interaktion auslösen und steuern.
Der Virality Smart Cube eröffnet vielfältige Einsatzmöglichkeiten im Consumer aber auch Office Bereich.
Virality auf den TechDays Munich
07.10.2015Die Virality GmbH wird am 19.10.2015 auf den TechDays Munich vertreten sein. Wir werden unser Produkt KeyPocket als Teil der Ausstellung präsentieren und an Podiumsdiskussion sowie Pitch Session teilnehmen.
Wir freuen uns schon jetzt auf alle, die vor Ort mit uns ins Gespräch kommen und unsere Produkte ausprobieren wollen.
Marktplätze im Umbruch – Digitale Strategien für Services im Mobilen Internet
07.09.2015Alle Branchen befinden sich derzeit in derselben Situation: Unternehmen bedienen ihre Kunden oft noch über konventionelle Kanäle, obwohl viel mehr Kenntnis und Erreichbarkeit vorhanden ist. Technisch ist es möglich, den Ort des Kunden zu bestimmen, die Situation, in der er sich befindet. Mit diesem Wissen kann man reagieren: personalisiert können Leistungen des Unternehmens angeboten werden, die zu den Bedürfnissen des Kunden passen. Wenn das Unternehmen dies nicht tut, wird das Geschäft von anderen Playern im Markt abgegraben. Vertriebskanäle werden zunehmend bei Partnern etabliert, auch um gebündelte Produkte anzubieten. Es entstehen Orchestrierung und Kollaboration, und das Social Business reagiert viel stärker auf die Meinung der Kunden zum Produkt.
Classification of Vehicle Types in Car Parks using Computer Vision Techniques
06.08.2015Autoren:
Chadly Marouane,
Lorenz Schauer,
Philipp Bauer
Abstract: The growing population of big cities has led to certain issues, such as overloaded car parks. Ubiquitous systems can help to increase the capacity through an efficient usage of existing parking slots. In this case, cars are recognized during the entrance phases in order to guide them automatically to a proper slot for space-saving reasons. Prior to this step, it is necessary to determine the size of vehicles. In this work, we analyze different methods for vehicle classification and size measurement using the existing hardware of car parks. Computer vision techniques are applied for extracting information out of video streams of existing security cameras. For streams with lower resolution, a method is introduced figuring out width and height of a car with the help of reference objects. For streams with a higher resolution, a second approach is applied using face recognition algorithms and a training database in order to classify car types. Our evaluation of a real-life scenario at a major German airport showed a small error deviation of just a few centimeters for the fist method. For the type classification approach, an applicable accuracy of over 80 percent with up to 100 percent in certain cases have been achieved. Given these results, the performed methods show high potentials for a suitable determination of vehicles based on installed security cameras.
Konferenz: 12th EAI International Conference on Mobile and Ubiquitous Systems: Computing, Networking and Services
Seiten: 1-9
Freigabe für DieSchulApp in Bayern
24.07.2015DieSchulApp ist in enger Zusammenarbeit mit einer bayerischen Realschule entstanden. Im Zuge der Entwicklung wurden alle Anforderungen, die der Datenschutz an den Betrieb unserer App stellt, eingehend geprüft, über die Schule mit dem bayerischen Kultusministerium abgestimmt und im Rahmen der Programmierung implementiert. Der Einsatz der Smartphone-App ist damit möglich, sobald das formale Freigabeverfahren an der jeweiligen Schule/Dienststelle stattgefunden hat.
Mit DieSchulApp können teilnehmende Schulen und Lehrkräfte in Echtzeit Nachrichten an Eltern und Schüler verschicken. Innerhalb von dem geschützten System bietet die Technologie die Sicherheit, Nachrichten ausschließlich an bestimmte Empfänger zu versenden. Insbesondere für den Schutz von Kindern sind die rechtlichen Rahmenbedingungen für den Einsatz einer entsprechenden IT-Lösung sehr hoch. Die VIRALITY GmbH freut sich als technischer Dienstleister für das Produkt und wird damit nun die nächste Stufe für “Schule der Zukunft” eröffnen. Weitere Informationen zu DieSchulApp finden Sie unter www.dieschulapp.de.
Enabling Pedometers on Basis of Visual Feature Point Conversion
10.07.2015Autoren:
Chadly Marouane,
Andre Ebert
Abstract: Due to the rapid development of affordable, intelligent, and mobile devices, especially in the area of wearable computing (e.g., Google Glass, etc.), the implementation of applications for computational vision is more and more feasible.
In this context, we propose a new concept for a pedometer, which is based on visual feature points.
The introduced method is part of a visual odometry procedure, which is used for positioning on basis of optical feature points and their corresponding vectors.
In order to realize the pedometer, video recordings shot from a first person perspective become analyzed. In a first step, feature points are extracted out of each of the video’s frames. Subsequently, a pace movement is calculated by using the euclidian norm between equal feature points of successive frames.
In the following, the concept is compared to classical pedometers, which are commonly based on an accelerometer or related inertial sensors.
Besides the successful recognition of a user’s paces, we take a brief look at popular techniques for feature point processing, e.g., SURF, ORB, and BRISK, regarding their suitability for visual pace detection, which is also subject of this paper.
Especially their characteristics concerning robustness and computational costs for successful pace recognition are relevant in this context.
Konferenz: 1st GI Expert Talk on Localization
Seiten: 33-35
Veröffentlichung von KeyPocket 1.0
29.04.2015Am 29. April wurde KeyPocket für die mobilen Betriebssysteme iOS und Android veröffentlicht.
KeyPocket ist ein extrem sicheres und benutzfreundliches Werkzeug, um sich unkompliziert in alle Web-Accounts einzuloggen, ohne dafür Benutzernamen oder Passwörter eintippen zu müssen. Die Zugangsdaten werden dabei an einem einzigen sicheren Ort gespeichert, der für den Nutzer immer verfügbar ist – seinem Smartphone.
Sicher Passwortlos surfen – unseren Traum vom passwortlosen Surfen haben wir deshalb in einer App realisiert: Alle Passwörter werden mit modernster Verschlüsselungstechnik sicher auf dem Smartphone gespeichert.
Folgendes Video demonstriert die Verwendung von KeyPocket für iOS
KeyPocket ist kostenlos über den Apple AppStore und Google Play erhältlich.
Weitere Informationen finden Sie unter www.keypocket.de
VIRALITY veröffentlicht KeyPocket als kostenlose Android- und iOS-App
29.04.2015Mit KeyPocket stellt die VIRALITY GmbH eine sichere und benutzerfreundliche Alternative zum klassischen Benutzernamen/Passwort als kostenlose App für Android und iOS bereit. Durch die nahtlose Integration in die zwei weit verbreiteten Browser Mozilla Firefox und Google Chrome durch ein schlankes Plugin setzt die VIRALITY GmbH weiter auf Innovation: Mit KeyPocket kann der Login auf jeder beliebigen Website stark vereinfacht werden. Eine Partnerschaft oder Schnittstellenaustausch mit einzelnen Portalbetreibern ist dafür nicht notwendig. Eine Abhängigkeit von Externen entfällt, was dem Nutzererlebnis stark zugute kommt.
SURFtogether: Towards Context Proximity Detection Using Visual Features
11.12.2014Autoren:
Marco Maier,
Chadly Marouane,
Manuel Klette,
Florian Dorfmeister,
Philipp Marcus,
Claudia Linnhoff-Popien
Abstract: With the now near ubiquity of smart mobile devices and the advent of new wearable computing devices like Google Glass, context-aware computing applications are becoming more and more feasible. We propose a new concept coined Context-Proximity Awareness aimed at identifying closely related entities based on contextual similarity. As a first step towards that goal, we introduce the SURFtogether approach, trying to detect contextual proximity by analyzing the field of vision of two or more entities. We evaluate the general feasibility of our approach based on real-world data and show that in our initial tests, correct detection of contextual proximity is achieved nearly 90% of the time.
Konferenz: ICCASA ’14 Proceedings of the 3rd International Conference on Context-Aware Systems and Applications
Seiten: 86-91
Visual Positioning Systems – An Extension to MoVIPS
27.10.2014Autoren:
Chadly Marouane,
Marco Maier,
Sebastian Feld,
Martin Werner
Abstract: Due to the increasing popularity of location-based services, the need for reliable and cost-effective indoor positioning methods is rising. As an alternative to radio-based localization methods, in 2011, we introduced MoVIPS (Mobile Visual Indoor Positioning System), which is based on the idea to extract visual feature points from a query image and compare them to those of previously collected geo-referenced images. (mehr …)
Virality auf der Innotrans 2014
18.09.2014Ticketing, Couponing, Loyalty-Aktionen, Gamificationeffekte – Themen aus dem Retail-Bereich, jedoch höchst aktuell für Logistik und Verkehr. Aus diesem Grund finden Sie uns vom 23.09. bis 26.09. auf der Messe “InnoTrans 2014″ in Berlin. Besuchen Sie uns in Halle 2.1, Stand 109
Wir freuen uns auf Ihren Besuch!
Vis-a-Vis: Offline-Capable Management of Virtual Trust Structures Based on Real-Life Interactions
04.09.2014Autoren:
Marco Maier,
Chadly Marouane,
Claudia Linnhoff-Popien
Abstract: Online services, particularly those aimed at a specific user base such as a company’s employees, face the problem of identity management. Especially when the service constitutes some kind of social network, i.e., the validity of the users’ identities matters, secure and reliable means for identity verification and authentication are required. In this paper, predicated on our previous work, we propose an identity management concept based on a) verification through physical presence and b) authentication through ownership. Our approach being a hybrid solution between a centralized authority and decentralized trust management is settled on a sweet spot between security and convenience for the users. In this extended version, we present the newly proposed Tree of Trust structure in more detail, and provide a thourough explanation how the system can be used in a technically more distributed manner, even supporting offline operation.
Journal: International Journal On Advances in Life Sciences
Pages: 1-10
VIRALITY wird Solution Provider der GS1
13.05.2014Die VIRALITY GmbH ist offizieller Solution Provider der GS1 Germany. Die GS1 ist eine weltweite Organisation zur Vereinheitlichung von Standards entlang der gesamten Wertschöpfungskette. Unter anderem ist die GS1 für das Artikelnummersystem GTIN (ehemals EAN) zuständig. Die Kunden der VIRALITY GmbH profitieren dadurch durch vielfältige Vorteile:
- Zukunftsfähige, auf GS1-Standards basierende Lösungen
- Einsatzbereite Produkte entlang der gesamten Wertschöpfungskette
- Umfassendes Know-how zu den GS1-Standards
- Kompetente Unterstützung und Beratung vor Ort im In- und Ausland
- Erhöhte Investitionssicherheit durch etablierte Kundenbasis
Zum Kreis der GS1 Germany Solution Provider gehören über 100 Dienstleister aus den Bereichen Hard- und Software, Kommunikation, Logistik und Category Management. Dieses Verzeichnis wird seit Mai 2014 durch die VIRALITY GmbH ergänzt – mit vielfältigen Leistungen in den Bereichen Couponing, Marketing, Monitoring und mobilen Prozessen.
HP und VIRALITY zeigen virales Multichannel-Couponing am PoS auf der Euroshop
14.02.2014Auf der Euroshop zeigen HP und VIRALITY das Potential einer Kassenintegration der VIRALITY-Technologie. An der Kasse kann abhängig von Summe oder Artikeln des aktuellen Einkaufs ein persönlicher Coupon für den Kunden neu erzeugt werden und über den Drucker als QR-Code ausgegeben werden. Diese Coupons können von Kunden auf ihr Smartphone übernommen und mit Freunden und Familie geteilt werden – mit allen Features des viralen Couponings. Mit moderner Kassentechnologie von HP ist auch das Einlösen dieser Coupons vom Smartphone problemlos möglich.
Im Gegensatz zu anderen Systemen des mobilen Couponing kann auch der Kassenzettel als “Papiercoupon” direkt wieder eingelöst werden. So ist für alle Zielgruppen und Anwendungsfälle von Wertgutscheinen über Coupons mit oder ohne viralen Verbreitungsmöglichkeiten bis hin zu Stempelkarten und Gewinnspielen alles möglich. Besuchen Sie uns auf Stand A57 in Halle 6 auf der Euroshop in Düsseldorf und lassen Sie sich die Lösung vorführen.
Projektpartner T-Systems, Allianz/AMOS und Virality forschen an mobilen Produkt- und Serviceangeboten
22.01.2014- Innovationsprojekt über drei Jahre gestartet
- Förderung des Projektes durch das bayerische Wirtschaftsministerium
In einem gemeinsamen Innovationsprojekt erforschen und entwickeln AMOS, der Shared Service Dienstleister der Allianz Gruppe, der Web-on
oning-Spezialist Virality und T-Systems mobile Finanz- und Versicherungsservices. Das vom bayerischen Wirtschaftsministerium geförderte Projekt ist auf drei Jahre angesetzt.
Auf der Projektagenda stehen vor allem drei Punkte: die Entwicklung eines integrierten und sicheren Software-Pakets zur Erbringung von Finanzdienstleistungen über mobile Endgeräte, das Erarbeiten von langfristig tragbaren Geschäfts- und Vermarktungsmodellen und das Ausarbeiten von Datensicherheitskonzepten für den mobilen Finanzsektor.
Gerade bei Finanzdienstleistungen, die Verbraucher per Smartphone nutzen, müssen hohe Anforderungen an Sicherheit und Zuverlässigkeit der Software erfüllt werden. Diese muss von den verschiedenen Betriebssystemen mobiler Endgeräte mit ihren vielfältigen Funktionalitäten harmonieren und persönliche Daten verlässlich schützen.
Bei der späteren Vermarktung der Services sollen auch webbasierte Coupons eingesetzt werden. Deren Akzeptanz steigt kontinuierlich: nach neuesten Erkenntnissen haben 70 Prozent der Deutschen Interesse an mobilen Coupons, wobei vor allem die einfache Handhabung und die Aktualität der Gutscheine von Nutzern positiv gewertet werden. Mobile Coupons haben zudem eine durchschnittlich achtfach höhere Einlösungsrate als gedruckte.
Das Innovationsprojekt wird anteilig vom bayerischen Wirtschaftsministerium im Rahmen des Programms “Informations- und Kommunikationstechnik” gefördert.
Virality GmbH
Tel.: 089 – 960 15220
E-Mail: presse@virality.de
Web: http://www.virality.de
Über T-Systems
Mit einer weltumspannenden Infrastruktur aus Rechenzentren und Netzen betreibt T-Systems die Informations- und Kommunikationstechnik für multinationale Konzerne und öffentliche Institutionen. Auf dieser Basis bietet die Großkundensparte der Deutschen Telekom integrierte Lösungen für die vernetzte Zukunft von Wirtschaft und Gesellschaft. Rund 52.700 Mitarbeiter verknüpfen bei T-Systems Branchenkompetenz mit ICT-Innovationen, um Kunden in aller Welt spürbaren Mehrwert für ihr Kerngeschäft zu schaffen.
Über AMOS
Die Allianz Managed Operations & Services SE (AMOS) ist die global operierende Shared-Services-Gesellschaft der Allianz Gruppe mit Sitz in München. Das Unternehmen wurde im Mai 2010 gegründet und stellt Allianz Gesellschaften auf der ganzen Welt Dienstleistungen in den Bereichen IT, Operations und Services zur Verfügung. Gemeinsame Mission der rund 2.000 Mitarbeiter ist es, das Know-how aus allen Bereichen zu bündeln und neue und innovative Produkte und Lösungen kostengünstig und in hoher Qualität bereitzustellen.
Über Virality
Die Virality GmbH, München, wurde in 2012 als Spin-Off des Lehrstuhls für “Mobile und Verteilte Systeme” der Ludwig-Maximilians-Universität München in Kooperation mit T-Systems gegründet. Das Unternehmen verfügt über Technologie zur Verwaltung und Verbreitung digitaler Güter wie Dokumente, Wertgutscheine und Coupons über mobile Endgeräte. Diese kann neben dem Einsatz als Couponing insbesondere für den Vertrieb in Finanz- und Versicherungsbranchen zum Tragen kommen.
Virality auf der EuroShop 2014!
08.01.2014Mobile Couponing, Loyalty Cards und Gewinnspiele – dieses und mehr umfasst das aktuelle Portfolio im Bereich Retail, das die Virality in Kooperation mit T-Systems unter dem Motto “Gutscheine machen die Runde – Kassenbelege fürs Smartphone” auf der EuroShop 2014 ausstellt. Besuchen Sie uns vom 16.-20.2.2014 auf dem T-Systems Stand der EuroShop in Halle 6 / G 54 in Düsseldorf.
Wir freuen uns auf Ihren Besuch!
Vis-a-Vis Verification: Social Network Identity Management Through Real World Interactions
17.11.2013Autoren:
Marco Maier,
Chadly Marouane,
Claudia Linnhoff-Popien,
Benno Rott,
Stephan A. W. Verclas
Abstract: Online services, particularly those aimed at a specific user base such as a company’s employees, face the problem of identity management. Especially when the service constitutes some kind of social network, i.e., the validity of the users‘ identities matters, secure and reliable means for identity verification and authentication are required. In this paper, we propose a novel identity management concept based on a) verification through physical presence and b) authentication through ownership. Our approach being a hybrid solution between a centralized authority and decentralized trust management is settled on a sweet spot between security and convenience for the users.
Konferenz: SOTICS 2013
Pages: 39 to 44
Brainloop AG nutzt VIRALITY Schlüssel-App
08.09.2013Wie lässt sich verhindern, dass vertrauliche Dokumente in falsche Hände geraten? Und was hat dies mit den beliebten QR-Codes zu tun?
Das BANKMAGAZIN des Springer Verlags sprach mit Claudia Linnhoff-Popien, Virality und Markus Seyfried, CTO der Brainloop AG und stellt deren gemeinsame Lösung vor – die White-Label-Nutzung der Virality Schlüssel-App zur Authentifizierung der Brainloop Security Plattform.
“Dabei wird der QR-Code als Login, als Sicherheitsmechanismus genutzt. Er ersetzt das Passwort. Wenn ein Nutzer diesen QR-Barcode von einem bestimmten Handy aus einer bestimmten App, die durch Sicherheitsmechanismen an das Handy gebunden ist, abfotografiert, dann wird durch das Zusammenspiel der beiden Mechanismen die Anwendung freigeschaltet”, so Linnhoff-Popien.
Was hat den Ausschlag für die Zusammenarbeit mit Virality gegeben? – Seyfried: “Mit Virality haben wir folgende Idee entwickelt: Unsere Kunden können sich unseren Servern gegenüber weiterhin mit dem Mobiltelefon autorisieren, alternativ über einen QR-Code. Wenn jemand seinen Datenraum betreten will, muss er den QR-Code scannen.”
Weitere Infos: Neue mobile App für Dokumente: “Das Passwort ist der schwächste Part”, in: BANKMAGAZIN 9/2013, Springer-Verlag
Zuschlag für Leitprojekt des Freistaates Bayern
22.07.2013VIRALITY wird Partner des Leitprojekts “Arbeiten und Bezahlen im Mobilen Internet der Zukunft” des Freistaates Bayern.
Das Bayerische Wirtschaftsministerium fördert das interdisziplinäre Forschungsvorhaben ‚Das mobile Internet der Zukunft: Bezahlen und Arbeiten‘ mit rund 900.000 Euro. „Ziel des Projekts ist es, Softwarekomponenten zu entwickeln, die eine sichere Abwicklung von Geschäftsprozessen im Internet ermöglichen. Das Vorhaben verbindet dabei das mobile Internet mit der klassischen Wertschöpfung“, erklärt Bayerns Wirtschaftsminister Martin Zeil.
Weitere Infos: Pressemitteilung des Bayerischen Staatsministerium für Wirtschaft, Infrastruktur, Verkehr und Technologie
Neue Büros in München-Bogenhausen
08.07.2013Wir sind umgezogen! Ab sofort finden Sie uns in den wunderschönen Räumen der Rauchstraße 7 in München-Bogenhausen.
Besuchen Sie uns auf der Cebit
06.03.2012Virales Marketing ist ein neuartiges Konzept, das Retailern innovative Möglichkeiten zur Verbreitung von Werbemaßnahmen mit hoher Reichweite bietet. Im Rahmen der Vertriebskooperation mit T-Systems stellt die VIRALITY seine Technologie zur Viralen Verbreitung auf der diesjährigen CeBit in Hannover aus. Diese Neuheit möchten wir Ihnen vorstellen und laden Sie sehr herzlich ein zur CeBit in Hannover vom 6. bis 10 März 2012 in Halle 4 an unserem Messestand D26.
Gründung der VIRALITY GmbH
28.02.2012Die VIRALITY GmbH ist im Handelsregister angemeldet. Wir freuen über unser Startup und steigen ein in eine turbulente Fahrt mit mobilen Innovationen!