LimeSoda Blog

Bericht vom Magento-Hackathon in München

Am letzten März-Wochenende war ich beim Magento-Hackathon in München, um mich mit Magento-Entwicklern aus ganz Europa auszutauschen und spannende Projekte umzusetzen. Hier mein Bericht dazu.

Was ist ein Hackathon?

Meistens werde ich zuerst gefragt: was ist überhaupt ein Hackathon?

Grob gesagt: man nimmt einen Haufen enthusiastischer Entwickler, die verrückt genug sind, in ihrer Freizeit viele hundert Kilometer zu reisen und bis tief in die Nacht zu programmieren, sperrt sie zusammen mit großen Mengen Koffein und coolen Ideen in einen Raum und wartet ab, was dabei herauskommt, wenn man die Tür zwei Tage später wieder öffnet.

Der Magento-Hackathon in München

Bei diesem Hackathon dreht sich alles um das e-Commerce-System Magento, mit dem wir regelmäßig Webshops umsetzen. Das Event wurde von Damian Luszczymak ins Leben gerufen und großartig von der Jarlssen GmbH unterstützt, die den ca. 30 Entwicklern ihr Büro im Herzen von München zur Verfügung stellte.

Die Organisation ließ nichts zu wünschen übrig. Jede der 6 Projektgruppen fand ihr Plätzchen und wurde mit Getränken sowie leckerem Buffet versorgt. Bei Bedarf wurde auch zusätzliche Hardware nachgeschossen. Monitore oder WLAN-Router anyone?

Da ich meine Reise erst am Samstag Morgen antreten konnte, verpasste ich leider zwei Vorträge von Bastian Ike zur Sicherheit von Magento bzw. Alistair Stead zur Performance und die Vorstellung der Projektideen. Dafür konnte ich gleich eine Runde durch das Büro machen und den verschiedenen Teams beim Projekt-Setup über die Schulter schauen. Letztendlich landete ich bei einer Gruppe, die sich dem Performance-Nadelöhr Bestellvorgang widmete. Dazu gleich mehr.

Progammierer = Maschine, die Koffein in Code verwandelt

Wer glaubt, dass wir uns dort einen faulen Lenz gemacht haben (so sagt man das wohl in Deutschland, ne?), der irrt. Tatsächlich haben wir ordentlich geschuftet. In der Nacht von Samstag auf Sonntag gingen es bei unserem Team bis ca. halb 3. Der Rekord lag soweit ich weiß sogar bei 3:15 Uhr. Wichtiges Utensil war Club-Mate, ein koffeinhaltiges alkoholfreies Getränk, das dem geneigten Coder den einen oder anderen zweiten Aufwind verschaffte. Unterbrochen wurde das Programmieren nur von gelegentlichem Essen und Status-Meetings der jeweiligen Projekte.

Nach dieser kurzen Nacht ging es am nächsten Morgen dann schon um 9 Uhr – na gut, 9:30 Uhr – weiter. Der Sonntag wurde wiederum mit einem Talk eröffnet. Vinai Kopp sprach über den Aufbau und die Verwendung des EAV-Models in Magento. Der restliche Tag folgte dem üblichen Ablauf: Status-Meeting, Coding, Essen. Wer sich das in Bildern besser vorstellen kann, findet Eindrücke auf Facebook und bei OpenStream. Auch der offizielle Magento-Blog schreibt darüber. Wer ganz genau schaut, kann man mich sogar auf dem ersten Foto finden. ;)

Am Sonntag Nachmittag gab es schließlich die Präsentationsrunde, in der jedes Team seine Extension vorstellte. Und da muss man schon sagen: Wahnsinn, was gute Teams in kürzester Zeit produzieren können. Alle Erweiterungen sind als Open-Source-Projekte auf Github zu finden. Einige komplett, andere im Entwicklungsstadium oder als Proof-of-Concept.

Die Projekte

DiscountForATweet

Mit dieser Erweiterung kann der Shop-Betreiber Kunden Rabatte einräumen, wenn diese über den Webshop tweeten. Auch die Frage der Privatsphäre war hier natürlich ein Thema. Gespeichert wird an Daten nur, was unbedingt nötig ist.

Link: DiscountForATweet bei Github

GridControl

Diese Extension ermöglicht es, über XML-Dateien die Darstellung der Grids (z.B. Produktlisten) im Magento-Backend anzupassen. So können mittels weniger Zeilen Code Spalten hinzugefügt, verschoben und entfernt werden, was für Programmierer sonst ein eher Mühsames unterfangen ist. Eine sehr gute Idee und auch schick umgesetzt.

Link: GridControl bei Github

Logger

Standardmäßig schreibt Magento Log-Informationen nur in Dateien. Häufig wollen Entwickler diese Daten zwecks besserer Übersichtlichkeit jedoch anders organisieren. Zum Beispiel schreibt man sie für strukturierte Analysen in eine Datenbank oder lässt sich über E-Mail informieren, um stets auf dem Laufenden zu sein. Diese Features rüstet „Logger“ nach.

Link: Logger bei Github

magento-responsive-theme

Responsive Webdesign, also Design, das sich automatisch an verschiedene Geräte und Bildschirmgrößen anpasst, ist mit der großen Vielfalt an Smartphones, Tablets und co ein heißes Thema – natürlich bei uns. Umso schmerzlicher, dass es bisher kein Magento-Designtemplate gab, das man als „Responsive Theme“ bezeichnen konnte. Hier hakt dieses Projekt ein und bietet die Grundlage, um ein adaptives Design zu erstellen.

Link: magento-responsive-theme bei Github

MongoDB-OrderTransactions

Unser Team hatte sich mit MongoDB-OrderTransactions ein ehrgeiziges Ziel gesetzt. Daher war auch nur ein „Proof-of-Concept“, eine Machbarkeitsstudie, geplant.

Die Idee hinter dem Projekt ist folgende: Magento lässt sich bei wachsenden Besucherzahlen recht gut skalieren, indem man neben anderen Maßnahmen mehrere Server für die Browse- und Datenbankanfragen bereitstellt. Dabei gibt es aber ein Nadelöhr: den Bestellprozess, auch als „Checkout“ bezeichnet. Mehrere Server helfen hier nicht weiter. Ab einem gewissen Transaktionsvolumen trifft man auf ein unüberbrückbares Hindernis.

Unsere Extension soll dieses Problem lösen: beim Bestellvorgang wird das normale Magento-Prozedere abgefangen, die Daten werden in eine Warteschlange geschrieben (in eine NoSQL-Datenbank namens MongoDB) und nach und nach abgearbeitet. Dabei muss Magento an vielen Stellen vorgegaukelt werden, dass alles seinen normalen Weg geht.

Das klingt nicht ganz trivial und ist es auch nicht. Daher müsste die Erweiterung besonders in den Grenzfällen noch ausgebaut werden. Sie ist noch nicht produktiv einsetzbar, doch wir sind weit gekommen. Ich habe von meinem Teamkollegen in diesen 2 Tagen auch sehr viel gelernt, was die rapide gemeinsame Entwicklung mit Github in einem eng zusammen arbeitenden Team bedeutet und habe meine Kenntnisse rund um NoSQL und das Magento-Bestellungen-Handling erweitert. Eine tolle Gruppe!

Link: MongoDB-OrderTransactions bei Github

TemplateCleanup

Ein Kollege hat als einsamer Kämpfer daran gearbeitet, die Anzahl der Template-Dateien zu reduzieren. Keine einfache Aufgabe und auch eine schöne Idee.

Link: TemplateCleanup bei Github

Und tschüss

Die Zeit verging wie im Fluge. Am Sonntag gegen 17 Uhr war es dann auch schon wieder vorbei und die Teilnehmer verstreuten sich in alle Winde. Ein wenig konnte ich München noch genießen. Eine schöne Stadt.

Mein Fazit: eine tolle Sache! Der Hackathon hat viel Spaß gemacht, man lernt nette Menschen und großartige Entwickler kennen, man lernt viel dazu. Also ein perfektes Rund-um-Paket. Vielen Dank nochmals an Damian und das Team von Jarlssen, die einen tollen Job gemacht haben.

Apropos Job. Falls jemand PHP-/Magento-Entwickler ist und in München arbeiten möchte: die Jarlssen GmbH sucht PHP-Entwickler. Sympathische Mitarbeiter, schönes Büro. Man könnte sagen, Jarlssen ist das LimeSoda von München. ;) Magento-Gurus in Wien können sich natürlich weiterhin mit uns kurzschließen.

Noch keine Bewertungen.