knuspermagier.de
Ein L und zwei P. Philipp!

M1 Max auslasten

Ich musste heute mal ein paar Videos encodieren, und weil ich gerne Speicherplatz sparen wollte, dachte ich mir, ich nutze direkt den modernen h265-Codec, oder HEVC, wie Apple ihn auch nennt.

Zum Encodieren benutze ich meistens HandBrake, weil da so eine tolle UI für ffmpeg ist. Allerdings musste ich erstmal herausfinden, wie ich damit nun ein HEVC-Video erzeugen kann, unter benutzung voller Hardware-Beschleunigung. Wählt man nämlich einfach nur h265 als Codec aus, dann schafft er gerade mal so 3-4 Frames pro Sekunde, das wäre mir doch etwas langsam gewesen.

Natürlich muss man in der Selectbox “h265-Videotoolbox” auswählen. Was ich für einen komischen scammy Name einer Windows-Shareware hielt, die irgendwie zufällig in den MacOS-Build von HandBrake reinkam ist anscheinend der offizielle Apple-Name für Hardwarebeschleunigte h265-Encodings.

Das kommt wohl mit ein paar Einschränkungen, was Qualität und alles angeht, aber da war für meinen Einsatzzweck erstmal egal. Nach ein paar Minuten Volllast fing das Macbook tatsächlich an zu lüften. Kaum hörbar. Das Encoding lief dann mit über 200 FPS. Traumcomputer, weiterhin.

Danke für den Tipp, Markus!

Dragonball Z Kai (2)

Nun bin ich mehr als fünfzig Folgen drin und, wie im letzten Post erwartet, trafen sie auf Freezer und zwar so richtig. Zuerst ging es noch langsam und abwechslungsreich los, mit verschiedenen Gegnern, die sich von der Kampfkraft langsam stärkten. Die letzten, ich weiß nicht genau, dreißig Episoden der Freezer-Arc umfassten aber nur noch den großen Kampf von Son Goku gegen den Endboss dieser Geschichte. Ich hatte das ja schon wirklich lang und ausgestreckt im Kopf, aber dass es so lang war, hatte ich vergessen. Wie muss das damals gewesen sein, als man da nur eine Folge pro Tag gucken konnte. Oder gab es Doppelfolgen? Ich glaube es waren Doppelfolgen.

Insgesamt fiel mir auf, dass die Serie doch ziemlich brutal ist, das hatte ich nicht so in Erinnerung. Kein Wunder, dass es nicht im RTL2-Nachmittagsprogramm lief. Beim Gucken schaue ich ständig im PERFECT POWER LEVEL LIST Wiki um mir eine Vorstellung zu machen, wie stark jetzt alle sein sollen. Keine Ahnung warum.

Ein witziges Element, dass ich, ja, ich sag es immer wieder, komplett vergessen hatte, war die Ginyu Force mit ihrem bescheuerten Tanz, haha.

ginyutokusentai.jpg
Bitte nicht verklagen, wegen einem Screenshot. Quelle: Dragon Ball Wiki

Nun kämpfen Goku und Freezer ungefähr dreißig Episoden lang und Freezer sagt mehrfach “Ich glaube, dass in so zwei Minuten der Planet explodiert”. Daraufhin kämpfen sie ewig weiter, zehn Folgen vergehen, nicht allerdings die Zeit. Zwei Minuten. Für immer. Naja. Trotzdem bleibt es immer auf eine komische Art und Weise spannend — an und für sich weiß ich ja, was passiert und wer überleben wird. Ab und zu gibt es auch noch einen überraschend Emotionalen Moment. Eigentlich immer noch perfekte Unterhaltung!

(Das einzige, was ein bisschen nervt ist dieser Atombomben-Explosions-Sirenen-Sound nach jeder Energiekugel, die auf dem Planeten einschlägt.)

Noch eine Sache, die ich nie gedacht hätte, dass ich sie über die Lippen bringe: Der englische Dub ist über jeden Zweifel erhaben. Mega gut.

Nachdem Freezer erstmal erledigt ist, geht auch alles super schnell, Dragonball Z Kai, ohne Filler-Arcs, sei dank. Kurz ein bisschen mit den geretteten Namekianern auf der Erde abhängen, alle, die noch tot sind, wiederbeleben und schwupps, zwei Folgen, nach dem man dachte, man sieht Freezer erstmal nicht wieder, landet er schon wieder auf der Erde – und mit ihm Trunks.

Wie cool ist eigentlich Trunks? Ultra.

Kirby 3.6 und PHP 8.1

Ich hatte länger Bedenken auf Kirby 3.6 upzudaten, weil ich dachte, alle meine Plugins gehen durch den Umbau im Panel kaputt, aber dem war gar nicht so klappt alles noch. Endlich kann ich also den eingebauten Builder benutzen! Zeitgleich habe ich auch mal auf PHP 8.1 geupdated und bin jetzt up to date für die nächsten zehn Jahre, juchu!

BetterJournal (3)

So, nicht, dass ich denke, dass irgendjemand es benutzen würde, aber ich dachte, es wäre mal wieder an der Zeit etwas bei Github hochzuladen. Ich legte zum Einen für BetterJournal eine Projektseite im Wiki an, mit ein paar Screenshots und merkte, dass ich da dringend nochmal ans Design muss, das sieht aus wie Kraut und Rüben, also das Wiki, nicht BetterJournal. Zum Anderen pushte ich den Code zu Github.

Mir gibt es nun immerhin so halbwegs das Gefühl mal eine Sache abgeschlossen zu haben, etwas so rund gemacht, dass jemand es theoretisch benutzen könnte, ein gewisses Interesse daran, mit PHP Code rumzuspielen vorausgesetzt. Gleichzeitig sagt in mir wieder eine Stimme, dass das alles nicht genug ist, keiner läd sich ein paar PHP-Dateien runter, warum habe ich es nicht direkt als iPhone App gemacht, die im App Store ist, das wäre cool!

Alles eine Einstellungssache, natürlich. Ich entscheide mich jetzt aktiv dafür, dass ich stolz bin, ein benutzbares Mini-Projekt in kurzer Zeit zusammengebaut habe. Zumindest versuche ich das.

Dragonball Z Kai (1)

Letztens scrollte ich durch Reddit und sah mal wieder ein Gif von einer Szene aus Dragonball Z. Eigentlich habe ich Apollo, den Reddit-Reader meiner Wahl meistens gelöscht, aber ab und zu verspüre ich leider den Drang und dann muss ich ihn installieren und scrollen. Furchtbar. Naja, jedenfalls weckte das in mir die Lust auf Dragonball. Neben Pokémon war das damals einer der ersten Anime, mit denen ich in Kontakt kam. Damals, auf RTL2 um 19 Uhr oder so, mit viel Werbung.

Ich las weder den Manga zuende, noch guckte ich es im Fernsehen fertig, da ich die Lust verlor, oder durch andere Anime abgelenkt wurde, aber eine gewisse Faszination war natürlich weiterhin in meinem Kopf gespeichert. Zum zwanzigsten Geburstag gab es nun, also vor 13 Jahren, einen Remaster oder so. Die alten Folgen wurden aufgepeppt, teilweise wohl Dinge neu gezeichnet und auf High Definition upgegradet. Zudem wurde alles etwas gestrafft und alle Filler-Episoden entfernt, was die Gesamtzahl der Episoden auf 167 reduziert, statt den 291 Folgen der Originalfassung. Das ist doch überschaubarer!

Ich fing mal an zu gucken und war direkt in den Bann gezogen. Ich erinnerte mich an fast gar nichts mehr. Klar, die Charaktere sind mir ein Begriff, aber kaum weitere Details. Das Piccolo nach Son Gokus erstmaligen Ableben erstmal Son Gohan trainiert, und ganz casual den Mond kaputt schießt, haha. Komplett vergessen. Wie ging eigentlich das normale Dragonball zu Ende? War Piccolo da der Endgegner? Keine Ahnung mehr. Schade eigentlich, dass Dragonball Z Kai nicht ganz am Anfang beginnt.

Ich bin jetzt durch mit dem ersten Arc, dem Kampf gegen Vegeta und Nappa und hatte viel Spaß dabei. Ungewöhnlicherweise gucke ich es auf Englisch, aber der Dub ist auch richtig gut, da kann man nicht meckern. Natürlich dauerte der Fight mit Vegeta jetzt irgendwie fünf oder sechs Episoden lang, aber was soll man machen, spannend war es trotzdem, auch wenn man ja doch weiß, wie es ausgeht. Freue mich nun auf den nächsten Teil auf Namek, dem Heimatplaneten von Piccolo! Auch hier sind meine Erinnerungen ziemlich verwaschen. Treffen sie da schon auf Freezer? Bald werde ich es erfahren!

Mein Allerwertester

Letztens, ich glaube, weil ich unter anderen Markus Lanz es sagen hörte, fragte ich mich, wie jetzt eigentlich die richtig offizielle, anatomisch und medizinisch korrekte Bezeichnung für den Teil des Körpers ist, auf dem man sitzt. Hätte ich da jetzt eine große, grüne, nach Rost stinkende Warze und müsste eine Ärztin oder einen Arzt anrufen und ihr oder ihm die Situation schildern, was würde ich sagen?

Markus Lanz sagte jedenfalls “Po”. Das Wort hört man recht häufig und in meinem Kopf ist es irgendwie mit Kindersprache verbunden. Tatsächlich ist es ja auch die Kurzform von “Popo“, das laut Duden aus der Kindersprache kommt. Sollten Erwachsene in normalen Gesprächen also “Po” benutzen?

“Popo” ist übrigens die Kurzform des lateinischen Wortes “Podex”, was allerdings eigentlich “Furzer” bedeutet, also auch kein Wort, was man jetzt benutzen sollte, um gebildet zu wirken. Bei der Gelegenheit schaute ich direkt mal in den Eintrag zu “furzen”, einfach um mal zu gucken, was der Duden dazu zu sagen hat. Gebrauch: derb. Ja, das würde ich auch sagen. Ein Synonym dazu ist koffern. Das habe ich noch nie gehört. Hinten in der Aula wurde laut gekoffert.

Wie dem auch sei, das Wort für den Normalgebrauch scheint “Gesäß” zu sein. Ganz besonders angetan hat es mir allerdings der “Allerwerteste”, der mir erst bei tieferer Recherche wieder ins Gedächtnis gespült wurde. Umgangssprachlich scherzhaft verhüllend, genau mein Sprachstil.

Duden.de ist auf jeden Fall eine ganz gute Quelle für einen verregneten Nachmittag und ziemlich direkt vor “Podex” im Duden ist übrigens ”Podcast”, keine Ahnung, ob es da einen Zusammenhang gibt.

Arrow Functions in PHP

In den letzten Jahren habe ich viel Kram gemacht, Vue.js, React, versuchen ein Entwickler-Team aufzubauen, etc, was man halt so macht, in einer kleinen Agentur, dass ich nie wirklich die Muße fand mich mit den tollen neuen Entwicklungen bei PHP zu beschäftigen. Weil immer alles nur schnell-schnell gehen musste, war auch nie Zeit dafür, und privat wollte ich auch eher Dinge fertig haben, als mich mal tiefergehender damit zu beschäftigen, also die neuen Features wirklich zu benutzen, statt nur kurz einen Post dazu zu lesen.

Naja, und oft war es auch so, dass das Projekt halt mit PHP 7.1 oder PHP 7.3 lief und so lang das noch nicht Security-EOL war und der Server noch lief, da updated man ja nun auch nicht auf eine gerade neu erschienene Version. Ausreden habe ich genug parat!

Jetzt habe ich aber mal Lust, mich damit zu beschäftigen. Ich fange an, mit einer Sache, die in der JavaScript-Welt natürlich schon lange zum Standard gehört und mit PHP schon in Version 7.4 kam: Arrow Functions!

$kartoffelsuppe = fn($x) => $x * 9000;
echo $kartoffelsuppe(2);

// Sollte 18000 ausgeben!

Sieht ein bisschen dumm aus und nicht so elegant wie in JavaScript, aber man nimmt ja, was man kriegen kann.

Sinnvoll ist das natürlich hauptsächlich, wenn es um array_map oder sowas geht:

print_r(
    array_map(
        fn($item) => $item['title'],
        [ ['title' => 'foo'], ['title' => 'bar'] ]
    )
);

// Ergibt [ 'foo', 'bar'] 

Das ist dann schon wesentlich kürzer als die alte Syntax – bleibt aber auch beschränkt auf diesen Anwendungsfall, dass man direkt etwas returned. Arrow functions, die wieder mit geschweiften Klammern einen ganzen Block umfassen, gibt es in PHP nicht. Ist auch wieder okay, dann schreibt man halt function davor.

Also, ich würde sagen Arrow Functions in PHP bekommen vier von fünf 🐘🐘🐘🐘.