Dirk Ollmetzer | Friday, 31 August 2012 | Development
Heute hatte ich ein Gespräch über Softwareentwicklung im eCommerce Bereich. Anschliessend stellte sich bei mir erst ein Gefühl der Unzufriedenheit und schliesslich so etwas wie Frustration ein. Ich war in nahezu allen Dingen die zur Sprache kamen (Basissysteme, Frameworks, Entwicklermethoden) fundamental anderer Meinung, als mein Gegenüber. Schlimm daran fand ich, dass die andere Meinung absoluter Mainstream unter den Entwicklern ist. Ich bin also quasi ein Software-Dissident.
Worum ging es?
Es fing schon mit den verwendeten Basissystemen an: Typo3 und Magento. Finde ich beide zum in-die-Tonne-treten. Warum?
Typo3 ist in der Bedienung unglaublich umständlich und einfach nicht state-of-the-art. Man hat eine Million Stellen, wo man irgendweche Settings machen muss und kann sich eigentlich nie sicher sein, dass man nicht doch noch irgendwas übersehen hat. Der Sinn von Typoscript hat sich mir auch noch nie erschlossen. Mit einem sauberen MVC Ansatz würde man keine zusätzliche Templatesprache benötigen. Zudem ist das System out-of the-box langsam und verbraucht viel Ressourcen auf dem Server.
Magento benötigt ebenfalls sehr viel Ressourcen und es ist im Grundzustand wahnsinnig lahm. Man kann es schneller machen – aber das ist recht aufwändig. Zudem ist der Code überkomplex. Wenn ich höre, dass man Fehlersuche bei Magento ohne Debugger eigentlich vergessen kann (und das glaube ich uneingeschränkt), verdrehe ich die Augen. Eine Shopping-Cart ist eigentlich eine der einfachsten Webanwendungen überhaupt. Wenn ich da einen Debugger brauche – was zum Geier soll das für eine Softwarearchitektur sein?
Jira als Standard Ticketsystem bringt mich ebenfalls zur Verzweifelung. Das ist so komplex in der Bedienung wie Typo3 – allerdings in zehnfacher Potenz.
Anschliessend ging es um die Frage, welche Frameworks sinnvoll sind. Das betraf sowohl PHP Frameworks wie Zend, Cake oder Symphony, als auch Javascript und CSS Frameworks. Dabei ist meines Erachtens die Frage:
Sinnvoll in welcher Hinsicht?
Mit Cake kann man ohne Frage extrem schnell Webapplikationen bauen. Ob ich dieses Konstrukt aber in Hochlastszenarien einsetzen würde, möchte ich doch schwer in Frage stellen. Analog gilt für CSS Frameworks, dass man damit schnell ein gutes Standard-Ergebnis erzielen kann. Wenn es aber darum geht, die Frontend Performance zu optimieren, geht nichts über eigenen Code.
Womit wir bei der Softwareentwicklung angekommen sind. Objektorientiert wird bevorzugt – klar. Designpatterns? Ohne Frage absolut sinnvoll, wenn man komplexe Software baut. Bei Webanwendungen allerdings schwerstens überbewertet. Hier gibt es keine laufende Applikation, die parallele Threads, Events, Multiuser, was weiss ich noch was berücksichtigen muss. Der grundlegende Ablauf ist hier ja stets gleich:
Request kommt rein, wird verarbeitet, Antwort geht raus, Ende.
Okay, Application- und Sessionobjekt als Singleton zu programmieren macht durchaus Sinn. Ein Factory-Objekt ist hier und da ebenfalls angebracht. Aber sonst? Wenn man diese Techniken inklusive massenweise Vererbung übertreibt, kommt man zu sehr schwer wartbarem Code (“Hallo Debugger!”), der viel Ressourcen braucht (“Rechenzentrum: Bitte nochmal zwei Blades reinschieben…”) und langsam ist.
Langsam? Macht nix – kann man ja cachen…
Hmm, die Lösung ist also, auf eine vermurkste, zu komplexe Architektur noch eine Softwareschicht draufzulegen und das System damit noch fehleranfälliger zu machen? Ist ja ‘ne super Idee…
Conclusio
Und hier fiel mir auf, warum ich mit meiner Meinung häufig so alleine stehe. Ich bin stets auf des Suche, nach möglichst schlanken, eleganten und performanten Architekturen. Der Mainstream ist aber, eine dicke Schicht auf die andere zu setzen und damit Bloatware zu erzeugen.
Das läuft mir einfach zu 100% gegen den Strich.
Vielleicht liegt das daran, dass ich sowieso gerne mal dagegen bin (wie der Comic-Pinguin von Uli Stein).
Vielleicht liegt es daran, dass ich das Programmieren im letzten Jahrtausend auf ultralangsamen 8 Bit Rechnern mit weniger als 64KB(!) Speicher gelernt habe.
Vielleicht weil ich generell ein Faible für Schlichtheit und Reduktion habe.
Vielleicht liegt es auch daran, dass es wesentlich schwieriger ist, eine elegante, einfache Lösung zu entwickeln, als ein komplexes Monstrum zu erschaffen. Meine Meinung ist: Wenn ein System sehr komplex ist, ist es einfach noch nicht genügend durchdacht.
Wahrscheinlich sind alle der oben aufgezählten Gründe die Ursache für mein heutiges Missvergnügen.
Gerade bin ich bei Tech Crunch über einen interessanten kurzen Artikel gestolpert. In “All Your Metadata Shall Be In Water Writ” wirft Devin Coldewey das Problem auf, dass man sich nicht wirklich auf die Korrektheit von Daten aus dem Internet verlassen kann. Er bezieht sich auf die Unbeständigkeit von Daten, zum Beispiel Artikel in Blogs, Homepages, Wikipedia und sonstwas.
Man findet leicht Unmengen von Informationen zu fast jedem denkbaren Thema, aber man kann sich nicht auf deren Beständigkeit und Integrität verlassen.
Die Information kann zwischem den letzten Abruf und dem aktuellen verändert worden sein.
Das ist zum Beispiel bei Publikationen (“Internetzeitungen”) oder auch Blogs durchaus üblich.
Die Information kann vollständig verschwunden sein.
Der Betreiber existiert nicht mehr, hat das Interesse verloren, verfolgt jetzt andere Ziele oder wurde verklagt.
Die Information kann beim Transport vom Server zum Client verändert worden sein.
Stichwort Zwangsproxy zum Beispiel bei UMTS Verbindungen. Hier wird bereits heute von den Providern der auszuliefernde Inhalt verändert.
Die Angaben zum Ort, an dem die Information vermutet wird, können manipuliert sein.
Das passiert bei nahezu allen DSL Anbietern in Deutschland, wenn im Browser fehlerhafte URL eingegeben werden.
Die Information kann personalisiert sein, d.h. in Abhängigkeit meinem Browser, Betriebssystem, Standort, Netzwerkanschluss, Login oder sonstigen Parameter kann mir abweichender Inhalt angezeigt werden.
Das ist unter Umständen sogar sinnvoll, wenn Websites an Smartphones angepasst werden. Hingegen zumindest fragwürdig, wenn Google in Abhängigkeit vom Land aus dem eine Suchanfrage kommt, bestimmte Ergebnisse unterdrückt.
An den Beispielen wird jedenfalls deutlich, dass keine Verlässlichkeit gegeben ist. Coldewey schreibt:
There is no simple and reliable way to tell whether the information you are looking at has been altered in any way. Every word, every image, every byte has to some significant degree an unknown provenance.
Die o.g. Methoden können in bestimmten Szenarien durchaus nützlich und sinnvoll sein. In anderen Szenarien können es gezielte Manipulationen sein, um z.B. bestimmte Reaktionen auszulösen, Daten abzugreifen, Falschinformationen weiterzugeben, Reputation zu zerstören, rechtliche Massnahmen zu beeinflussen oder sonstige dunkle Machenschaften durchzuführen.
Auf jeden Fall sollte man sich stets bewusst sein, dass es bei Daten aus dem Internet keine Verlässlichkeit gibt, wenn man auf der Basis dieser Daten wichtige Entscheidungen treffen will.
Dirk Ollmetzer | Wednesday, 22 August 2012 | Fundstücke
Ich habe früher so lustige Sachen gespielt, wie “Ich will schneller an der nächsten Strassenecke sein, als das Auto, dass da hinten gerade losgefahren ist”. Totales Kopfkino. Habe das natürlich keinem gesagt, weil mir dann doch irgendwie blöde vorkam.
Offensichtlich haben andere aber auch solche Art Spinnereien Spielereien gemacht. Musste jedenfalls gerade über dieses Video schmunzeln und fühlte mich etwas ertappt…
Dirk Ollmetzer | Monday, 20 August 2012 | Development
NERDWARNUNG:
Wer nicht programmiert, wird das Folgende leider nicht verstehen. Sorry.
Für den Rest: Ich habe gerade den Artikel “New programming jargon” auf Jeff Atwoods Blog Coding Horror gelesen und musste über die Begriffsdefinitionen schon schmunzeln.
Er schreibt zum Beispiel über Yoda Conditions:
Using if(constant == variable) instead of if(variable == constant), like if(4 == foo). Because it’s like saying “if blue is the sky” or “if tall is the man”.
Darüber habe ich noch nie wirklich nachgedacht, aber so ein Ausdruck wie if(5 == count)
kam mir schon immer instinktiv unelegant vor.
Schön sind auch verschiedene Fehlertypen, die bestimmt jedem schon mal begegnet sind, wie zum Beispiel diese beiden:
Heisenbug – Der Fehler, der nicht mehr auftritt, sobald er untersucht wird.
Loch Ness Monster Bug – Fehler, die immer nur eine bestimmte Person meldet, die aber niemals bei irgend jemand anderem auftauchen.
Beim Debuggen ist auch bestimmt so mancher bereits über Hydra Code gestolpert (jedes Mal, wenn einen Fehler entfernt, tauchen an anderer Stelle zwei neue Fehler auf).
Ich will nicht alles vorweg nehmen – wen es interessiert, dem sei der Original Artikel empfohlen. Da ich schon mal beim Empfehlen bin – Atwoods Rant gegen PHP (“The PHP Singularity“) ist auch lesenswert. Zwar ist PHP meine bevorzugte Programmiersprache – aber an deren Eleganz oder Konsequenz liegt es sicher nicht…
So, nun ist es schon spät und es wird so langsam Zeit für ein bischen Noping.
Dirk Ollmetzer | Tuesday, 14 August 2012 | Fundstücke
Vor etwas längerer Zeit hatte ich bereits das Vergnügen, Iggy Pop live zu erleben. Damals war der Mann schon über 60 und ich war perplex und faziniert, was für eine irre Rampensau über die Bühne in der Zitadelle Spandau jagte.
Wesentlich besser, als ich es je könnte beschreibt Henry Rollins (der ja selber auch nicht so ganz ohne ist) dieses Gefühl, das ich damals hatte – natürlich aus seiner Sicht als Musiker.
Vorhang auf…
Vielen Dank an Spreeblick, für den Hinweis auf dieses Video. Ich habe Tränen gelacht…
Dirk Ollmetzer | Saturday, 11 August 2012 | Unterwegs
Ein kurzes Wochenende im hohen Norden – bei schönstem Wetter. 22 Grad, leichter Wind, Sonne, Wasser.
Heute ein kurzer Abstecher zum Yachhafen Sonwik in Flensburg, ein längerer Abstecher an den Strand nach Holnis und gleich geht es zum Rummel nach Glücksburg. Sehr nett!
Die Olympiade in London ist mittlerweile fast vorbei und ich habe einen – wie ich finde – interessanten Eindruck bekommen:
Die Olympiade interessiert eigentlich so gut wie niemanden.
Mich selbst interessiert sie sowieso nicht. Ich habe das letzte mal Anfang der 90er irgendeine Winterolympiade zusammen mit meiner Oma (Gott habe sie seelig) gesehen. Ich halte Leistungssport ohnehin für eine dreckige Sache, weil ich davon ausgehe, dass prinzipiell jeder Spitzensportler auf die eine oder andere Art und Weise dopt. Aber das ist nur meine persönliche Meinung. Ich habe zu etlichen Sachen, die viele Menschen spannend finden eine eher ablehnende Haltung. Ich bin also kein brauchbarer Indikator.
Mich haben aber vor allem zwei Dinge stutzig gemacht:
Als kurz vor Beginn der Spiele bekannt wurde, dass viele Hotels halb leer sein werden und sich alle mal so richtig verrechnet hatten, habe ich laut losgelacht. Sicherlich kommen ziemlich viele Menschen wegen der Olympiade nach London. Spannend ist aber, dass offensichtlich noch mehr Menschen die sonst über den Sommer die Stadt besucht hätten genau aus demselben Grund wegblieben.
Noch auffälliger: Mir ist das extreme Missverhältnis zwischen offizieller Berichterstattung und Feedback in meinem persönlichen Umfeld aufgefallen. Wenn man den traditionellen Medien glauben will, dann ist das, was da gerade in London läuft ein ganz grosses Ding, das hunderte Millione Menschen gespannt verfolgen.
Der Haken ist – ich kenne offensichtlich keinen einzigen davon. Weder abends in der Kneipe noch auf der Arbeit hat je irgendwer etwas zu den Spielen gesagt.
Nun bin ich ja auch in den einschlägigen sozialen Netzwerken lose mit vielen Menschen verbunden, die teils ganz andere Interessenschwerpunkte haben als ich. Aber: nahezu totale Funkstille. In den anderthalb Wochen habe ich ganze 3(!) Postings zur Olympiade gelesen:
Einer lästerte, dass man am Medallienspiegel die schelchte Performance der Deutschen Pharmaindustrie ablesen könne.
Einer lobte die mediale Aufbereitung der 100m Läufe in der New York Times
Ein Posting bezog sich tatsächlich auf ein konkretes sportliches Ergebnis
Das grösste Sportereignis des Jahres und EIN Posting in eineinhalb Wochen?
Während der Fussball EM hatte ich teilweise 10-50 Beiträge pro Spiel in meiner Timeline!
Falls das in irgendeiner Weise zu verallgemeinern ist, kann man die Olympiade getrost als von Verbänden und traditionellen Medien unendlich aufgeblasenen Quatsch abtun.
Man überlege sich, was die Übertragunsrechte kosten; die Infrastruktur, die Organisation. Und dann das Hysteriethema Nr. 1 – Sicherheit. Im Vorfeld der Spiele wurde sowiel über den Sicherheitswahn berichtet, dass man den Eindruck bekommen konnte, die Spiele würden in einem Kriegsgebiet abgehalten. Totalüberwachung, Kommunikationskontrolle, Luftabwehrraketen auf den Dächern?
HALLO? Kommt Ihr mal irgendwann wieder klar?
Ich empfehle für die Spiele entweder Rightsizing oder komplett einstampfen. Das ist doch alles überholter Scheiss. Wenn ich echten Sport sehen will, gucke ich mir wohl besser ein Provinzfussballspiel an.
Dirk Ollmetzer | Saturday, 4 August 2012 | Unterwegs
Um der Frage mal zuvorzukommen: Zu kurz. Überwiegend sonnig. Schön.
Montag bis Freitag auf Rügen; Zum ersten mal in der Hauptsaison.
Vorteil: Es gab Strandwetter. Nachteil: Die Insel ist proppenvoll.
Aber der Reihe nach.
Bei der Ankunft in Sassnitz wurde ich zunächst mit Gewitter und Platzregen der Marke “Weltuntergang” begrüsst.
Sassnitz im Gewitter
Eine Viertelstunde später war aber schon wieder alles gut, die Sonne schien, ich ging runter zum Hafen und schön wars. Das blieb dann auch der einzige Niederschlag der Woche.
Sassnitz Hafen bei Sonne
Sassnitz kenne ich nur als total verpenntes Städtchen, in dem mal 2-3 Leute rumlaufen. Nicht dass jetzt der Bär gesteppt hätte (der war in Binz – s.u.), aber es war deutlich belebter und im Hafen machten recht viele Segelboote auf ihrem Törn die Küste rauf- oder runter zum Übernachten fest. Die polnische Fraktion war bemerkenswert zahlreich vertreten.
Ich bin auch diesmal wieder in demselben Appartement eingekehrt, in dem ich auch die letzten Male war. Es ist von schöner Schlichtheit, man hat einen wunderbaren Blick über die Altstadt von Sassnitz, den Hafen und über die komplette Bucht von Prora inklusive Binz, Sellin und Göhren. Zudem ist die Mitbenutzung des Gartens erlaubt.
Gartenmöbel inklusive
Mittlerweile habe ich auch den langsamen Rhythmus der Stadt im Gefühl. Zum Beispiel wenn abends während meines Spazierganges die Fähre aus Schweden einläuft…
Abendstimmung
Während der Nebensaison bin ich immer gerne nach Binz gefahren, weil es dort ein wenig belebter war. In der Saison macht das jedoch deutlich weniger Spass. Ich war einmal zum Essen (Restaurant Diavolo – gut) und einmal zum Kaffeetrinken (Ostseekaffee – gut) dort. Binz ist einfach rappelvoll, was der Erholung abträglich ist. Hauptstrasse voll, Promenade voll, Seebrücke voll, Strand voll. Nicht toll!
Binz - Strand voll
Also zog es mich eher nach Norden in Richtung Schaabe. Die Schaabe ist im Prinzip eine fast zwölf Kilometer lange Düne (genauer: eine Nehrung), die in einer langen Biegung die Halbinseln Jasmund und Wittow miteinander verbindet. Am südlichen Ende liegt der Ort Glowe und am nördlichen Ende der Ort Juliusruh. Vom kleinen Hafen in Glowe hat man einen tollen Blick über die gesamte Bucht, bis zum Kap Arkona.
Glowe Hafen mit Blick zum Kap Arkona
Interessant finde ich, wenn zwischen all dem Renovierten und Neuen plötzlich und unerwartet eine mahnende Botschaft aus der Vergangenheit durchscheint…
Der Imperialismus ist der einzige Feind
Nach kurzem Aufenthalt in Glowe zog es mich dann aber doch zum Strand. Für mich ist der Strand von Schaabe einer der schönsten Strände der Welt. Feinster Sand, eine schöne Sicht (links Kap Arkona, rechts Jasmund) und fast unendlich viel Platz. Die Masse an Menschen verteilt sich dort so gut, dass man sich nicht bedrängt fühlt. Hier sind die Beweisbilder:
Schaabe - Blick nach links
Schaabe - Blick nach rechts
Die Aufnahmen sind am vollsten Tag bei 27 Grad entstanden. Zwei Tage vorher (22 Grad) waren nur halb soviele Menschen dort. So kann man es aushalten. Eine Warnung für Leute mit ausgeprägtem Schamgefühl: Im Gegenteil zum Strand von Prora läuft hier jeder rum, wie er mag – d.h. fast die Hälfte der Leute ohne Kleidung. Naturbelassen eben, wie es zu diesem paradiesischen Plätzchen passt.
Dirk Ollmetzer | Tuesday, 24 July 2012 | Misc, Unterwegs
Man muss die Feste feiern wie sie fallen. Und wenn jetzt das Wetter endlich mal richtig gut ist, muss man eben an die frische Luft. Rausreden gildet nich.
Also habe ich vorhin mein Schwesterherz auf ein Freiluftgetränk im Biergarten am Lindener Turm getroffen. Ein wirklich netter, kuscheliger Ort. Die Küche ist ein bischen (eher sehr) langsam – aber wir waren ja nicht auf der Flucht.