GhostPizza: strona restauracji z Lighthouse 100 i bez JavaScriptu na publicznych stronach
Przepisałem stronę pizzerii z Laravela na Bun i Hono tak, żeby właściciel nie zauważył żadnej zmiany wizualnej, a telefon klienta zauważył wszystkie.
Wpisy o technologiach, z którymi pracuję, i o lekcjach z prawdziwej pracy: co zadziałało, co nie i dlaczego. Zawsze z zapisem z terminala albo zrzutem ekranu.
Przepisałem stronę pizzerii z Laravela na Bun i Hono tak, żeby właściciel nie zauważył żadnej zmiany wizualnej, a telefon klienta zauważył wszystkie.
Przed końcem umowy na dwie małe maszyny produkcyjnego klastra przeniosłem etcd i wszystko inne na jeden serwer dedykowany, bez stawiania klastra od nowa. Metoda zajęła jedną noc, a dwa zaskoczenia po drodze nauczyły mnie więcej niż sam plan.
Samsung UE60J6240 z 2015 roku ma wciąż akceptowalny panel, ale jego własny system zrobił z niego elektrośmieć – wolny, z reklamami w interfejsie i wysyłający telemetrię do producenta. Zamiast go wyrzucić, odchudziłem fabryczny system do jednego zadania: obraz i dźwięk z HDMI, bez reklam i bez telemetrii.
Mój klaster przyjmował reguły sieciowe bez słowa sprzeciwu i żadnej z nich nie egzekwował. Wymiana sieci na Cilium w obu klastrach to historia o tym, że „Synced” w Argo CD to jeszcze nie dowód.
Wdrożenie u mnie to commit, który zmienia jeden tag obrazu, i świadome kliknięcie synchronizacji. Opisuję, jak działa ta pętla, dlaczego nic nie wdraża się samo i co dołożył do niej Renovate.
Po dwóch tygodniach z k3s przebudowałem domowy klaster od zera na Talos Linux, systemie, na który nie da się zalogować. Trzy maszyny wirtualne zamieniłem w jedną, a cała jej konfiguracja mieści się w jednym pliku w gicie.
Kubernetes był moją największą luką, więc zamiast czytać o nim, postawiłem go na domowym serwerze i uruchomiłem tam kopie prawdziwych usług. Po kilku dniach cały klaster dało się odtworzyć z jednego repozytorium, razem z hasłami.
W październiku 2024 ktoś wyrzucił i zbanował członków serwera Discord społeczności, dla której od lat robię bota. Discord nie miał przycisku „odbanuj wszystkich”, więc napisałem go sam w discord.js.