Wechsel an die TH Nürnberg

Danke, FHWS

Über zwei Jahre war ich jetzt an der Fakultät Informatik/Wirtschaftsinformatik der FHWS. Oft war es stressig, aber immer spannend, hochinteressant und von einem tollen Team getragen. Vielen Dank dafür!

ARC.lab endet mit dem Wechsel.Mit dem Wechsel endet auch das ARC.lab, das den räumlichen und technischen Rahmen für alle meine Projekte und Arbeiten an der FHWS dargestellt hat. Die Räume sind bereits neu vergeben und auch die technische Infrastruktur wird Schritt für Schritt zurückgegeben (noch bin ich ja für 6 SWS „rückabgeordnet“ und benötige das eine oder andere).

In der Konsequenz musste auch dieser Blog umziehen, da der FHWS-Server dafür nicht mehr zur Verfügung steht. Aber wer das hier liest, hat ihn ja wieder gefunden. Wechsel an die TH Nürnberg weiterlesen

Agile Softwareentwicklung im Masterstudiengang

Agile Softwareentwicklung

Innerhalb des Masterstudiengangs „Informationssysteme“ an der FHWS wird im FWPM „agile Softwareentwicklung“ verdeutlicht, wie sich Lean Thinking auf das Erstellen von Software übertragen lässt. In einem dreitägigen Projekt konnte das Erlernte nun praktisch angewendet werden. Agile Softwareentwicklung im Masterstudiengang weiterlesen

Ad-Hoc Grid Computing: Browser als virtueller Supercomputer

Die Idee ist an sich nicht neu: Durch die Kopplung vieler Ressourcen lassen sich leistungsfähige Ablaufumgebungen erzeugen, die auch komplexe Problemstellungen durch parallele Bearbeitung von Teilaufgaben meistern können. Man spricht in diesem Zusammenhang vom Grid Computing. Allerdings müssen derartige Grids meist aufwändig konfiguriert und implementiert werden.

Masterarbeit: Webbrowser als Knoten eines Ad-Hoc Grids

Michael Schneider, Absolvent des Master-Studiengangs Informationssysteme, hat in seiner Masterarbeit nachgewiesen, dass gängige Webbrowser ohne zusätzliche Konfiguration ein solches Grid spontan bilden und gemeinsam an der Lösung von Problemen arbeiten können. Er hat dazu eine JavaScript-Bibliothek entwickelt, die in herkömmliche Web-Seiten eingebettet dazu führt, dass der die Seite anzeigende Browser einem Ad-Hoc Grid beitritt und damit einerseits für die Abarbeitung übermittelter Aufgaben zur Verfügung steht, andererseits aber auch selbst Aufgaben an das Grid zur Lösung übergeben kann.

Parallelität a’la HTML5

Vor HTML5 war Nebenläufigkeit von im Browser ausgeführtem JavaScript nicht vorgesehen. Erst die mit HTML5 neu eingeführten Web Worker haben eine Möglichkeit eröffnet, in einer Web-Seite parallele Abläufe zu implementieren, die durch mehrere Threads des Browsers ausgeführt werden. Michael Schneider hat nun in seiner Arbeit den Distributed Web Worker entwickelt, der sich aus Sicht eines Entwicklers wie ein Web Worker verhält, den Programmcode aber an einen anderen Knoten des Grids zur Ausführung überträgt.

Mandelbrotmenge

Zur Überprüfung seiner Überlegungen und der Implementierung hat Herr Schneider u.a. den Algorithmus zur Bestimmung der Mandelbrot-Menge in JavaScript implementiert und die einzelnen Zeilen der Visualisierung an Distributed Web Worker zur Berechnung übergeben.

Mandelbrot

Ergebnisse

Natürlich erzeugt die Einbindung einer zusätzlichen Schicht zur Verteilung von Aufgaben in einem Grid zunächst einen Overhead. Herr Schneider zeigt aber in seiner Arbeit, dass in Abhängigkeit von der Anzahl der Grid-Teilnehmer und der Größe der verteilten Arbeitspakete durchaus Szenarien existieren, in denen das entwickelte Ad-Hoc Grid deutlich besser abschneidet als eine rein lokale Berechnung.

Messergebnisse zum Ad-Hoc Grid

Die Masterarbeit mit dem Titel

Konzeption und prototypische Implementierung
eines JavaScript-Frameworks zur dynamischen Distribution und Ausführung von Code in einem Netzwerk verteilter Webbrowser

wird in Kürze in der FHWS-Bibliothek zur Verfügung stehen.

 

#beActive: Microsoft Hackathon an der FHWS

Man kann zu Microsoft stehen, wie man will: Die angebotene Werkzeugpalette, die sich für einen Entwickler eröffnet, ist beeindruckend. Die rund 50 Hackathon-Teilnehmer hatten am 22.5. und 23.5. die Möglichkeit, in die Produktwelt von Microsoft einzutauchen und unter dem Motto #beActive eine mobile App zu entwickeln, die Nerds aus den dunklen PC-Pools ins „Real Life“ beförden soll.

Microsoft Hackathon Be Active! #beActive: Microsoft Hackathon an der FHWS weiterlesen

Side Loading von Windows Store Apps auf ein Windows Tablet

Neben den Betriebssystemen iOS und Android ist auch Microsoft Windows auf mobilen Tablets anzutreffen – für einfachere ARM-Prozessoren in der reduzierten Version Windows RT. Doch auch auf diesen einfachen Geräten können mobile Apps der Windows-Welt (Windows Store Apps) eingesetzt werden.

Im ARC.lab der FHWS stehen zwei Microsoft Surface Tablets mit Windows RT bereit, um die Ablauffähigkeit von Store Apps auf Windows RT zu überprüfen. Dabei stellt sich natürlich die Frage, wie der Programmcode einer auf dem PC entwickelten App auf ein Surface übertragen werden kann.

Side Loading

Der normale Weg für Apps auf ein mobiles Device geht über den mit dem Device verbundenen App Store. Im Microsoft Ökosystem ist das der Windows Store, mit dessen Hilfe Apps auf das Device geladen werden können. Während der Entwicklung der App ist es jedoch nicht praktikabel, jedes Deployment über den Store abzuwickeln. Aus diesem Grund hat Microsoft eine Alternative vorgesehen, das sog. Side Loading.

Je nach vorhandener Infrastruktur gibt es dafür mehrere Möglichkeiten. Am ARC.lab nutzen wir die nachfolgend beschriebene einfache Variante, die ohne zusätzliche Kosten auskommt. Allerdings sind so installierte Apps immer nur wenige Wochen auf dem Tablet ausführbar, weil dann die kostenfreie Entwicklerlizenz abläuft.

 1. Schritt

Zunächst ist die App zu paketieren. Dazu öffnet man die Projektmappe mit der App in der Entwicklungsumgebung Visual Studio 2013. Im Menü PROJEKT findet sich ein Menüeintrag zur Generierung des App-Pakets:

Die nachfolgende Frage, ob wir ein Paket für den App Store erstellen möchten, können wir verneinen. Als Zielarchitektur wählen wir „neutral“, damit das Paket anschließend auch in ARM-Umgebungen installiert werden kann.

Bei der Erstellung der Pakets wird ggf. eine (temporäre) Microsoft Entwicklerlizenz generiert und das Paket damit signiert.

 2. Schritt

Die generierte Verzeichnisstruktur übertragen wir mitsamt aller Dateien auf einen USB-Stick. Da Windows Tablets i.d.R. einen USB-Anschluss besitzen, kann der Stick dort angeschlossen und als Dateisystem geöffnet werden.

3. Schritt

Auf dem USB-Stick befindet sich im Verzeichnis der App eine Skriptdatei mit dem Namen

Add-AppDevPackage.ps1

Diese Datei enthält ein Powershell-Skript, das die Side Loading – Installation auf dem Tablet vornimmt. Am einfachsten startet man es, indem man im Explorer darauf rechtsklickt und im Kontextmenü „Mit Powershell ausführen“ wählt.  Sofern die Entwicklerlizenz auf dem Tablet schon bekannt und berechtigt ist, wird die App sofort installiert.

Beim ersten Installationsvorgang und unbekannter Entwicklerlizenz muss die Lizenz vom Administrator des Tablets für das Tablet freigegeben werden. In diesem Fall wird nach dem Administratorpasswort gefragt:

Side Loading - Konsoleausgabe

Anschließend ist die App mittels Side Loading auf dem Tablet installiert.

Microsoft Hackathon an der FHWS

Microsoft entwickelt bekanntlich nicht nur Betriebssysteme und Office-Produkte, sondern ist auch ein führender Hersteller von Entwicklungswerkzeugen und -technologien. Die integrierte Entwicklungsumgebung Visual Studio, das Framework Microsoft .net und die Cloud Plattform Microsoft Azure sind Produkte, die in der Praxis große Bedeutung haben.

Hackathon an der FHWS am 22.5./23.5.

Um den Studierenden der Studiengänge Informatik, Wirtschaftsinformatik und E-Commerce an der FHWS die Möglichkeit zu geben, intensiv in diese Technologien einzutauchen, veranstalten wir in Kooperation mit Microsoft vom 22. Mai zum 23. Mai 2014  einen

Hackathon

Am Donnerstag, 22. Mai, startet der Hackathon im Hörsaal H1.3 um 12:00 Uhr. Experten der Firma Microsoft werden alle Teilnehmer in den „Technologie-Stack“ einführen und einige Kniffe zeigen, wie man mit den Produkten umgeht. Am Ende des Nachmittags sollten alle (theoretisch) in der Lage sein, für ein Windows 8.1-Tablett zu entwickeln.

Im Anschluss an eine Essenspause, in der intensive Gespräche mit den Microsoft-Experten geführt werden können, startet dann der praktische Teil: nach einer Teameinteilung werden die Nacht hindurch  Apps entwickelt, wobei kompetente Ansprechpartner stets zur Verfügung stehen.

Am  nächsten Morgen präsentieren die Teams schließlich ihre Ergebnisse  und nach einem gemeinsamen Frühstück wird ein Siegerteam gekürt. Der Hackathon endet am 23.5. gegen 12:00 Uhr.

Teilnahme

Die Zahl der Teilnehmer ist auf 45 Studierende der FHWS beschränkt. Die Anmeldung erfolgt nach dem First-Come-First-Serve-Prinzip über einen Kurs auf der eLearning-Plattform im Zeitraum 14.4.2014, 18:00 Uhr bis 28.4.2014, 18:00 Uhr.

Jeder Teilnehmer und jede Teilnehmerin muss ein Notebook mit vorinstallierter Software zur Veranstaltung mitbringen. Da die Entwicklung für Windows 8.1 und unter Windows 8.1 stattfindet, ist ein lauffähiges Windows 8.1 Pflicht. Dies kann aber auch in einer virtuellen Maschine installiert sein, d.h. niemand muss sein geliebtes Ubuntu oder Mac OS deinstallieren!

Die benötigte Software wird im eLearning-Kurs genauer beschrieben. Der Bezug ist für Studierende der Fakultät Informatik/Wirtschaftsinformatik kostenlos über das DreamSpark-Programm der Fakultät möglich. Dazu „kaufen“ Sie das Paket über den Softwareshop der Hochschule. Danach finden Sie in der Auftragsverfolgung eine entsprechende Position mit einer Weiterleitung zum DreamSpark-Server.

 

GIT als Code-Repository im ARC.lab

Im ARC.lab entstehen Master-, Bachelor- und Projektarbeiten, die oft auch umfangreiche Anteile an Programmcode umfassen. Als gemeinsame Codeablage verwenden wir das quelloffene Repository GIT.

Warum GIT?

GIT hat gegenüber anderen Repositories den großen Vorteil, dass alle Projektbeteiligten auch lokal auf ihrem Rechner die Möglichkeit haben, mehrere Versionen zu verwalten. Sobald ein stabiler Stand erreicht ist, kann dieser dann auch mit anderen geteilt werden.

Wie nutzt man GIT?

Die einfachste Form der Nutzung ist die Kommandozeile. Klingt anachronistisch, hilft aber gerade am Anfang sehr, die Abläufe zu verstehen:

BefehlE (Auszug) Bedeutung
git clone <REMOTE-LOCATION>
Kopieren eines an <REMOTE-LOCATION> bereits bestehenden Repositories, um damit lokal zu arbeiten. Es wird ein lokales (gespiegeltes) Repository angelegt und die Dateien im Dateisystem verfügbar gemacht.
git add -A
Alle bei der Programmierung im Dateisystem neu angelegten Projektdateien werden mit dem Repository verknüpft (aber noch nicht eingefügt).
git commit -a -m <MESSAGE>
Alle lokalen Projektdateien aus dem Dateisystem werden als eine neue lokale Version im lokalen Repository gespeichert.
git push
Die aktuelle Version im lokalen Repository wird an die <REMOTE-LOCATION> als neuer globaler Stand übertragen.
git pull
Abholen des aktuellen Stands an der <REMOTE-LOCATION> und Verschmelzen mit der aktuellen Version im lokalen Repository. Die Änderungen sind auch sofort im Dateisystem verfügbar.

Wo liegt das zentrale Repository?

Für jede am ARC.lab angefertigte Arbeit steht ein Repository bereit. Die genauen Zugangsdaten erhalten alle Beteiligten zu Projektstart. Die erste Aktion ist dann, sich mittels

git clone http://<user>@arclab.fhws.de/<pfad zum repository>

eine lokale Kopie des jeweiligen Projektrepositories anzulegen.

 

Coding Night bei der Samhammer AG

Rund 24 Stunden haben sich 11 Studierende der Studiengänge Informatik, Wirtschaftsinformatik und E-Commerce mit einer Challenge der Samhammer AG beschäftigt: Wie kann ein bestehender Online-Shop für Werbemittel mit einer mobilen App erweitert werden?

Ablauf der Coding Night

Nach der Ankunft am 12.12. in Weiden wurden zunächst vier gemischte Teams aus Entwicklern der Samhammer AG und unseren Studierenden gebildet:

  • ein Team stürzte sich in die Entwicklung einer nativen Android-App,
  • ein weiteres Team nutzte PhoneGap,
  • HTML5 und angular.js war die Umgebung für das dritte Team,
  • und das vierte Team kümmerte sich um die Bereitstellung der notwendigen Web-Services zur bestehenden Shopapplikation, die auf dem Play!-Framework basierte.

Die fünf zu bearbeitenden User Stories waren schnell erklärt, so dass bald mit dem Setup der Arbeitsumgebungen, dem Design der Lösung und dem Coding begonnen werden konnte. Jedem Team wurde außerdem ein erfahrener Scrum-Master zur Seite gestellt.

Auch wenn die Teams nicht in einem direkten Wettbewerb standen: Jedes Team versuchte natürlich, bei den alle vier Stunden stattfindenden Sprint-Reviews ein möglichst gutes Bild abzugeben. Und erstaunlicherweise waren am nächsten Morgen alle Lösungen von vergleichbar guter Qualität!

In den Sprintpausen wurde für das körperliche (Pizza! Gulaschsuppe! …) und geistige (Vorträge über Responsive Design, das Play!-Framework, Scrum und Cloud-Computing) Wohl gesorgt. Außerdem gab es noch eine Chillout-Area mit Playstation, Wii, Kicker und Spotify. Den Ruheraum, in dem man sich mit einem Schlafsack aufs Ohr legen konnte, hat meines Wissens keiner genutzt.

Ergebnisse

Was hat die Coding Night gebracht? Zunächst einmal hat es (hoffentlich) allen viel Spaß gemacht. Die Studierenden konnten IT-Aufgaben in einem Industrieunternehmen praktisch erleben und die Bedeutung guter Teamarbeit hautnah erfahren. Außerdem war ein Deep Dive in einige sehr interessante Technologien möglich – unterstützt von Profis der Samhammer AG.

Aber auch von Unternehmensseite kommt positives Feedback zur Coding Night: Die Zusammenarbeit hat problemlos funktioniert, die Kompetenz und das Engagement der Studierenden hat beeindruckt.

Danke

So bleibt am Ende der Exkursion ein herzliches Dankeschön an alle Teilnehmer und die Organisatoren der Samhammer AG in Weiden. Sie haben Ihren Unternehmensslogan
„Mit Service Menschen begeistern“ bei dieser Coding Night voll erfüllt.

 

Labor für IT-Architektur

IT-Architektur ist ein Begriff, unter dem sich jeder etwas anderes vorstellt.

Während Systemarchitekten ein einzelnes Anwendungssystem vor Augen haben, optimieren Enterprise Architekten die gesamte Anwendungslandschaft von Unternehmen. Natürlich gibt es Berührungspunkte zwischen diesen Sichten, doch wie beeinflussen sich die unterschiedlichen Herangehensweisen?

Davon unbenommen steht IT-Architektur zum einen vor technische Herausforderungen, zum anderen adressiert sie aber auch ökonomische Probleme. Nicht immer ist die technisch beste Lösung auf die wirtschaftlichste, oft scheitern Softwareprojekte nicht an der Technik, sondern an den ökonomischen Rahmenbedingungen. Zielkonflikte bleiben demnach nicht aus – wie können diese gelöst werden?

Das Labor für IT-Architektur ARC.lab hat das Ziel, diese Fragestellungen anzugehen, an ausgewählten Beispielen innovative Lösungen zu erarbeiten und in die Praxis zu überführen.