wiulinus log

tech finance gaming

gestern ein openwrt upgrade von 25.12.0 auf 25.12.1 gemacht. ab heute morgen keine internetverbindung. wobei keine internetverbindung im grunde auch falsch ist. nur die clients konnten nicht mehr ins netz. also kleine debugging-session am morgen. ergebnis: der cron.d war kaputt bzw mit dem upgrade gab es neue setting und dann haben die cronjobs nicht mehr funktioniert. so zumindest mein erstes fazit. meine cronjobs: https-proxy und adblock im openwrt-forum hab ich dann rausgefunden dass der cron-log-level von debug auf normal zu stellen ist und alles sollte wieder funktionieren. nachdem die cronjobs bei mir wöchentlich laufen, bin ich gespannt wie es nächste woche aussieht.

#openwrt #wiulinuslog #httpsproxy

#wiulinuslog

nachdem wochenendausflug hatte ich keinen zugriff mehr auf die lokale opencloud. fehler 500. also erstmal die logs angesehen. viele warnungen und fehler. sah auf den ersten blick nicht gut aus. also erstmal ausgeloggt, eine nacht darüber geschlafen und nochmal einen blick drauf geworfen.

LDAP identifier backend logon connect error: LDAP Result Code 200 “Network Error”: tls: failed to verify certificate: x509: certificate has expired or is not yet valid

das war dann das problem. wer mag ihn nicht, den cert-foo :)

{“level”:“error”,“service”:“idp”,“error”:“ldap identifier backend logon connect error: LDAP Result Code 200 “Network Error”: tls: failed to verify certificate: x509: certificate has expired or is not yet valid: current time 2025-07-07T20:09:00+08:00 is after 2025-07-06T14:39:36Z”,“time”:“2025-07-07T20:09:00+08:00”,“message”:“identifier failed to logon with backend”}

and you are not able to logon. if you installation is behing proxy, usually you will also get error:

Unexpected HTTP response: 500. Please check your connection and try again.

This normally cause by expired certificate which resides under ocis/idm folder. There you can find two certs which is ldap.key or ldap.cert. this files has expired. If your installation is using built in IDM / LDAP, you can just delete this files and when you restart the service it will regenerate back these two files.

beide dateien gelöscht und mit podman container neugestartet und schon war der login wieder möglich.

#opencloud #wiulinuslog

#wiulinuslog

openwrt_2510

das upgrade lief ohne größere probleme durch, wie immer über das attended sysupgrade. genau das wurde mittlerweile in die images integriert und ist somit bestandteil von openwrt. und die größte erwartete neuerung: das paketmanagment wurde verändert. opkg (deprecated) fliegt raus und ab jetzt gibt es apk (alpine package manager). nicht nicht android oder arch ;)

#wiulinuslog #openwrt #sysupgrade

#wiulinuslog

ki, ai, ml, llm oder was es noch so alles gibt. zeit für einen post dazu. am anfang dachte ich immer was soll ich denn damit. so ähnlich denke ich ja auch übers programmieren. es gab einfach nie einen anwendungsfall bzw ein sehr dringend zu lösendes problem. habe heute mal versucht das irgendwie nachzuvollziehen. was mir im gedächtnis blieb: release von deepseek r1/r3 und der hype um https://www.perplexity.ai/. letztes jahr im märz hab ich mich dann mal bei https://mistral.ai registriert um https://chat.mistral.ai/chat mit etwas weniger einschränkungen zu testen. perplexity war ganz gut, mit quellenangabe und sowas. hat mir tatsächlich bei einem technischen problem geholfen. trotzdem hab ich es danach genau wie mistral erstmal wieder zur seite gelegt.

ja und was ist jetzt dieses goose und lm-studio? dazu kommen wir gleich noch :) erstmal gab es ollama, ramalama, alpaca und openwebui. – https://ollama.com/https://ramalama.ai/https://github.com/Jeffser/Alpacahttps://openwebui.com/

damit habe ich jeweils etwas rumgespielt, aber da ich zu diesem zeitpunkt noch eine amd grafikkarte hatte, die noch nicht von rocm unterstützt wurde, war das alles etwas frickelkram. dann kam die 9060xt im januar und alles wurde einfacher. besonders einfach wurde es mit https://lmstudio.ai/. installiert als appimage, ein passendes modell ausgewählt und es lief einfach. aber was hat mich denn eigentlich dazu bewegt das zu machen? openclaw. wird bewusst nicht verlinkt, weil man damit auch viel unfug machen kann. personal ai assistant. ohne einschränkungen. der bot hat also vollen zugriff aufs dateisystem und versucht alles so gut möglich selbst zu lösen: dateien anlegen/löschen, software installieren/deinstallieren usw. sieht etwas gruselig aus und fühlt sich auch etwas gruselig an. hier noch ein video von ct3003 dazu: https://peertube.heise.de/w/aVsevMDmzNMdBWtVaV8cPZ danach hab ich dann noch etwas zu vibe-coding gesehen: https://peertube.heise.de/w/dNKHWHwZWLBGyknUTAJpSt naja und dann war ich nennen wir es mal sehr interessiert und ein passendes projekt hatte ich auch. meine blog-software (bludit) wird schon länger nicht mehr so aktiv entwickelt, dann kam doch mal ein update und der blog war kaputt. ein guter anlass für einen umzug. und dabei sollte mir die gute ai helfen.

projekt blog migration: erstmal mistral befragt und ein schönes python-script erhalten, nach 11 korrekturen im script hat die migration dann großteils funktioniert. die hälfte der probleme waren allerdings benutzer und keine ai-conding-probleme. bludittohugo_migration.py

das ganze hat mich überzeugt, dass man so ein llm vielleicht doch immer mal wieder einsetzen kann. speziell wenn man keine scripting-fähigkeiten besitzt. also nochmal eine theoretisch runde durch ollama, ramalama,.. gedreht, aber so richtig zufrieden war ich damit nicht. ich wollte ja eigentlich etwas das einfacher funktioniert und mir mehr abeit abnimmt. treffer eins: https://lmstudio.ai/ wie oben schon geschrieben: läuft einfach. hab mich noch etwas mit modellen und quantisierung usw beschäftigt. hier mein fazit: bei 16gb ram auf der grafikkarte irgendein modell nehmen das <10gb ist, damit noch etwas puffer vorhanden ist. geladen hab ich folgende: – Ministral-3-14B-Reasoning-2512-Q4KM – Qwen3.5-9B-Q4KM – Qwen3.5-4B-Q80 bei vielen modellen landet man bei q4km oder q4ks, wenn es nicht zu groß ist bei Q80 bisher benutzt hab ich aber nahezu immer https://huggingface.co/Qwen/Qwen3.5-9B was genau quantisierung macht bitte selbst ein llm oder eine suchmaschine fragen. oder mich im fediverse ansprechen.

soweit so gut, es gab jetzt also eine schöne app und ein gutes aktuelle modell. gut und aktuell ist da auch der springende punkt. qwen3.5 funktioniert bei 9b um soviel besser als alles was ich letztes jahr benutzt hab. ein erster vergleich war mir das blog-migrations-script nochmal erstellen zu lassen, war in wenigen sekunden erledigt und soweit ich das beurteilen konnte sah das sehr ähnlich wie mein erfolgreicher versuch aus. hab jetzt kein diff gemacht und keine recherche. ich wollte ja noch weiter. ein projekt das ich auch schon länger auf dem schirm hatte schien plötzlich zum greifen nahe: urlaubsfotos taggen mit land und ort.

## projekt fotos taggen oder was ich noch alles über llm lernen muss: 1. context length, so wichtig. modelle können oft 128k oder 256k, das standard-setting sind 4k. bei 4k bricht so ziemlich alles nach wenigen zeilen ab und man fragt sich was da los ist 2. die grafikkarte bzw der ram hat bei einem 9b modell luft für ca 48k, danach ist schluss. kleinere modelle mit viel glück bis 64k 3. kein thinking nutzen wenn es nicht notwendig ist, da gehen die tokens (die context länge) sehr schnell weg. 4. wenn das modell voll ist, neuen chat starten, auf altes projekt oder alten prompt verweisen bzw kopieren und weiter gehts

ministral_1 ministral_2 qwen3.5_1 qwen3.5_2

zurück zum projekt. ich hab mir also überlegt wie das wohl funktionieren könnte bzw was evtl am einfachsten ist. coden kann so ein llm mit etwas unterstützung ja ganz gut, aber es sollte vielleicht nicht nur ein script werden. etwas komfort darf schon sein. also eine webapp (wie im video von ct3003). an dem punkt wurde mir dann klar, dass es ab jetzt kompliziert und garnicht komfortabel wird mit lm-studio. ich wollte ja nicht selbst eine ordnerstruktur und diverse projektfiles anlegen. zum glück bin ich tage vorher schon über https://block.github.io/goose/ gestolpert. soll in richtung openclaw gehen, aber etwas kontrollierter. es gibt 4 modi zum einstellen: – autonomous – ask – smart – chat only

chat only hab ich als erstes getestet, soweit so langweilig. vielleicht noch ein wichtiges detail: ich greife über goose auf lm-studio zu, damit ich kein weiteres gefrickel mit dem einrichten vom llm habe. dann hab ich erstmal backups erstellt, einen neuen user auf meiner linuxkiste angelegt und goose im autonomous-modus gestartet. war überaschenderweise ok. goose hält sich an vorgaben von einem arbeitsverzeichnis. installiert auch mal was mit pip oder npm nach, aber das war es eigentlich. also zurück zum standard-user und ask getetestet. es wird bei nahezu allem nachgefragt. man kann mit einmal, für die session oder nicht erlauben antworten. smart hab ich danach nicht mehr getestet, mit ask bin ich zufrieden. also hab ich mir einen schönen langen prompt überlegt > du bist ein projektplaner, direkt, zielstrebig, nerdy > erstellen von logfiles, statusberichten und dokumentation gehört zu deiner grundausstattung > beim erstellen von code bist du sorgfältig und code wird getestet und überprüft. projektplanung immer für ein privaten gebrauch, kein business. es geht um objekt und texterkennung von ca 3000 fotos > nach der erkennung sollen die fotos getaggt werden. > erstellen einer webapp mit status-fenster. > ich will ordner hochladen können. > zur fotoerkennung: es soll aufnahmeort erkannt werden. land wie auch ort oder stadt. > die fotos sollen automatisch mit dem land getaggt werden, alle fotos aus dem hochgeladenen ordner. > für den ort-tag oder stadt-tag hätte ich gern eine rückfrage bei jedem foto und eine option zum ablehnen für den ganzen ordner. dein arbeitsverzeichnis ist: /home/user/gooseundlmstudio/tmp/ und darin befindet sich schon ein entwurf der webapp. sieh dir die app an und danach beginnen wir mit dem testen der app. >>

danach ging es los. es wurden projekt-ordner erstellt, backend und frontend-dateien in python usw tatsächlich entstand eine webapp mit statusanzeige die ich im browser aufrufen konnte. sie hatte nur ein problem: der upload hat nicht funktioniert also hab ich goose angewiesen den ordner-upload zu testen. hat goose gemacht, mit leerem ordner. also goose angewiesen mit ordner und dateien zu testen. daraufhin hat goose das arbeitsverzeichnis nach fotos zum testen durchsucht. es waren welche vorhanden, die wurden kopiert und zum testen verwendet. kurzer kalter schauer auf meinem rücken. aber eigentlich genau das was ich haben wollte. ich hab dann noch viele tokens versenkt um die web-app evtl zum laufen zu bekommen. hat nicht funktioniert, aber ich hab unglaublich viel gelernt und somit ist das ganze doch ein erfolg. webapp_1 webapp_2 webapp_3 webapp_4 webapp_5

test beendet? niemals!
danach hab ich noch den ein oder anderen durchlauf mit node.js gemacht. for science sozusagen, an dem punkt war mir schon klar, dass das ganze nicht einfach mal schnell vibegecoded ist wenn man schlicht 0 ahnung von coden hat. nicht mit den verfügbaren tools. was ich auch gelernt habe: goose kann keine shell befehle. das war enttäuschend. eine meiner ideen war ja noch mit exiv2 die Exif.Photo.SubjectArea nach einer objekt-erkennung mit der llm zu beschreiben. aber wie gesagt: goose kann nichtmal exiv2. bei solchen anfragen gibt es meist irgendeinen workaround mit python-schnipsel oder bash-script.

das fazit wenn das mit goose und mir noch was werden soll, muss ich mich mit den extensions beschäftigen oder mir so ein paar scripte zulegen damit ich schneller ans ziel komme. es gibt noch viel mehr möglichkeiten wie z.B. für unterschiedliche aufgaben ein passendes modell zu laden usw

oder ich installiere openclaw auf meinem test-user und zelebriere das mal durch. mich würde einfach interessieren ob es damit möglich ist. vorher auf jeden fall 3-2-1-backup machen :)

nachtrag: einer meiner fehler war in die exif schreiben zu wollen. xmp wäre richtig gewesen. notiert für den nächsten versuch.

nachtrag 2: mit sub-agents und rezepte wird goose etwas komfortabler.

#wiulinuslog

#wiulinuslog

im februar 2025 habe ich mir einen minix z100 bestellt. vorher hatte ich ein nas von synology und raspberry pi 1b/2b. bzw vor ein paar jahren noch einen mini-itx rechner mit j1900 und noch viiiiel früher einen via c7 meine erfahrungen waren sehr gemischt, den via c7 hätte ich damals viel länger behalten können. der j1900 ist an überhitzung gestorben und die raspi waren irgendwie immer frickelig und vermutlich die benutzt sdcards zu klein und günstig. die synology ds218j war stabil, mir aber zu wenig linux. ansonsten gab es da außer vielleicht noch der lautstärke nichts zu meckern. und somit waren auch alle anforderungen klar: – leise oder lüfterlos – linux – x86 – sparsam

also etwas rumgesucht und dann im sale einen minix z100 mit intel n100 und 16gb ram gekauft. hatte überlegt ob immutable/atomic sinn macht, aber mich dann doch für was traditionelles entschieden: fedora server minixz100

im nachhinein bin ich mir nicht sicher ob vielleicht immutable besser gewesen wäre. ich nutze viel docker und hab nur wenig mit dnf installiert. alternativ hätte ich auch viel mt brew machen können. sind aber alles nur details. hauptsächlich macht der server backups mit rsync und es läuft eine opencloud drauf. dafür wäre nicht soviel ram notwendig gewesen, aber man weiß ja nie wieviel man mit podman über kurz oder lang machen will/kann. vielleicht noch kurz zum os: hatte auch centos stream überlegt, aber ich kenne mich gut, das wäre mir dann evtl doch irgendwann zu alt gewesen bzw die (versions)unterschiede zum os auf meiner workstation zu groß. ansonsten läuft der z100 unaufällig, lüfterlos, entsprechend leise, performance ist mehr als genug da. idled im grunde 99% der zeit. z100_btop

kann ich ohne probleme weiterempfehlen :)

#wiulinuslog

#wiulinuslog

mir war ja noch nicht ganz klar wie ich das mit writefreely organisiere. also nochmal überlegt was denn alles so vorhanden ist und was ich davon benutze könnte. wollte ja nicht nochmal mehr infrastruktur. das ergebnis ist: ich erstelle meine postings in der opencloud und von da wird in writefreely kopiert. dateien landen auf dem uberspace und können passend verlinkt werden. und damit ich das testen kann, hab ich hier noch einen screenshot von meinem hugo :)

hugo screenshot

#wiulinuslog

#wiulinuslog

ich habe vor ca 3 jahren schon einmal mit write freely versucht zu bloggen. damals war mir das alles zu minimalistisch. die wahrscheinlichkeit ist hoch, dass das immernoch so ist :) es ist trotzdem an der zeit das ganze nochmal zu testen. die vorgeschichte, ein kurzer abriss: irgendwann hab ich wie viele vermutlich mit wordpress angefangen. das war mir zu umfangreich, zuviel gefrickel mit plugins, viel security-foo. danach hatte ich auch nochmal irgendwas mit datenbank. an den namen kann ich mich nicht mehr erinnern. dann kam pelican als static site generator, das habe ich mehrere jahre benutzt und ist aktuell noch unter https://blog.wiuwiu.org/archives.html online (wird sich im laufe des jahres ändern) pelican war mir nicht komfortabel genug, also hab ich etwas mit flat-files gesucht aber mit web-interface bludit war die lösung, bis februar 2026, da hatte ich probleme mit dem upgrade von 3.16 auf 3.17. wäre machbar gewesen, zusätzlich ist bludit wie viele kleine projekte etwas eingeschlafen, gab lange keine update, dann kommt eins und geht kaputt. ein erstes anzeichen sich was anderes zu suchen. erstmal struktur schaffen und daten/posts in sicherheit bringen. bludit zu hugo migriert, war etwas gefrickel, aber läuft jetzt unter https://hugo.wiuwiu.org nächster schritt wäre jetzt noch den alten pelican-blog in hugo zu integrieren.

und dann bleibt noch die frage: wie weiter? – bloggen mit hugo? da seh ich mich aus komfortgründen ja nicht :) – wechseln zu grav https://getgrav.org/ wäre evtl eine option – mehr im fediverse machen? hello writefreely

und so bin ich dann also beim zweiten versuch mit write freely gelandet. wenn ich noch einen gute option zum upload und einbinden von fotos finde, dann wird die entscheidung noch etwas einfacher

#wiulinuslog

#wiulinuslog