Hydraulic Fractioning im Zahnschmerz der Grammatik

Mai 15 2014

Auch in dieser Woche bin ich wieder auf einige hochqualitative Artikel gestoßen (worden). Der Gewinner ist diesmal:

Gegen Gasbohren - Video der Woche: Der Frack-Öl-Bombenzug

Dieser Artikel ist so toll, ich weiß gar nicht, wo ich anfangen soll. Vielleicht beim Titel: Polemisch? Ja. Prägnant? Nicht so wirklich. Was will mir der Autor mit dieser Anhäufung von Worten sagen? Frackzug? Ölzug? Irgendwas mit Krieg? Als Informatiker bin ich versucht, Klammern zu setzen. Also versuchen wirs:

Frack-(Öl-Bombenzug)

Nein, das ließt sich, wie ein Frack aus Bombenteppich. Sowas bekommt man bei keinem Schneider. Höchstens bei einem Friedenspolitiker.

(Frack-Öl)-Bombenzug

Das ließt sich doch schon ein wenig sinnvoller. Was der Zug da macht, ist zwar immernoch unklar, aber ein bisschen soll man ja auf den Artikel neugierig gemacht werden. Nachdem das jetzt endlich geschafft ist, und ich mir auch den Titel erklären kann, geht es also los mit der ersten Neuigkeit:

Öl, oder besser: die durch Wärmeeinwirkung entstehenden Dämpfe sind leicht entflammbar. Nicht nur das, wenn es einmal brennt, kann das unter bestimmten Umständen sogar explodieren. Dem Artikel nach aber nur, wenn es mit der Methode des "Hydraulic Fractioning" gefördert wurde. Auf herkömmliche Art gefördertes Öl ist dagegen ganz harmlos1, und vor allem gibt es keinerlei Argumente gegen das Fracking, die man sonst anführen könnte2.

Nachdem der physikalische Schmerz, den mir diese Offenbarung bereitet hat, erst einmal abgeklungen ist, konnte ich mich dann also mit dem weiteren Artikel beschäftigen. Insgesamt habe ich sechs Grammatikfehler4, einen äußerst dähmlichen5 Rechtschreibfehler6 und ein falsch benutztes Fremdwort7 identifizieren können. Nicht schlecht für einen Text von gerade mal 17 Zeilen Länge.

Nein, mal ehrlich, ein kleiner Fehler kann jedem Mal passieren. Dagegen bin auch ich nicht Imam8. Aber wer an einer Rechtschreib- oder Grammatikschwäche leiden lässt, sollte vielleicht ein Einsehen mit der Welt haben und die Auokorrektur-Funktion welchen Office-Paketes auch immer nutzen. Das ist nicht schwer, und hilft gegen Kopfschmerzen.

Und, nur für den Fall dass die Verantwortlichen das hier lesen und ihren Artikel dann ändern, möchte ich euch noch den Screenshot der Seite, wie ich sie vorgefunden habe, zur Verfügung stellen: Screenshot anzeigen.


1 Die logische Konsequenz wäre, auf fossile Brennstoffe ganz zu verzichten. Aber das zu fordern ist unnötig, es gab nämlich noch nie Unfälle mit herkömmlich gefördertem Öl.
2 Da fallen mir spontan nur das auf extreme Kurzzeitgewinne abgezielte Wirtschaftsinteresse3 und der Umweltschutz (nachzulesen bei Wikipedia) ein. Bestimmt kann man da noch mehr finden, wenn man nur mal drüber nachdenkt...
3 Die Förderungsleistung eines Hydraulic Fracturing-Bohrloches sinkt im Verlauf eines Jahres um 70%.
4 Geben Sie Ihre Stimme den Kandidaten, die schlechter Grammatik in Deutschland den Zutritt zu Deutschland verbieten wollen!
5 Ja, so dämlich.
6 Ich dachte immer "avon" wäre ein Putzmittel. Oder Faltencreme. Irgendwas mit Beraterin auf jeden Fall.
7 Äh, wie noch mal isoliert man einen Vorfall?
8 Sag ich doch!

Übersetzung: Programmieren stinkt!

Mai 10 2014

Ein Essay von Peter Welch, ins Deutsche übersetzt von Christian N. Hofmann.

Peter Welch ist ein freier Autor aus Brooklyn, der auf seiner Webseite stilldrinking.org Essays über fast alles und jeden schreibt. Seine Meinungsäußerungen gibt es ebenfalls in geballter Ladung in Buchform (auch auf Papier!) unter dem Titel And Then I Thought I Was A Fish beim Medienriesen käuflich zu erwerben, allerdings nur für diejenigen, die des Englischen mächtig sind.

 

Programmieren stinkt

Jeder meiner Freunde - jeder mit einem Job, der auch nur im entferntesten etwas damit zu tun hat, mehr als zweimal pro Woche irgendetwas hochzuheben, das mehr wiegt als ein Laptop -, schafft es irgendwann, die folgende Aussage in eine Unterhaltung einfließen zu lassen: "Junge", denn es fängt immer mit "Junge" an, "deine Arbeit ist nicht hart. Ich habe gerade eine 4700-Stunden-Woche hinter mir, in der ich nur mit einem Schraubenzieher bewaffnet einen Tunnel unter Mordor gegraben habe."

Klar - keiner mag Mordor und es ist bestimmt körperlich wesentlich anstrengender, einen Tunnel zu graben, als eine Tastatur zu pieksen, es sei denn man ist eine Ameise. Aber könnten wir uns, nur für diese Abhandlung, darauf einigen, dass Stress und Irrsin ebenfalls schlechte Dinge sind? Klasse. Willkommen in der Welt der Softwareentwicklung.

 

Alle Softwareentwickler-Teams sind aus und von Verrückten zusammengestellt

Stell Dir vor, Du würdest in einem Ingenieursteam anfangen. Frisch von der Universität, aufgeregt und voller Enthusiasmus und neuer Ideen - gerade aus einer Welt aus sauberen, hübschen Entwürfen, die durch ihre Einheit aus Zweck und Design beinahe Erstaunen hervorrufen. Zuerst lernst Du Mary kennen. Mary leitet ein Brückenbauprojekt in einem wichtigen Metropolgebiet. Sie stellt Dir Fred vor, nachdem Du es durch die 15 Sicherheits-Checks geschafft hast, die Dave installiert hat, weil Daves Sweatshirt Einmal Und Nie Wieder von seinem Schreibtisch gestohlen wurde. Fred arbeitet nur mit Holz, daher fragst Du, warum er an einer Brücke arbeitet, die den Rush-Hour-Verkehr einer Großstadt über 60m Stromschnellen tragen soll. Keine Sorge, antwortet Mary. Er ist für die Gehwege verantwortlich. Welche Gehwege? Naja, Fred hat sich für die Einführung von Gehwegen stark gemacht, und sie machen auf der Brücke schon was her. Natürlich müssen sie ohne Geländer gebaut werden, denn es gibt eine strikte Keine-Geländer-Regel von Phil, der übrigens kein Ingenieur ist. Keiner weiß genau, was Phil eigentlich macht, aber es ist definitiv voller Synergie und hat etwas mit der Managementabteilung zu tun, und kein Ingenieur will sich mit dem Management beschäftigen, also lassen sie Phil einfach tun, was er will. Sara hat währenddessen einige Techniken zum Betonieren ausgegraben - allerallerneueste Bananentechnik!, und hat sie allesamt ins Brückendesign eingearbeitet, was bedeutet dass man sie alle irgendwie vermeiden muss, da jede Technik ihre eigenen Sicherheitsrisiken birgt. Tom und Harry arbeiten schon seit Jahren zusammen, und mindestens genauso lange streiten sie sich darum, ob sie jetzt das metrische oder das angloamerikanische Maßsystem benutzen. Mittlerweile bestimmt es einfach derjenige, der zuerst an einem Entwurfsteil arbeitet, was unglaubliche Kopfschmerzen bei alle denjenigen zur Folge hat, die tatsächlich versuchen, die Dinge zusammenzubauen, die die beiden zeichnen. Deswegen wird nun einfach ein Teil an das nächste geschraubt, gehämmert oder geschweißt, komme was da wolle. Ach, übrigens, das Projekt war ursprünglich eigentlich als Hängebrücke konzipiert, da aber keiner hier weiß, wie man eine Hängebrücke baut, wurden einfach irgendwann mal Unterstützungspfeiler dazugestellt, damit das Ding irgendwie stehen bleibt. Die Seile der Hängebrücke sind natürlich immernoch da - die halten schließlich auch noch Teile zusammen. Keiner weiß genau, welche Teile, aber jeder ist sich absolut sicher, dass es sehr wichtige Teile sind. Nachdem Du nun das ganze Team kennengelernt hast, darfst Du auch gerne eigene Ideen einbringen - leider hast Du keine Ideen, denn eigentlich bist Du Antriebstechniker und hast überhaupt keine Ahnung von Brücken.

Würdest Du über diese Brücke fahren? Nein. Falls sie irgendwie gebaut werden würde müsste man dafür wohl alle Beteiligten exekutieren. Und dennoch ist jedes Programm, das Du nutzt von irgendeiner Version dieses Teams geschrieben worden - Bankensoftware, Webseiten und ein universell eingesetztes Programm, dessen eigentlicher Zweck es war, Daten im Internet zu schützen und den es nie erfüllt hat.

 

Jedes Stück Quellcode ist schlecht

Jeder Programmierer tut es: wenn niemand zu Hause ist schaltet er die Lichter an, schenkt sich ein Glas schottischen Whiskys ein, schaltet etwas seichte deutsche Electronica ein, und öffnet eine Datei auf seinem Computer. Es ist nie die gleiche Datei, einige Entwickler haben sie selbst geschrieben, einige haben sie gefunden und wussten, dass sie sie abspeichern müssen. Sie lesen die Zeilen Zeichen für Zeichen und weinen vor Freude über ihre Schönheit, und dann vor Trauer, sobald sie einen Gedanken an all die anderen Dateien und den unausweichlichen Kollaps alles Guten in dieser Welt.

Diese Datei enthält Guten Code. Er hat sinnvolle und konsistente Namen für Funktionen und Variablen. Er ist knapp und prägnant. Er macht nichts offensichtlich dummes. Er musste nie in der Wildnis überleben oder sich gegenüber dem Sales-Team rechtfertigen. Er erledigt genau eine mundane, spezifische Aufgabe, und er erledigt sie gut. Er wurde von einer einzelnen Person geschrieben und niemals von einer anderen Person berührt. Er ließt sich wie Poesie, die jemand über 30 geschrieben hat.

Jeder Programmierer beginnt seine Karriere damit, eine perfekte kleine Schneeflocke wie diese zu schreiben. Dann erfährt er am Freitag, dass er bis Dienstag 600 solcher Schneeflocken geschrieben haben muss, also wird hier ein wenig gemogelt, und dort ein wenig kopiert, und dann muss das Ganze noch irgendwie zusammengeflickt werden, oder man muss einen Kollegen bitten, eine dieser Schneeflocken zu bearbeiten. Dieser schmilzt sie natürlich prompt ein, und zum Schluss sind alle dieser Schneeflocken zu einer undefinierbaren Masse zusammengepanscht und jemand lehnt einen Picasso dagegen, weil niemand die Katzenpisse sehen will, die in all die zerbrochenen Schneeflocken einsickert, die im Tageslicht dahinschmelzen. Kaum eine Woche später schaufelt irgendwer weiteren Schnee darauf, nur damit der Picasso nicht umfällt.

Es gibt eine Theorie, dass dafür eine Medizin existiert. Diese besteht daraus, Standards zu folgen, nur dass es mehr "Standards" gibt, als Dinge die ein Computer tun kann, und dass diese Standards beliebig durch die persönlichen Präferenzen derjenigen verbessert und verschlechtert werden, die versuchen, sie umzusetzen, sodass keine Ansammlung von Quellcode es jemals in die wirkliche Welt schafft, ohne ein paar dutzend identische Aktionen mit genauso vielen nichtmal ansatzweise ähnlichen Methoden zu erledigen. Die ersten paar Wochen an jedem unserer Arbeitsplätze bestehen einfach nur darin, herauszufinden, was ein Programm wie tut - selbst wenn man mit jeder einzelnen verwendeten Sprache, jedem Framework und jedem Standart so vertraut ist, wie mit seiner eigenen Hand, denn: Standards sind Einhörner.

 

Es wird immer dunkel sein

Ich bin einige Jahre mit einem Schrank in meinem Kinderzimmer aufgewachsen. Der Schrank hatte einen seltsamen Aufbau. Zuerst sah er ganz normal aus, dann setzte man sich hinein um Schrankdinge zu tun, und bemerkte, dass die Wand rechts einen Alkoven barg, der ein praktisches kleines Regal bildete. Dann sah man nochmal genauer hin, und bemerkte, dass die Wand des Alkoven nachgab, und einem Versteck Platz machte, in das kein Licht eindrang und das sofort als die Tagesbehausung jedes Monsters erkennbar war, dem man des Nachts mit Taschenlampe und Stofftier Paroli bot.

Genau so fühlt es sich an, Programmieren zu lernen. Man lernt all die nützlichen Werkzeuge kennen, nur um sich danach nach weiteren Werkzeugen umzuschauen, und darauf hin noch einige nützliche zu finden, und einige, die den bodenlosen Horror bergen, der immer in diesem Schrank lauerte.

Nehmen wir einmal an, Du wärst ein durchschnittlicher Webentwickler. Du kennst Dich mit einem Dutzend Programmiersprachen aus, jeder Menge hilfreicher Bibliotheken, Standards, Protokollen und was nicht sonst noch alles. Du musst Dein Repertoire immer noch wöchtentlich um etwa ein Sonst-Noch-Alles erweitern und die anderen hundert Dinge, die Du bereits kennst auf Neuerungen oder Fehler überprüfen, sicherstellen, dass sie alle zusammen passen, und dass niemand den Bug in einem davon gefixt hast, den Du ausnutzt, weil Du dachtest, das wäre eine echt klasse Idee als Du irgendwann mal an einem Wochenende ziemlich betrunken… naja, lassen wir das. Du bist mit allem auf dem neuesten Stand, und alles funktioniert - und dann bricht alles zusammen.

"We Te Eff?" fragst Du, und beginnst das Problem zu suchen. Du stellst fest, dass irgendwann mal ein Idiot sich gedacht hat, dass, weil ein anderer Idiot einmal festgelegt hat, dass 1/0 unendlich ist, man ja 1/0 als Abkürzung für "unendlich" benutzen könnte, um den Code zu vereinfachen. Dann hat ein Nichtidiot korrekterweise festgestellt, dass das dumm war, was eigentlich der erste Idiot festgestellt haben hätte sollen, aber weil er das nicht hat, hat der Nichtidiot beschlossen, ein Arsch zu sein und genau das in seinem neuen Compiler zu einem "failing error" zu machen, zu einem "unverzeihlicher Fehler". Weil er aber nun ein Arsch war, hat er beschlossen, keinem zu erzählen, dass das ein Fehler ist, und jetzt stehst Du da und alle deine Schneeflocken sind Katzenpisse, und Du kannst nicht einmal die Katze finden.

Du bist also ein Experte in all diesen Technologien, und das ist gut, denn die Erfahrung und das Wissen haben dir geholfen, das Problem in nur sechs Stunden zu lösen - die andere Option wäre gewesen, deinen Job zu verlieren. Und nun hast Du eine kleine Extrainformation, die Du irgendwo in diesen Millionen kleiner Informationen vergräbst und von der Du dir merken musst, wo und warum - denn fast alle deiner Werkzeuge wurden einmal von Ärschen und Idioten geschrieben.

Und all das nur im Feld deiner Wahl, das nur einen winzigen Bruchteil all der Dinge darstellt, die es in der Informatik zu wissen gibt, einen so kleinen Bruchteil, dass Du genauso gut einfach gar nichts gelernt haben könntest. Niemand, nicht eine einzige Person auf der Welt, weiß, wie alles in deinem fünf Jahre alten MacBook funktioniert. Warum sagen wir Dir, dass Du es aus und einschalten sollst? Weil wir nicht die geringste Ahnung haben, an welcher Krankheit es leidet, und weil es wirklich einfach ist, einen Computer in ein Koma zu versetzen und seine eingebauten automatischen Ärzte nach dem Problem suchen zu lassen. Der einzige Grund, warum die Computer von Programmierern besser laufen als die aller anderen ist, dass Programmierer wissen, dass Computer schizophrene kleine Kinder mit Autoimmunerkrankungen sind und wir sie nicht schlagen, wenn sie böse sind.

 

Viel Arbeit steckt im Internet, dem Internet als seine eigene spezielle Hölle

Erinnerst Du Dich an das Zeug mit den Verrückten und dem schlechten Code? Das Internet ist genau das - nur dass es sprichwörtlich eine Milliarde mal schlimmer ist. Webseiten, wie z.B. glorifizierte Einkaufswägen mit vielleicht drei dynamischen Seiten, werden von ganzen Entwicklerteams rund um die Uhr gewartet, denn die Wahrheit ist: alles bricht immer und überall zusammen. Gerade jetzt bekommt jemand bei Facebook zig tausende von Fehlermeldungen und versucht irgendwie den Fehler zu finden, bevor die ganze Scharade in sich zusammenbricht. Es gibt ein Team bei Google, das seit drei Tagen nicht geschlafen hat. Irgendwo sitzt eine Datenbank-Programmiererin umgeben von jeder Menge Mountain Dew-Flaschen, während ihr Ehemann glaubt, sie sei tot. Und wenn diese Menschen aufhören, bricht in der ganzen Welt ein Inferno los. Die meisten Menschen wissen nicht, was Systemadministratoren tun, aber glaube mir: wenn sie alle zur gleichen Zeit Mitagspause machen würden hätten sie nicht genug Zeit bis zum Griechen zu kommen, bevor Deine Munition zur Neige ginge, mit der Du Dein Hab und Gut vor marodierenden Banden von Mutanten zu schützen versuchst.

Man kann das Internet nicht neu starten. Abermilliarden von Dollars sind davon abhängig, dass ein klappriges Gestell aus den Spinnweben inoffizieller Vereinbarungen und "es reicht grad so fürs Release"-Code mit Kommentaren wie "TODO: RICHTIGE LÖSUNG FINDEN, DAS IST EIN WIRKLICH GEFÄHRLICHER HACK, ICH WEISS NICHT WAS EIGENTLICH FALSCH LÄUFT", die vor zehn Jahren geschrieben wurden. Und die Legionen von Menschen, die breite Teile des Internets angreifen, aus Gründen der Spionage, für Geld oder einfach nur weil ihnen langweilig ist. Schon jemals was von 4chan gehört? 4chan kann dein Leben und deine Firma zerstören, weil sie Dich für einen Nachmittag nicht mögen, und wir sind dadurch nichteinmal beunruhigt, denn was ist schon eine einzelne Atombombe in einem Nuklearkrieg.

Im Internet kann man leicht sagen "weißt Du, das funktioniert meistens, wenn man die richtige Technologie dafür benutzt", und BAM! ist es Teil des Internets. Jeder, der nur ein paar hundert Dollar und einen Computer hat, kann sich einen kleinen Teil des Internets schnappen und welchen grausamen Hack auch immer er gerade für genial hält hineinsetzen, und der kleine Hack kommt dann zu vielen anderen kleinen Hacks und alles wird ein wenig schlimmer. Selbst die guten Entwickler geben sich keine Mühe, die arkanen Regeln, die die Mitarbeiter der Organisation zum implementieren einiger Einhörner aufgestellt haben, zu erlernen, weswegen jeder die Hälfte seiner Zeit damit verbringt, darüber nachzudenken, dass nichts mit nichts zusammenpasst oder auch nur den geringsten Sinn ergibt, und jederzeit auseinander fallen könnte, und wir versuchen nur, es zu verschleiern und hoffen, dass es keiner bemerkt.
Hier sind die geheimen Regeln des Internet: Fünf Minuten, nachdem Du das erste Mal einen Webbrowser öffnest, hat ein Kind in Russland Deine Sozialversicherungsnummer. Hast Du dich für irgendetwas angemeldet? Ein Computer bei der NSA verfolgt Deine physikalische Position für den Rest Deines Lebens. Eine eMail verschickt? Deine Mailadresse ist gerade in Nigerien auf einer Reklametafel erschienen.

Das alles passiert nicht, weil es uns egal ist und wir nicht versuchen, es aufzuhalten. Es passiert, weil alles kaputt ist, weil es keinen guten Code gibt, und jeder nur versucht, es am Laufen zu halten. Das ist dein Job, wenn Du mit dem Internet arbeitest: hoffen, dass das, was Du zuletzt geschrieben hast stark genug ist, um Dir ein paar Stunden zum Essen und Schlafen zu verschaffen.

 

Wir waren nicht "schon immer" verrückt, wir werden erst verrückt gemacht

FEHLER: Versucht, HTML mit regulärem Ausdruck zu parsen; System gab "Cthulhu" zurück.

Lustig, nicht? Nein? Wie ist es mit dieser Unterhaltung:

"Heißt das da umkehrArray"?
"s/camel/_/"
"Danke."

War der Kerl nicht hilfreich? Mit dem Kamel? Wirkt das wie eine angemessene Antwort? Nein? Gut. Du kannst Jesus noch finden. Du hast noch nicht so viel Zeit Deines Lebens damit verbracht, Code zu lesen, dass Du anfängst in Code zu reden. Das menschliche Gehirn ist nicht sonderlich gut darin, auch nur grundlegende Logik zu verarbeiten, und wir arbeiten in einem Karrierezweig, dessen Aufgabengebiet ausschließlich aus Logik besteht - und zwar sehr, sehr komplexer Logik. Endlose Ketten abstrakter Bedingungen und Voraussetzungen müssen nach kleinen Dingen wie fehlenden Kommas durchforstet werden. Das den ganzen Tag zu tun bringt dich in einen Status milder Aphasie, wenn Du Leuten in die Augen schaust, während sie reden, und Du nicht weißt, wann sie fertig sind, weil sie nicht "Semikolon" sagen. Du tauchst in eine Welt der absoluten Bedeutungslosigkeit, in der alles was zählt eine kleine Folge von Zahlen in einem gigantischen Labyrinth aus Symbolen ist, nur um am anderen Ende eine völlig andere Folge von Zahlen oder ein Bild eines Kätzchens zu finden.
Der zerstörerische Einfluss auf das Gehirn wird dargestellt durch die Programmiersprachen, die die Menschen so schreiben.

Das hier ist ein Programm:

#include <iostream> int main( int argc, char** argv ) { std::cout << "Hello World!" << std::endl; return 0; } 

Dieses Programm tut genau das gleiche:

`r```````````.H.e.l.l.o. .w.o.r.l.di

Genau wie dieses:

>+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.[-] >++++++++[<++++>-] <.>+++++++++++[<++++++++>-]<-.--------.+++ .------.--------.[-]>++++++++[<++++>- ]<+.[-]++++++++++.

Und dieses:

Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook. Ook! Ook? Ook! Ook! Ook? Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook.

Und irgendwann mal hat jemand eine Programmiersprache geschrieben, die jemand anderen dieses Programm schreiben ließ:

#:: ::-| ::-| .-. :||-:: 0-| .-| ::||-| .:|-. :|| open(Q,$0);while(){if(/^#(.*)$/){for(split('-',$1)){$q=0;for(split){s/| /:.:/xg;s/:/../g;$Q=$_?length:$_;$q+=$q?$Q:$Q*20;}print chr($q);}}}print"n"; #.: ::||-| .||-| :|||-| ::||-| ||-:: :|||-| .:| 

Laut dem Autor, besteht das Programm aus "zwei Zeilen Code, die zwei Zeilen eingebetteter Kommentare auf die Mayazahlen durchsuchen, die die Nummern der ASCII-Zeichen des Titels des Magazines repräsentieren, dargestellt um 90 Grad gedreht und in ASCII-Art."

Das Programm hat einen Wettbewerb gewonnen, weil… natürlich hat es das. Möchtest Du in dieser Welt leben? Nein. Das ist eine Welt, in der Du eine Schachtel Zigaretten am Tag rauchst und niemand darüber auch nur nachdenkt. "Natürlich raucht er eine Schachtel am Tag, wer würde das nicht tun?" Irgendwann wacht jeder Entwickler einmal auf, und bevor er bei vollem Bewusstsein ist, sieht er die ganze Welt und jede Beziehung in ihr als Codefetzen, und er tauscht Geschichten darüber aus als wäre es das normalste auf der Welt, dass Müdigkeit Halluzinationen auslöst. Es ist eine Welt, in der Menschen auf Sex verzichten, um eine Programmiersprache für Orang-Utans zu entwickeln. Alle Entwickler zwingen Ihre Gehirne dazu etwas zu tun, wofür sie nie gemacht wurden, in einer Situation die sie nie verbessern können, acht bis fünfzehn Stunden am Tag, fünf bis sieben Tage die Woche, und jeder von ihnen wird langsam aber sicher verrückt.

</rant>

Also: nein. Ich muss keine 50 Kilo schweren Dinge heben können. Ich habe das für die Möglichkeit getauscht, Satans Schamhaare zu rasieren, während er aus meinem offenen Schädel speist, nur damit ein paar Teile des Internets ein paar Tage länger funktionieren können.

 

TL;DR: Professionelle Softwareentwicklung in 5 Schritten

 

Weitere empfehlenswerte Essays von Peter Welch:

Erkenntnüsse des 04.05.2014

Mai 04 2014
  1. Ich bin nicht in der Lage, die "Erkenntnisse des Tages" kontinuierlich zu pflegen.
  2. Wenn man "mal eben schnell" was übersetzen will, ist es plötzlich drei Stunden später.
  3. Gefütterte Katzen schlafen leiser, und Blogeinträge mit Katzen sind Selbstläufer.

Die taz kommentiert: AfD gegen die Presse

Mai 04 2014

Ein kleiner Kommentar zu meiner persönlichen Stilblüte der Woche:

taz.de-Kommentar zu AfD und Pressefreiheit: Der Rauswurf war kein Versehen

 

In meinen Augen liegt der Autor hier falsch. Nur weil der Akteuer die AfD war, wurde hier eben nicht prinzipiell falsch gehandelt. Ich sehe jedes Jahr wie dumm und überzogen die Antifa sein kann1, und ich würde als Partei, die eh schon einen rechten Ruf hat - den ich wohlgemerkt durchaus berechtigt finde, die AfD wirkt teilweise weiter rechts platziert als die NPD - gerade solchen Verdachtsmomenten auch sicherheitshalber nachgehen und die potentiell gewaltbereiten Antifa-Mitglieder von der Veranstaltung verbannen, zumal die Veranstaltung auch von einer Demonstration linksradikaler Aktivisten belagert wurde2. Das hat nichts mit Pressefreiheit und deren Eingrenzung zu tun, sondern etwas mit Sicherheitsbedenken. Der Deckmantel des Journalismus schützt nicht pauschal vor jedem Verdacht, und das ist auch nicht seine Aufgabe: Wer aus triftigem Grund als Gefahr für die Besucher einer Veranstaltung eingestuft werden muss, hat auf dieser Veranstaltung nichts verloren, und die Zugehörigkeit zu einer militanten linksradikalen Gruppierung, die das Gewaltmonopol des Staates per se nicht anerkennt, ist durchaus ein triftiger Grund. Und wem es nicht passt, als "potentiell gewaltbereit" eingestuft zu werden, sollte keine Verbindung zu einer derartigen Gruppierung unterhalten.

Dass insbesondere Fotografen auch gern mal über die Stränge schlagen und entgegen dem Recht am eigenen Bild handeln, ist auch bereits bekannt. Und jeder Journalist fühlt sich - nicht immer zurecht - bestärkt, wenn es um angebliche Neonazis3 geht, und glaubt, allein dieser Vorwurf hebele die Grundrechte aus. Die Pressefreiheit beschränkt sich auf "Personen des öffentlichen Lebens". Gäste der Veranstaltung sind durch das Recht am eigenen Bild geschützt, und wenn sich ein allzu eifriger Fotograf nicht daran hält, darf man ihm zum Schutz der Gäste auch ohne weiteres ein Veranstaltungsverbot erteilen.

In conclusio: "größtenteils harmlos". Hätte das beispielsweise die CDU so gemacht, wäre das gar kein Problem gewesen, und die Zeitungen hätten womöglich statt gegen die Partei gegen diese dreisten Journalisten gewettert. Oder: wer die Macht will, braucht seiner Beschreibung nicht zu spotten.

 


1 Auf dem WGT werden "military style" Goths und Besucher von Industrial-Konzerten pauschal als Nazis deklariert. An Industrial-Locations vorbeifahrende Trams werden mit Backsteinen beworfen, und Pöbeleien und Angriffe der Antifa auf friedliche Treffenbesucher sind nicht gerade das, was man eine Ausnahme nennen könnte.
2 Dazu fand ich bei YouTube folgendes Video: AfD Veranstaltung Bremen 30.04.2014
3 Jeder Neonazi ist "rechts", aber nicht jeder "Rechte" ist ein Neonazi. Man kann auch ohne nationalsozialistische Ideale "rechts" sein. Sieht man sich beispielsweise das Parteiprogramm der AfD an, zeigt dieses zwar durchaus starke separatistische Züge und eine streng konservative Haltung, nähert sich dem nationalsozialistischen Kernaspekt der allumfassenden staatlichen Kontrolle allerdings nicht stärker als z.B. die Linkspartei.

HowTo: FusionDrive reparieren

Mai 02 2014

Gestern habe ich mit meinem iMac etwas sehr sehr Dummes angestellt. Aber fangen wir von vorne an: mein iMac besitzt ein Fusion Drive (ab Werk) mit einer Größe von 3 TB. Diese doch sehr großen Fusion Drives haben einen Nachteil: BootCamp. Möchte man Windows auf diesen Systemen installieren, muss die Hauptpartition auf dem Fusion Drive "getrennt" werden, da BootCamp maximal eine Datenträgergröße von 2,2 TB unterstützt.

Nachdem ich also beim Anschaffen des iMacs lange gebraucht habe, um herauszufinden, wie ich es hinbekomme, dass ich eine Partition für Mac und eine Partition für Windows habe, sah die Parition in etwa so aus:

Da ich mittlerweile aber die BootCamp-Partition nicht mehr benötige (ich habe mir eine PlayStation angeschafft, und dadurch derzeit keine Windows-Only-Spiele mehr), dachte ich mir "och, einfach löschen, und dann die beiden Macintosh HDs zusammenführen".

So einfach ist es nur leider nicht: Löscht man die BootCamp-Partition von Hand, und nicht per BootCamp-Assistenten, lassen sich die beiden Macintosh HDs nicht nur nicht mehr vereinen, nein, man kann nichtmal mehr die Größe ändern. Einige Selbstversuche später die Erkenntnis: Ich hab ja noch Garantie, rufen wir mal beim Support an. Heraus kam die folgende Anleitung:

  1. Bootbaren USB-Stick erstellen
    Einen bootbaren USB-Stick erstellt man am Besten mit dem DiskUtil. Für OS X Mavericks reichen 8 GB aus. Die dazu benötigten Schritte sind:
    1. OS X Mavericks aus dem Mac App Store laden. Findet man am schnellsten unter "Einkäufe".
    2. Wenn es fertig geladen ist im Terminal den folgenden Befehl ausführen:
      sudo /Applications/OS\ X\ Mavericks\ installieren.app/Contents/Resources/createinstallmedia --volume "/Volumes/(Medium)" --applicationpath "/Applications/OS X Mavericks installieren.app"
    3. Fertig.
  2. System sichern
    Das komplette System per TimeMachine sichern.
  3. FusionDisk auflösen und neu erstellen
    1. Per USB-Stick booten.

    2. Aus dem "Dienstprogramme"-Menü das Festplattendienstprogramm starten.
    3. Macintosh HD löschen.
    4. Das Festplattendienstprogramm wieder schließen.
    5. Aus dem "Dienstprogramme"-Menü das Terminal öffnen.
    6. Die folgenden Befehle ausführen:
      diskutil corestorage list
      Das Ergebnis ist folgende Ausgabe:
      CoreStorage logical volume groups (1 found)
      |
      +-- Logical Volume Group B591A764-FF40-4E80-B23D-347F508930D6
          =========================================================
          Name:         Internal Drive
          Status:       Online
          Size:         3120722075648 B (3.1 TB)
          Free Space:   16384 B (16.4 KB)
          |
          +-&lt; Physical Volume 911772B3-C39D-4A3B-9C6A-9F63D28E53DD
          |   ----------------------------------------------------
          |   Index:    0
          |   Disk:     disk0s2
          |   Status:   Online
          |   Size:     120988852224 B (121.0 GB)
          |
          +-&lt; Physical Volume 1A122EF9-AA1C-44FE-B045-27796A4F14D8
          |   ----------------------------------------------------
          |   Index:    1
          |   Disk:     disk1s2
          |   Status:   Online
          |   Size:     2999733223424 B (3.0 TB)
          |
          +-&gt; Logical Volume Family 905DA670-6EC0-4CA6-8E37-40FDFD7143F2
              ----------------------------------------------------------
              Encryption Status:       Unlocked
              Encryption Type:         None
              Conversion Status:       NoConversion
              Conversion Direction:    -none-
              Has Encrypted Extents:   No
              Fully Secure:            No
              Passphrase Required:     No
              |
              +-&gt; Logical Volume EA235E85-C2BD-40E6-B266-0DC1B3320FD1
                  ---------------------------------------------------
                  Disk:                  disk2
                  Status:                Online
                  Size (Total):          3115223597056 B (3.1 TB)
                  Conversion Progress:   -none-
                  Revertible:            No
                  LV Name:               Macintosh HD
                  Volume Name:           Macintosh HD
                  Content Hint:          Apple_HFS
      
      Interessant ist dabei die GUID der "Logical Volume Group". Diese kopieren wir, um sie dann im letzten Terminal-Schritt wieder zu verwenden:
      diskutil corestorage delete B591A764-FF40-4E80-B23D-347F508930D6
      Daraufhin wird das Fusion Drive aufgelöst. Sobald dies abgeschlossen ist beenden wir das Terminal.
    7. Ein weiteres Mal geht es in das Festplattendienstprogramm. Diesmal sind hier einige rote Datenträger aufgelistet. Die beiden nun (evtl. erst auf einen Klick auf einen der Datenträger) folgenden Dialoge bestätigen wir mit "Fest" bzw. "Fix" (Ja, auch Apple kann "mal" etwas falsch übersetzen...).
  4. Nun starten wir eine neue Installation. Dies ist wichtig, damit eine neue Recovery-Partition angelegt wird - diese fehlt sonst. Im Verlauf der Installation wird gefragt, ob man das System von einer BootCamp-Sicherung wiederherstellen möchte. Dies bejaht man - und kaum ist alles kopiert, hat man wieder ein problemlos funktionierendes System.

Viel Erfolg!