knuspermagier.de
Hallo. Ich bins! Philipp!

Google Drive aufräumen

Leider ist Google Sheets weiterhin die beste Software um auf dem Mac Spreadsheets anzulegen. Numbers ist furchtbar, Excel ist entweder auf dem Mac kacke, oder seit Office 2003 nicht mehr gut und LibreOffice, oder wie der ganze Open Source-Kram aktuell heißt ist leider auch nicht wirklich benutzbar.

Aus diesem Grund liegen leider sehr viele Spreadsheets in meinem Google Drive, das ich ansonsten eigentlich für nichts mehr verwende. Ich bin ein großer Fan davon, alle meine Dateien im Dateisystem liegen zu haben. Klar, sie dürfen in die Cloud gebackupt sein, aber die Source of Truth darf gerne auf meinem persönlichen Computer sein. Leider ist das mit einer Web-Anwendung wie Sheets nicht möglich. Ich könnte zwar die Google Drive-App installieren, aber was hätte ich dann lokal? Legt der einem immer aktualisierte .xlsx-Dateien ab? Oder synct er die Sheets-Files gar nicht? Ich werde es nicht ausprobieren.

Jedenfalls dachte ich mir, ich kann das Drive ja immerhin mal aufräumen, wenn ich es schon nicht komplett verlassen kann. Ich schaute also den ganzen Kram durch, den ich da seit den frühen Zweitausendern abgelegt habe und fand ein paar lustige Sachen, vor allem aber natürlich diverse Tabellen mit Kalkulationen diverser finanzieller Budgets, Listen mit Mittagessen, getrackte Stunden aus Studentenjobs und natürlich auch jede Datei, die ich mal hochgeladen habe um sie in ein Spreadsheet zu importieren. Eieiei.

61fffffb00b8fa7e.png
Viele wichtige Dokumente

Ich lud einmal alles herunter und löschte alle Dateien, die ich in den letzten zwölf Monaten nicht angefasst habe. Das hat sich auf jeden Fall ganz gut angefühlt. Das Archiv habe ich als .zip in meinen Archiv-Ordner auf der NAS geschoben, falls ich nochmal wissen muss, was ich am 4.5.2010 zum Mittag hatte.

Eine offene Sache bleibt jetzt leider noch: Ich muss mich wohl mal um ein Backup kümmern. Ich habe die aktuellen Dateien jetzt auch einmal heruntergeladen und verwahrt, aber das was da jetzt drin ist, sind ja wirklich halbwegs wichtige und benutzte Dateien, die müsste ich auch regelmäßig sichern. Wie ich das mache, weiß ich noch nicht, aber irgendwer hat da sicher schon ein schlaues Script geschrieben.


Einen kleinen Glücksfund hatte ich bei der ganzen Sache auch noch. Ich fragte mich kurz, warum das Drive eigentlich 6,5GB Speicher verbraucht. Eigentlich hatte ich damals alles aus Google Photos und Google Mail gelöscht. Woher kommt dieser Platzverbrauch? Ich klickte mich etwas durch und fand plötzlich einen iPhone-Ordner, der tatsächlich Fotos von 2009 - 2014 enthielt. Das ist daher spannend, weil ich die ersten Fotos, die ich damals mit der schrottigen Handy-Kamera machte längst verloren glaubte. Bei irgendeiner Aufräumaktion einfach gelöscht!

img_0179.jpg
Ein gesundes Mittagessen aus dem Jahre 2009

Aber nein, da lagen sie nun in irgendeinem versteckten, ehemals zu Google Drive gesyncten Ordner. Ich hab kurzerhand mal alles heruntergeladen und… archiviert. Wenn ich mal Lust habe, importiere ich sie vielleicht in meine Photo-Library, da wo sie hin gehören. Aber einerseits sind sie zum großen Teil echt kaum zu gebrauchen und haben nichtmal zeitgeschichtlichen Wert und andererseits fehlt bei mehr als einem Drittel der Bilder aus unbekannten Gründen die Information aus den EXIF-Daten, was eine genaue Zuordnung, die über das Jahr hinaus geht, sehr schwierig macht.

Naja, ein Thema für ein anderes Mal!

Im Frühling letzten Jahres kam ich auf die Idee, einen englischsprachigen Tech-Blog zu starten. Nach wenigen Posts war die Luft irgendwie raus, was einerseits an der anstrengenden Sprachhürde lag, auf Englisch zu schreiben, andererseits aber auch daran, dass mich 11ty unendlich genervt hat.

Um zumindest den zweiten Teil auszumerzen, habe ich pwa.io jetzt hier integriert. Also, wenn man auf die Seite geht, findet man weiterhin die englischen Posts und ein komplett anderes Design, aber letztendlich läuft alles im gleichen Kirby. Posts werden also auch hier im “Stream” auftauchen und ich kann den vollen Kirby-Komfort genießen, sollte ich jemals wieder auf die Idee kommen, etwas auf Englisch zu schreiben zu wollen, um meine Reichweite zu steigern.

Hatte einen kleinen Klemmbaustein-Jieper den ich schnell befriedigen konnte. Günstig und ohne großen Platzbedarf. Bei 10€ kann man bei dem Space Shuttle nicht meckern. Top Set!

img_4526.jpeg
Zuerst auf Mastodon → erschienen.

Vor Jahren bestellte ich mal diverse Reinigungsmittel bei Everdrop, weil ich es mal ausprobieren wollte. Davon geblieben ist nur das Geschirrspültab-Abo, was ja das sinnloseste ist — der USP ist ja eigentlich „weniger Transportkosten wegen Kram in Pulverform“. Die Tabs bekommt man ja auch ganz normal im Supermarkt, keine Ahnung, warum ich die als Abo hab.

Naja, nachdem mal wieder das Paket kam, was… 10x so viel Volumen hat, wie der Inhalt, werde ich das Abo mal kündigen, das ist echt Quatsch.

Es ist auch immer hart, wenn man merkt, dass man in so eine dumme Abofalle läuft. Gekauft mit irgendeinem Gutschein, und weil man schöne Dosen dazu bekam und nun habe ich wahrscheinlich seit einem Jahr viel zu viel Geld für Geschirrtabs ausgegeben, während ich alle anderen Reinigungsmittel schon lange wieder lokal kaufe, weil ich keine Lust habe, auf einer Webseite herumzuklicken und den besten Lieferintervall für Toilettenreiniger herauszufinden.

Es sparkt auch gar nicht so viel Joy wie gedacht, wenn man das Geschirrspülsalz, was eh nur für zwei Anwendungen hält, in einer schicken Metalldose hat.

c3cd15e4e22aacd9.jpeg
Zuerst auf Mastodon → erschienen.

Save & Publish-Button für Kirby

Eine klitzekleine Kleinigkeit, die ich mir bei Kirby 4 noch gewünscht hätte, wäre ein Hook um neue Buttons in die Buttonbar auf der Seite-Bearbeiten-Seite einfügen zu können. Ich hab mir nämlich schon vor Jahren mal ein Plugin geschrieben, dass einen "Save & Publish"-Knopf bereitstellt. Für alle, die Kirby als Blog benutzen ist das eine wichtige Sache, denn niemand klickt gerne "Save" um dann auch noch auf den Status-Chooser zu gehen um dort "Published" auszuwählen. Das sind mindestens drei oder vierhundert Klicks zu viel. Im Jahr.

Bisher war das Plugin allerdings ein Feld, das man im Blueprint irgendwo hingepackt hat, viel besser wäre es doch einfach wenn es sich neben dem normalen Speichern-Button befinden würde.

screenshot-2024-01-28-at-15.40.23.png
Mein alter Button, groß und hässlich.
screenshot-2024-01-28-at-15.35.22.png
Da soll er hin!

Leider ist das nicht möglich. Gestern hat der Kirby-Mastodon-Account dieses language-selector-Plugin erwähnt und ich hatte schon Hoffnung, etwas übersehen zu haben, doch das Plugin überschreibt einfach eine Komponente und injiziert damit seine Funktionalität. Smart, aber für meinen Button nicht zu gebrauchen, ich will ja nicht den language-selector durch meinen Button ersetzen.

Naja. Ich dachte also nochmal zehn Minuten darüber nach, wie man das kurz und schmerzlos reinklöppeln könnte und kam zu der folgenden, leicht schmutzigen, aber gut funktionierenden Lösung, indem ich meinen Button einfach ins DOM klöppel. Alle nötigen Funktionen zum Status ändern und Speichern sind durch window.panel zum Glück einfach global verfügbar. Vielen Dank!

window.onload = () => {
    const buttons = document.querySelector('.k-header-buttons .k-button-group');

    const template = `
        <button 
            data-has-icon="true" 
            data-has-text="true" 
            data-responsive="true" 
            data-size="sm" 
            data-theme="positive" 
            data-variant="filled" 
            type="button" 
            class="k-button k-page-view-status k-status-icon" 
            style="--icon-size: 15px;"
           >
            <span class="k-button-icon">
                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="k-icon" style="fill: black !important;"><path d="M9 7.53861L15 21.5386L18.6594 13H23V11H17.3406L15 16.4614L9 2.46143L5.3406 11H1V13H6.6594L9 7.53861Z"></path></svg>
            </span>
            <span class="k-button-text"> Save & Publish </span>
          </button>
    `

    const button = document.createElement('button');
    button.innerHTML = template;

    button.addEventListener('click', async () => {
        await panel.$vue.$store.dispatch("content/save");
        panel.$vue.$events.emit("model.update");
        panel.notification.success();

        await panel.$api.pages.changeStatus(panel.$view.path.replace('pages/', ''), 'listed', 0)
        panel.$vue.$reload({ silent: true });
    });

    buttons.appendChild(button);
}

Das landet einfach in der index.js in einem Plugin, ganz ohne Build-Prozess und schwupps:

screenshot-2024-01-28-at-15.37.43.png
Da isser!

(Wär natürlich jetzt noch schön, wenn er nur angezeigt werden würde, wenn der State dirty ist, das geht sicher auch, wenn ich auf ein paar Events höre, aber meine 10 Minuten für Quatsch sind heute aufgebraucht)

Update: Ich hab es doch mal auf Github gepackt (und noch einen Bug gefixt)

My First Mac

Schnell ein Stöckchen, bei dem ich mitmachen kann!

Mein erster Mac war ein weißes Macbook (2010?), dass die Firma, in der ich die Bachelor-Arbeit schrieb, als Testgerät kaufte. Wir bauten so eine Applikation, die DICOM-Bilder darstellte und die musste natürlich unter MacOS getestet werden.

img_0223.jpeg
Schlechtes Foto des Plastikbombers.

Nachdem ich vorher immer nur Windows genutzt habe war das meine erste Berührung mit MacOS und auch wenn es immer wieder ein paar Startschwierigkeiten gab, wie zum Beispiel die Gewöhnung an den Finder, wenn man vorher nur den guten alten Windows Explorer nutzte (der auch immer noch besser ist, zumindest der von Windows XP oder so), war ich eigentlich sofort verliebt. Natürlich war das auch genau die Zeit, in der Twitter immer weiter aufkam und ich einfach zu den coolen MacOS-Kids gehören wollte.

Als ich 2012 nach Hamburg kam wechselte ich auf ein starkes 15" MacBook Pro und vermisste Windows seit dem keine weitere Sekunde!

Zwischen zwei Sternen

Becky Chambers

Fand’s gut, vermisse aber die Crew aus dem ersten Buch. Anscheinend wird sie auch im nächsten Buch nicht mehr auftauchen? Mal sehen.

Nach den letzten, sehr guten Jubiläumsfolgen #100 und #132 (das war die Folge zum 40-jährigen) wartete ich mit Spannung auf die #150 und wurde ziemlich enttäuscht.

Letztendlich erwartet man in solchen Folgen ja immer ein Aufgebot von vielen Charakteren, die in alten Folgen schonmal da waren, und irgendetwas Besonderes. Letztendlich ist die Sprecherliste hier zwar auch recht lang, aber die ganze Geschichte hat einfach keinerlei Spannung oder etwas reizvolles.

Bibi verhext sich so dumm, dass man es schon merkt, während sie den Spruch aufsagt. Natürlich sind alle anderen Hexen gerade nicht da. Natürlich wächst die ungewollte Dornröschen-Hecke nach der ersten Nacht wieder und alle sind eingesperrt. Natürlich rufen sie einfach die Althexen, und sie hexen alles weg. Was ist das für eine Dornrösen-themed-Folge, in der nichtmal jemand einschläft?

Also klar, die Folge hat (fast) alle Jung- und Althexen und den letztens eingeführten Kilian Kerner, aber warum muss sich Bibi bei ihrer großen Dankesrede in er Mitte der Folge bei Personen wie Eddi Eddison bedanken, die in der Folge sprachlich gar nicht vorkommen? Sehr, sehr komisch.

Dann doch lieber die zweistündige 2023er Adventskalender-Folge.