marcelpetrick

๐Ž๐ง๐ฅ๐ฒ ๐Ÿ% of my ๐ฉ๐ซ๐จ๐ฆ๐ฉ๐ญ๐ฌ contain ๐ฉ๐ซ๐จ๐Ÿ๐š๐ง๐ข๐ญ๐ฒ

Written by  on August 11, 2026

Testing Muse Glimmer lead to some frustration, so I started the next prompt with something I wouldn’t write professionally.
And this led to the question: how often do I do this? I would have guessed that 10% of my machine-human interactions contain some swear words.

But why guess when you can evaluate the data and produce hard facts?

Therefore I prepared ๐Ÿซ™ ๐€๐ ๐ž๐ง๐ญ๐ข๐œ ๐’๐ฐ๐ž๐š๐ซ ๐‰๐š๐ซ as project on GitHub, which evaluates both your ๐‚๐จ๐๐ž๐ฑ and ๐‚๐ฅ๐š๐ฎ๐๐ž ๐‚๐จ๐๐ž logs and gives you on the CLI a short two liner. And additionally you receive an HTML page in nice green IBM 3279-style. All locally, no AI or models involved, just some Python and HTML.
It will reveal to you how many swearwords were used, their frequency, streaks without swearing, which hour of the day the tension rises high, etc ..

What do you think? Anyone has a higher score to offer? Leave me a comment.

GitHub: https://github.com/marcelpetrick/AgenticSwearJar

PDF with full feature view:

agentic-swear-jar-linkedin

Screenshot:

 

3/x: ๐‚๐ซ๐จ๐‹๐ข๐ง๐ ๐จ: pipelines

Written by  on August 9, 2026

In a feature-driven world, support-software rarely gets the stage it deserves. Ask a stakeholder what a pipeline is and get ๐Ÿ™ƒ .. which is sad. Because how else do you want to verify it you built it correctly?

Anyway: automated testing and linting is always part of my process. From day one – not in the final stages. Of course, you should have at least a tiny build-able fragment of your project, but the earlier you add #automation, the better. I usually run with local and continuous integration pipelines.
This project is hosted on GitHub, so I went with GitHub actions for the CI. We have 20 named pipeline stages which form a single commit gate. “Cheap” ones like linting and format checks run before the more “expensive” ones, which need a build. 129 automated tests are done, which cover 98% of the code. Together with the 30 unit and widget tests and a real-target integration suite we have fitting coverage. The local version runs as pre-commit hook, the GitHub one is also capable of doing the releases. And so far I made six public releases.
Also, Dependabot is integrated, so if I would miss the release of any dependency, then this neat little bot would create an automatic PR (pull-request) for me. ๐Ÿฆโ€โฌ›

The pipeline turns engineering expectations into executable policy. ๐ˆ๐ญ ๐ฐ๐จ๐ง’๐ญ ๐›๐ฎ๐ข๐ฅ๐ ๐จ๐ซ ๐ฉ๐š๐ฌ๐ฌ, ๐ฒ๐จ๐ฎ ๐œ๐š๐ง’๐ญ ๐ซ๐ž๐ฅ๐ž๐š๐ฌ๐ž. ๐’๐ข๐ฆ๐ฉ๐ฅ๐ž ๐š๐ฌ ๐ญ๐ก๐š๐ญ.

If you want to give this Croatian-German-language learning app a try, download the package from https://github.com/marcelpetrick/CroLingo/releases/tag/v0.0.63 and run it on your Android phone.
Have fun and enjoy learning!

I’ll keep you updated on what comes next. ๐Ÿ‡ญ๐Ÿ‡ท โค๏ธ ๐Ÿ‡ฉ๐Ÿ‡ช

 

#continuousIntegration #continuousDeployment #pipelines #automation

2/x: ๐‚๐ซ๐จ๐‹๐ข๐ง๐ ๐จ

Written by  on August 8, 2026

As written, I had started to gather all ideas and document what we want. Of course, there exist magic tools which transform unstructured input into well-defined #requirements and which help you to make them conflict-free, unambiguous, atomic, feasible and verifiable. Yada yada, you know the drill.

Then the development started, and we have a first #MVP (minimum viable product) now, as an Android release package and Linux Desktop build. The first content has been added, so the first user feedback could be gathered today. I have to admit, offering an app with well-known competitors yields a lot of “oh, but here it should behave like this” … anyway, input from the target audience is really dear to me. So we now have plenty more things to implement and some to adjust. But we did not experience a single crash or logic deadlock.

โœจ ๐€๐ง๐ ๐ฌ๐จ๐ฆ๐ž ๐ฎ๐ฌ๐ž๐ซ๐ฌ ๐œ๐จ๐ฎ๐ฅ๐ ๐š๐ฅ๐ซ๐ž๐š๐๐ฒ ๐ฅ๐ž๐š๐ซ๐ง ๐ฌ๐จ๐ฆ๐ž ๐ง๐ž๐ฐ ๐ฐ๐จ๐ซ๐๐ฌ. โœจ

I’ve added on-device screenshots from one of the recent builds. If you want the hands-on experience, go to https://github.com/marcelpetrick/CroLingo/releases/tag/v0.0.40

I’ll keep you updated on what comes next. ๐Ÿ‡ญ๐Ÿ‡ท โค๏ธ ๐Ÿ‡ฉ๐Ÿ‡ช

๐Ÿฆ™ Release: ๐Ž๐ฅ๐ฅ๐š๐ฆ๐š๐…๐š๐ซ๐ฆ โœจ

Written by  on August 7, 2026

Recently I had the need to monitor all the locally available #Ollama instances. Of course, you can ๐˜ค๐˜ถ๐˜ณ๐˜ญ yourself, but why not have a tool in the history of btop/abtop ..

Only one ๐˜ด๐˜ฉ๐˜ฆ๐˜ญ๐˜ญ script utilizing ๐˜ค๐˜ถ๐˜ณ๐˜ญ, ๐˜ข๐˜ธ๐˜ฌ and ๐˜ซ๐˜ฒ. The name is the architecture: one llama is a pet, several across machines is a farm.

Tons of hotkeys to change update frequency, re-discovery of servers, probing their VRAM, cycling color themes. GitHub Actions ensure high quality code.
So give it a try and/or write a better version, #GPLv3 allows it: https://github.com/marcelpetrick/ollamaFarm/

Ollama Farmer out ๐Ÿง‘๐Ÿปโ€๐ŸŒพ๐Ÿฆ™

New project: ๐‚๐ซ๐จ๐‹๐ข๐ง๐ ๐จ ๐Ÿ‡ญ๐Ÿ‡ท๐Ÿ‡ฉ๐Ÿ‡ช

Written by  on August 7, 2026

Just wanted to share that I started the design and implementation of an app for learning Croatian.
The market for language-learning apps does not offer the combination I need, so it is time to roll our own custom software.
Also a playground for #Flutter and #Dart, since I have so far only used Kotlin for Android apps. And it will run on x86_64 Linux desktops as well. Maybe I’ll do an iOS version too.
Most of the preliminary work was spent on the design and concept. #Ideation is quite important in the age of agentic AI.
Of course, I will avoid writing code and keep you updated ๐Ÿ˜‰

Final evaluation

Written by  on August 3, 2026

The World Cup is over โ€” actually for quite a while, but I never had the time to do the final evaluation. Outcome was fifth place (yes, from second to fifth), because those two missing entries really made me leave 7-9 points on the table (on average), which could have yielded a second or third place.

I will re-invest the gained 18โ‚ฌ into pizza for the team and use it for some discussions about morality (is agentic resolution allowed for such games?).

And I won: my initial goal of fetching back my investment of the starter fee was met. Good.

And I learnt how to orchestrate agents to solve non-SW-development tasks.

#agenticAI

kicktipp_final_linkedin_carousel

๐“๐ก๐ž ๐Ÿ๐ข๐ซ๐ฌ๐ญ ๐ ๐š๐ฆ๐ž ๐ฆ๐ฒ ๐ค๐ข๐๐ฌ ๐š๐ฉ๐ฉ๐ซ๐จ๐ฏ๐ž๐

Written by  on July 23, 2026

I like good turn-based offline games. Recently, the kids brought home one that I won’t name here because my GitHub Pagesโ€“backed browser game is a shameless copy.

If you want to play it (free and safe): https://marcelpetrick.github.io/recognizer/

๐—ง๐—ต๐—ฒ ๐—ฟ๐˜‚๐—น๐—ฒ๐˜€ ๐˜๐—ฎ๐—ธ๐—ฒ ๐˜๐—ฒ๐—ป ๐˜€๐—ฒ๐—ฐ๐—ผ๐—ป๐—ฑ๐˜€ ๐˜๐—ผ ๐—ฒ๐˜…๐—ฝ๐—น๐—ฎ๐—ถ๐—ป: ๐˜›๐˜ธ๐˜ฐ ๐˜ค๐˜ข๐˜ณ๐˜ฅ๐˜ด. ๐˜Œ๐˜ช๐˜จ๐˜ฉ๐˜ต ๐˜ด๐˜บ๐˜ฎ๐˜ฃ๐˜ฐ๐˜ญ๐˜ด ๐˜ฆ๐˜ข๐˜ค๐˜ฉ. ๐˜Œ๐˜น๐˜ข๐˜ค๐˜ต๐˜ญ๐˜บ ๐˜ฐ๐˜ฏ๐˜ฆ ๐˜ฎ๐˜ข๐˜ต๐˜ค๐˜ฉ. ๐—™๐—ถ๐—ป๐—ฑ ๐˜๐—ต๐—ฒ ๐—บ๐—ฎ๐˜๐—ฐ๐—ต ๐—ณ๐—ฎ๐˜€๐˜๐—ฒ๐—ฟ ๐˜๐—ต๐—ฎ๐—ป ๐˜†๐—ผ๐˜‚๐—ฟ ๐—บ๐—ฎ๐˜๐—ฒ๐˜€.

It is super simple, but pattern matching requires concentration, and you have to be quick. ๐—œ๐˜’๐˜€ ๐—ด๐—ฟ๐—ฒ๐—ฎ๐˜ ๐—ณ๐˜‚๐—ป ๐—ฒ๐˜ƒ๐—ฒ๐—ป ๐—ฎ๐˜€ ๐—ฎ ๐˜€๐—ถ๐—ป๐—ด๐—น๐—ฒ ๐—ฝ๐—น๐—ฎ๐˜†๐—ฒ๐—ฟ with a local high-score list.

Building it raised three useful questions:
* ๐—›๐—ผ๐˜„ ๐—ฑ๐—ผ ๐˜†๐—ผ๐˜‚ ๐—ด๐˜‚๐—ฎ๐—ฟ๐—ฎ๐—ป๐˜๐—ฒ๐—ฒ that rule across all ๐Ÿ,๐Ÿ“๐Ÿ—๐Ÿ” possible card pairs?
* ๐—›๐—ผ๐˜„ ๐—ฑ๐—ผ ๐˜†๐—ผ๐˜‚ ๐˜๐˜‚๐—ฟ๐—ป a shared game into a good single-player challenge?
* ๐—›๐—ผ๐˜„ ๐—บ๐˜‚๐—ฐ๐—ต ๐—ถ๐—ป๐—ณ๐—ฟ๐—ฎ๐˜€๐˜๐—ฟ๐˜‚๐—ฐ๐˜๐˜‚๐—ฟ๐—ฒ does a small browser game actually need?

The mathematical part uses a finite projective plane. ๐—ง๐—ต๐—ฒ ๐˜๐—ฒ๐˜€๐˜ ๐˜€๐˜‚๐—ถ๐˜๐—ฒ ๐˜ƒ๐—ฒ๐—ฟ๐—ถ๐—ณ๐—ถ๐—ฒ๐˜€ ๐—ฒ๐˜ƒ๐—ฒ๐—ฟ๐˜† ๐—ฝ๐—ผ๐˜€๐˜€๐—ถ๐—ฏ๐—น๐—ฒ ๐—ฐ๐—ฎ๐—ฟ๐—ฑ ๐—ฝ๐—ฎ๐—ถ๐—ฟ.

The product stays deliberately small: 10, 20, or 50 cards, a timer, and local high scores. ๐˜•๐˜ฐ ๐˜ข๐˜ค๐˜ค๐˜ฐ๐˜ถ๐˜ฏ๐˜ต๐˜ด. ๐˜•๐˜ฐ ๐˜จ๐˜ญ๐˜ฐ๐˜ฃ๐˜ข๐˜ญ ๐˜ณ๐˜ข๐˜ฏ๐˜ฌ๐˜ช๐˜ฏ๐˜จ๐˜ด. ๐˜•๐˜ฐ ๐˜ฃ๐˜ข๐˜ค๐˜ฌ๐˜ฆ๐˜ฏ๐˜ฅ.

๐—” ๐˜€๐—ถ๐—ฑ๐—ฒ ๐—ป๐—ผ๐˜๐—ฒ ๐—ณ๐—ผ๐—ฟ ๐˜๐—ต๐—ผ๐˜€๐—ฒ ๐—ถ๐—ป๐˜๐—ฒ๐—ฟ๐—ฒ๐˜€๐˜๐—ฒ๐—ฑ ๐—ถ๐—ป ๐˜€๐—ผ๐—ณ๐˜๐˜„๐—ฎ๐—ฟ๐—ฒ ๐—ฑ๐—ฒ๐—น๐—ถ๐˜ƒ๐—ฒ๐—ฟ๐˜†
I also used the project as a compact, end-to-end SDLC example: written requirements, scope, and acceptance criteria; separated and testable domain logic; versioned storage with migration handling; unit, component, browser, mobile, and accessibility tests; formatting, linting, type checking, and build gates; locked dependencies with automated updates; and repeatable PWA deployment through GitHub Actions and GitHub Pages.

๐ˆ๐Ÿ ๐ฒ๐จ๐ฎ ๐ญ๐ก๐ข๐ง๐ค ๐ฒ๐จ๐ฎ ๐š๐ซ๐ž ๐ช๐ฎ๐ข๐œ๐ค๐ž๐ซ: ๐ฉ๐ฅ๐š๐ฒ ๐š๐ง๐ ๐ฉ๐จ๐ฌ๐ญ ๐ฒ๐จ๐ฎ๐ซ ๐ฌ๐œ๐จ๐ซ๐ž ๐Ÿค—

๐‚๐ฅ๐จ๐ฎ๐ ๐€๐๐ˆ๐ฌ ๐š๐ซ๐ž ๐ž๐ฑ๐ฉ๐ž๐ง๐ฌ๐ข๐ฏ๐ž. ๐–๐š๐ญ๐ž๐ซ๐ฆ๐ž๐ฅ๐จ๐ง ๐ข๐ฌ ๐ง๐จ๐ญ. ๐Ÿ‰

Written by  on July 15, 2026

Vision models grow in their capabilities while the execution demands way fewer resources.

Means: my sales slip scanner-project from two years ago needed an upgrade. Before I was using GPT-4 Vision via the @OpenAI API, which costs you control over your data and a few cents for every analysis.

Now, after intensive benchmarking across a range of 15 models (with ๐Ž๐ฅ๐ฅ๐š๐ฆ๐š) and some surprising regressions (newer harness doesn’t mean the models execute faster; it can also mean they suddenly run into model load errors…), I put my money on ๐๐ฐ๐ž๐ง๐Ÿ‘.๐Ÿ“:๐Ÿ’๐. A casual language model with a ๐ฏ๐ข๐ฌ๐ข๐จ๐ง ๐ž๐ง๐œ๐จ๐๐ž๐ซ. My own benchmark over the selected models against the huge sample size of three receipts: all three were successfully evaluated. ๐Ÿ˜‰

Then I built a ๐ก๐จ๐ญ-๐Ÿ๐จ๐ฅ๐๐ž๐ซ-๐œ๐จ๐ง๐œ๐ž๐ฉ๐ญ around the script, and it works (thank you @Mr Zahorsky โ€” without whom I would have never come across that idea). For instance: in less than ten seconds, 13 samples were processed, and you get the result sum plus a fancy HTML overview for comparison.

๐ƒ๐š๐ญ๐š ๐ž๐ง๐ญ๐ซ๐ฒ can be done for cheap: give the kids the smartphone, snap all receipts, throw out some watermelon slices ๐Ÿ‰๐Ÿ˜‰

If you want to run the tool as well, check my GitHub: https://github.com/marcelpetrick/sales-slip-scanner-ng. As said: a local GPU is the only thing you need; ๐ง๐จ ๐œ๐ฅ๐จ๐ฎ๐, ๐ง๐จ ๐€๐๐ˆ ๐ค๐ž๐ฒ๐ฌ, ๐ง๐จ ๐œ๐ซ๐ž๐๐ข๐ญ ๐œ๐š๐ซ๐. Everything is now self-hosted. You’ll also find the benchmark of the vision models there, including the results.

๐“๐ก๐ž ๐›๐ข๐  ๐ช๐ฎ๐ž๐ฌ๐ญ๐ข๐จ๐ง ๐ข๐ฌ: ๐ฐ๐ก๐š๐ญ ๐ฌ๐ก๐จ๐ฎ๐ฅ๐ ๐ˆ ๐š๐ฎ๐ญ๐จ๐ฆ๐š๐ญ๐ž ๐ง๐ž๐ฑ๐ญ ๐ฐ๐ข๐ญ๐ก ๐š ๐ฅ๐จ๐œ๐š๐ฅ ๐ฏ๐ข๐ฌ๐ข๐จ๐ง ๐ฆ๐จ๐๐ž๐ฅ? ๐–๐ก๐š๐ญ ๐ฐ๐จ๐ฎ๐ฅ๐ ๐ฒ๐จ๐ฎ ๐๐จ?

#neverstoplearning

๐—œ ๐—ฅ๐—ฎ๐—ป ๐—ฎ ๐Ÿฎ๐Ÿณ๐—• ๐— ๐—ผ๐—ฑ๐—ฒ๐—น ๐—ผ๐—ป ๐—ฎ๐—ป ๐Ÿด๐—š๐—• ๐—š๐—ฃ๐—จ.

Written by  on July 15, 2026

๐Ÿฐ๐Ÿฌ ๐—บ๐—ถ๐—ป๐˜‚๐˜๐—ฒ๐˜€. That’s all it took me to get Bonsai 27B running locally on an RTX A2000 Laptop GPU with just 8GB of VRAM.

Bonsai 27B is based on Qwen 3.6, but uses PrismML’s custom native ๐Ÿ-๐›๐ข๐ญ ๐๐จ๐ง๐ฌ๐š๐ข format, reducing the model to just 3.9GB. A specialized ๐ฅ๐ฅ๐š๐ฆ๐š.๐œ๐ฉ๐ฉ fork implements custom CUDA kernels for the 1-bit inference path, making it possible to run the model directly on an 8GB GPU. The runtime exposes an OpenAI-compatible API, so existing tools and agents work without modification.
Performance is a different topic: 15 down to 9 tokens/s.

If you want to give it a try: find my notes and setup-scripts at GitHub: https://github.com/marcelpetrick/codingWithGPT/tree/master/bonsaiTestrun

๐Œ๐ฒ ๐š๐ฉ๐ฉ๐ฌ ๐š๐ซ๐ž ๐ง๐จ๐ญ ๐š๐›๐š๐ง๐๐จ๐ง๐ฐ๐š๐ซ๐ž!

Written by  on July 10, 2026

Yesterday, #RitterRadar got some updates: first, all dependencies were refreshed (no more CVEs); then I fixed some bugs I had noticed over the past few weeks; and finally, the best news: a new feature that gives you a copyable list of the events matching your current filter.

So, for instance, if you live near Potsdam and want to see all medieval events within 50 km over the next two months – you get this:

——-

04. Juli 2026 | Kinder- und Sommerfest in Gannahall 2026 | 14641 Nauen (26 km)
04. Juli 2026 – 05. Juli 2026 | Mythologie und Handwerk des Mittelalters 2026 | 15569 Woltersdorf (47 km)
22. Aug. 2026 – 23. Aug. 2026 | Sommerfest Lรผbarser Hofkulturdiverse Konzerte | 13469 Berlin (30 km)
29. Aug. 2026 | Mittelalterliches zum Ackerbรผrgerfest | 14641 Nauen (26 km)

——-

#FastAPI #WebScraping #OpenStreetMap #Geocoding #OpenSource #EventDiscovery

URL to the GitHub-project: https://github.com/marcelpetrick/RitterRadarย if you haven’t given it a try yet โš”๏ธ๐Ÿ‰