Archiv der Kategorie: Spaß

Eine wirklich wahre Geschichte, die für meinen Geschmack mal wieder ausreichend dumm ist, dass ich sie der Weltöffentlichkeit nicht vorenthalten möchte. „Amnesia – The Dark Descent“ gab es Mitte der Woche bei Steam geschenkt. Die DRM-freie-Version des Gruselspiels bei GOG wäre mir einhundert Mal lieber gewesen als die accountgebundene Steamschrott-Fassung. Aber einem geschenkten Gaul usw., ihr kennt das ja. Jedenfalls wurde die Aktion nur mäßig deutlich bekanntgemacht, außerdem war ich relativ viel beschäftigt, und natürlich galt die Aktion mal wieder nur für einen wirklich sehr knappen Zeitraum. Ich erfuhr erst am Mittwoch im Büro davon, nur ein paar Stunden bevor es zu spät gewesen wäre.

Erschrocken rechnete ich mir aus, dass ich nicht mehr rechtzeitig zuhause sein würde, da ich ausgerechnet am selben Abend einem Firmenevent beiwohnen würde. Ich wäre mindestens zwei Stunden zu spät dran. Das war mal wieder typisch für Steam, dass sie sich den denkbar ungünstigsten Zeitpunkt dafür aussuchen würden, nur um mir mal wieder eins reinzuwürgen. Aber ich hatte noch ein Ass im Ärmel: Ich kannte glücklicherweise meine Steam-Zugangsdaten auswendig. Also nur flott bei Steam eingeloggt, um mir das begehrte Spiel einzuheimsen, das dauert keine 30 Sekunden. Leider hatte mein geringes Glück mich schon nach den ersten paar Mausklicks wieder verlassen, denn den verdammten Steamguard hatte ich völlig vergessen. Der Browser mit dem ich mich einloggen wollte, war ihm höchst suspekt, ich müsste diesen erst über eine E-Mail verifizieren. Verdammte Scheiße, Steamguard, entspann‘ dich mal! Ich will doch nur das blöde Spiel in meinen Warenkorb legen!

So klickte ich wild herum, in der Hoffnung, dass ich mich doch noch irgendwie einloggen könnte. Ich versuchte sogar, das Spiel zu installieren ohne eingeloggt zu sein, aber ich wurde mehrmals zum selben Login-Bildschirm weitergeleitet, mit der immergleichen blöden Steamguard-Meldung, die mir den letzten Nerv raubte. Ich suchte verzweifelt den „Spiel meinem Account hinzufügen ohne mich einzuloggen“-Button, den es doch genau für solche Fälle geben musste, denn welcher Hacker würde mir denn bitte irgendwelche Spiele in meinen Account legen wollen. Meine Gehirnwindungen rotierten beim Versuch, mich an das Passwort für den bei Steam hinterlegten E-Mail-Account zu erinnern, doch da war nichts zu machen. Der Steamguard entschloss sich, mir das tolle Horrorspiel vorzuenthalten. Würde es tatsächlich so enden?

Schon bald spielte ich mit dem Gedanken, direkt nach Feierabend nachhause zu fahren, und mich für den Firmenevent entschuldigen zu lassen. Aber eigentlich wäre das ja schon irgendwie armselig, mich von einem Spiel für eine handvoll Euro so kontrollieren zu lassen. Andererseits hätte ich vielleicht schnell nachhause fahren, das Spiel kurzerhand in meinen Account klicken und danach direkt wieder ins Geschäft zurückkehren können. Zeitlich machbar, aber wenn ich die zusätzliche Fahrstrecke in Euro umrechnete, wäre das Gratisspiel am Ende gar keins mehr, also völlig sinnlos.

Ein letzter Notnagel fiel mir ein: Für den fraglichen E-Mail-Account kannte ich das Passwort nicht, aber ich hatte via Smartphone Zugang zu dem anderen E-Mail-Account, der beim erstgenannten E-Mail-Anbieter zur Sicherheit hinterlegt ist. Ich musste nun dort auf „Ich habe mein Passwort vergessen“ klicken, damit ich mit dem Smartphone dann die Passwortänderung freigeben konnte, damit ich mich wiederum beim ersten E-Mail-Account einloggen konnte, damit ich eine der zwei Dutzend Anfragen von Steamguard bestätigen konnte, damit ich mich bei Steam einloggen konnte, damit ich endlich das Spiel aktivieren konnte. Klingt voll scheiße. Ist auch so. Und das alles nur, weil Steamguard ein blödes Arschloch ist.

Ja, ich weiß, Steamguard lässt sich auf eigenes Risiko abschalten, wenn man denn möchte, dass einem die gesamte Steam-Library abhanden kommt. Aber das hat mir an dem Tag natürlich überhaupt nichts genützt, weil er da noch aktiviert war, und das lässt sich ohne Zugang nicht ändern. Für die Zukunft kann ich es mir dann mal überlegen. Jedenfalls hat die Geschichte diesmal ein Happy End, und das ist für mich bei Steam eher selten der Fall. Außerdem habe ich ein neues Passwort für meinen E-Mail-Account.

Das war ja wieder einmal eine Glanzleistung in meinem Leben, die ich gestern vollbrachte. Kunststück, sowas gelingt mir schließlich mit links. Wenn schon, dann richtig. Nach einem anstrengenden Arbeitstag das Notebook in die Notebooktasche gepackt, den Rucksack geschultert, und dann möglichst schnell ab ins Beinahe-Wochenende (mit dem folgenden Feiertag), genau das war mein Plan. Die dünne Sommerjacke hatte ich trotz warmer Temperaturen kurz vorher noch schnell angezogen, weil ich sie bis zum Auto nicht auch noch in der Hand tragen wollte. Vollbepackt kam ich auf dem Parkplatz beim Auto an, erleichtert warf ich Notebooktasche, Rucksack und die Jacke in den Kofferraum. Heckklappe zu, es kann endlich losgehen. Mein anschließender Griff zur rechten Jackentasche um die Autoschlüssel herauszuholen, war nicht unbedingt die intelligenteste Aktion des Tages, und leider auch nicht von Erfolg gekrönt.

Große Augen machte ich vermutlich, als ich da in meinem Elend auf dem Parkplatz stand, nicht wissend was eigentlich gerade vor sich ging. Aus Verzweiflung vergewisserte ich mich mit einem Handgriff davon, dass die verriegelte Heckklappe sich nicht doch noch auf magische Weise von mir öffnen ließ, und auch die beiden Türgriffe waren wenig beeindruckt von meinen traurigen Öffnungsversuchen. Mein gemütlicher Feierabend? Gestrichen. In diesem Augenblick ärgerte ich mich über soviel Blödheit, war aber gleichzeitig froh darüber, dass ich nicht auch noch die Hausschlüssel oder den Geldbeutel in der Jacke gelassen hatte. Einen Zweitschlüssel fürs Auto habe ich, und der liegt zuhause. Also musste ich wohl erstmal mit der Bahn nachhause fahren, und dann im Laufe des Tages wieder zurück. Ich wollte mich gerade zu Fuß auf den Weg zum Bahnhof machen, als mir ein zufällig in der Nähe befindlicher Kollege eine Mitfahrgelegenheit in meine Richtung anbot.

Vier Stunden später war ich nebst Auto wieder zuhause. Der sechs Kilometer lange Spaziergang – geschenkt, doch leider war ich nach zwei Jahren Unabhängigkeit auch deutlich mehr mit der Bahn unterwegs als ich wollte. Für den freundschaftlichen Ticketpreis von nur 5,50 Euro durfte ich in einem völlig überfüllten Zug Platz … äh, Stehplatz nehmen. Im Service waren wie gewohnt 10 Minuten Verspätung inbegriffen, sowie ständiges unergründliches minutenlanges Anhalten mitten auf der Strecke mit den immergleichen lahmen Entschuldigungs-Durchsagen, die niemand mehr hören kann. 50 Minuten war ich unterwegs für eine nach Fahrplan etwa 30-minütige Fahrt. Immerhin: Seit ich in den vergangenen Wochen wieder verstärkt in Erwägung zog, es doch mal wieder mit der Bahn zu versuchen, bin ich nun hoffentlich endgültig geheilt. Der schlimmste Autobahnstau kann nicht so schlimm sein, dass man eine Bahnfahrt ernsthaft als willkommene Alternative betrachten könnte. Die Bahn macht nicht mobil, sondern krank.

Wenn die Hirn-Aus-Kofferraum-Zu-Aktion also zumindest für diese eine Erkenntnis gut war, war sie vielleicht sogar dringend nötig. Aber nach der vierstündigen Odyssee war der Tag für mich natürlich gelaufen, der frühe Feierabend im Endeffekt völlig für die Katz. In Zukunft werde ich mit Sicherheit erst einmal alle Jacken- und Hosentascheninhalte abklopfen, bevor ich irgendwelche Türen schließe.

Gerade kam per Spam-Mail dieses wahnsinnig verlockende Sonderangebot von Blizzard für ihre inzwischen angestaubten Spiele rein. Wer würde da nicht sofort zugreifen wollen, mal abgesehen von mir.

Hallo Vincent,

die Mächte der Hölle wüten in der Welt von Sanktuario! Stürze dich in den Kampf gegen die teuflischen Diener des Obersten Übels Diablo und dem Engel des Todes Malthael! Spare 50 % beim Kauf der PC/Mac-Versionen von Diablo III und der Erweiterung Reaper of Souls. Aber warte nicht zu lange, denn dieses Angebot endet bereits am 6. Oktober!

Hallo Blizzard,

danke, aber nein danke. Die Mächte der Hölle können meinetwegen sonstwo wüten, am wahrscheinlichsten sogar in eurem Oberstübchen. Meldet euch bitte erst wieder bei mir, wenn ihr mir ernstgemeinte Angebote machen wollt, und euren Always-Online-Rotz und eure ranzigen Spieleerweiterungen nicht mehr für Wucherpreise verkauft. Bis dahin stürze ich mich lieber in den Kampf gegen was Sinnvolleres. Eure schmierigen zeitbegrenzten Müllangebote könnt ihr euch sonstwohin stecken!

Weil es so lustig war und ich neues Material gesammelt habe, denke ich, dass es an der Zeit ist, das Quellcode-Gruselkabinett mit einem zweiten Artikel fortzusetzen, womöglich zu beenden. Der (nicht näher definierte) Praktikant aus dem ersten Teil hat wieder zugeschlagen und hocheffizienten und extrem sinnvollen Java-Code produziert. Diese Glanzleistung moderner Softwareentwicklerkunst wollte ich denjenigen meiner Leser, die über Programmierkenntnisse (und Englischkenntnisse) verfügen, auf keinen Fall vorenthalten. Wer von Programmieren überhaupt nichts versteht, der wird an diesem Artikel wie gewohnt leider nichts finden können.

Der Praktikant ist offenbar ein großer Fan davon, toString() auf String-Objekten aufzurufen, vielleicht erhofft er sich dadurch noch stärkere Typsicherheit mit Netz und doppeltem Boden oder sowas. Jedenfalls Code wie der obige begegnet mir leider immer häufiger. Solchen Murks mache ich bei Sichtung auch sofort wieder raus.

Ebenfalls ein ständiger Begleiter in seinem Code: Die Angst, dass eine neu (=leer) angelegte Collection vielleicht doch nicht so leer ist, wie sie vorgibt zu sein. Anders kann ich mir nicht erklären, wieso der Praktikant gleich nach dem Erstellen einer leeren Collection diese leert. Womöglich hat er sich hierbei etwas gedacht, ist aber völlig unnützer Code. Ein damit sehr verwandtes Problem ist das folgende:

Aus der API-Dokumentation der oberen Methode: „The Calendar returned is based on the current time in the default time zone with the default locale.„. Der Knackpunkt ist, dass das zurückgegebene Kalender-Objekt immer bereits mit der gegenwärtigen Uhrzeit initialisiert ist. Hier (zur Sicherheit oder aus Unkenntnis) nochmals Uhrzeit und Datum zu setzen und dafür extra ein neues Date-Objekt zu erstellen, ist kompletter Unfug. Überhaupt: Wieso geht er davon aus, dass der parameterlose Konstruktor von Date() die aktuelle Uhrzeit liefert, aber bei Calendar soll selbiges System nicht funktionieren? Nett auch die Wahl des Variablennamens „actCal“ für den Kalender. Er dachte wohl, „actual calendar“ sei eine brauchbare Übersetzung für das, was er ausdrückten wollte. Ich lese da aber irgendwie immer nur „Aktkalender“.

Auch so ein Codekonstrukt, worüber man diskutieren sollte: die Getter-Methode für private Konstanten. Wieso nicht gleich die Konstante als public deklarieren, dann kann man sich das Rumgeeiere sparen. Bei Konstanten durchaus sinnvoll. Aber als verwandtes Problem sei angemerkt, dass der Praktikant zum Beispiel ganz gerne auch mal simple Getter-Methoden innerhalb derselben Klasse aufruft, in der sie definiert werden – anstelle der sichtbaren Variable. Kapselung schön und gut, aber damit ist doch eigentlich Kapselung von der Außenwelt gemeint. Das scheint jemand nicht so richtig verstanden zu haben.

Namenskonventionen für Methoden sind auch so ein Problem für den Praktikanten. Der Name der Methode sagt leider nichts darüber aus, was der Rückgabetyp sein könnte. Im Fall von „componentParser“ ist noch nicht einmal eine Tätigkeit erkennbar. Da meldet die als Frage formulierte Methode „isActive“ eine komplexe Hashmap zurück, und die etwas umständlich benannte Methode „getTheParsedSysInfoComp“ liefert nicht etwa „die kompletten Systeminformationen“ zurück, sondern einen Wahrheitswert – was auch immer dieser aussagen soll. Immer wieder lustig mitanzusehen sind Methodennamen, die erkennen lassen, dass sich dabei wohl jemand beim Ausdenken einen abbrechen musste, etwa „isLoadTimeFromOneSystemOverTime“.

Englisch scheint ohnehin nicht so seine ultimative Stärke zu sein, vor allem wenn die (netterweise konsequent, wenn auch unnötigerweise) im Englischen gehaltenen Kommentarzeilen nur so vor Denglisch triefen. Da wird aus „Pfade herausfiltern“ schonmal „filter the path outside“, oder das weibliche Possessivpronomen „her“ wird auf Systeme und _ihre_ Eigenschaften angewandt. Wenn man kein Englisch kann, sollte man vielleicht nicht unbedingt versuchen, alles immer englisch schreiben zu wollen, oder zumindest mal ein paar Vokabeln nachschlagen, bevor man in die Tasten haut.

Vor einigen Tagen bei Steam entdeckt: Wer JETZT Tomb Raider kauft, bekommt wahnsinnige 75% Rabatt. Also nicht jetzt, denn die Aktion war vermutlich gefühlte fünf Minuten später wieder beendet, aber hier wird einmal mehr das betont, was ich aus den ganzen Steam-Aktionen heraushöre: Spiele bei Steam sind an sich nichts wert, aber wer zum falschen Zeitpunkt kauft, zahlt eine Strafgebühr für das Verpassen des Sonderangebots. Außerdem will ich keine Werbung für die Aktion machen, daher ließ ich erst einmal ein paar Tage ins Land ziehen.

tombraiderrabatt1

Ich bin wahrscheinlich der Einzige, den es stört, dass das neueste „Tomb Raider“ exakt genauso heißt wie das allererste „Tomb Raider“ von Core Design. Es ist verdammt nochmal nicht das gleiche Spiel, dann soll es bitte auch nicht gleich heißen. Wie könnte man die beiden Spiele (Tomb Raider und Tomb Raider) in einer Liste unterscheiden, wenn man nicht zusätzlich in Klammern das Veröffentlichungsjahr angibt? Hier muss man aus der Kombination von Bild und Publishername darauf schließen, dass nicht der gleichnamige Spieleklassiker von 1996 gemeint ist, sondern die neueste Umsetzung der Reihe aus dem Jahr 2013. Irgendein hirnloser Marketing-Mensch hat sich wohl gedacht, dass es witzig wäre, wenn zwei Spiele aus derselben Reihe sich einen Namen teilen würden. Für Nummerierungen oder Untertitel ist Lara Croft schon zu cool geworden. Ich hasse diese unkreative Reboot-Logik, die neuerdings überall angewandt wird.

tombraiderrabatt3Nun habe ich entweder Prozentrechnung falsch verstanden, oder jemand bei Steam kann nicht rechnen. 75% Rabatt auf ein mit 19,99 Euro ausgezeichnetes Spiel, das wäre ein Endpreis von etwa 5 Euro. Die angegebenen 11,99 Euro wären aber nur ein Rabatt von 40%. Wie kommt man denn da auf 75% Rabatt? Eine Möglichkeit ist, dass der Preis bereits zuvor herabgesetzt worden sein könnte (von vielleicht 48 Euro), dann wäre der angezeigte (durchgestrichene) ursprüngliche Preis aber erstens nur verwirrend und zweitens auch nicht so eindrucksvoll, wie einfach den viel höheren Preis hinzuschreiben und diesen durchzustreichen.

So oder so, die Werbeanzeige ist falsch, die 75 kommt irgendwie nicht hin. Oder will mir jemand erklären, wo mein Denkfehler ist?