<feed xmlns="http://www.w3.org/2005/Atom"> <id>https://saskullops.github.io/</id><title>SaskullOps</title><subtitle>Blog personal de Alex Guardiola: cómo aplico IA y automatización en IT (Microsoft Power Platform y M365, n8n, Oracle SQL/BI, Python), y de vez en cuando algún apunte de ciberseguridad por interés personal (SOC casero, CTFs). Apuntes técnicos y aprendizaje en abierto.</subtitle> <updated>2026-10-16T17:38:53+02:00</updated> <author> <name>Alex Guardiola</name> <uri>https://saskullops.github.io/</uri> </author><link rel="self" type="application/atom+xml" href="https://saskullops.github.io/feed.xml"/><link rel="alternate" type="text/html" hreflang="es" href="https://saskullops.github.io/"/> <generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator> <rights> © 2026 Alex Guardiola </rights> <icon>/assets/img/favicons/favicon.ico</icon> <logo>/assets/img/favicons/favicon-96x96.png</logo> <entry><title>A kitchen assistant for two on a Raspberry Pi: Telegram, Grocy, Tandoor and n8n</title><link href="https://saskullops.github.io/posts/kitchen-assistant-telegram-grocy-tandoor-n8n/" rel="alternate" type="text/html" title="A kitchen assistant for two on a Raspberry Pi: Telegram, Grocy, Tandoor and n8n" /><published>2026-10-16T12:00:00+02:00</published> <updated>2026-10-16T17:38:33+02:00</updated> <id>https://saskullops.github.io/posts/kitchen-assistant-telegram-grocy-tandoor-n8n/</id> <content type="text/html" src="https://saskullops.github.io/posts/kitchen-assistant-telegram-grocy-tandoor-n8n/" /> <author> <name>Alex Guardiola</name> </author> <category term="Homelab" /> <category term="Automatización" /> <summary>How a Telegram group, Grocy, Tandoor and a generated n8n workflow became a self-hosted kitchen assistant: receipts to stock, weekly menus to shopping lists.</summary> </entry> <entry><title>QRFleet's stack: from a QR scan to a completed inspection</title><link href="https://saskullops.github.io/posts/qrfleet-stack-from-qr-to-inspection/" rel="alternate" type="text/html" title="QRFleet&amp;apos;s stack: from a QR scan to a completed inspection" /><published>2026-09-29T20:00:00+02:00</published> <updated>2026-09-29T20:00:00+02:00</updated> <id>https://saskullops.github.io/posts/qrfleet-stack-from-qr-to-inspection/</id> <content type="text/html" src="https://saskullops.github.io/posts/qrfleet-stack-from-qr-to-inspection/" /> <author> <name>Alex Guardiola</name> </author> <category term="Desarrollo" /> <category term="Automatización" /> <summary>How QRFleet connects its Next.js interface, FastAPI backend, offline queue and managed storage to handle fleet inspections.</summary> </entry> <entry><title>Routing Hermes coding requests with OpenRouter Pareto Code</title><link href="https://saskullops.github.io/posts/hermes-openrouter-pareto-code/" rel="alternate" type="text/html" title="Routing Hermes coding requests with OpenRouter Pareto Code" /><published>2026-09-27T11:00:00+02:00</published> <updated>2026-09-27T11:00:00+02:00</updated> <id>https://saskullops.github.io/posts/hermes-openrouter-pareto-code/</id> <content type="text/html" src="https://saskullops.github.io/posts/hermes-openrouter-pareto-code/" /> <author> <name>Alex Guardiola</name> </author> <category term="Desarrollo" /> <category term="Automatización" /> <summary>I use Hermes Agent as a terminal assistant. For cloud requests, I recently switched its default model to openrouter/pareto-code. The name looks like a model ID, but it is a router: OpenRouter chooses a coding model behind it. That matters when you are trying to understand which model answered a request, or why the bill changed. The configuration This is the relevant part of my Hermes configur...</summary> </entry> <entry><title>I replaced a template API with a small HTML-to-PNG image generator</title><link href="https://saskullops.github.io/posts/building-my-own-image-generator/" rel="alternate" type="text/html" title="I replaced a template API with a small HTML-to-PNG image generator" /><published>2026-09-22T12:00:00+02:00</published> <updated>2026-09-22T12:00:00+02:00</updated> <id>https://saskullops.github.io/posts/building-my-own-image-generator/</id> <content type="text/html" src="https://saskullops.github.io/posts/building-my-own-image-generator/" /> <author> <name>Alex Guardiola</name> </author> <category term="Desarrollo" /> <category term="Automatización" /> <summary>The Projects page on this site used to describe an image pipeline built around Bannerbear. That description was out of date. I wanted to change a layout without going back to a template editor or depending on an image API, so I made a small generator that renders HTML with Chromium instead. It produces newsletter headers, LinkedIn images and carousel slides. The cover of this post came out of ...</summary> </entry> <entry><title>QRFleet — Building a production fleet damage reporting app</title><link href="https://saskullops.github.io/posts/qrfleet-fleet-damage-reporting/" rel="alternate" type="text/html" title="QRFleet — Building a production fleet damage reporting app" /><published>2026-07-03T00:00:00+02:00</published> <updated>2026-09-29T21:30:48+02:00</updated> <id>https://saskullops.github.io/posts/qrfleet-fleet-damage-reporting/</id> <content type="text/html" src="https://saskullops.github.io/posts/qrfleet-fleet-damage-reporting/" /> <author> <name>Alex Guardiola</name> </author> <category term="Desarrollo" /> <category term="Automatización" /> <summary>This is an early project overview, not a current technical reference. The architecture, inspection workflow and deployment have changed since it was written. See QRFleet’s current stack for the updated implementation. The problem Drivers reporting damage via WhatsApp. Photos lost in the chat, descriptions misunderstood, no traceability. Management needing a dashboard that didn’t exist. The ...</summary> </entry> </feed>
