Es hat sich ausgetwittert

Vor über 14 1/2 Jahren habe ich mich bei Twitter angemeldet und für mich war es die schönste und vor allem nützlichste Form eines Social Networks. Man konnte nicht nur interessanten Leuten oder Spaß-Accounts folgen, sondern auch Bots folgen, die einem wichtige Tweets in die Timeline spülten. Das Webinterface habe ich nie genutzt, sondern schon immer Tweetbot als Client auf all meinen Systemen verwendet. Ein hervorragendes Stück Software und die Hoffnung besteht, dass es in naher Zukunft auch Tweetbot für Mastodon geben könnte.

Aber für mich ist auf Twitter erstmal Schluss. Zwar bin ich da recht inkonsequent und werde meinen Account erstmal nicht löschen, da muss ich erstmal meinen Trennungsschmerz verarbeiten. ;-) Aber ich werde definitiv nichts mehr dort posten oder auch nur den Drang verspüren, dort etwas zu verpassen. Dafür hat sich dort in den letzten Wochen zu viel verändert, was die scheinbare Ausrichtung des Netzwerkes angeht. Wenn es nun möglich ist, dass der Chef persönlich Umfragen auf seinem Account (und damit seiner Filterblase) über weitreichende Entscheidungen tätigt, ist das für mich nicht mehr konsensfähig.

Mastodon fühlt sich ganz nett an, die dezentrale Architektur lässt hoffen, dass kein Machtgefüge entstehen kann, die das gesamte Netzwerk gefährden könnte. Schauen wir mal.

Meigs Field

Vor fast vierzig Jahren habe ich hier die ersten Runden in einem Flugsimulator gedreht und war damals wie heute fasziniert vom Fliegen. In dem Fall kann ich wirklich sagen: Danke Microsoft!

Ajax-Request über dedizierten Page-Type

Weil in diesem Internet so viele alte Seiten mit einem mittlerweile fehlerhaftem Beispiel herumgeistern, wie man über einen dedizierten Page-Type in TYPO3 Ajax-Requests behandelt und ich da heute im Rahmen eines Code-Refactorings auch wieder drüber gestolpert bin, möchte ich meinen Teil dazu beitragen mit der Annahme aufzuräumen, dass das damit verbundene PAGE-Objekt per config.no_cache = 1 misshandelt werden muss. Muss es nämlich nicht. Und sollte es auch nicht, denn wenn man mal in sein Log schaut, wird man ganz viele Warnings der Form "$TSFE->set_no_cache() was triggered. Reason: config.no_cache is set. Caching is disabled!" finden.

Und das wollen wir doch nicht. Es reicht vollkommen den Inhalt der Seite dann als COA_INT oder USER_INT zu integrieren. Denn diese Objekte werden definitiv nicht gecached!

ajaxPage = PAGE
ajaxPage {
    typeNum = 123456789
   
    config {
        disableAllHeaderCode = 1
        admPanel = 0
        debug = 0
    }
   
    10 = COA_INT
    10 < plugin.tx_extensionname_pluginname
}

Oder auch von mir aus auch mit

ajaxPage = PAGE
ajaxPage {
    typeNum = 123456789
    
    config {
        disableAllHeaderCode = 1
        admPanel = 0
        debug = 0
    }
   
    10 = USER_INT
    10 {
        userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run  
        extensionName = ExtensionName  
        pluginName = PluginName  
        vendorName = VendorName  
        controller = ControllerName  
        action = ajax  
    }
}

Snap has no updates available

Wenn man Dinge aufschreibt, soll man sie sich ja besser merken können. Und da ich jedes Mal suchen muss, wenn der Ubuntu Updater meint, Software nicht aus dem Assistenten installieren zu können, schreibe ich es mal auf:

killall snap-store
snap refresh

Das bescheuerte Türen-Rätsel

Nach dem Durchspielen des hervorragenden Return to Monkey Island ist mir in meinem Gog-Account Indiana Jones and the fate of Atlantis über den Weg gelaufen. Und nach knapp acht Stunden war dieses auch durchgespielt. Ich hatte es länger in Erinnerung, was aber auch daran liegen könnte, dass ich mich echt an viele Rätsel erinnert habe, die man sich damals erst mühsam erarbeiten musste. Nur an das verdammte Türen-Rätsel ganz am Ende konnte ich mich nicht mehr erinnern und das hat mich echt lange aufgehalten.

Raketenwissenschaft

Jetzt fehlt mir nur noch die Rakete, die man bei 200.000 Punkten im A-Mode bei Tetris bekommt. Ich war schon kurz davor, aber wie es dann so ist, kamen nur noch falsche Blöcke. Als ob das Spiel das absichtlich machen würde.

Bewunderung

Disclaimer vorweg: ich arbeite seit knapp einem Jahr bei in2code. Man kann mir also Befangenheit unterstellen. Muss man aber nicht.

Stefan Busemann hat am letzten Tag der TYPO3 Developer Days 2022 einen Talk gehalten, in dem er die Veränderungen und Verbesserungen der Workflows bei in2code vorgestellt hat. Ich für meinen Teil kann mich und meine Entwicklung darin in großen Teilen entdecken. Wer hat nicht noch im Jahr 2010 Websites über FTP und direkt auf dem Webserver ohne Versionsverwaltung gepflegt und entwickelt?

Auch wenn ich schon im Jahr 2000 den ersten Kontakt mit SVN als Versionsverwaltung (TortoiseSVN anyone?) hatte, hat es noch so bis 2011/12 gedauert, bis es nicht mehr ohne ging. Und auch dass etablierte Workflows immer nach ein paar Jahren evaluiert und entweder in die Tonne getreten oder verbessert wurden, gehört zu unserem Berufsfeld meiner Meinung nach einfach dazu. Ich kenne keinen Software-Entwickler, egal welche Sprache er "spricht", der nicht ständig neuem, heißen Scheiss hinterher jagt und schaut, ob er dieses und jenes nicht in seine Arbeit integrieren kann oder dies und das nicht seine Arbeit verbessert.

Aber zurück zu Stefans Talk, in dem viele Punkte besprochen werden, die in der bisherigen Firmenhistorie verbessert wurden und wichtig für die Firma waren, aber der wichtigste Punkt für mich als Angestellter ist mittlerweile Wertschätzung. Und zwar gegenseitige.

Diese spielt zwar in vielen Punkten, die Stefan anspricht, mit rein, ich finde aber, dass diese viel zu wenig nach Außen getragen wird, wenn es darum geht, eine Firma zu repräsentieren. Was früher der Kicker, Parties oder das neueste MacBook waren, mit dem Firmen hausieren gegangen sind, um neue Angestellte zu gewinnen, müsste in (Post-)Corona-Zeiten eigentlich das Thema Wertschätzung sein.

Ich glaube, dass in der Softwareentwicklungsbranche Remote-Arbeit nicht mehr wegzudenken ist und genauso wie ich es mir früher gar nicht vorstellen konnte, meine Arbeit nur remote auszuführen, mussten sich die Arbeitgeber in ganz schön schneller Zeit auf das "neue" Arbeitsmodell umstellen. Und das war glaube ich härter, da das Risiko ja auf ihrer Seite viel größer war. Damit meine ich zum Beispiel den "Kontrollverlust" über den Mitarbeiter.

Im Office kann man glaube ich viel besser sehen, wie es einem Mitarbeiter geht, ob er mit seiner Arbeit gut vorankommt usw. Das funktioniert meiner Meinung nach per remote nicht so gut. Und hier komme ich so langsam zum Thema Wertschätzung: es ist sehr wichtig, gemeinsam über die Arbeit zu sprechen. Egal, ob es positiv ist oder auch mal schlecht gelaufene Dinge auf den Tisch gelegt werden müssen, um Fehler zu lokalisieren und Workflows zu verbessern. Also genau das, was Stefan in seinem Talk anspricht.

Und da ist die Richtung auch egal. Ein Senior-Entwickler braucht von der Projekt-/Geschäftsleitung Feedback wie von einem Azubi. Oder ein Junior-Entwickler vom Senior-Entwickler. Oder andersherum. Weil es das gegenseitige "Befruchten" ist, was dazu führt, dass man über seine eigene Arbeit nachdenkt und durch die andere Sichtweise erst sieht, dass man sich vielleicht verrannt hat. Oder auch eine positive Seite hat, wenn man mal wieder den geilsten Scheiss ever entwickelt hat. Bis man sich den Code in zwei Jahren anschaut und einem ein "git blame" die Schamesröte ins Gesicht treibt.

Das hat mir eigentlich im letzten Slide von Stefan in seinen "Main learnings" gefehlt. Und wäre ich bei den DevDays gewesen, hätte ich das beim Q&A bestimmt angesprochen.

Werbeblock: wer meine Arbeit mal loben oder kritisieren möchte, soll mal hier schauen. Werbung Ende.

Computerspielgeschichte

Eins der ersten Computerspiele war Spacewar!, das MIT-Studenten auf einer PDP-1 (1, nicht 11) programmiert hatten. Auf einem Oszilloskop als Monitor konnten zwei Spieler jeweils ein Raumschiff, um einen Stern herum steuern und versuchen, den anderen Mitspieler abzuschießen. Erschwerend kam das simulierte Gravitationsfeld des Sterns hinzu, der die Raumschiffe und auch deren Geschosse beeinflusste. Und das im Jahr 1961.

Und jetzt kann man Spacewar! mit der neuesten Beta des PocketOS auf einem Analogue Pocket spielen! Und ich trete mir in den Hintern, dass ich mir damals nicht gleich das Dock bestellt habe, denn dann könnte man das auch zu zweit spielen. Wer möchte, kann es aber auch im Browser mal versuchen, da gibt es unter anderem diese gelungene Umsetzung.

Stadt der schlechten Eigenschaften

Nun habe ich das Prequel zum dritten Teil der "Grand Theft Auto"-Serie durchgespielt. Mittendrin hatte ich Gefühl, dass ich diesen Teil damals doch nicht durchgespielt habe, aber als es dann darum ging, diverse Gebäude zu kaufen, um mit diesen Geld zu erwirtschaften, wußte ich wieder, wie nervig ich diesen Part fand. Die Idee dahinter verstehe ich, aber den Part hätte man besser über die gesamte Story verteilen sollen. So spielt man das Spiel in Missionen zu gut einem dreiviertel durch, um sich dann darum kümmern zu müssen, etliche Firmen zu übernehmen. Mitten in der Geschichte und zu einem Zeitpunkt, an dem ich wissen will, wie es weitergeht.

Trotzdem spürt man deutlich, wie sich schon in diesem Teil, der genau ein Jahr nach Erscheinen von GTA III das Licht der Welt erblickt, das Spiel weiterentwickelt hat. Und bis auf die nervige Cop-Land-Mission gab es keine großen Schwierigkeiten das Spiel durchzuspielen. Was aber eigentlich alle Teile der GTA-Reihe auszeichnet: die Spielmechaniken sind simpel und der Hauptaugenmerk liegt auf der Geschichte.

Und jetzt freue ich mich auf CJ und Los Santos.