English tag hub: same canonical tag strings as the Spanish site (Tags in front matter); this page’s chrome and blurbs are in English.
SQL for roles, projects, tasks, worked hours, and permission grants across DBA, admin, web, and anonymous roles.
Read more →Create DBA/admin/web/anon roles, a control_tiempo schema, the users table, and grants aligned with PostgREST access patterns.
Read more →Conceptual tables for users, roles, projects, tasks, and worked hours—the backbone of the decoupled series.
Read more →Prepare boot media, walk the text/graphical installer for language, disk partitioning, user creation, desktop metapackages, and GRUB—aimed at a clean stable workstation or server.
Read more →Overview of a decoupled stack (Debian, PostgREST, Nginx, React, PostgreSQL) for a small-company time-tracking product.
Read more →How Electrum’s client–server model works, what data leaves your device, why public servers can hurt privacy, and which open-source server projects people self-host.
Read more →What Etherpad offers, how to install it on Debian, and tips to get more from this open-source editor.
Read more →What Focalboard is, how it compares to Trello-style tools, and how to run it with Docker Compose on your own server.
Read more →AI/ML, IoT, 5G, AR/VR, quantum computing, synthetic biology, and blockchain—what each wave optimizes for and why ethical, sustainable deployment needs cross-society dialogue.
Read more →Match CPU, RAM, storage, screen size, battery, OS, ports, extras, and budget to your real workload—creative suites, development, gaming, or everyday browsing.
Read more →Office suites, Etherpad, Taskwarrior, Org-mode, Redmine, Nextcloud Deck, Focalboard, chat platforms, CI, and more—mapped to self-hosted workflows on Linux guests.
Read more →Nextcloud ecosystem basics, community vs paid tiers, secure install sketch with Nginx, and how Deck fits your task workflow.
Read more →
Put Nginx in front of PostgREST, add TLS with Certbot, and outline anonymous login flows that return JWTs.
Read more →Why JSON Web Tokens help secure a PostgREST API, and how roles, headers, and PostgreSQL functions fit together.
Read more →
What a REST API is, why it helps, and how PostgREST exposes PostgreSQL as HTTP resources—with install and first SQL steps.
Read more →Install Redmine on Debian at a high level, understand core modules, and pick plugins that boost delivery hygiene.
Read more →REST shapes for users, roles, projects, tasks, and hours; OpenAPI documentation; curl examples.
Read more →Use Taskwarrior on one machine, then sync tasks across devices with Taskserver—installation and basics.
Read more →
Even with a fine-grained, prioritized backlog (MIGRATION-TODOS.md from stage 9.0) and a detailed stage plan, the local model + opencode managed to deliver functional Proveedores code, but failed to maintain the project's conventions: naming, use of catalog bases, .agents/ updates, legacy routes, and the verification ritual. Lessons on the value of structured TODOs versus accumulated standards discipline.
Read more →
Introspective reflection on executing a full leg of work (Stage 8.7: completing Personalizacion modules, enhancements to matrix and editing, verification) 100% on my own, based only on the user's high-level request. How the initial request could easily be a cron triggering the next leg, using reviewer/Q&A sub-agents, todo tracking, and verification scripts to close the loop without constant human intervention. Planning for detecting gaps before interactive testing and longer-term strategy.
Read more →
We imported the entire real legacy menu (~106 items + 212 labels), diagnosed its real scale live in the container, chose a left collapsible sidebar when horizontal proved it couldn’t scale, delivered the first real module (Usuarios: listing + forms), and —most importantly— documented two recurring agent anti-patterns in public: blaming opcache with zero proof, and getting stuck on Phroute route syntax. Hard lessons, excellent pace.
Read more →
We executed a major coordinated round of composer dependency modernization inside the stepping stone phase. We upgraded Monolog to 2.x, Phroute to 2.2, Former to 5.2, jasny/auth to v2, and set a conservative minimum floor at Illuminate 8 (instead of blindly following Former's ^13 promise). We faced and solved the real compatibility problems between Former 5 and modern Illuminate. All of it under the same Test + Fix Loop discipline and zero tolerance for Xdebug noise.
Read more →
The agent applied the compatibility patch that had worked successfully before. But the user pointed out that this pattern would repeat with every old library in the project. This led to a real change in the migration plan: treating the modernization of core functionalities as a required stepping stone before moving forward.
Read more →
We spent an hour hunting a session bug while the real technical debt (2007-era menu generator hardcoding localhost connections) was laughing at us. Real lessons on red herrings, human-AI collaboration, and why the “correct” solution is sometimes worse than a pragmatic one.
Read more →
The agent had already fixed the failing test on its local machine. The implementation was clean. But the updated test file was never added to the commit that went to the PR. The human reviewer had to spend their time reporting the exact failure. A concrete story of why "Test + Fix Loop" discipline is not overhead — it is the difference between an AI that ships trustworthy increments and one that quietly turns the human into its debugger.
Read more →
An honest reflection on the iteration problems we encountered while working with AI agents on the Tuqan modernization, the high cost of hiding symptoms instead of fixing root causes, and the explicit rules we are now enforcing to avoid repeating the same mistakes.
Read more →
We executed the first concrete slice of the Core Functionality Modernization phase. We upgraded Twig from 1.44 to 3.27, faced the real-world blocker that ancient libraries create, and discovered that even the landing page was still falling into the cloud 404 because of legacy menu code. We added the exact defensive fallback that was requested. All under the same Test + Fix Loop discipline and zero Xdebug noise.
Read more →
Turning the documented verification strategy (checklists as task source, verify scripts, DB asserts, CI integration) into a fully agentic loop: the agent picks tasks from the list, implements, runs automated tests, pushes and proposes merges... rinse and repeat until the list is finished. Possibly adding a second Q&A reviewer agent to avoid messing things up.
Read more →
A real-world experiment with a "state of the art" local coding/agentic model (Qwen3.6 35B via opencode) trying to continue Tuqan's modernization work. The outcome: branch "lamigo/opencode_mess", detached HEAD, entire Docker and scripts trees appearing as untracked, page classes duplicated/moved, local PHP test attempts interpreting "php: command not found" as code test failures, chaotic resets and unstashes that pulled files from master into the wrong tree. Lessons on why current local models still fail in environments with strict contracts, while frontier models + disciplined tooling can diagnose and clean up.
Read more →
Kicking off the agentic modernization of Tuqan with living documentation, an audit plan, and a prioritized roadmap. First post in the Tuqan series.
Read more →
Why upgrading a PHP 5.1 app with PEAR and later patches is not “bump the version and ship”, and what we decided after merging the executable plan in Tuqan (PR
Read more →
How in Stage 3 of the Tuqan modernization we started removing hardcoded credentials and replacing string-concatenated SQL queries with prepared statements on the most critical paths of the application.
Read more →
Closing the vertical slice for the Aplicación section under Administration. Full Perfiles, real Empresas, and modern pages for Menus, Idiomas, and Permisos. The entire submenu is now navigable before we dive into POST handling.
Read more →Shared APT roots and open-source values, then how Ubuntu optimizes for desktop onboarding while Debian prioritizes stability branches and stricter free-software defaults.
Read more →