Advent Of Code 2022

Heute beginnt wieder der jährliche Adventskalender für Software-Entwickler, der „Advent Of Code“, bei dem täglich bis Weihnachten kleine Programmierrätsel gestellt werden. Für EFI ist ein privates „Leaderboard“ angelegt, auf dem Sie in den Wettbewerb mit anderen EFI-Studierenden, Mitarbeitenden und Lehrenden treten können. Den Beitrittscode finden Sie in der gestern (30.11.) an alle EFI-Angehörigen versendeten Mail bzw. auf Anfrage. Viel Spaß beim Adventsrätseln!

Endstand
Endstand nach Weihnachten

Von CI/CD Pipelines zu DevOps

Dr. Hongguang Yang, Lead Consultant beim Beratungshaus msg Systems AG, erläutert in einem Vortrag am 9.11.2022, 11:30 Uhr, im Raum BB.111, wie mithilfe von Containern und der Cloud die Entwicklung und der Betrieb von Software unterstützt werden kann.

Der Vortrag findet im Rahmen der Vorlesung „Software Engineering“ statt, ist aber hochschulöffentlich, d.h. Besucher sind willkommen.

Die Rückkehr der BOTS

Aufgrund des positiven Feedbacks aus dem Sommersemester 2018 kehren die BOTS auch 2019 auf den wundersamen Donut-Planeten zurück. In den Räumen von KURZDIGITAL in Fürth waren am 14.06.19 wieder EFI-Studierende gefordert, kniffelige Aufgaben in kleinen Teams zu lösen. Die besten Teams erhielten Preise, Essen und Trinken gab es für alle.

Endergebnis

Projektarbeit „Schafkopfzähler“

Motivation

Schafkopf ist, insbesondere in Bayern und Franken, ein sehr beliebtes Kartenspiel.  Dabei ist das Ziel eine bestimmten Punktzahl, um genau zu sein 61, durch Stechen zu erreichen.  Am Ende der Runde, wenn alle Karten ausgespielt wurden, werden die Punkte der Karten, die man durch Stiche erlangt hat, zusammengezählt. Mithilfe der App „Schafkopfzähler“ sollen die Spieler beim Zusammenzählen unterstützt werden.Insbesondere für Anfänger ist, neben dem eigentlichen Spiel an sich, das Punktzählen anhand der Karten schwierig. Beim Zusammenspiel mit erfahrenen Spielern wird deutlich, dass diese beim Punktzählen bedeutend schneller sind als ein Anfänger. Dieser behindert somit ein flüssiges Spiel und bei fehlerhafter Berechnung, kann es sogar zu Ungereimtheiten im Spielablauf kommen.

„Nur ein Projektmitglied konnte Schafkopf spielen. Somit kann aus eigener Erfahrung gesagt werden, dass, neben den Regeln, das Punktezählen eine besondere Herausforderung ist.

Felix Kramer, Projektmitglied

Aus diesem Grund wurde im Rahmen einer studentischen Projektarbeit ein Prototyp einer App entwickelt, die dem Benutzer die Notwendigkeit des Punktezählens abnimmt. Dabei fotografiert der Spieler jede seiner Karten. Anschließend werden diese an einen django-Webserver gesendet und dort erkannt. Letztendlich wird dadurch die Punktzahl der Karte erkannt und auf die aktuelle Punktzahl des Spielers addiert.

Android-App Schafkopfzähler

Beim Starten der App sieht man, wie im Video dagestellt, einen Startbildschirm, auf welchem man durch das Drücken von „Los Geht´s“ zur Eingabe der Namen der Mitspieler kommt.

Diese werden reihum eingeben. Anschließend kommt man durch das Drücken des Buttons „Weiter“ zum Hauptlayout der App.

Jetzt kann die Ansage gemacht werden, die festlegt, welche Karten Trumpf sind. Dafür geht man im Hauptlayout auf „Neue Ansage“. Dort wählt man dann die gewünschte Spielart aus, bestätigt diese und kommt zurück in das Hauptlayout. Im Beispielvideo wurde „Blaue“ ausgewählt. Dabei handelt es sich um ein Sauspiel (Partnerspiel), bei dem das Blatt-Ass gerufen wird. Kurzgesagt spielt der Spieler, der das Blatt-Ass auf der Hand hat, mit dem Spieler zusammen, der das Spiel angesagt hat.

Wurden nun alle Karten ausgespielt, kann man seine Punkte mit Hilfe der App ermitteln. Dazu drückt der Spieler im Hauptlayout seinen Namen an, um in den Erkennungsmodus zu gelangen. Dort scannt er nacheinander seine Karten und erhält umgehend Rückmeldung vom Server. Dieser erkennt die Karten und die App errechnet daraufhin die Punktzahl des Stichs. Wurden nun alle Karten erfolgreich gescannt, kommt der Spieler über „Bestätigen“ wieder zurück in das Hauptlayout. Ebenda wird unter dem Namen des Spielers die Punktzahl angezeigt. Nun hat der nächste Spieler die Möglichkeit seine Karten zu scannen.

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

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.