LimeSoda Blog

Rückblick auf den Magento Hackathon in Leipzig 2013

Nachdem Anna gestern von der Meet Magento berichtet hat, erzähle ich heute vom Hackathon. Der hat zwar vor der Konferenz stattgefunden, doch wie ich gehört habe, soll das mit den Prequels ganz gut funktionieren.

Das Davor

Die Vorbereitung auf den Hackathon im „Casablanca“. © Nick Weisser (@nickweisser)

Ich war zum zweiten Mal beim Hackathon dabei. Meine Premiere hatte ich Letztes Jahr in  München gefeiert. Falls sich jemand die Frage stellt, was ein Hackathon überhaupt ist, der findet die Antwort übrigens ebenfalls hinter diesem Link. ;-)

Wir haben uns also in der charmanten DJH Jugendherberge im Osten von Leipzig getroffen, um unsere Freizeit mit Programmierung zu verbringen. (Ja.)

Bevor es damit los ging, fanden wir uns Freitag Abend im Fischrestaurant Casablanca zur Hackathon Pre-Party ein. Mein erster Eindruck: hoppla, das sind ja ganz schön viele Leute! Fabian hat tatsächlich wieder über 30 Entwickler zusammentrommelt. Tolle Leistung!

Das Lokal war originell, das Essen gut und die Besucher zum Diskutieren aufgelegt. Was will man mehr?

Das Rundherum

Am nächsten Morgen startete der Hackathon. Nach einer Vorstellung der Projekte konnte jeder Teilnehmer zwei Stimmen für seine Lieblingsprojekte vergeben. So kürten wir die „Gewinnerprojekte„, auf die wir uns aufteilten und so zu Teams formierten. In der großen Runde wurde übrigens Englisch gesprochen: wir hatten unter anderem Holländer und Ukrainer in unserer Runde. Denen möchte man natürlich nichts vorenthalten.

Fabian (und Damian?) hatten die Telekom extra hinauf in den siebenten Stock geschleift (fast zu 100% sprichwörtlich zu nehmen!), so dass wir in unserem Seminarraum WLAN zur Verfügung hatten. Netzwerktechnisch gesehen ungüstig lagen die weiteren für uns gedachten Räume am anderen Ende des Ganges bzw. ein Stockwerk darunter, doch auch das Problem wurde letztlich gemeistert.

Die vorgeschlagenen Projekte wurden zur Abstimmung gestellt. © Nick Weisser (@nickweisser)

Zu dem Zeitpunkt freute ich mich noch, dass das Wetter unter aller S*u war und uns nicht von der Arbeit abhielt. So konnten wir sturmumtost in unserem Türmchen vor uns hin werken. Wie wir inzwischen wissen, hat das Sturmtief zu großen Überschwemmungen geführt und leider auch die Umgebung um Leipzig getroffen. Für uns waren die Auswirkungen weit geringer: ich habe das Gebäude während des Hackathons nicht verlassen und war einfach froh, nicht raus zu müssen.

Für unser leibliches Wohl war gesorgt: wie immer stand Club Mate zum Abwinken bereit (ganz ehrlich, für ein oder zwei Tage geht’s in Ordnung – aber wie kann man das ständig trinken!?) und im Speisesaal der Jugendherberge gab es – unterbrochen von kurzen Programmierarbeiten – Frühstück, Mittagessen, Kaffee/Kuchen und Abendessen.

Die Herberge war ein netter Austragungsort. Bunte Farben in den Gemeinschaftsräumen, sowohl im Speiseraum als auch auf den Gängen, ließen das Ganze sehr lebendig wirken. Die Räume waren eher zweckdienlich und riefen in mir das Wort „Klosterschule“ in Erinnerung. Sauber waren sie aber. Noch dazu habe ich mit Daniel und Nick zwei angenehme Zeitgenossen in meinem 3-Bett-Zimmer gehabt.

Das Mittendrin

So, nun kommen wir aber zu dem Teil, wegen dem wir eigentlich beim Hackathon waren: dem Zusammenarbeiten und Tolle-neue-Extensions-erschaffen.

Die Projektteams bestanden aus ca. 1 bis 6 Personen. Auch bei unserem Thema standen die Zeichen zunächst auf 6er-Gruppe. Schließlich waren wir zu dritt, was aber kein Problem war, denn die Zusammenarbeit mit Marc und Tobi klappte echt fein. Wie üblich wurde mit Git gearbeitet und der aktuelle Entwicklungsstand ständig in die Hackathon-Repositories bei GitHub gepusht. Alle Entwicklungen sind somit frei verfügbar.

Ivan Chepurnyi präsentiert EcomDev_PhpUnit. © Nick Weisser (@nickweisser)

Natürlich gab es ab und zu Arbeitspausen, zum Beispiel um Ivans interessanten Vortrag zu Unit-Testing zu hören (tatsächlich: einmal), zu plaudern (gefühlt: manchmal) oder zu essen (gefühlt: dauernd). Alles in allem waren wir aber tatäschlich fleißig bei der Arbeit und haben von der Früh bis ca. 22:30 Uhr gearbeitet. Danach haben wir unsere Notebooks zugeklappt und über Gott und die Welt gequatscht. Auch das ist der Hackathon.

Damit wir wissen, wie es den anderen Teams so geht, werden zwischendurch kurze Statusmeetings abgehalten und der aktuelle Projektstand präsentiert.

Die Projekte

Und was ist dabei herausgekommen? Ein Haufen schöner Projekte, die zum Teil fertig, zum Teil im Beta-Stadium und zum Teil pre-Beta sind. ;-)

Genauer gesagt sind die Projekte des Hackathon 2013 in Leipzig:

CloudAssets

Das Team beschäftigte sich mit Best Practices für den Betrieb von Magento in Multi-Server-Setups. Konkretes Ziel war, das größte Nadelöhr / Problem, nämlich den NFS-Share für die media/- und var/-Dateien durch eine bessere Lösung zu ersetzen. Die Erkenntnis war, dass NFS momentan das kleinste Übel ist und man momentan damit Vorlieb nehmen muss. Die Erkenntnisse wurden in der Readme-Datei zusammengefasst.

Das Projekt auf GitHub: CloudAssets

Projektvorstellung. © Nick Weisser (@nickweisser)

E-Mail-Preview

Unser Projekt erweitert die Voransicht von E-Mail-Templates im Backend. Das Testen von Mails kann anstrengend und langwierig sein, denn Magentos Preview bindet keine Daten in die Mails ein, womit z.B. das Testen der Bestellbestätigung wirklich mühsam wird.
E-Mail-Preview ermöglicht es, E-Mails mit Echtdaten zu versehen. So ist es möglich, den gewünschten Kunden, die gewünschte Bestellung u.ä. anzugeben und die E-Mails für verschiedene Store-Views zu rendern. Für das User-Interface haben wir ein paar Verbesserungen offen gelassen, doch die Funktionsweise ist da.

Das Projekt auf GitHub: E-Mail-Preview

Entity-Type-Manager

Den Vogel abgeschossen hat das ukrainische Team. Der 5er hat sich nach 22-stündiger Autofahrt zusammengeschlossen, um eine Extension zu programmieren, mit der man Entitäten, dazugehörige Attributsets und Attribute über das Backend erstellen kann. Die Attribute können mit Produktattributen verknüpft werden, zudem sind für die Entitäten Landing-Pages erstellbar.
Auf gut Deutsch heißt das: man erstellt z.B. eine Entität „Hersteller“, kann für diesen Hersteller viele Informationen wie Logos, Beschreibungstexte, Daten wie das Gründungsjahr, Links zu Websites und Social-Media-Accounts hinterlegen, die Entität „Hersteller“ zugleich als Attribut für Produkte verwenden und für die Hersteller eigene Seiten im Shop erstellen.
Eine beeindruckende Leistung, auch wenn ich glaube, dass diese Truppe nicht den meisten Spaß hatte. ;-)

Das Projekt auf GitHub: Entity-Type-Manager

LocaleFallback und German_LocalePack_de_CH

In Sprachräumen wie der Dachregion hat Magentos Übersetzungssystem mit einer Schwachstelle zu kämpfen: die Sprachpakete und Logik der Vererbungshierarchie sind so umgesetzt, dass man unnötig Daten duplizieren muss, wenn man z.B. eine deutsche, schweizerdeutsche und österreichische Sprachversion vorhält. LocaleFallback bessert hier nach und lässt es z.B. zu, dass man eine österreichische Lokalisierung mit nur wenigen speziell übersetzten Einträgen pflegt (typisches Beispiel: „Zur Kasse“ vs. „Zur Kassa“) und das deutsche Sprachpaket als Fallback hinterlegt. Ein praktisches Ding, das vielleicht in die speziellen Downloadpakete rund um Magento DE und Magento AT einfließen wird.

Das Projekt auf GitHub: LocaleFallback und German_LocalePack_de_CH

ProjectIdea

Für mich ist dieses Plugin ein Meta-Projekt. Fabian hat es sich damit zur Aufgabe gemacht, die Hackathon-Website um eine neue Funktion zu erweitern, nämlich die Bearbeitungsmöglichkeit für Projektideen. Eine durchaus sinnvolle Idee, wie ich finde.

Das Projekt auf GitHub: ProjectIdea

Social Commerce Module

Diese Erweiterung bietet dem Händler die Option, über Twitter und co. Meldungen zu verbreiten, wenn ein Produkt im Backend angelegt und veröffentlicht wird. Weitere Features wie das Posten auf Facebook oder bei Delicious sind geplant.

Das Projekt auf GitHub: Social Commerce Module

tinyurl

tinyurl macht Produkte über besonders kurze URLs verfügbar, um sie leichter in Newslettern, sozialen Netzwerken, E-Mails oder Präsentationsn unterzubringen.

Das Projekt auf GitHub: tinyurl

Who to blame

Was genau dieses Modul tun soll, habe ich nicht mit bekommen. Ich vermute, das steckt noch in der Early-Alpha-Phase.

Das Projekt aif GitHub: Who to blame

Fazit

Ich mach’s kurz und knackig: es hat Spaß gemacht, ich habe viel gelernt und ich kann jedem empfehlen hinzufahren, wenn er bereit ist, seine Freizeit für ein Wochenende mit Geeks zu opfern. :-)

Übrigens muss man dafür bald nicht einmal mehr unbedingt ein Wochenende opfern: demnächst gibt es vielleicht einen Test unter der Woche. Außerdem sind diverse Hackathons in unterschiedlichen Ländern geplant.

Wer jetzt Lust bekommen hat dabei zu sein, der möge doch flott zur Hackathon-Website surfen: vielleicht sind bereits neue ansprechende Termine online.

Noch keine Bewertungen.