<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Antonio Cortés (DrZippie)</title><link>https://antoniocortes.com/en/</link><description>Recent content on Antonio Cortés (DrZippie)</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 30 Mar 2026 10:26:28 +0200</lastBuildDate><atom:link href="https://antoniocortes.com/en/index.xml" rel="self" type="application/rss+xml"/><item><title>Auto Memory and Auto Dream: how Claude Code learns and consolidates its memory</title><link>https://antoniocortes.com/en/2026/03/30/auto-memory-and-auto-dream-how-claude-code-learns-and-consolidates-its-memory/</link><pubDate>Mon, 30 Mar 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2026/03/30/auto-memory-and-auto-dream-how-claude-code-learns-and-consolidates-its-memory/</guid><description>&lt;p&gt;If you&amp;rsquo;ve been using Claude Code with Auto Memory enabled for a while, you&amp;rsquo;ve probably noticed that after several sessions, Claude&amp;rsquo;s notes about your project start accumulating contradictions. Entries saying &amp;ldquo;yesterday we decided to use Redis&amp;rdquo; without specifying which day &amp;ldquo;yesterday&amp;rdquo; was. Debugging notes referencing files that no longer exist. Three different entries about the same build quirk. What started as a useful notebook becomes noise.&lt;/p&gt;
&lt;p&gt;Anthropic has just released &lt;strong&gt;Auto Dream&lt;/strong&gt;, a feature that does exactly what its name suggests: it consolidates Claude Code&amp;rsquo;s memory the way the human brain consolidates memories during REM sleep.&lt;/p&gt;</description></item><item><title>Claude Code with LSP: from searching text to understanding code</title><link>https://antoniocortes.com/en/2026/03/10/claude-code-with-lsp-from-searching-text-to-understanding-code/</link><pubDate>Tue, 10 Mar 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2026/03/10/claude-code-with-lsp-from-searching-text-to-understanding-code/</guid><description>&lt;p&gt;I have been using Claude Code daily for months, and there is one configuration that has completely changed how it works with my code. It is not a new plugin, a more powerful model, or a magic prompt. It is something that has existed since 2016 and that most developers use without knowing it every time they open VS Code: the Language Server Protocol (LSP).&lt;/p&gt;
&lt;p&gt;&lt;a href="https://karanbansal.in/blog/claude-code-lsp/"&gt;Karan Bansal published an excellent article&lt;/a&gt; explaining in detail how to enable LSP in Claude Code and why it matters. After trying it, I can confirm the difference is real and significant.&lt;/p&gt;</description></item><item><title>Ghost Jobs: the economy built on positions that don't exist</title><link>https://antoniocortes.com/en/2026/03/10/ghost-jobs-the-economy-built-on-positions-that-dont-exist/</link><pubDate>Tue, 10 Mar 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2026/03/10/ghost-jobs-the-economy-built-on-positions-that-dont-exist/</guid><description>&lt;p&gt;Every month, 2.2 million job postings in the United States result in zero hires. Four in ten companies admit their listings are fake. Seven in ten call it morally acceptable. 85 percent still bring candidates in for interviews.&lt;/p&gt;
&lt;p&gt;These are not figures from a conspiracy blog. They come from the Bureau of Labor Statistics, from surveys of 650 hiring managers published by ResumeBuilder, and from Revelio Labs analytics. The ghost job economy is a documented, quantified phenomenon, and apparently a perfectly tolerated one.&lt;/p&gt;</description></item><item><title>DuckDB and httpfs behind a proxy: the secret nobody tells you</title><link>https://antoniocortes.com/en/2026/03/02/duckdb-and-httpfs-behind-a-proxy-the-secret-nobody-tells-you/</link><pubDate>Mon, 02 Mar 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2026/03/02/duckdb-and-httpfs-behind-a-proxy-the-secret-nobody-tells-you/</guid><description>&lt;h2 id="the-problem-httpfs-ignores-your-environment-variables"&gt;The problem: httpfs ignores your environment variables&lt;/h2&gt;
&lt;p&gt;If you work with DuckDB and the &lt;code&gt;httpfs&lt;/code&gt; extension to read remote Parquet files, CSVs from S3, or any HTTP resource, you probably assume that the &lt;code&gt;HTTP_PROXY&lt;/code&gt; and &lt;code&gt;HTTPS_PROXY&lt;/code&gt; environment variables work just like every other tool. Curl respects them. wget respects them. Python requests respects them. Node.js respects them.&lt;/p&gt;
&lt;p&gt;DuckDB does not.&lt;/p&gt;
&lt;p&gt;I ran into this while working in a corporate environment with a mandatory proxy. I had a script reading Parquet files from Google Cloud Storage using &lt;code&gt;httpfs&lt;/code&gt;, and it simply would not work. No clear error, no descriptive timeout, just silence. Meanwhile, a &lt;code&gt;curl&lt;/code&gt; to the same resource with the same environment variables returned data without issue.&lt;/p&gt;</description></item><item><title>How PostgreSQL Estimates Your Queries (And Why It Sometimes Gets It Wrong)</title><link>https://antoniocortes.com/en/postgresql-statistics/</link><pubDate>Fri, 27 Feb 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/postgresql-statistics/</guid><description>&lt;p&gt;Every query starts with a plan. Every slow query probably starts with a bad one. And more often than not, the statistics are to blame. But how does it really work?&lt;/p&gt;
&lt;p&gt;PostgreSQL doesn&amp;rsquo;t run the query to find out — it estimates the cost. It reads pre-computed data from &lt;code&gt;pg_class&lt;/code&gt; and &lt;code&gt;pg_statistic&lt;/code&gt; and does the maths to figure out the cheapest path to your data.&lt;/p&gt;
&lt;p&gt;In the ideal scenario, the numbers read are accurate, and you get the plan you expect. But when they&amp;rsquo;re stale, the situation gets out of control. The planner estimates 500 rows, plans a nested loop, and hits 25,000. What seemed like an optimal plan turns into a cascading failure.&lt;/p&gt;</description></item><item><title>Analyzing Container Filesystem Isolation for Multi-Tenant Workloads</title><link>https://antoniocortes.com/en/container-filesystem-isolation-multi-tenant-workloads/</link><pubDate>Fri, 13 Feb 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/container-filesystem-isolation-multi-tenant-workloads/</guid><description>&lt;p&gt;I recently came across an exceptionally dense technical analysis about container security that&amp;rsquo;s worth sharing. The author started with a simple hypothesis: container filesystem isolation should be sufficient for multi-tenant workloads without virtual machines, if you sufficiently understand what&amp;rsquo;s happening at the syscall level.&lt;/p&gt;
&lt;p&gt;After thorough investigation, the conclusion is more uncomfortable than expected: the defaults protect you well, but the moment you reach for &amp;ldquo;advanced&amp;rdquo; features like bidirectional mount propagation or SELinux relabeling, you&amp;rsquo;re one misconfiguration away from handing an attacker the keys to your host.&lt;/p&gt;</description></item><item><title>The Software Development Renaissance with AI Agents</title><link>https://antoniocortes.com/en/ai-software-development-renaissance/</link><pubDate>Fri, 06 Feb 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/ai-software-development-renaissance/</guid><description>&lt;p&gt;Greg Brockman, President and Co-Founder of OpenAI, recently published a thread that perfectly describes the moment we&amp;rsquo;re living in software development. According to him, we&amp;rsquo;re witnessing a genuine renaissance in software development, driven by AI tools that have improved exponentially since December.&lt;/p&gt;
&lt;h2 id="the-qualitative-leap"&gt;The qualitative leap&lt;/h2&gt;
&lt;p&gt;The most striking part of Brockman&amp;rsquo;s thread is how they describe the internal change at OpenAI: engineers who previously used Codex for unit tests now see the tool writing practically all code and handling a large portion of operations and debugging. This isn&amp;rsquo;t an incremental improvement, it&amp;rsquo;s a paradigm shift.&lt;/p&gt;</description></item><item><title>Attention is all we have</title><link>https://antoniocortes.com/en/attention-is-all-we-have/</link><pubDate>Wed, 04 Feb 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/attention-is-all-we-have/</guid><description>&lt;p&gt;A few days ago I was reading a fascinating essay by David Bessis that made me think deeply about something we all take for granted: intelligence. Bessis, a mathematician and author of &lt;em&gt;Mathematica: A Secret World of Intuition and Curiosity&lt;/em&gt;, presents a thesis that challenges many of our deeply held beliefs about the origin of cognitive differences between people.&lt;/p&gt;
&lt;p&gt;What&amp;rsquo;s most interesting about his approach is not so much the conclusion -which I&amp;rsquo;ll get to- but the path he traces to get there, a path that mixes mathematics, neuroscience, and a good dose of personal experience.&lt;/p&gt;</description></item><item><title>Agent Lightning: Microsoft and the Future of AI Agent Orchestration</title><link>https://antoniocortes.com/en/agent-lightning/</link><pubDate>Mon, 02 Feb 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/agent-lightning/</guid><description>&lt;p&gt;A few days ago I discovered &lt;a href="https://github.com/microsoft/agent-lightning"&gt;Agent Lightning&lt;/a&gt;, a Microsoft project that I believe marks a before and after in how we think about AI agent orchestration. It&amp;rsquo;s not just another library; it&amp;rsquo;s a serious attempt to standardize how we build multi-agent systems.&lt;/p&gt;
&lt;h2 id="what-is-agent-lightning"&gt;What is Agent Lightning?&lt;/h2&gt;
&lt;p&gt;Agent Lightning is a Microsoft framework for orchestrating AI agents. It enables composition, integration, and deployment of multi-agent systems in a modular and scalable way. The premise is simple but powerful: agents should be components that can be combined, connected, and reused.&lt;/p&gt;</description></item><item><title>Jeffrey Way: 'I'm Done' - The Harsh Reality of AI in Programming Education</title><link>https://antoniocortes.com/en/jeffrey-way-ai-reality/</link><pubDate>Mon, 02 Feb 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/jeffrey-way-ai-reality/</guid><description>&lt;p&gt;A few days ago I watched &lt;a href="https://www.youtube.com/watch?v=g_Bvo0tsD9s"&gt;a video&lt;/a&gt; that has given me a lot to think about. Jeffrey Way, founder of Laracasts and one of the most influential people in the Laravel/PHP community, shared a brutally honest reflection on how artificial intelligence is transforming his business and his profession.&lt;/p&gt;
&lt;p&gt;The video starts with a phrase that leaves you cold: &lt;em&gt;&amp;ldquo;I&amp;rsquo;m done&amp;rdquo;&lt;/em&gt;. It&amp;rsquo;s not a goodbye to programming, but an acceptance of the reality to come.&lt;/p&gt;</description></item><item><title>Tangible Media Collection: Curiosity as a Way of Life</title><link>https://antoniocortes.com/en/tangible-media-collection/</link><pubDate>Mon, 02 Feb 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/tangible-media-collection/</guid><description>&lt;p&gt;A few days ago I discovered &lt;a href="https://tangiblemediacollection.com/"&gt;Tangible Media Collection&lt;/a&gt;, a website that has resonated deeply with me. It&amp;rsquo;s a collection of some 1700 objects related to information storage: from vinyl records and magnetic tapes to punch cards and optical discs. But it&amp;rsquo;s not just a collection of technological objects; it&amp;rsquo;s a testament to human curiosity.&lt;/p&gt;
&lt;h2 id="the-collection-born-from-a-lost-tape"&gt;The Collection Born from a Lost Tape&lt;/h2&gt;
&lt;p&gt;The story of how this collection started is fascinating. In 2001, John Wallace (the collector) found a computer tape from the late 80s in a desk drawer. He knew what it contained: an archive of computer-generated images from his grad school days, the product of late nights and weekends in the computer lab. But the tape drive that could read it was long gone.&lt;/p&gt;</description></item><item><title>Vercel Sandbox: Running PHP, Node and Go Code Safely?</title><link>https://antoniocortes.com/en/vercel-sandbox/</link><pubDate>Mon, 02 Feb 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/vercel-sandbox/</guid><description>&lt;p&gt;Vercel has announced the general availability of &lt;a href="https://vercel.com/blog/vercel-sandbox-is-now-generally-available"&gt;Vercel Sandbox&lt;/a&gt;, an execution layer designed specifically for AI agents. But beyond the AI agent hype, there&amp;rsquo;s an interesting question: can it be useful for running code safely in different languages like PHP, Node, or Go?&lt;/p&gt;
&lt;h2 id="what-is-vercel-sandbox"&gt;What is Vercel Sandbox?&lt;/h2&gt;
&lt;p&gt;Vercel Sandbox provides on-demand Linux microVMs. Each sandbox is isolated, with its own filesystem, network, and process space. You get &lt;code&gt;sudo&lt;/code&gt; access, package managers, and the ability to run the same commands you&amp;rsquo;d run on a Linux machine.&lt;/p&gt;</description></item><item><title>AI Coding Agents: Rules, Commands, Skills, MCP and Hooks Explained</title><link>https://antoniocortes.com/en/2026/02/01/ai-coding-agents-conceptos-clave/</link><pubDate>Sun, 01 Feb 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2026/02/01/ai-coding-agents-conceptos-clave/</guid><description>&lt;p&gt;If you&amp;rsquo;re using tools like Claude Code, GitHub Copilot Workspace, or similar, you&amp;rsquo;ve probably noticed there&amp;rsquo;s technical jargon that goes beyond simply &amp;ldquo;chatting with AI&amp;rdquo;. I&amp;rsquo;m talking about terms like &lt;strong&gt;rules&lt;/strong&gt;, &lt;strong&gt;commands&lt;/strong&gt;, &lt;strong&gt;skills&lt;/strong&gt;, &lt;strong&gt;MCP&lt;/strong&gt;, and &lt;strong&gt;hooks&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;These concepts are the architecture that makes AI agents truly useful for software development. They&amp;rsquo;re not just fancy marketing words — each one serves a specific function in how the agent works.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s break them down one by one in a clear way.&lt;/p&gt;</description></item><item><title>DuckDB: File Formats and Performance Optimizations</title><link>https://antoniocortes.com/en/duckdb-file-formats-performance-optimization/</link><pubDate>Sun, 01 Feb 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/duckdb-file-formats-performance-optimization/</guid><description>&lt;p&gt;Lately I&amp;rsquo;ve been working quite a bit with &lt;strong&gt;DuckDB&lt;/strong&gt;, and one of the things that interests me most is understanding how to optimize performance according to the file format we&amp;rsquo;re using.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s not the same working with Parquet, compressed CSV, or uncompressed CSV. And the performance differences can be &lt;strong&gt;dramatic&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s review the key optimizations to keep in mind when working with different file formats in DuckDB.&lt;/p&gt;
&lt;h2 id="parquet-direct-query-or-load-first"&gt;Parquet: Direct Query or Load First?&lt;/h2&gt;
&lt;p&gt;DuckDB has advanced Parquet support, including the ability to query Parquet files directly without loading them into the database. But when should you do one or the other?&lt;/p&gt;</description></item><item><title>European Open Source AI Index: Measuring True AI Openness</title><link>https://antoniocortes.com/en/european-open-source-ai-index/</link><pubDate>Sun, 01 Feb 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/european-open-source-ai-index/</guid><description>&lt;p&gt;Lately I&amp;rsquo;m seeing more and more AI models calling themselves &amp;ldquo;open source&amp;rdquo;. Llama, Mistral, Falcon&amp;hellip; they all claim to be &amp;ldquo;open&amp;rdquo;. But are they really? How open are they actually?&lt;/p&gt;
&lt;p&gt;I recently discovered the &lt;strong&gt;European Open Source AI Index (OSAI)&lt;/strong&gt;, a European initiative doing excellent work systematically evaluating how open generative AI models really are.&lt;/p&gt;</description></item><item><title>NativePHP for Mobile Is Now Free: Finally I Can Try It!</title><link>https://antoniocortes.com/en/nativephp-mobile-now-free/</link><pubDate>Sun, 01 Feb 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/nativephp-mobile-now-free/</guid><description>&lt;p&gt;I confess I&amp;rsquo;ve been following &lt;strong&gt;NativePHP for Mobile&lt;/strong&gt; since it was announced. The idea of being able to make native mobile applications with Laravel and &lt;strong&gt;only PHP&lt;/strong&gt; seemed - and seems - a very good thing.&lt;/p&gt;
&lt;p&gt;But there was a problem: the price. When I just wanted to try it, experiment, play a bit&amp;hellip; the license cost held me back. I couldn&amp;rsquo;t justify the expense just to &amp;ldquo;curiously explore.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Well, &lt;strong&gt;they just announced that NativePHP for Mobile v3 is completely free&lt;/strong&gt;. Open Source, MIT license, free forever.&lt;/p&gt;</description></item><item><title>Self-Improving Agents: When AI Starts Improving Itself</title><link>https://antoniocortes.com/self-improving-agents/</link><pubDate>Sun, 01 Feb 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/self-improving-agents/</guid><description>&lt;p&gt;Recently, Addy Osmani published an article that gave me much to think about: &lt;em&gt;&amp;ldquo;Self-Improving Coding Agents&amp;rdquo;&lt;/em&gt;. The idea is simple but powerful: &lt;strong&gt;agents that not only execute tasks, but improve their own performance over time&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;This isn&amp;rsquo;t science fiction. It&amp;rsquo;s happening now, in 2026. And it has profound implications for the future of software development and, by extension, for all professions.&lt;/p&gt;
&lt;h2 id="what-is-a-self-improving-agent"&gt;What is a Self-Improving Agent?&lt;/h2&gt;
&lt;p&gt;A self-improving agent is an AI system with the capacity to:&lt;/p&gt;</description></item><item><title>Are We Outsourcing Our Thinking? Reflections on AI and Cognition</title><link>https://antoniocortes.com/are-we-outsourcing-our-thinking/</link><pubDate>Sat, 31 Jan 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/are-we-outsourcing-our-thinking/</guid><description>&lt;p&gt;Lately I&amp;rsquo;ve been following a discussion that worries me quite a bit: &lt;strong&gt;to what extent are we delegating our thinking to AI&lt;/strong&gt;. It&amp;rsquo;s not an abstract or philosophical question, it&amp;rsquo;s something very real I&amp;rsquo;m seeing day to day in our profession and in society in general.&lt;/p&gt;
&lt;p&gt;Recently I read an article by Erik Johannes Husom titled &lt;em&gt;&amp;ldquo;Outsourcing thinking&amp;rdquo;&lt;/em&gt; that, among other things, discusses the concept of &lt;em&gt;&amp;ldquo;lump of cognition fallacy&amp;rdquo;&lt;/em&gt;. The idea is that, just as there&amp;rsquo;s an economic fallacy saying there&amp;rsquo;s a fixed amount of work to do, some believe there&amp;rsquo;s a fixed amount of thinking to do, and if machines think for us, we&amp;rsquo;ll just think about other things.&lt;/p&gt;</description></item><item><title>Laravel Fuse: Circuit Breaker for Queue Jobs</title><link>https://antoniocortes.com/laravel-fuse-circuit-breaker-queue-jobs/</link><pubDate>Sat, 31 Jan 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/laravel-fuse-circuit-breaker-queue-jobs/</guid><description>&lt;p&gt;Just announced at Laracon India 2026: &lt;strong&gt;Laravel Fuse&lt;/strong&gt;. It&amp;rsquo;s a circuit breaker implemented as middleware for Laravel Queue jobs, and it solves a problem all of us working with external services have faced.&lt;/p&gt;
&lt;h2 id="the-problem"&gt;The Problem&lt;/h2&gt;
&lt;p&gt;Imagine this scenario: it&amp;rsquo;s 11 PM and Stripe is having issues. Your queue workers don&amp;rsquo;t know this, they keep trying to charge customers, and each job waits 30 seconds before timing out. Then they retry. Wait again. Timeout again.&lt;/p&gt;</description></item><item><title>When Claude Plans Your Route on Mars: NASA Uses AI for Perseverance</title><link>https://antoniocortes.com/en/2026/01/31/when-claude-plans-your-route-on-mars-nasa-uses-ai-for-perseverance/</link><pubDate>Sat, 31 Jan 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2026/01/31/when-claude-plans-your-route-on-mars-nasa-uses-ai-for-perseverance/</guid><description>&lt;p&gt;A few days ago I read news that left me thinking for a while. It&amp;rsquo;s not the first time I&amp;rsquo;ve heard about AI in space, but it is the first time I&amp;rsquo;ve read about Claude planning routes on Mars. And the best part: it worked.&lt;/p&gt;
&lt;p&gt;NASA has been using Anthropic&amp;rsquo;s Claude to plan the Perseverance rover&amp;rsquo;s routes on Mars. Yes, you read that right: a generative language model generating navigation routes for a rover that&amp;rsquo;s 225 million kilometers away.&lt;/p&gt;</description></item><item><title>When Curiosity Meets Go: TinyEMU-Go and the Art of Porting an Emulator with AI</title><link>https://antoniocortes.com/en/2026/01/31/when-curiosity-meets-go-tinyemu-go-and-the-art-of-porting-an-emulator-with-ai/</link><pubDate>Sat, 31 Jan 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2026/01/31/when-curiosity-meets-go-tinyemu-go-and-the-art-of-porting-an-emulator-with-ai/</guid><description>&lt;p&gt;A few days ago I came across an article that literally left me with my mouth open. It&amp;rsquo;s about &lt;strong&gt;TinyEMU-Go&lt;/strong&gt;: a RISC-V emulator written entirely in Go, ported from C using Claude. And the best part: you can run a complete Linux with a single command.&lt;/p&gt;
&lt;h2 id="the-command-line-that-gave-me-envy"&gt;The Command Line That Gave Me Envy&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;go run github.com/jtolio/tinyemu-go/temubox/example@2c8151233c2d
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;And boom, you have a complete Linux running. No special permissions, no containers, no weird dependencies. A pure static Go binary.&lt;/p&gt;</description></item><item><title>MCPHero: The Bridge Between MCP and Traditional AI Libraries</title><link>https://antoniocortes.com/mcphero-bridge-mcp-libs-ai/</link><pubDate>Fri, 30 Jan 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/mcphero-bridge-mcp-libs-ai/</guid><description>&lt;p&gt;Lately I&amp;rsquo;ve been closely following everything around the &lt;strong&gt;MCP protocol&lt;/strong&gt; (Model Context Protocol), and recently I found a project that makes a lot of sense: &lt;strong&gt;MCPHero&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The reality is that although MCP is taking off, many &amp;ldquo;traditional&amp;rdquo; AI libraries like &lt;code&gt;openai&lt;/code&gt; or &lt;code&gt;google-genai&lt;/code&gt; still don&amp;rsquo;t have native MCP support. They only support tool/function calls. MCPHero comes to solve exactly this: make a bridge between MCP servers and these libraries.&lt;/p&gt;
&lt;h2 id="what-is-mcphero"&gt;What is MCPHero?&lt;/h2&gt;
&lt;p&gt;MCPHero is a Python library that lets you use MCP servers as tools/functions in native AI libraries. Basically, it lets you connect to any MCP server and use its tools as if they were native OpenAI or Google Gemini tools.&lt;/p&gt;</description></item><item><title>When AI Disempowers Us: Worrying Patterns in Real Claude Usage</title><link>https://antoniocortes.com/en/2026/01/30/when-ai-disempowers-us-worrying-patterns-in-real-claude-usage/</link><pubDate>Fri, 30 Jan 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2026/01/30/when-ai-disempowers-us-worrying-patterns-in-real-claude-usage/</guid><description>&lt;p&gt;A few days ago Anthropic published a paper that gave me much to think about. It&amp;rsquo;s titled &amp;ldquo;Disempowerment patterns in real-world AI usage&amp;rdquo; and analyzes, for the first time at scale, how AI interactions may be diminishing our capacity for autonomous judgment.&lt;/p&gt;
&lt;p&gt;And no, we&amp;rsquo;re not talking about science fiction scenarios like &amp;ldquo;Skynet taking control.&amp;rdquo; We&amp;rsquo;re talking about something much more subtle and, perhaps for that reason, more dangerous: the voluntary cession of our critical judgment to an AI system.&lt;/p&gt;</description></item><item><title>Laravel Boost v2 and the New Skills: On My List to Try</title><link>https://antoniocortes.com/laravel-boost-v2-skills/</link><pubDate>Thu, 29 Jan 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/laravel-boost-v2-skills/</guid><description>&lt;p&gt;A few days ago &lt;strong&gt;Laravel Boost v2.0&lt;/strong&gt; was launched, and as someone curious about everything surrounding the Laravel ecosystem, I couldn&amp;rsquo;t help spending quite a while reading about the new features. The truth is there&amp;rsquo;s one feature that has my special attention: the &lt;strong&gt;Skills&lt;/strong&gt; system.&lt;/p&gt;
&lt;h2 id="what-is-laravel-boost"&gt;What is Laravel Boost?&lt;/h2&gt;
&lt;p&gt;For those who don&amp;rsquo;t know it, Laravel Boost is an AI tool that integrates with your Laravel projects to help you in daily development. With version 2.0 they&amp;rsquo;ve taken a major leap, introducing the Skills system that allows extending and customizing how AI works with your code.&lt;/p&gt;</description></item><item><title>Five principles for using AI professionally (without going crazy)</title><link>https://antoniocortes.com/en/2025/07/23/five-principles-for-using-ai-professionally-without-going-crazy/</link><pubDate>Wed, 23 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2025/07/23/five-principles-for-using-ai-professionally-without-going-crazy/</guid><description>&lt;p&gt;A few days ago I read an article by &lt;a href="https://dominiek.substack.com/p/the-5-principles-of-using-ai-professionally"&gt;Dominiek about the 5 principles for using AI professionally&lt;/a&gt; and found myself constantly nodding. After years of watching technologies arrive and evolve, AI gives me the same feelings I had with other &amp;ldquo;revolutions&amp;rdquo;: enthusiasm mixed with a necessary dose of skepticism.&lt;/p&gt;
&lt;p&gt;Dominiek&amp;rsquo;s article especially resonated with me because it perfectly describes what we&amp;rsquo;re experiencing: a world where AI is getting into everything, but not always in the most useful or sensible way.&lt;/p&gt;</description></item><item><title>Local AI on Raspberry Pi 5 with Ollama: Your private AI server at home</title><link>https://antoniocortes.com/en/2025/07/21/local-ai-on-raspberry-pi-5-with-ollama-your-private-ai-server-at-home/</link><pubDate>Mon, 21 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2025/07/21/local-ai-on-raspberry-pi-5-with-ollama-your-private-ai-server-at-home/</guid><description>&lt;p&gt;A few months ago I came across something that really caught my attention: the possibility of having my own &amp;ldquo;ChatGPT&amp;rdquo; running at home, without sending data anywhere, using only a Raspberry Pi 5. Sounds too good to be true, right?&lt;/p&gt;
&lt;p&gt;Well, it turns out that with &lt;strong&gt;Ollama&lt;/strong&gt; and a Pi 5 it&amp;rsquo;s perfectly possible to set up a local AI server that works surprisingly well. Let me tell you my experience and how you can do it too.&lt;/p&gt;</description></item><item><title>Amazon S3 Vectors: Native vector storage in the cloud</title><link>https://antoniocortes.com/en/2025/07/17/amazon-s3-vectors-native-vector-storage-in-the-cloud/</link><pubDate>Thu, 17 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2025/07/17/amazon-s3-vectors-native-vector-storage-in-the-cloud/</guid><description>&lt;p&gt;Amazon has taken an important step in the world of artificial intelligence with the launch of &lt;strong&gt;S3 Vectors&lt;/strong&gt;, the first cloud storage service with native support for large-scale vectors. This innovation promises to reduce costs by up to 90% for uploading, storing, and querying vector data.&lt;/p&gt;
&lt;h2 id="what-are-vectors-and-why-do-we-care"&gt;What are vectors and why do we care?&lt;/h2&gt;
&lt;p&gt;Vectors are numerical representations of unstructured data (text, images, audio, video) generated by embedding models. They are the foundation of generative AI applications that need to find similarities between data using distance metrics.&lt;/p&gt;</description></item><item><title>Docker pushrm: simplifying container documentation</title><link>https://antoniocortes.com/en/2025/07/15/docker-pushrm-simplifying-container-documentation/</link><pubDate>Tue, 15 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2025/07/15/docker-pushrm-simplifying-container-documentation/</guid><description>&lt;p&gt;A few days ago, working with Claude Code, I came across a tool that&amp;rsquo;s been around in the Docker ecosystem for a while but that I didn&amp;rsquo;t know about: &lt;strong&gt;docker pushrm&lt;/strong&gt;. And the truth is it surprised me how useful it is for something as simple as keeping your container repository documentation synchronized.&lt;/p&gt;
&lt;h2 id="the-problem-it-solves"&gt;The problem it solves&lt;/h2&gt;
&lt;p&gt;Anyone who has worked with Docker Hub, Quay, or Harbor knows the typical flow: you update your project&amp;rsquo;s README on GitHub, build and push your image, but&amp;hellip; the container registry&amp;rsquo;s README is still outdated. You have to manually go to the browser, copy and paste the content, and do the update manually.&lt;/p&gt;</description></item><item><title>Advanced Claude Code: Tips, tricks, and custom commands to maximize your productivity</title><link>https://antoniocortes.com/en/2025/07/13/advanced-claude-code-tips-tricks-and-custom-commands-to-maximize-your-productivity/</link><pubDate>Sun, 13 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2025/07/13/advanced-claude-code-tips-tricks-and-custom-commands-to-maximize-your-productivity/</guid><description>&lt;p&gt;After my &lt;a href="https://antoniocortes.com/2025/07/13/programaci%C3%B3n-ag%C3%A9ntica-con-claude-mi-experiencia-pr%C3%A1ctica-desarrollando-con-ia/"&gt;previous article about agent-centric programming&lt;/a&gt;, I&amp;rsquo;ve been researching more advanced techniques for using Claude Code really productively. As a programmer with 30 years of experience, I&amp;rsquo;ve seen many promising tools that ultimately didn&amp;rsquo;t deliver on their promises. But Claude Code, when used correctly, is becoming a real game-changer.&lt;/p&gt;
&lt;h2 id="beyond-the-basics-the-difference-between-playing-and-working-seriously"&gt;Beyond the basics: The difference between playing and working seriously&lt;/h2&gt;
&lt;p&gt;One thing is using Claude Code for experiments or personal projects, and another very different thing is integrating it into a professional workflow. For serious projects, you need a different approach:&lt;/p&gt;</description></item><item><title>Agentic Programming with Claude: My Practical Experience Developing with AI</title><link>https://antoniocortes.com/en/2025/07/13/agentic-programming-with-claude-my-practical-experience-developing-with-ai/</link><pubDate>Sun, 13 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2025/07/13/agentic-programming-with-claude-my-practical-experience-developing-with-ai/</guid><description>&lt;p&gt;A few days ago I came across a very interesting stream where someone showed their setup for agentic programming using Claude Code. After years developing &amp;ldquo;the old-fashioned way,&amp;rdquo; I have to admit that I&amp;rsquo;ve found this revealing.&lt;/p&gt;
&lt;h2 id="what-is-agentic-programming"&gt;What is Agentic Programming?&lt;/h2&gt;
&lt;p&gt;For those not familiar with the term, agentic programming is basically letting an AI agent (in this case Claude) write code for you. But I&amp;rsquo;m not talking about asking it to generate a snippet, but giving it full access to your system so it can read, write, execute, and debug code autonomously.&lt;/p&gt;</description></item><item><title>NGINX njs now supports QuickJS: Goodbye LUA, hello modern JavaScript</title><link>https://antoniocortes.com/en/2025/07/11/nginx-njs-now-supports-quickjs-goodbye-lua-hello-modern-javascript/</link><pubDate>Fri, 11 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2025/07/11/nginx-njs-now-supports-quickjs-goodbye-lua-hello-modern-javascript/</guid><description>&lt;h2 id="finally-modern-javascript-in-nginx-and-we-can-forget-about-lua"&gt;Finally: Modern JavaScript in NGINX (and we can forget about LUA)&lt;/h2&gt;
&lt;p&gt;When I read the &lt;a href="https://blog.nginx.org/blog/quickjs-engine-support-for-njs"&gt;NGINX announcement about QuickJS support in njs&lt;/a&gt;, I couldn&amp;rsquo;t help but smile. &lt;strong&gt;Finally I can stop struggling with LUA&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;As someone who has configured more NGINX servers than I can remember (from my time at Arrakis to now at Carto), I&amp;rsquo;ve always been annoyed by the limitation of having to use LUA for complex logic in NGINX. It&amp;rsquo;s not that LUA is bad, but&amp;hellip; &lt;strong&gt;why learn another language when I already master JavaScript?&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>How to build an agent: from idea to reality</title><link>https://antoniocortes.com/en/2025/07/10/how-to-build-an-agent-from-idea-to-reality/</link><pubDate>Thu, 10 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2025/07/10/how-to-build-an-agent-from-idea-to-reality/</guid><description>&lt;p&gt;Lately, there&amp;rsquo;s been talk of AI agents everywhere. Every company has their roadmap full of &amp;ldquo;agents that will revolutionize this and that,&amp;rdquo; but when you scratch a little, you realize few have actually managed to build something useful that works in production.&lt;/p&gt;
&lt;p&gt;Recently I read a &lt;a href="https://blog.langchain.com/how-to-build-an-agent/"&gt;very interesting article by LangChain&lt;/a&gt; about how to build agents in a practical way, and it seems to me a very sensible approach I wanted to share with you. I&amp;rsquo;ve adapted it with my own reflections after having banged my head more than once trying to implement &amp;ldquo;intelligent&amp;rdquo; systems that weren&amp;rsquo;t really that intelligent.&lt;/p&gt;</description></item><item><title>The New Promiscuity of Modern Developers: When Being Unfaithful to Tools Is Normal</title><link>https://antoniocortes.com/en/2025/07/10/the-new-promiscuity-of-modern-developers-when-being-unfaithful-to-tools-is-normal/</link><pubDate>Thu, 10 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2025/07/10/the-new-promiscuity-of-modern-developers-when-being-unfaithful-to-tools-is-normal/</guid><description>&lt;p&gt;Throughout my career, I&amp;rsquo;ve seen many things change. I&amp;rsquo;ve gone from Borland to Visual Studio, from vi to Sublime Text, from Sublime to VS Code&amp;hellip; And believe me, each change was a deliberate decision that cost me weeks of adaptation. But what&amp;rsquo;s happening now with AI tools is something completely different.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve found myself using Copilot in the morning, trying Cursor in the afternoon, and checking out Claude Code before going to bed. And I&amp;rsquo;m not alone. Developers have gone from being faithful as dogs to our tools to being&amp;hellip; well, promiscuous.&lt;/p&gt;</description></item><item><title>A2A vs MCP: Tools or Agents? The difference that will change how we build AI systems</title><link>https://antoniocortes.com/en/2025/07/09/a2a-vs-mcp-tools-or-agents-the-difference-that-will-change-how-we-build-ai-systems/</link><pubDate>Wed, 09 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2025/07/09/a2a-vs-mcp-tools-or-agents-the-difference-that-will-change-how-we-build-ai-systems/</guid><description>&lt;h2 id="two-protocols-two-philosophies"&gt;Two protocols, two philosophies&lt;/h2&gt;
&lt;p&gt;In recent months, two protocols have emerged that will change how we build AI systems: &lt;strong&gt;&lt;a href="https://a2aprotocol.ai/"&gt;Agent2Agent Protocol (A2A)&lt;/a&gt;&lt;/strong&gt; from Google and &lt;strong&gt;&lt;a href="https://modelcontextprotocol.io/"&gt;Model Context Protocol (MCP)&lt;/a&gt;&lt;/strong&gt; from Anthropic. But here&amp;rsquo;s the thing: &lt;strong&gt;they don&amp;rsquo;t compete with each other&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;In fact, after analyzing both for weeks, I&amp;rsquo;ve realized that understanding the difference between A2A and MCP is crucial for anyone building AI systems beyond simple chatbots.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The key lies in one question&lt;/strong&gt;: Are you connecting an AI with tools, or are you coordinating multiple intelligences?&lt;/p&gt;</description></item><item><title>AgentHouse: When databases start speaking our language</title><link>https://antoniocortes.com/en/2025/07/09/agenthouse-when-databases-start-speaking-our-language/</link><pubDate>Wed, 09 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2025/07/09/agenthouse-when-databases-start-speaking-our-language/</guid><description>&lt;p&gt;A few months ago, when Anthropic launched their MCP (Model Context Protocol), I knew we&amp;rsquo;d see interesting integrations between LLMs and databases. What I didn&amp;rsquo;t expect was to see something as polished and functional as ClickHouse&amp;rsquo;s AgentHouse so soon.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m planning to test this demo soon, but just reading about it, the idea of being able to ask a database questions like &amp;ldquo;What are the most popular GitHub repositories this month?&amp;rdquo; and getting not just an answer, but automatic visualizations, seems fascinating.&lt;/p&gt;</description></item><item><title>Jest: When Failing Fast is the Smart Strategy</title><link>https://antoniocortes.com/en/2025/07/09/jest-when-failing-fast-is-the-smart-strategy/</link><pubDate>Wed, 09 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2025/07/09/jest-when-failing-fast-is-the-smart-strategy/</guid><description>&lt;p&gt;When working on large projects, it&amp;rsquo;s common to have test suites that can take several minutes to run. And when one of those tests fails early in the execution, it&amp;rsquo;s frustrating to wait for all the others to complete just to see the full results.&lt;/p&gt;
&lt;p&gt;Jest includes a feature I&amp;rsquo;ve found very useful in development: the &lt;code&gt;bail&lt;/code&gt; option, which allows stopping test execution after a certain number of failures. It&amp;rsquo;s one of those features that once you know and start using, you don&amp;rsquo;t understand how you lived without it.&lt;/p&gt;</description></item><item><title>LM Studio Removes Barriers: Now Free for Work Too</title><link>https://antoniocortes.com/en/2025/07/09/lm-studio-removes-barriers-now-free-for-work-too/</link><pubDate>Wed, 09 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2025/07/09/lm-studio-removes-barriers-now-free-for-work-too/</guid><description>&lt;p&gt;In my years developing software, I&amp;rsquo;ve learned that the best tools are those that eliminate unnecessary friction. And LM Studio has just taken a huge step in that direction: &lt;strong&gt;&lt;a href="https://lmstudio.ai/blog/free-for-work"&gt;it&amp;rsquo;s now completely free for enterprise use&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;This may sound like &amp;ldquo;just another AI news item,&amp;rdquo; but for those of us who have been experimenting with local models for a while, this is an important paradigm shift.&lt;/p&gt;
&lt;h2 id="the-problem-that-existed-before"&gt;The problem that existed before&lt;/h2&gt;
&lt;p&gt;Since its launch in May 2023, LM Studio was always free for personal use. But if you wanted to use it in your company, you had to contact them to obtain a commercial license. This created exactly the type of friction that kills team experimentation.&lt;/p&gt;</description></item><item><title>Reaper: When Deleting Code Is as Important as Writing It</title><link>https://antoniocortes.com/en/2025/07/08/reaper-when-deleting-code-is-as-important-as-writing-it/</link><pubDate>Tue, 08 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2025/07/08/reaper-when-deleting-code-is-as-important-as-writing-it/</guid><description>&lt;p&gt;In my experience with mobile development, I&amp;rsquo;ve seen how apps become increasingly complex and projects grow uncontrollably. I remember perfectly that feeling of having thousands of lines of code and not being sure what was really being used and what wasn&amp;rsquo;t.&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s why I was so struck by the tool that Sentry (formerly from Emerge Tools) just released as open source: &lt;strong&gt;&lt;a href="https://blog.sentry.io/an-open-source-sdk-for-finding-dead-code/"&gt;Reaper&lt;/a&gt;&lt;/strong&gt;. An SDK that does something that sounds simple but is tremendously useful: find dead code in your mobile applications.&lt;/p&gt;</description></item><item><title>Context Engineering: Prompt Engineering Has Grown Up</title><link>https://antoniocortes.com/en/2025/07/05/context-engineering-prompt-engineering-has-grown-up/</link><pubDate>Sat, 05 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2025/07/05/context-engineering-prompt-engineering-has-grown-up/</guid><description>&lt;p&gt;A few years ago, many AI researchers (even the most reputable) predicted that prompt engineering would be a temporary skill that would quickly disappear. They were completely wrong. Not only has it not disappeared, but &lt;strong&gt;it has evolved into something much more sophisticated: Context Engineering&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;And no, it&amp;rsquo;s not just another buzzword. It&amp;rsquo;s a natural evolution that reflects the real complexity of working with LLMs in production applications.&lt;/p&gt;
&lt;h2 id="from-prompt-engineering-to-context-engineering"&gt;From prompt engineering to context engineering&lt;/h2&gt;
&lt;p&gt;The problem with the term &amp;ldquo;prompt engineering&amp;rdquo; is that many people confuse it with &lt;strong&gt;blind prompting&lt;/strong&gt; - simply writing a question in ChatGPT and expecting a result. That&amp;rsquo;s not engineering, that&amp;rsquo;s using a tool.&lt;/p&gt;</description></item><item><title>Deno 2.4: The Bundle is Back</title><link>https://antoniocortes.com/en/2025/07/05/deno-2.4-the-bundle-is-back/</link><pubDate>Sat, 05 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2025/07/05/deno-2.4-the-bundle-is-back/</guid><description>&lt;p&gt;Deno 2.4 has just been released, and I must admit it has pleasantly surprised me. Not only because of the number of new features, but because of one in particular that many of us thought would never return: &lt;strong&gt;&lt;code&gt;deno bundle&lt;/code&gt; is back&lt;/strong&gt;. And this time, it&amp;rsquo;s here to stay.&lt;/p&gt;
&lt;p&gt;This release comes packed with improvements ranging from importing text files directly to stable observability with OpenTelemetry. Let&amp;rsquo;s explore what this release brings us.&lt;/p&gt;</description></item><item><title>JSONPath: The XPath We Needed for JSON</title><link>https://antoniocortes.com/en/2025/07/05/jsonpath-the-xpath-we-needed-for-json/</link><pubDate>Sat, 05 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2025/07/05/jsonpath-the-xpath-we-needed-for-json/</guid><description>&lt;p&gt;I&amp;rsquo;ve seen how certain standards and tools become indispensable when working with data. And if there&amp;rsquo;s one thing we&amp;rsquo;ve learned over these years, it&amp;rsquo;s that &lt;strong&gt;JSON is everywhere&lt;/strong&gt;: APIs, logs, configurations, NoSQL databases&amp;hellip; The question is no longer whether you&amp;rsquo;ll work with JSON, but when you&amp;rsquo;ll face that 15-level nested structure that makes you sigh.&lt;/p&gt;
&lt;h2 id="the-problem-weve-all-lived-through"&gt;The Problem We&amp;rsquo;ve All Lived Through&lt;/h2&gt;
&lt;p&gt;How many times have you had to write something like this?&lt;/p&gt;</description></item><item><title>PHP 8.5.0 Alpha 1: Pipeline to the Future</title><link>https://antoniocortes.com/en/2025/07/05/php-8.5.0-alpha-1-pipeline-to-the-future/</link><pubDate>Sat, 05 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2025/07/05/php-8.5.0-alpha-1-pipeline-to-the-future/</guid><description>&lt;p&gt;The first alpha version of PHP 8.5 has just been released, and I must confess it has me more excited than recent versions. It&amp;rsquo;s not just for the technical improvements (which are many), but because &lt;strong&gt;PHP 8.5 introduces features that will change the way we write code&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;And when I say &amp;ldquo;change,&amp;rdquo; I mean the kind of changes that, once you use them, you can&amp;rsquo;t go back. Like when the null coalescing operator (&lt;code&gt;??&lt;/code&gt;) appeared in PHP 7, or arrow functions in PHP 7.4.&lt;/p&gt;</description></item><item><title>WebAssembly Agents: AI in the Browser Without Complications</title><link>https://antoniocortes.com/en/2025/07/04/webassembly-agents-ai-in-the-browser-without-complications/</link><pubDate>Fri, 04 Jul 2025 12:00:00 +0200</pubDate><guid>https://antoniocortes.com/en/2025/07/04/webassembly-agents-ai-in-the-browser-without-complications/</guid><description>&lt;h2 id="mozilla-ai-surprises-again-ai-agents-that-work-just-by-opening-an-html"&gt;Mozilla AI surprises again: AI agents that work just by opening an HTML&lt;/h2&gt;
&lt;p&gt;A few days ago I came across a Mozilla AI project that really caught my attention: &lt;a href="https://blog.mozilla.ai/wasm-agents-ai-agents-running-in-your-browser/"&gt;WebAssembly Agents&lt;/a&gt;. And after 30 years watching the industry complicate life with dependencies, installations, and configurations, seeing something that works just by &amp;ldquo;opening an HTML&amp;rdquo; made me smile.&lt;/p&gt;
&lt;h3 id="the-problem-it-solves-and-we-all-know-it"&gt;The problem it solves (and we all know it)&lt;/h3&gt;
&lt;p&gt;How many times have you tried to test an AI project and encountered this?&lt;/p&gt;</description></item><item><title>Baidu and the New Search Paradigm with Multi-Agents: When AI Learns to Collaborate</title><link>https://antoniocortes.com/en/2025/07/04/baidu-and-the-new-search-paradigm-with-multi-agents-when-ai-learns-to-collaborate/</link><pubDate>Fri, 04 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2025/07/04/baidu-and-the-new-search-paradigm-with-multi-agents-when-ai-learns-to-collaborate/</guid><description>&lt;p&gt;After many years working with systems of all kinds, I&amp;rsquo;ve seen how information retrieval has evolved from simple databases to today&amp;rsquo;s sophisticated systems. But what Baidu researchers have just proposed has particularly caught my attention, and I believe it marks a before and after in how we think about intelligent information retrieval.&lt;/p&gt;
&lt;h2 id="the-problem-we-all-know-but-dont-always-admit"&gt;The problem we all know (but don&amp;rsquo;t always admit)&lt;/h2&gt;
&lt;p&gt;If you&amp;rsquo;ve worked with RAG (Retrieval-Augmented Generation) systems, you know they work quite well for direct questions. But when you face queries that require multiple reasoning steps, comparing information from multiple sources, or handling contradictory data&amp;hellip; that&amp;rsquo;s where it gets complicated. And a lot.&lt;/p&gt;</description></item><item><title>LLMs in Software Engineering: 2025 Reality Check</title><link>https://antoniocortes.com/en/2025/07/03/llms-in-software-engineering-2025-reality-check/</link><pubDate>Thu, 03 Jul 2025 10:00:00 +0200</pubDate><guid>https://antoniocortes.com/en/2025/07/03/llms-in-software-engineering-2025-reality-check/</guid><description>&lt;h2 id="the-hype-vs-reality-reflections-from-a-developer-with-30-years-of-experience"&gt;The hype vs reality: reflections from a developer with 30 years of experience&lt;/h2&gt;
&lt;p&gt;This morning I came across a talk that made me reflect quite a bit about all this fuss surrounding AI and software development. The speaker, with a healthy dose of skepticism, does a &amp;ldquo;reality check&amp;rdquo; on all the grandiose claims we&amp;rsquo;re hearing everywhere.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
 &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/EO3_qN_Ynsk?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
 &lt;/div&gt;

&lt;p&gt;&lt;em&gt;The complete talk that inspired these reflections. It&amp;rsquo;s worth watching in full.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Moley: The Tool That Makes Cloudflare Tunnels Finally Usable (and Why We Needed It)</title><link>https://antoniocortes.com/en/2025/07/03/moley-the-tool-that-makes-cloudflare-tunnels-finally-usable-and-why-we-needed-it/</link><pubDate>Thu, 03 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2025/07/03/moley-the-tool-that-makes-cloudflare-tunnels-finally-usable-and-why-we-needed-it/</guid><description>&lt;h2 id="the-problem-we-all-have-but-solve-poorly"&gt;The Problem We All Have (But Solve Poorly)&lt;/h2&gt;
&lt;p&gt;As a DevOps Manager, I spend more time than I should configuring ways for the team to &lt;strong&gt;show their development work&lt;/strong&gt;. Client demos, webhooks for testing, temporary APIs for integrations&amp;hellip; we always need to expose localhost to the world.&lt;/p&gt;
&lt;p&gt;Traditional options are a pain:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ngrok&lt;/strong&gt;: Works, but ugly URLs, limits on free plan, and every restart generates a new URL&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;localtunnel&lt;/strong&gt;: Unstable, URLs that expire, and often blocked by corporate firewalls&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SSH tunneling&lt;/strong&gt;: Requires your own servers, manual configuration, and networking knowledge&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Manual Cloudflare Tunnels&lt;/strong&gt;: Powerful but&amp;hellip; God, the manual configuration is hellish&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And then I discovered &lt;strong&gt;&lt;a href="https://github.com/stupside/moley"&gt;Moley&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Agent Communication Protocol (ACP): The HTTP of AI Agents</title><link>https://antoniocortes.com/en/2025/07/02/agent-communication-protocol-acp-the-http-of-ai-agents/</link><pubDate>Wed, 02 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2025/07/02/agent-communication-protocol-acp-the-http-of-ai-agents/</guid><description>&lt;h2 id="yet-another-protocol-promising-to-change-everything"&gt;Yet another protocol promising to change everything&lt;/h2&gt;
&lt;p&gt;When IBM Research announced the &lt;strong&gt;Agent Communication Protocol (ACP)&lt;/strong&gt; as part of the BeeAI project, my first reaction was the usual one: &lt;em&gt;&amp;ldquo;Oh, just another universal protocol&amp;rdquo;&lt;/em&gt;. With nearly 30 years in this field, I&amp;rsquo;ve seen too many &amp;ldquo;definitive standards&amp;rdquo; that ended up forgotten.&lt;/p&gt;
&lt;p&gt;But there&amp;rsquo;s something different about ACP that made me pay attention: &lt;strong&gt;it doesn&amp;rsquo;t promise to solve all the world&amp;rsquo;s problems&lt;/strong&gt;. It simply focuses on one very specific thing: making AI agents from different frameworks talk to each other. And it does it in a way that really makes sense.&lt;/p&gt;</description></item><item><title>Cloudflare Innovates Again: Cryptographic Authentication for Bots (The End of Fake User-Agents)</title><link>https://antoniocortes.com/en/2025/07/02/cloudflare-innovates-again-cryptographic-authentication-for-bots-the-end-of-fake-user-agents/</link><pubDate>Wed, 02 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2025/07/02/cloudflare-innovates-again-cryptographic-authentication-for-bots-the-end-of-fake-user-agents/</guid><description>&lt;h2 id="the-problem-we-all-know-but-pretend-doesnt-exist"&gt;The Problem We All Know (But Pretend Doesn&amp;rsquo;t Exist)&lt;/h2&gt;
&lt;p&gt;As someone who has managed web infrastructure for decades, I&amp;rsquo;ve seen too many bots pretending to be what they&amp;rsquo;re not. &lt;strong&gt;User-Agent: &amp;ldquo;Mozilla/5.0 (Windows NT 10.0; Win64; x64)&amp;rdquo;&lt;/strong&gt; when in reality it&amp;rsquo;s a Chinese scraper sucking up your content at 3 in the morning.&lt;/p&gt;
&lt;p&gt;Traditional methods for identifying legitimate bots have been, let&amp;rsquo;s be honest, &lt;strong&gt;pathetic&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;IP ranges&lt;/strong&gt;: That change, are shared, or are spoofed&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;User-Agent headers&lt;/strong&gt;: That anyone can forge in one line of code&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reverse DNS&lt;/strong&gt;: That works until it doesn&amp;rsquo;t&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Today Cloudflare announced that it&amp;rsquo;s integrating &lt;strong&gt;HTTP Message Signatures&lt;/strong&gt; directly into its Verified Bots program. And after reading the technical details, I have to admit something: &lt;strong&gt;this could definitively change the rules of the game&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>MCP for Skeptics: Why the Model Context Protocol is Worth It (even if it doesn't seem like it)</title><link>https://antoniocortes.com/en/2025/07/02/mcp-for-skeptics-why-the-model-context-protocol-is-worth-it-even-if-it-doesnt-seem-like-it/</link><pubDate>Wed, 02 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2025/07/02/mcp-for-skeptics-why-the-model-context-protocol-is-worth-it-even-if-it-doesnt-seem-like-it/</guid><description>&lt;h2 id="confession-of-a-converted-skeptic"&gt;Confession of a converted skeptic&lt;/h2&gt;
&lt;p&gt;When Anthropic announced the &lt;strong&gt;Model Context Protocol (MCP)&lt;/strong&gt; in November 2024, my first reaction was: &lt;em&gt;&amp;ldquo;Ah, another protocol promising to solve all integration problems&amp;rdquo;&lt;/em&gt;. As a DevOps Manager who has seen dozens of &amp;ldquo;universal standards&amp;rdquo; born and die, I have reasons to be skeptical.&lt;/p&gt;
&lt;p&gt;But after several months watching MCP be massively adopted - &lt;strong&gt;OpenAI integrated it in March 2025, Google DeepMind in April&lt;/strong&gt; - I decided to investigate beyond the hype. And I have to admit something: &lt;strong&gt;I was wrong&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>The 'AI-Native Software Engineer': Between the Hype and Practical Reality</title><link>https://antoniocortes.com/en/2025/07/02/the-ai-native-software-engineer-between-the-hype-and-practical-reality/</link><pubDate>Wed, 02 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2025/07/02/the-ai-native-software-engineer-between-the-hype-and-practical-reality/</guid><description>&lt;h2 id="a-necessary-reflection-on-the-ai-native-engineer"&gt;A necessary reflection on the &amp;ldquo;AI-Native Engineer&amp;rdquo;&lt;/h2&gt;
&lt;p&gt;I read &lt;a href="https://addyo.substack.com/p/the-ai-native-software-engineer"&gt;Addyo&amp;rsquo;s article&lt;/a&gt; about the &amp;ldquo;AI-Native Software Engineer&amp;rdquo; and, as a Principal Backend Engineer who has seen technological promises come and go for years, I have &lt;strong&gt;quite sincere opinions&lt;/strong&gt; about it. Not all are comfortable to hear.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve seen enough &amp;ldquo;revolutions&amp;rdquo; to separate the wheat from the chaff. &lt;strong&gt;And there&amp;rsquo;s a lot of both here&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id="whats-really-working-honestly"&gt;What&amp;rsquo;s really working (honestly)&lt;/h2&gt;
&lt;h3 id="1-ai-as-copilot-not-as-pilot"&gt;&lt;strong&gt;1. AI as copilot, not as pilot&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;The article&amp;rsquo;s metaphor about treating AI as a &amp;ldquo;junior programmer available 24/7&amp;rdquo; is &lt;strong&gt;accurate&lt;/strong&gt;. In my experience working with teams, I&amp;rsquo;ve seen developers use GitHub Copilot and Claude effectively to:&lt;/p&gt;</description></item><item><title>Antonio Cortés CV AKA DrZippie</title><link>https://antoniocortes.com/en/drzippie/</link><pubDate>Tue, 01 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/drzippie/</guid><description>&lt;img src="https://antoniocortes.com/img/drzippie-x2.jpg" class="rounded-full block mb-4 text-center mx-auto" /&gt;
 
 
 
&lt;p&gt;Developer with over 30 years of experience working on projects of all sizes, with a &amp;ldquo;touch&amp;rdquo; of systems. I feel comfortable working on both creative/visual tasks as well as technical tasks.&lt;/p&gt;
&lt;p&gt;I love programming, no matter the language, but I have the strange habit of using paper and colored pens more than the keyboard directly.&lt;/p&gt;
&lt;p&gt;Having worked with many different Operating Systems, Databases, Programming Languages and the unique casuistry of each, has led me to have a series of guidelines and premises before starting a project:&lt;/p&gt;</description></item><item><title>Claude Code Hooks: Automation and Customization of Development Workflows</title><link>https://antoniocortes.com/en/2025/07/01/claude-code-hooks-automation-and-customization-of-development-workflows/</link><pubDate>Tue, 01 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2025/07/01/claude-code-hooks-automation-and-customization-of-development-workflows/</guid><description>&lt;p&gt;With the constant evolution of AI-powered development tools, &lt;strong&gt;Claude Code&lt;/strong&gt; has introduced a revolutionary feature: &lt;strong&gt;Hooks&lt;/strong&gt;. This feature allows developers to customize and automate specific behaviors in the Claude Code lifecycle, transforming suggestions into executable code that works deterministically.&lt;/p&gt;
&lt;p&gt;Hooks represent a qualitative leap in the customization of AI development tools, allowing each team and developer to adapt Claude Code to their specific needs and project standards.&lt;/p&gt;
&lt;h2 id="what-are-claude-code-hooks"&gt;What are Claude Code Hooks?&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Claude Code Hooks&lt;/strong&gt; are user-defined shell commands that execute automatically at various specific points in the Claude Code lifecycle. Unlike prompting instructions, hooks guarantee that certain actions &lt;strong&gt;always&lt;/strong&gt; occur, providing deterministic control over the tool&amp;rsquo;s behavior.&lt;/p&gt;</description></item><item><title>Cloudflare Just Changed the Game with 'Pay per Crawl' (and it was about time)</title><link>https://antoniocortes.com/en/2025/07/01/cloudflare-just-changed-the-game-with-pay-per-crawl-and-it-was-about-time/</link><pubDate>Tue, 01 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2025/07/01/cloudflare-just-changed-the-game-with-pay-per-crawl-and-it-was-about-time/</guid><description>&lt;h2 id="content-independence-day-the-day-the-web-said-enough-is-enough"&gt;&amp;ldquo;Content Independence Day&amp;rdquo;: the day the web said &amp;ldquo;enough is enough&amp;rdquo;&lt;/h2&gt;
&lt;p&gt;Today, July 1, 2025, Cloudflare officially declared &lt;a href="https://blog.cloudflare.com/content-independence-day-no-ai-crawl-without-compensation/"&gt;&amp;ldquo;Content Independence Day&amp;rdquo;&lt;/a&gt; with the launch of &lt;strong&gt;&amp;ldquo;Pay per Crawl&amp;rdquo;&lt;/strong&gt;, its new tool that allows website owners to charge AI crawlers for accessing their content. As a DevOps Manager who manages web infrastructures daily, I can say &lt;strong&gt;it was about time&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;And the numbers don&amp;rsquo;t lie: while Google maintains a ratio of 18 crawls for every referral it sends (which is already brutal compared to 6:1 from six months ago), OpenAI has a ratio of &lt;strong&gt;1,500:1&lt;/strong&gt; and Anthropic reaches &lt;strong&gt;73,000:1&lt;/strong&gt;. Basically, they&amp;rsquo;re sucking up all our content without returning even a crumb of traffic.&lt;/p&gt;</description></item><item><title>Walmart and the Agentic Future: How the Retail Giant is Revolutionizing Shopping with Autonomous AI Agents</title><link>https://antoniocortes.com/en/2025/07/01/walmart-and-the-agentic-future-how-the-retail-giant-is-revolutionizing-shopping-with-autonomous-ai-agents/</link><pubDate>Tue, 01 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2025/07/01/walmart-and-the-agentic-future-how-the-retail-giant-is-revolutionizing-shopping-with-autonomous-ai-agents/</guid><description>&lt;p&gt;The future of shopping is here, and Walmart is leading a quiet revolution that will forever change how we interact with retail. While many companies are still experimenting with ChatGPT and basic generative AI tools, the Arkansas giant has taken a quantum leap toward &lt;strong&gt;Agentic AI&lt;/strong&gt;, developing autonomous systems that not only recommend products but act, decide, and execute complete tasks on their own.&lt;/p&gt;
&lt;p&gt;In this deep analysis, we&amp;rsquo;ll explore how Walmart is building a future where AI agents don&amp;rsquo;t just assist humans but operate as true autonomous collaborators, transforming from the shopping experience to the most complex internal operations.&lt;/p&gt;</description></item><item><title>Why I'm Fascinated by Distributed Sorting (and Why You Should Be Too)</title><link>https://antoniocortes.com/en/2025/07/01/why-im-fascinated-by-distributed-sorting-and-why-you-should-be-too/</link><pubDate>Tue, 01 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2025/07/01/why-im-fascinated-by-distributed-sorting-and-why-you-should-be-too/</guid><description>&lt;h2 id="a-revelation-in-algorithm-form"&gt;A Revelation in Algorithm Form&lt;/h2&gt;
&lt;p&gt;Thanks to an article from &lt;a href="https://www.systemdesignacademy.com/blog/design-a-system-for-sorting-large-datasets-distributed-sorting-at-scale"&gt;System Design Academy&lt;/a&gt; that came my way this week, I&amp;rsquo;ve been reflecting on something I find &lt;strong&gt;curious and simple&lt;/strong&gt; at the same time: how to sort massive datasets in a distributed manner. And you know what? These patterns are so elegant that they can be applied to so many other problems we face day to day.&lt;/p&gt;
&lt;p&gt;As a developer who has gone from JavaScript to PHP, then Python, and is now fully immersed in Golang, I&amp;rsquo;m struck by how certain patterns transcend languages and frameworks. Distributed sorting is one of those cases where &lt;strong&gt;architecture matters more than implementation&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Apache Iceberg v3: Revolution in Geospatial Data for Modern Analytics</title><link>https://antoniocortes.com/en/2025/06/30/apache-iceberg-v3-revolution-in-geospatial-data-for-modern-analytics/</link><pubDate>Mon, 30 Jun 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2025/06/30/apache-iceberg-v3-revolution-in-geospatial-data-for-modern-analytics/</guid><description>&lt;h1 id="apache-iceberg-v3-revolution-in-geospatial-data-for-modern-analytics"&gt;Apache Iceberg v3: Revolution in Geospatial Data for Modern Analytics&lt;/h1&gt;
&lt;p&gt;The recent ratification of the Apache Iceberg v3 specification marks a significant milestone in the open data ecosystem, especially in the realm of &lt;strong&gt;geospatial data&lt;/strong&gt;. This update not only consolidates Iceberg as the leading standard in open table formats, but introduces native geospatial capabilities that promise to transform how we handle location and mapping data at scale.&lt;/p&gt;
&lt;h2 id="the-challenge-of-geospatial-data-in-the-current-ecosystem"&gt;The Challenge of Geospatial Data in the Current Ecosystem&lt;/h2&gt;
&lt;p&gt;Before diving into Iceberg v3&amp;rsquo;s innovations, it&amp;rsquo;s crucial to understand the fragmented landscape that existed in geospatial data handling. As &lt;strong&gt;Jia Yu&lt;/strong&gt;, Apache Sedona PMC Chair and Wherobots Co-Founder notes, the final functionality is the result of exhaustive community research that reviewed numerous projects and technologies with geospatial support.&lt;/p&gt;</description></item><item><title>Filament v4 Beta: Comprehensive Analysis of the Revolutionary Features That Will Transform Laravel Application Development</title><link>https://antoniocortes.com/en/2025/06/30/filament-v4-beta-comprehensive-analysis-of-the-revolutionary-features-that-will-transform-laravel-application-development/</link><pubDate>Mon, 30 Jun 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2025/06/30/filament-v4-beta-comprehensive-analysis-of-the-revolutionary-features-that-will-transform-laravel-application-development/</guid><description>&lt;p&gt;The &lt;strong&gt;Filament v4 Beta&lt;/strong&gt; has officially arrived, and it&amp;rsquo;s undoubtedly the most ambitious and comprehensive update in this framework&amp;rsquo;s history. After exploring in detail all the new features, I can confidently say that this version represents a quantum leap in terms of performance, ease of use, and development capabilities.&lt;/p&gt;
&lt;p&gt;In this comprehensive analysis, we&amp;rsquo;ll explore each of the new features in Filament v4, explaining not just what&amp;rsquo;s new, but also how these improvements can transform your workflow and your application possibilities.&lt;/p&gt;</description></item><item><title>Idempotency in Laravel: How to Avoid Duplicates in Your APIs with Elegance</title><link>https://antoniocortes.com/en/2025/06/30/idempotency-in-laravel-how-to-avoid-duplicates-in-your-apis-with-elegance/</link><pubDate>Mon, 30 Jun 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2025/06/30/idempotency-in-laravel-how-to-avoid-duplicates-in-your-apis-with-elegance/</guid><description>&lt;h1 id="idempotency-in-laravel-how-to-avoid-duplicates-in-your-apis-with-elegance"&gt;Idempotency in Laravel: How to Avoid Duplicates in Your APIs with Elegance&lt;/h1&gt;
&lt;p&gt;In modern API development, one of the most critical challenges is ensuring that operations don&amp;rsquo;t execute multiple times accidentally. Imagine a user making a payment and, due to connectivity issues, clicking the &amp;ldquo;Pay&amp;rdquo; button multiple times. Without proper measures, you might process multiple payments for the same transaction. This is where &lt;strong&gt;idempotency&lt;/strong&gt; comes into play.&lt;/p&gt;
&lt;h2 id="what-is-idempotency"&gt;What is Idempotency?&lt;/h2&gt;
&lt;p&gt;Idempotency is a mathematical concept applied to programming that guarantees that an operation produces the same result regardless of how many times it&amp;rsquo;s executed. In the context of APIs, it means you can make the same request multiple times without causing additional side effects.&lt;/p&gt;</description></item><item><title>Everything about the Filament v4 Beta Release: Nested Resources, Multi-Factor Authentication, and Much More</title><link>https://antoniocortes.com/en/2025/06/29/everything-about-the-filament-v4-beta-release-nested-resources-multi-factor-authentication-and-much-more/</link><pubDate>Sun, 29 Jun 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2025/06/29/everything-about-the-filament-v4-beta-release-nested-resources-multi-factor-authentication-and-much-more/</guid><description>&lt;p&gt;The &lt;strong&gt;Filament&lt;/strong&gt; team has announced exciting details about the upcoming &lt;strong&gt;Filament v4 Beta&lt;/strong&gt; release, and it&amp;rsquo;s undoubtedly the most anticipated version to date. Filament v4 is the largest and most feature-packed release Filament has ever had, surpassing even the massive v3 that required over 100 minor versions.&lt;/p&gt;
&lt;h2 id="most-notable-features-of-filament-v4"&gt;Most Notable Features of Filament v4&lt;/h2&gt;
&lt;h3 id="nested-resources"&gt;Nested Resources&lt;/h3&gt;
&lt;p&gt;One of the longest-standing community requests is finally becoming reality. Nested resources allow you to operate on a Filament resource within the context of a parent resource.&lt;/p&gt;</description></item><item><title>Effect TS: The Library Revolutionizing Functional Programming in TypeScript</title><link>https://antoniocortes.com/en/2025/06/22/effect-ts-the-library-revolutionizing-functional-programming-in-typescript/</link><pubDate>Sun, 22 Jun 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2025/06/22/effect-ts-the-library-revolutionizing-functional-programming-in-typescript/</guid><description>&lt;p&gt;For a long time, TypeScript has lacked a &lt;strong&gt;robust standard library&lt;/strong&gt;. While other languages like Rust, Go, or Python offer standard tools for error handling, concurrency, and side effects, TypeScript developers have had to resort to multiple specialized libraries. &lt;strong&gt;Effect TS&lt;/strong&gt; is changing this by offering a unified and powerful solution for modern TypeScript application development.&lt;/p&gt;
&lt;h2 id="what-is-effect-ts"&gt;What is Effect TS?&lt;/h2&gt;
&lt;p&gt;Effect is a powerful TypeScript library designed to help developers easily create complex, synchronous, and asynchronous programs. Inspired by &lt;strong&gt;ZIO&lt;/strong&gt; from Scala, Effect brings functional programming principles to TypeScript in a practical and accessible way.&lt;/p&gt;</description></item><item><title>Laravel Blueprint: The Tool That Revolutionizes Scaffolding with YAML and Saves You Hours of Development</title><link>https://antoniocortes.com/en/2025/06/20/laravel-blueprint-the-tool-that-revolutionizes-scaffolding-with-yaml-and-saves-you-hours-of-development/</link><pubDate>Fri, 20 Jun 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2025/06/20/laravel-blueprint-the-tool-that-revolutionizes-scaffolding-with-yaml-and-saves-you-hours-of-development/</guid><description>&lt;p&gt;How many times have you started a Laravel project manually creating models, controllers, migrations, factories, form requests, and tests one by one? If you&amp;rsquo;re like most Laravel developers, you&amp;rsquo;ve probably wasted countless hours on these repetitive tasks that, while necessary, don&amp;rsquo;t add direct value to your application&amp;rsquo;s business logic.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Laravel Blueprint&lt;/strong&gt; is completely changing this paradigm. This code generation tool, created by Jason McCreary (the same genius behind Laravel Shift), allows you to generate multiple Laravel components from a single, readable, and expressive YAML file. In this deep analysis, we&amp;rsquo;ll explore how Blueprint can transform your development workflow and why it&amp;rsquo;s gaining traction in the Laravel community.&lt;/p&gt;</description></item><item><title>Discovering the World of GIS Programming with Python: A Complete Immersion in Dr. Qiusheng Wu's Course</title><link>https://antoniocortes.com/en/2025/06/15/discovering-the-world-of-gis-programming-with-python-a-complete-immersion-in-dr.-qiusheng-wus-course/</link><pubDate>Sun, 15 Jun 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2025/06/15/discovering-the-world-of-gis-programming-with-python-a-complete-immersion-in-dr.-qiusheng-wus-course/</guid><description>&lt;p&gt;In today&amp;rsquo;s world, &lt;strong&gt;geospatial data&lt;/strong&gt; is everywhere. From map applications on our phones to global climate analysis, the ability to work with geographic information has become a fundamental skill for developers, data scientists, and analysts. Recently, I had the opportunity to explore Dr. Qiusheng Wu&amp;rsquo;s exceptional educational resource &lt;strong&gt;&amp;ldquo;Introduction to GIS Programming&amp;rdquo;&lt;/strong&gt;, and I must say it is, without a doubt, one of the most comprehensive and accessible materials I&amp;rsquo;ve found for entering this fascinating field.&lt;/p&gt;</description></item><item><title>Complete Guide to Configuring Path Aliases in Node.js with TypeScript: Goodbye to Infinite '../../../'</title><link>https://antoniocortes.com/en/2025/06/</link><pubDate>Sun, 08 Jun 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2025/06/</guid><description>&lt;p&gt;Are you tired of seeing imports like &lt;code&gt;import Logger from &amp;quot;../../../utils/logger&amp;quot;&lt;/code&gt; in your Node.js projects? If you develop applications with complex folder structures, you&amp;rsquo;ve surely encountered the &lt;strong&gt;labyrinth of dots and slashes&lt;/strong&gt; that relative imports can become. Fortunately, TypeScript offers an elegant solution: &lt;strong&gt;Path Aliases&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;In this complete guide, you&amp;rsquo;ll learn to configure path aliases in Node.js projects with TypeScript, forever eliminating those confusing imports and significantly improving the readability and maintainability of your code.&lt;/p&gt;</description></item><item><title>STORM: The AI System Revolutionizing Long-Form Article Writing by Simulating Human Research Process</title><link>https://antoniocortes.com/en/2025/05/18/storm-the-ai-system-revolutionizing-long-form-article-writing-by-simulating-human-research-process/</link><pubDate>Sun, 18 May 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2025/05/18/storm-the-ai-system-revolutionizing-long-form-article-writing-by-simulating-human-research-process/</guid><description>&lt;p&gt;Creating long, well-founded articles has traditionally been a complex task requiring advanced research and writing skills. Recently, researchers from Stanford presented &lt;strong&gt;STORM&lt;/strong&gt; (&lt;em&gt;Synthesis of Topic Outlines through Retrieval and Multi-perspective Question Asking&lt;/em&gt;), a revolutionary system that automates the Wikipedia-style article writing process from scratch, and the results are truly impressive.&lt;/p&gt;
&lt;p&gt;In this detailed analysis, we&amp;rsquo;ll explore how STORM is transforming the way we think about AI-assisted writing and why this approach could forever change the way we create informative content.&lt;/p&gt;</description></item><item><title>CookieStore API: The Async Future of Cookie Management in JavaScript</title><link>https://antoniocortes.com/en/2025/05/15/cookiestore-api-the-async-future-of-cookie-management-in-javascript/</link><pubDate>Thu, 15 May 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2025/05/15/cookiestore-api-the-async-future-of-cookie-management-in-javascript/</guid><description>&lt;h1 id="cookiestore-api-the-async-future-of-cookie-management-in-javascript"&gt;CookieStore API: The Async Future of Cookie Management in JavaScript&lt;/h1&gt;
&lt;p&gt;For decades, web developers have depended on the old and limited &lt;code&gt;document.cookie&lt;/code&gt; interface to handle cookies in the browser. This synchronous API, with its peculiar string syntax, has been a source of frustration and errors. But that&amp;rsquo;s changing with the arrival of &lt;strong&gt;CookieStore API&lt;/strong&gt;, a modern and asynchronous interface that promises to revolutionize how we interact with cookies.&lt;/p&gt;
&lt;h2 id="the-problem-with-documentcookie"&gt;The Problem with document.cookie&lt;/h2&gt;
&lt;p&gt;Before diving into CookieStore, let&amp;rsquo;s recall the headaches &lt;code&gt;document.cookie&lt;/code&gt; has caused us:&lt;/p&gt;</description></item><item><title>Privacy Policy</title><link>https://antoniocortes.com/en/privacy/</link><pubDate>Tue, 21 Jan 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/privacy/</guid><description>&lt;h1 id="privacy-policy"&gt;Privacy Policy&lt;/h1&gt;
&lt;p&gt;Last updated: January 21, 2025&lt;/p&gt;
&lt;h2 id="general-information"&gt;General Information&lt;/h2&gt;
&lt;p&gt;This privacy policy describes how &lt;strong&gt;Antonio Cortés&lt;/strong&gt; (hereinafter &amp;ldquo;we&amp;rdquo;, &amp;ldquo;our&amp;rdquo;, or &amp;ldquo;the site&amp;rdquo;) collects, uses, and protects the information you provide when using this website &lt;strong&gt;antoniocortes.com&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;We are committed to protecting your privacy. If we ask you to provide certain information by which you can be identified when using this website, you can be assured that it will only be used in accordance with this privacy statement.&lt;/p&gt;</description></item><item><title>Sharing Code Between Applications Using Yarn Symlinks: A Simple Alternative to Complex Monorepos</title><link>https://antoniocortes.com/en/2024/07/15/sharing-code-between-applications-using-yarn-symlinks-a-simple-alternative-to-complex-monorepos/</link><pubDate>Mon, 15 Jul 2024 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2024/07/15/sharing-code-between-applications-using-yarn-symlinks-a-simple-alternative-to-complex-monorepos/</guid><description>&lt;p&gt;Have you ever found yourself duplicating utilities, data types, or components across different applications? If you work on multiple projects that need to share common code, you&amp;rsquo;ve likely faced the dilemma of how to manage this shared code efficiently.&lt;/p&gt;
&lt;p&gt;Recently, while exploring different approaches to share code between applications, I stumbled upon an elegant and simple solution that many developers overlook: &lt;strong&gt;Yarn symlinks&lt;/strong&gt;. This technique might be the perfect answer if you&amp;rsquo;re looking for a lightweight alternative to complex monorepo setups.&lt;/p&gt;</description></item><item><title>Resources March 11, 2022</title><link>https://antoniocortes.com/en/2022/03/11/resources-march-11-2022/</link><pubDate>Fri, 11 Mar 2022 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2022/03/11/resources-march-11-2022/</guid><description>&lt;h2 id="options-pattern-in-golang"&gt;&lt;a href="https://levelup.gitconnected.com/options-pattern-in-golang-9a0384a9d8db"&gt;Options Pattern in Golang&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Option pattern is a functional programming pattern that is used to provide optional arguments to a function that can be used to modify its behavior.&lt;/p&gt;
&lt;h2 id="how-to-create-a-simple-event-streaming-in-laravel"&gt;&lt;a href="https://devdojo.com/bobbyiliev/how-to-create-a-simple-event-streaming-in-laravel"&gt;How to create a simple event streaming in Laravel?&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Event streams provide you with a way to send events to the client without having to reload the page. This is useful for things like updating the user interface in real-time changes are made to the database.&lt;/p&gt;</description></item><item><title>Resources Week of May 13</title><link>https://antoniocortes.com/en/2019/05/13/resources-week-of-may-13/</link><pubDate>Mon, 13 May 2019 11:01:16 +0200</pubDate><guid>https://antoniocortes.com/en/2019/05/13/resources-week-of-may-13/</guid><description>&lt;h2 id="tailwindcss-now-has-its-1x-version"&gt;&lt;a href="https://tailwindcss.com/"&gt;Tailwindcss now has its 1.x version&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The brilliant Utility-first CSS framework has released its version 1.0, there are changes, such as color nomenclature, fonts, positioning, &amp;hellip; To update we should follow the &lt;a href="https://tailwindcss.com/docs/upgrading-to-v1"&gt;Upgrade Guide&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="best-dashboard-examples-for-inspiration-in-2018"&gt;&lt;a href="https://www.codewall.co.uk/best-dashboard-examples-for-inspiration"&gt;Best Dashboard Examples for Inspiration in 2018&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Examples of multiple Dashboards that will help us design and define, visually, our dashboards and control panels to display information more clearly and directly.&lt;/p&gt;
&lt;h2 id="azure-exam-resources"&gt;&lt;a href="https://gregorsuttie.com/2019/05/13/azure-exam-resources/"&gt;Azure Exam Resources&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;If you&amp;rsquo;re preparing for any Azure certification, it&amp;rsquo;s worth having this list of resources organized by each exam&lt;/p&gt;</description></item><item><title>Migration to Netlify</title><link>https://antoniocortes.com/en/2019/05/13/migration-to-netlify/</link><pubDate>Mon, 13 May 2019 10:35:41 +0200</pubDate><guid>https://antoniocortes.com/en/2019/05/13/migration-to-netlify/</guid><description>&lt;p&gt;In a new phase of this website, and as a PoC, it has been migrated to &lt;a href="https://www.netlify.com/"&gt;Netlify&lt;/a&gt; and the repo has been updated for Hugo 0.5.5, removing the theme as an external element.&lt;/p&gt;
&lt;p&gt;This means that we may have some errors or temporary issues with visualization, certificates, or similar.&lt;/p&gt;</description></item><item><title>Certbot and nginx - renewal and setup without service downtime</title><link>https://antoniocortes.com/en/2018/06/29/certbot-and-nginx-renewal-and-setup-without-service-downtime/</link><pubDate>Fri, 29 Jun 2018 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2018/06/29/certbot-and-nginx-renewal-and-setup-without-service-downtime/</guid><description>&lt;p&gt;When installing/renewing let&amp;rsquo;s encrypt on a web server with nginx, we have to decide whether to do it with a temporary server, which means we must temporarily stop the web service, or indicate what the DocumentRoot of the web server is for the domain.&lt;/p&gt;
&lt;p&gt;The latter implies that the website or service has a &amp;ldquo;public&amp;rdquo; DocumentRoot, and that&amp;rsquo;s not always easy when we&amp;rsquo;re using, for example, a Python, Java, or Go application and nginx as a proxy.&lt;/p&gt;</description></item><item><title>API Documentation Library</title><link>https://antoniocortes.com/en/2017/11/27/api-documentation-library/</link><pubDate>Mon, 27 Nov 2017 15:53:40 +0100</pubDate><guid>https://antoniocortes.com/en/2017/11/27/api-documentation-library/</guid><description>&lt;p&gt;An interesting resource to have on hand when we need to document an API:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://apidocs.gallery/"&gt;API Documentation Gallery&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Where we have selected, very graphic examples of how to display the documentation of our APIs.&lt;/p&gt;
&lt;p&gt;If you know of any interesting one, just make a pull request to:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/yosriady/apidocs-gallery"&gt;github.com/yosriady/apidocs-gallery&lt;/a&gt;&lt;/p&gt;</description></item><item><title>echarts 3</title><link>https://antoniocortes.com/en/2017/11/26/echarts-3/</link><pubDate>Sun, 26 Nov 2017 21:38:52 +0100</pubDate><guid>https://antoniocortes.com/en/2017/11/26/echarts-3/</guid><description>&lt;p&gt;Thanks to a tweet from &lt;a href="https://twitter.com/juantomas"&gt;@juantomas&lt;/a&gt;, I came across a list of 9 JavaScript libraries for &amp;ldquo;Charts&amp;rdquo;: &lt;a href="https://hackernoon.com/9-best-javascript-charting-libraries-46e7f4dc34e6"&gt;9 Best JavaScript Charting Libraries&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Testing Tailwind CSS</title><link>https://antoniocortes.com/en/2017/11/26/testing-tailwind-css/</link><pubDate>Sun, 26 Nov 2017 17:43:32 +0100</pubDate><guid>https://antoniocortes.com/en/2017/11/26/testing-tailwind-css/</guid><description>&lt;p&gt;This week I&amp;rsquo;ve been looking at a new CSS framework concept, &amp;ldquo;Utility First,&amp;rdquo; a concept proposed by &lt;a href="https://adamwathan.me"&gt;Adam Wathan&lt;/a&gt; in his article: &lt;a href="https://adamwathan.me/css-utility-classes-and-separation-of-concerns/"&gt;CSS Utility Classes and &amp;ldquo;Separation of Concerns&amp;rdquo;&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Getting back to the blog</title><link>https://antoniocortes.com/en/2017/06/28/getting-back-to-the-blog/</link><pubDate>Wed, 28 Jun 2017 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2017/06/28/getting-back-to-the-blog/</guid><description>&lt;p&gt;Daily life has kept me from doing many things, including keeping this blog updated, but there&amp;rsquo;s no time for everything, and in the end fatigue forces me to reorganize priorities.&lt;/p&gt;
&lt;p&gt;In recent months, I&amp;rsquo;ve been working on implementing RedHat CloudForms, Ansible Tower, and more, so I&amp;rsquo;ve had to work much more with Ansible. It was already a habit, but lately it&amp;rsquo;s been much more intensive.&lt;/p&gt;
&lt;p&gt;So I&amp;rsquo;ve earned a few RedHat &amp;ldquo;certifications&amp;rdquo;:&lt;/p&gt;</description></item><item><title>One day I'll discover what the comfort zone is, or not</title><link>https://antoniocortes.com/en/one-day-ill-discover-what-the-comfort-zone-is-or-not/</link><pubDate>Sat, 06 Aug 2016 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/one-day-ill-discover-what-the-comfort-zone-is-or-not/</guid><description>&lt;p&gt;Moments of change, moments of evolution, a constant in my life, with the 25th anniversary of the creation of the web I&amp;rsquo;ve entered &amp;ldquo;review&amp;rdquo; mode and I&amp;rsquo;m highly perplexed.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve been doing things for the same time (25 years), enjoying, always with the same concept and particularity: Enjoyment and result, but it hasn&amp;rsquo;t been relevant for a long time (which is also not very relevant).&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve realized that the usual thing is to do things within your comfort zone, and I&amp;rsquo;ve never had one or knew one could exist, hence I&amp;rsquo;ve touched and done unusual things or perhaps &amp;ldquo;untimely&amp;rdquo;, when a certain technology could be in fashion &amp;ldquo;Buzz&amp;rdquo; I hadn&amp;rsquo;t been using it for a long time because it didn&amp;rsquo;t give me what something else gave me,&amp;hellip;&lt;/p&gt;</description></item><item><title>Laravel Collections: Arrays on steroids</title><link>https://antoniocortes.com/en/laravel-collections/</link><pubDate>Fri, 01 Jul 2016 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/laravel-collections/</guid><description>&lt;p&gt;Laravel, in addition to using multiple third-party packages, is also possible to use parts as components. All components are under the &amp;ldquo;Illuminate&amp;rdquo; namespace.&lt;/p&gt;
&lt;p&gt;If there&amp;rsquo;s a really interesting and useful class, it&amp;rsquo;s &lt;a href="https://laravel.com/docs/5.2/collections"&gt;Collection&lt;/a&gt;, which allows us to work with data arrays in a simple and &amp;ldquo;programmatic&amp;rdquo; way.&lt;/p&gt;
&lt;p&gt;To have this class in our project, we only need the illuminate/support package which we can install with:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;composer require illuminate/support:5.2.x-dev&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;To show some examples, we&amp;rsquo;ll use a small array with this data:&lt;/p&gt;</description></item><item><title>A reflection, nothing more</title><link>https://antoniocortes.com/en/a-reflection-nothing-more/</link><pubDate>Sat, 07 May 2016 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/a-reflection-nothing-more/</guid><description>&lt;p&gt;I wouldn&amp;rsquo;t know where to start but I do know how to end this reflection, and it&amp;rsquo;s so simple that it would be summarized in two phrases, &amp;ldquo;It&amp;rsquo;s not a country for programmers&amp;rdquo; and &amp;ldquo;Being mediocre is more relaxing and will bring you more&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;When one has been developing for more than 20 years and has always filled their mouth saying that they have enjoyed, enjoy and will enjoy programming, in the strangest or most common languages, with the most peculiar and strange technologies, the most cutting-edge and the most &amp;ldquo;old-fashioned&amp;rdquo;, but each one in its moment and only for the most (as much as possible) precise implementation, one should better keep quiet.&lt;/p&gt;</description></item><item><title>News of the week 2016-03-27</title><link>https://antoniocortes.com/en/2016/03/27/news-of-the-week-2016-03-27/</link><pubDate>Sun, 27 Mar 2016 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2016/03/27/news-of-the-week-2016-03-27/</guid><description>&lt;p&gt;In these last few days, we&amp;rsquo;ve had many news items, articles, information in the development and technology world, these are the most relevant for me:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://googleresearch.blogspot.com.es/2016/03/machine-learning-in-cloud-with.html"&gt;Google announces a new Machine Learning service in the cloud&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://www.haneycodes.net/npm-left-pad-have-we-forgotten-how-to-program/"&gt;NPM &amp;amp; left-pad: Have We Forgotten How To Program?&lt;/a&gt;: The Kik case - left-pad from NPM and the critical fall to &amp;ldquo;I&amp;rsquo;ll do this with a third-party module/plugin/package/class&amp;rdquo;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://blog.npmjs.org/post/141577284765/kik-left-pad-and-npm"&gt;The Kik case - left-pad from NPM and the fall in (official)&lt;/a&gt; or how the most insignificant dependencies can really leave us stranded.&lt;/p&gt;</description></item><item><title>Go in the real world</title><link>https://antoniocortes.com/en/2016/03/13/go-in-the-real-world/</link><pubDate>Sun, 13 Mar 2016 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2016/03/13/go-in-the-real-world/</guid><description>&lt;p&gt;At &lt;a href="http://www.sevilladevelopers.com"&gt;Sevilla Developers Conf 2&lt;/a&gt; I commented on some examples of who uses Go and for what.&lt;/p&gt;
&lt;p&gt;Among others, these seemed interesting to me, and I&amp;rsquo;ll create a somewhat larger list that will serve us to see real use cases and success stories when choosing Go for certain solutions.&lt;/p&gt;</description></item><item><title>Home at Homes</title><link>https://antoniocortes.com/en/portfolio/homeathomes/</link><pubDate>Tue, 01 Dec 2015 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/portfolio/homeathomes/</guid><description>&lt;p&gt;On CakePHP, complete booking management, multi-language for luxury apartments.&lt;/p&gt;
&lt;p&gt;Web: &lt;a href="http://www.homeathomes.com"&gt;http://www.homeathomes.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Facilities Management</title><link>https://antoniocortes.com/en/portfolio/actas/</link><pubDate>Tue, 10 Nov 2015 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/portfolio/actas/</guid><description>&lt;p&gt;Management of minutes and facilities, projects and documentation.&lt;/p&gt;
&lt;p&gt;Developed with Laravel 5&lt;/p&gt;</description></item><item><title>ATAS</title><link>https://antoniocortes.com/en/portfolio/atas/</link><pubDate>Sun, 01 Nov 2015 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/portfolio/atas/</guid><description>&lt;p&gt;System for managing user profiles, skills, courses and job demands through normalization and use of Machine Learning methods&lt;/p&gt;
&lt;p&gt;Web: &lt;a href="http://www.ximdex.com/es/xlabs/atas.html"&gt;http://www.ximdex.com/es/xlabs/atas.html&lt;/a&gt;&lt;/p&gt;</description></item><item><title>CBDOC</title><link>https://antoniocortes.com/en/portfolio/cbdoc/</link><pubDate>Sun, 01 Nov 2015 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/portfolio/cbdoc/</guid><description>&lt;p&gt;Android app for reading biometric data from a USB device on Android and its use for content encryption.&lt;/p&gt;
&lt;p&gt;Web: &lt;a href="http://cbdoc.ximdex.com"&gt;http://cbdoc.ximdex.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Damasco (xdms)</title><link>https://antoniocortes.com/en/portfolio/damasco/</link><pubDate>Sun, 01 Nov 2015 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/portfolio/damasco/</guid><description>&lt;p&gt;Distributed and on-demand editing system developed in Go, high availability and open to any data source.&lt;/p&gt;
&lt;p&gt;Demo: &lt;a href="http://demo.ximdex.com/xdms/"&gt;http://demo.ximdex.com/xdms/&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Synaptica</title><link>https://antoniocortes.com/en/portfolio/synaptica/</link><pubDate>Sun, 01 Nov 2015 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/portfolio/synaptica/</guid><description>&lt;p&gt;Original development in CakePHP, currently migrated to WordPress&lt;/p&gt;
&lt;p&gt;URL: &lt;a href="http://www.synaptica.es"&gt;www.synaptica.es&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Xfind</title><link>https://antoniocortes.com/en/portfolio/xfind/</link><pubDate>Sun, 01 Nov 2015 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/portfolio/xfind/</guid><description>&lt;p&gt;Development of the user interface with RiotJS with base components, which are extended and automatically generated from a Json description&lt;/p&gt;
&lt;p&gt;Demo: &lt;a href="http://demo.ximdex.com/xfind/"&gt;http://demo.ximdex.com/xfind/&lt;/a&gt;&lt;/p&gt;</description></item><item><title>A Gremlin query for Cayley</title><link>https://antoniocortes.com/en/2015/10/25/cayle-gremlin-example/</link><pubDate>Sun, 25 Oct 2015 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/2015/10/25/cayle-gremlin-example/</guid><description>&lt;p&gt;From Cayley we can make queries via REST in two &amp;ldquo;languages&amp;rdquo;: MQL and a reduced version of Gremlin&lt;/p&gt;
&lt;p&gt;With the following example, we can obtain the most common skills of people who belong to an industry, within the &amp;ldquo;Edu&amp;rdquo; sector&lt;/p&gt;







&lt;div class="gist-container my-6"&gt;
 &lt;div class="bg-gray-50 dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg overflow-hidden"&gt;
 &lt;div class="bg-gray-200 dark:bg-gray-700 px-4 py-2 border-b border-gray-300 dark:border-gray-600 flex items-center justify-between"&gt;
 &lt;div class="flex items-center space-x-2"&gt;
 &lt;svg class="w-4 h-4 text-gray-600 dark:text-gray-400" fill="currentColor" viewBox="0 0 20 20"&gt;
 &lt;path fill-rule="evenodd" d="M3 4a1 1 0 011-1h12a1 1 0 011 1v2a1 1 0 01-1 1H4a1 1 0 01-1-1V4zm0 4a1 1 0 011-1h12a1 1 0 011 1v6a1 1 0 01-1 1H4a1 1 0 01-1-1V8z" clip-rule="evenodd"/&gt;
 &lt;/svg&gt;
 &lt;span class="text-sm font-medium text-gray-700 dark:text-gray-300"&gt;GitHub Gist&lt;/span&gt;
 &lt;/div&gt;
 &lt;div class="flex items-center space-x-2"&gt;
 &lt;a href="https://gist.github.com/drzippie/a9141708058960cde31a" 
 target="_blank" rel="noopener noreferrer"
 class="text-sm text-blue-600 dark:text-blue-400 hover:text-blue-800 dark:hover:text-blue-300 font-medium"&gt;
 Ver en GitHub →
 &lt;/a&gt;
 &lt;/div&gt;
 &lt;/div&gt;
 
 &lt;div class="p-4"&gt;&lt;script src="https://gist.github.com/drzippie/a9141708058960cde31a.js"&gt;&lt;/script&gt;&lt;noscript&gt;
 &lt;div class="bg-yellow-50 dark:bg-yellow-900/20 border border-yellow-200 dark:border-yellow-700 rounded-md p-4"&gt;
 &lt;div class="flex"&gt;
 &lt;div class="flex-shrink-0"&gt;
 &lt;svg class="h-5 w-5 text-yellow-400" viewBox="0 0 20 20" fill="currentColor"&gt;
 &lt;path fill-rule="evenodd" d="M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z" clip-rule="evenodd" /&gt;
 &lt;/svg&gt;
 &lt;/div&gt;
 &lt;div class="ml-3"&gt;
 &lt;h3 class="text-sm font-medium text-yellow-800 dark:text-yellow-200"&gt;
 JavaScript requerido
 &lt;/h3&gt;
 &lt;div class="mt-2 text-sm text-yellow-700 dark:text-yellow-300"&gt;
 &lt;p&gt;Para ver este Gist, necesitas tener JavaScript habilitado. 
 &lt;a href="https://gist.github.com/drzippie/a9141708058960cde31a" 
 class="underline font-medium" target="_blank" rel="noopener noreferrer"&gt;
 Ver directamente en GitHub
 &lt;/a&gt;
 &lt;/p&gt;</description></item><item><title>Recapitulating</title><link>https://antoniocortes.com/en/recapitulating/</link><pubDate>Thu, 08 Oct 2015 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/recapitulating/</guid><description>&lt;p&gt;I&amp;rsquo;ve started to see what I&amp;rsquo;ve been touching lately, and not surprisingly, it&amp;rsquo;s&amp;hellip; simply &amp;ldquo;eccentric&amp;rdquo;, in the sum of elements but not in the use of each one.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Text Editor&lt;/strong&gt;: &lt;a href="http://www.sublimetext.com"&gt;Sublime Text&lt;/a&gt;, &lt;a href="https://atom.io"&gt;Atom&lt;/a&gt; I can&amp;rsquo;t get used to it (largely due to its complicated integration with &lt;a href="http://www.golang.org"&gt;Go&lt;/a&gt; and &lt;a href="http://www.getgb.io"&gt;Gb&lt;/a&gt;), and the same applies to atom for &lt;a href="https://www.jetbrains.com/phpstorm/"&gt;PHPStorm&lt;/a&gt;. In the terminal, my header editor is &lt;a href="http://joe-editor.sourceforge.net"&gt;Joe&lt;/a&gt; and this has an explanation: my first text editor was &lt;a href="https://es.wikipedia.org/wiki/WordStar"&gt;WordStar&lt;/a&gt; and I&amp;rsquo;m a nostalgic.&lt;/p&gt;</description></item><item><title>Seems like Go beginnings are similar for everyone</title><link>https://antoniocortes.com/en/seems-like-go-beginnings-are-similar-for-everyone/</link><pubDate>Wed, 07 Oct 2015 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/seems-like-go-beginnings-are-similar-for-everyone/</guid><description>&lt;p&gt;Except for gorename &amp;hellip;&lt;/p&gt;
&lt;p&gt;[https://medium.com/@mandrigin/golang-8-insights-of-the-first-weeks-of-the-real-usage-f01290811b8b](Golang: 8 insights from the first weeks of the real usage)&lt;/p&gt;</description></item><item><title>Sybarix (beta)</title><link>https://antoniocortes.com/en/portfolio/sybarix/</link><pubDate>Thu, 01 Oct 2015 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/portfolio/sybarix/</guid><description>&lt;p&gt;In development:&lt;/p&gt;</description></item><item><title>What I like about Go</title><link>https://antoniocortes.com/en/what-i-like-about-go/</link><pubDate>Sat, 25 Apr 2015 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/what-i-like-about-go/</guid><description>&lt;p&gt;&lt;img class=" size-full wp-image-1901 alignright" src="https://antoniocortes.com/uploads/2015/04/goimg1910.png" alt="goimg1910" data-recalc-dims="1" /&gt;I&amp;rsquo;ve always liked to see and try different technologies, and within these, of course, programming languages.&lt;/p&gt;
&lt;p&gt;An example of this was the intensive use I gave at the time, at Arrakis, to &lt;a href="http://www.rebol.com/"&gt;Rebol&lt;/a&gt;, an interpreted cross-platform language, with everything you could need to perform great data cleaning scripts, in a &amp;ldquo;strange&amp;rdquo; syntax, but beautiful in its approach.&lt;/p&gt;
&lt;p&gt;The case of Go was a bit different, because just like what happened to me with Angular, at the time (several years ago) I tried to give it a chance, but all the information and examples I found were &amp;ldquo;very small&amp;rdquo; blocks of code, I didn&amp;rsquo;t see in that (at a bird&amp;rsquo;s eye view) that it was finished, it seemed like a more academic/conceptual language than something for real use.&lt;/p&gt;</description></item><item><title>List of Go resources of the week</title><link>https://antoniocortes.com/en/list-of-go-resources-of-the-week/</link><pubDate>Mon, 06 Apr 2015 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/list-of-go-resources-of-the-week/</guid><description>&lt;p&gt;The first one is the very simple, but not limited, Go interface system.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://jordanorelli.com/post/32665860244/how-to-use-interfaces-in-go"&gt;How to use interfaces in Go&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The second, no less important, making it clear and showing C# vs Go code.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://clipperhouse.com/2015/04/03/statements-are-statements-and-expressions-are-expressions-in-go/"&gt;Statements are statements, and expressions are expressions (in Go)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;As always, we&amp;rsquo;ll need some debugging:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.goinggo.net/2015/02/scheduler-tracing-in-go.html"&gt;Scheduler Tracing In Go&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A project, green, but promising, for (among other things) distributed execution:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.hyflow.org/hyflow-go/index.html"&gt;hyflow-go: A geo-replicated, main-memory, highly consistent datastore&lt;/a&gt;&lt;/p&gt;</description></item><item><title>StreamTools: A tool for analyzing data streams</title><link>https://antoniocortes.com/en/streamtools-a-tool-for-analyzing-data-streams/</link><pubDate>Thu, 02 Apr 2015 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/streamtools-a-tool-for-analyzing-data-streams/</guid><description>&lt;p&gt;Every day we hear about Big Data, IoT, Smart Data, Machine Learning, semantic data, etc. Many times out of context or simply used because they&amp;rsquo;re &amp;ldquo;trendy&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;One of the best examples is &amp;ldquo;Big Data&amp;rdquo;, where we always talk about huge amounts of information, systems, platforms, queries, but with the error, from my point of view, of taking that as information, no, no it&amp;rsquo;s not information, they&amp;rsquo;re data, raw data or processed data, information is what is extracted from that data. Many times, with the term &amp;ldquo;Big Data&amp;rdquo;, we get lost in only the part of storing huge amounts of data, replicated and in astronomical volumes. That&amp;rsquo;s not &amp;ldquo;Big Data&amp;rdquo;, that&amp;rsquo;s only talking about one part, the most mechanical one, and the one that contributes least to what we&amp;rsquo;re looking for &amp;ldquo;Information&amp;rdquo;, it&amp;rsquo;s only &amp;ldquo;data storage and management&amp;rdquo;, one leg of a much broader table.&lt;/p&gt;</description></item><item><title>tpoinformatica.com</title><link>https://antoniocortes.com/en/portfolio/tpoinformatica/</link><pubDate>Wed, 01 Apr 2015 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/portfolio/tpoinformatica/</guid><description>&lt;p&gt;Custom e-commerce platform, developed with PHP, MongoDB, Solr, MySQL, Gearman, Memcache and Redis&lt;/p&gt;
&lt;p&gt;URL: &lt;a href="http://www.tpoinformatica.com"&gt;www.tpoinformatica.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>How to check if you're logged in to WordPress from Go</title><link>https://antoniocortes.com/en/how-to-check-if-youre-logged-in-to-wordpress-from-go/</link><pubDate>Wed, 25 Mar 2015 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/how-to-check-if-youre-logged-in-to-wordpress-from-go/</guid><description>&lt;p&gt;As a proof of concept, I&amp;rsquo;m making a small API in Golang that, on an Apache with mod_proxy, serves certain content to a WordPress site.&lt;/p&gt;</description></item><item><title>React vs Angular comparison</title><link>https://antoniocortes.com/en/react-vs-angular-comparison/</link><pubDate>Tue, 17 Mar 2015 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/react-vs-angular-comparison/</guid><description>&lt;p&gt;&lt;a href="https://www.airpair.com/angularjs/posts/angular-vs-react-the-tie-breaker"&gt;https://www.airpair.com/angularjs/posts/angular-vs-react-the-tie-breaker&lt;/a&gt;&lt;/p&gt;</description></item><item><title>AQUIQUÉ</title><link>https://antoniocortes.com/en/portfolio/aquique_mobile/</link><pubDate>Thu, 01 Jan 2015 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/portfolio/aquique_mobile/</guid><description>&lt;p&gt;Mobile app developed on Appcelerator Titanium for Android and iOS.&lt;/p&gt;</description></item><item><title>AQUIQUÉ (Backend)</title><link>https://antoniocortes.com/en/portfolio/aquique_backend/</link><pubDate>Thu, 01 Jan 2015 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/portfolio/aquique_backend/</guid><description>&lt;p&gt;Backend in PHP with Yii Framework for the Aquiqué mobile app.&lt;/p&gt;</description></item><item><title>Stop DisplayLink driver flooding logs in OS X Yosemite</title><link>https://antoniocortes.com/en/stop-displaylink-driver-flooding-logs-in-yosemite/</link><pubDate>Sun, 14 Dec 2014 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/stop-displaylink-driver-flooding-logs-in-yosemite/</guid><description>&lt;p&gt;To stop logging messages, like that, on Syslog:&lt;/p&gt;
&lt;p&gt;14/12/14 10:38:24,521 WindowServer[235]: _CGXGLDisplayContextForDisplayDevice: No matching context for device (0x7fdf63610e10) – disabling&lt;/p&gt;</description></item><item><title>About ugly code</title><link>https://antoniocortes.com/en/about-ugly-code/</link><pubDate>Thu, 20 Nov 2014 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/about-ugly-code/</guid><description>&lt;blockquote&gt;
&lt;p&gt;If you write ugly code, anyone who intends to fix a bug or add a feature will not enjoy his work and likely avoid it next time.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Bram Moolenaar&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Vim’s creator&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Development is more than just using "components"</title><link>https://antoniocortes.com/en/development-is-more-than-just-using-components/</link><pubDate>Fri, 30 May 2014 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/development-is-more-than-just-using-components/</guid><description>&lt;p&gt;One of the recurring conversations in gatherings over a beer is the current trend, by many &amp;ldquo;developers&amp;rdquo;, of not really programming to client needs but simply using modules/components/plugins/&amp;hellip;&lt;/p&gt;
&lt;div id="attachment_1079" style="width: 310px" class="wp-caption aligncenter"&gt;
 &lt;img class="wp-image-1079 size-medium" src="https://i2.wp.com/www.antoniocortes.com/wp-content/uploads/2014/05/Hippo-I-320x241.jpg?resize=300%2C225" alt="component usage" data-recalc-dims="1" /&gt;
 &lt;p class="wp-caption-text"&gt;
 Excessive use of components for very simple needs
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;This causes the final solution to be nothing more than an amalgamation of elements, many of which were not designed for that function, and others that are really not necessary, that only create the sensation that everything is solved, but as an &amp;ldquo;AS IS&amp;rdquo; solution. The kind where you don&amp;rsquo;t touch them, because we don&amp;rsquo;t know if something might fail, nor how, nor why.&lt;/p&gt;</description></item><item><title>Marina Bernal</title><link>https://antoniocortes.com/en/portfolio/marinabernal/</link><pubDate>Thu, 01 May 2014 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/portfolio/marinabernal/</guid><description>&lt;p&gt;Development on WordPress&lt;/p&gt;
&lt;p&gt;Web: &lt;a href="http://www.marinabernal.com"&gt;http://www.marinabernal.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Encuentros en psiquiatría</title><link>https://antoniocortes.com/en/portfolio/encuentros/</link><pubDate>Tue, 01 Apr 2014 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/portfolio/encuentros/</guid><description>&lt;p&gt;Development on WordPress&lt;/p&gt;
&lt;p&gt;URL: &lt;a href="http://www.encuentrosenpsiquiatria.com"&gt;www.encuentrosenpsiquiatria.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Custom Theme My Login templates</title><link>https://antoniocortes.com/en/custom-theme-my-login-templates/</link><pubDate>Thu, 23 Jan 2014 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/custom-theme-my-login-templates/</guid><description>&lt;p&gt;&lt;a href="http://wordpress.org/plugins/theme-my-login/"&gt;Theme My Login&lt;/a&gt; is a plugin that allows us to adapt all elements related to: Registration, Login, &amp;hellip; of a WordPress site to our needs.&lt;/p&gt;
&lt;p&gt;Inside the plugin folder, we find the templates in the &amp;ldquo;templates&amp;rdquo; folder. As is standard practice, we should not modify these templates directly. We can copy them to the root of our theme and modify them there. From that point on, those templates will be used by our site, without a plugin update affecting the changes made.&lt;/p&gt;</description></item><item><title>Creating a new Laravel project</title><link>https://antoniocortes.com/en/creating-a-new-laravel-project/</link><pubDate>Mon, 20 Jan 2014 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/creating-a-new-laravel-project/</guid><description>&lt;p&gt;In the folder where we want to start the project:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; /var/www/my-new-project
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;composer create-project laravel/laravel ./ --prefer-dist&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Digital signatures in JavaScript</title><link>https://antoniocortes.com/en/digital-signatures-in-javascript/</link><pubDate>Mon, 20 Jan 2014 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/digital-signatures-in-javascript/</guid><description>&lt;p&gt;If we need to create a signature capture and processing system in HTML, we can use the library: &lt;a href="http://thomasjbradley.ca/lab/signature-pad/"&gt;signature-pad&lt;/a&gt;, a good alternative for creating web apps that require signature digitization, using canvas.&lt;/p&gt;</description></item><item><title>Integrating Node.js and PHP</title><link>https://antoniocortes.com/en/integrating-node-js-and-php/</link><pubDate>Mon, 20 Jan 2014 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/integrating-node-js-and-php/</guid><description>&lt;p&gt;In the following article: &lt;a href="http://webandphp.com/IntegratingNode.jswithPHP"&gt;In the following article&lt;/a&gt;, we can see several ways to interact from PHP with node.js, using websockets.&lt;/p&gt;
&lt;p&gt;The example uses nginx, which is something to appreciate, as it&amp;rsquo;s the web server I use for these purposes.&lt;/p&gt;</description></item><item><title>How to validate an EAN13 code</title><link>https://antoniocortes.com/en/how-to-validate-an-ean13-code/</link><pubDate>Wed, 13 Mar 2013 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/how-to-validate-an-ean13-code/</guid><description>&lt;p&gt;EAN13 codes are composed of 13 digits, where the last one is a &lt;em&gt;check digit&lt;/em&gt;.&lt;/p&gt;</description></item><item><title>Cocos2d x</title><link>https://antoniocortes.com/en/cocos2d-x/</link><pubDate>Sat, 15 Dec 2012 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/cocos2d-x/</guid><description>&lt;p&gt;When developing games for mobile devices, we have multiple cross-platform alternatives:&lt;/p&gt;</description></item><item><title>Compile Titanium Mobile applications from command line</title><link>https://antoniocortes.com/en/compile-titanium-mobile-applications-from-command-line/</link><pubDate>Thu, 02 Feb 2012 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/compile-titanium-mobile-applications-from-command-line/</guid><description>&lt;p&gt;Everyone has their preferences when it comes to editing code. For example, for PHP I use Netbeans, for html Textmate, …&lt;/p&gt;</description></item><item><title>Styles only for iPad</title><link>https://antoniocortes.com/en/styles-only-for-ipad/</link><pubDate>Thu, 02 Feb 2012 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/styles-only-for-ipad/</guid><description>&lt;p&gt;If you want to apply CSS styles only for the iPad, you can do&lt;/p&gt;</description></item><item><title>Waiting for the new version of Notability</title><link>https://antoniocortes.com/en/waiting-for-the-new-version-of-notability/</link><pubDate>Thu, 02 Feb 2012 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/waiting-for-the-new-version-of-notability/</guid><description>&lt;p&gt;I have always used pen and paper to take notes, transforming my backpack into a collection of notebooks and notepads of all sizes and colors.&lt;/p&gt;
&lt;p&gt;This was so until I found several applications, for the iPad, that allowed doing the same, writing on the iPad, as if it were paper.&lt;/p&gt;
&lt;p&gt;After much searching and testing, in the end I stay with &lt;a href="http://gingerlabs.com/cont/notability.php"&gt;Notability&lt;/a&gt;, since it allows, in addition to writing by hand, inserting images, web captures, figures, … and with a price of 0’79€, incredible.&lt;/p&gt;</description></item><item><title>New wireless networks, new challenges for "telcos"</title><link>https://antoniocortes.com/en/new-wireless-networks-new-challenges/</link><pubDate>Sat, 29 Oct 2011 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/new-wireless-networks-new-challenges/</guid><description>&lt;p&gt;Interesting article on how telecommunications companies must face new wireless ways of connecting to the Internet.&lt;/p&gt;</description></item><item><title>The strange case of rankings</title><link>https://antoniocortes.com/en/the-strange-case-of-rankings/</link><pubDate>Mon, 04 Jul 2011 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/the-strange-case-of-rankings/</guid><description>&lt;p&gt;It is more than seen that the biggest ignore the smallest, but that does not mean that there are times when they do it by giving false information and a link to the true one.&lt;/p&gt;</description></item><item><title>Facebook applications over SSL</title><link>https://antoniocortes.com/en/facebook-applications-over-ssl/</link><pubDate>Wed, 13 Apr 2011 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/facebook-applications-over-ssl/</guid><description>&lt;p&gt;A few days ago, Facebook began showing error messages when accessing applications from https, being available for developers, in the application configuration, two new fields, to indicate secure urls (over https).&lt;/p&gt;</description></item><item><title>Optimize Facebook applications beyond code</title><link>https://antoniocortes.com/en/optimize-facebook-applications-beyond-code/</link><pubDate>Sun, 13 Mar 2011 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/optimize-facebook-applications-beyond-code/</guid><description>&lt;p&gt;The development of applications for Facebook requires us to specially optimize them so that they work based on two very important premises: Security and speed.&lt;/p&gt;</description></item><item><title>Slowness in IIS with FastCGI and PHP?</title><link>https://antoniocortes.com/en/slowness-in-iis-with-fastcgi-and-php/</link><pubDate>Sat, 05 Mar 2011 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/slowness-in-iis-with-fastcgi-and-php/</guid><description>&lt;p&gt;Through &lt;a href="http://www.iis.net/download/fastcgi"&gt;FastCGI for IIS&lt;/a&gt; we can have support for PHP on the Microsoft server for Windows (IIS).&lt;/p&gt;</description></item><item><title>Implement Haanga as a template system for OpenCart</title><link>https://antoniocortes.com/en/implement-haanga-as-template-system-for-opencart/</link><pubDate>Sun, 31 Oct 2010 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/implement-haanga-as-template-system-for-opencart/</guid><description>&lt;p&gt;&lt;a href="http://www.opencart.com/"&gt;OpenCart&lt;/a&gt; is an e-commerce platform made in php, with impeccable development, 100% MVC. As a proof of concept, I have rewritten the template system of &lt;a href="http://www.opencart.com/"&gt;OpenCart&lt;/a&gt; to &lt;a href="http://github.com/crodas/Haanga"&gt;Haanga&lt;/a&gt; (Django templates for PHP, über efficient) by &lt;a href="http://crodas.org/"&gt;César Rodas&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Viral Encounter 2</title><link>https://antoniocortes.com/en/viral-encounter-2/</link><pubDate>Wed, 13 Oct 2010 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/viral-encounter-2/</guid><description>&lt;p&gt;On October 23rd, Saturday, in the afternoon, whoever wants can stop by the multi-use room of the City Council of El Madroño (Seville) to chat about the possibilities opened by the Network for health care and the exercise of citizen rights.&lt;/p&gt;
&lt;p&gt;I will give a talk about &lt;a href="http://www.encuentroviral.es/EV.2/ponencia/internet-y-mundo-rural"&gt;Internet and rural world&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;News on Synaptica: &lt;a href="http://www.synaptica.es/noticia/encuentro-viral-sobre-internet-salud-y-comunidad-rural"&gt;Viral Encounter about Internet, health and rural community&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Event Information: &lt;a href="http://www.encuentroviral.es/EV.2/index"&gt;Viral Encounter 2&lt;/a&gt;&lt;/p&gt;</description></item><item><title>PHP-FPM on Ubuntu 8.10</title><link>https://antoniocortes.com/en/php-fpm-on-ubuntu-8-10/</link><pubDate>Wed, 05 May 2010 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/php-fpm-on-ubuntu-8-10/</guid><description>&lt;p&gt;Having made the decision to only develop, in the case of PHP, for the 5.3 family or higher.&lt;/p&gt;</description></item><item><title>Singleton for PHP 5.3, and patch for 5.2</title><link>https://antoniocortes.com/en/singleton-for-php-5-3-and-patch-for-5-2/</link><pubDate>Wed, 05 May 2010 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/singleton-for-php-5-3-and-patch-for-5-2/</guid><description>&lt;p&gt;Through this abstract php class we can create our classes simply by extending this class&lt;/p&gt;</description></item><item><title>Twig, the definitive template system</title><link>https://antoniocortes.com/en/twig-the-definitive-template-system/</link><pubDate>Mon, 03 May 2010 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/twig-the-definitive-template-system/</guid><description>&lt;p&gt;I have always been very wary when using a template system for PHP, but the arrival of &lt;a href="http://www.twig-project.org/"&gt;Twig&lt;/a&gt; has been quite an event.&lt;/p&gt;</description></item><item><title>Bijou Victoria</title><link>https://antoniocortes.com/en/portfolio/bijou/</link><pubDate>Sat, 03 Apr 2010 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/portfolio/bijou/</guid><description>&lt;p&gt;Web developed on CakePHP&lt;/p&gt;
&lt;p&gt;Url: &lt;a href="http://www.http://bijouvictoria.com"&gt;http://www.http://bijouvictoria.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Chipiona Noticias</title><link>https://antoniocortes.com/en/portfolio/chipionanoticias/</link><pubDate>Sat, 03 Apr 2010 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/portfolio/chipionanoticias/</guid><description>&lt;p&gt;Web developed on WordPress&lt;/p&gt;
&lt;p&gt;Url: &lt;a href="http://www.chipionanoticias.com"&gt;http://www.chipionanoticias.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>English in Motion</title><link>https://antoniocortes.com/en/portfolio/englishinmotion/</link><pubDate>Sat, 03 Apr 2010 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/portfolio/englishinmotion/</guid><description>&lt;p&gt;Web developed on Besbello (on CakePHP)&lt;/p&gt;
&lt;p&gt;Multi-language&lt;/p&gt;
&lt;p&gt;Url: &lt;a href="http://englishinmotion.es"&gt;http://englishinmotion.es&lt;/a&gt;&lt;/p&gt;</description></item><item><title>EPIs</title><link>https://antoniocortes.com/en/portfolio/epis/</link><pubDate>Sat, 03 Apr 2010 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/portfolio/epis/</guid><description>&lt;p&gt;Multi-company PPE (Personal Protective Equipment) management SaaS service, developed with Laravel 5, with signature and PDF document management.&lt;/p&gt;</description></item><item><title>Management Portal</title><link>https://antoniocortes.com/en/portfolio/asaja/</link><pubDate>Sat, 03 Apr 2010 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/portfolio/asaja/</guid><description>&lt;p&gt;Portal developed in Laravel, with assistants to generate documentation (PDFs), configurable through XML and/or Json files&lt;/p&gt;</description></item><item><title>New design, new approach</title><link>https://antoniocortes.com/en/new-design-new-approach/</link><pubDate>Sat, 03 Apr 2010 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/new-design-new-approach/</guid><description>&lt;p&gt;It was time to change my website a bit.&lt;/p&gt;
&lt;p&gt;Little by little it will take shape, and in it I will put all the projects I work on, my portfolio, and my collection of code that I have been creating or compiling in recent years, which are not few.&lt;/p&gt;</description></item><item><title>Pontecesures.net</title><link>https://antoniocortes.com/en/portfolio/pontecesures-net/</link><pubDate>Sat, 03 Apr 2010 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/portfolio/pontecesures-net/</guid><description>&lt;p&gt;Web developed on WordPress. Since 2005&lt;/p&gt;
&lt;p&gt;Custom template.&lt;/p&gt;
&lt;p&gt;Url: &lt;a href="http://www.pontecesures.net"&gt;http://www.pontecesures.net&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Update GPG keys Ubuntu repositories</title><link>https://antoniocortes.com/en/update-gpg-keys-ubuntu-repositories/</link><pubDate>Sat, 09 Jan 2010 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/update-gpg-keys-ubuntu-repositories/</guid><description>&lt;p&gt;Sometimes we may need to update the public keys of some Ubuntu repositories. A symptom is the following error:&lt;/p&gt;</description></item><item><title>Who is fooling whom?</title><link>https://antoniocortes.com/en/who-is-fooling-whom/</link><pubDate>Mon, 04 Jan 2010 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/who-is-fooling-whom/</guid><description>&lt;p&gt;On the El Mundo website, we have an article with a headline that says: “&lt;a href="http://www.elmundo.es/elmundo/2010/01/04/union_europea/1262610678.html"&gt;Mr. Bean ‘sneaks in’ to the official website of the Spanish presidency&lt;/a&gt;“.&lt;/p&gt;
&lt;p&gt;This article, without a doubt, is an example of the lack of rigor, and technological “yellow journalism” that floods us.&lt;/p&gt;</description></item><item><title>Icons for Android developers</title><link>https://antoniocortes.com/en/icons-for-android-developers/</link><pubDate>Sun, 08 Nov 2009 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/icons-for-android-developers/</guid><description>&lt;p&gt;WebAppers offers us 30 icons, and their sources for developers of this platform.&lt;/p&gt;</description></item><item><title>Wp-Answers by aNieto2k</title><link>https://antoniocortes.com/en/wp-answers-by-anieto2k/</link><pubDate>Sun, 08 Nov 2009 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/wp-answers-by-anieto2k/</guid><description>&lt;p&gt;aNieto2K has created a fabulous plugin for WordPress that allows creating communities based on questions and answers.&lt;/p&gt;
&lt;p&gt;More information at: &lt;a href="http://www.anieto2k.com/2009/11/07/wp-answers-crea-una-comunidad-de-preguntas-y-respuestas-con-wordpress/"&gt;aNieto2k&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Computer generated images</title><link>https://antoniocortes.com/en/computer-generated-images/</link><pubDate>Tue, 28 Jul 2009 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/computer-generated-images/</guid><description>&lt;p&gt;&lt;a href="http://abduzeedo.com/amazing-realistic-3d-computer-graphics"&gt;Paulo Antunes&lt;/a&gt; at abduzeedo shows us several examples of “synthetic” images that he saw during his visit to the &lt;a href="http://www.cgsociety.org/"&gt;Computer Graphics Society&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Enlarge: &lt;a href="http://abduzeedo.com/amazing-realistic-3d-computer-graphics"&gt;See other images selected by Paulo&lt;/a&gt;&lt;/p&gt;</description></item><item><title>New life, new challenges</title><link>https://antoniocortes.com/en/new-life-new-challenges/</link><pubDate>Fri, 29 May 2009 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/new-life-new-challenges/</guid><description>&lt;p&gt;Today is a day of changes, it will be day 0 of a great change.&lt;/p&gt;</description></item><item><title>After Effects Tutorials</title><link>https://antoniocortes.com/en/after-effects-tutorials/</link><pubDate>Fri, 22 May 2009 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/after-effects-tutorials/</guid><description>&lt;p&gt;The people at &lt;a href="http://filmmakeriq.com"&gt;FilmMakerIQ.com&lt;/a&gt; have created an impressive list with &lt;a href="http://filmmakeriq.com/general/featured/1001-adobe-after-effects-tutorials.html"&gt;1001 After Effects tutorials&lt;/a&gt;. Now it&amp;rsquo;s time to get some time to watch all the tutorials.&lt;/p&gt;</description></item><item><title>View the 10 IPs with the most access</title><link>https://antoniocortes.com/en/view-the-10-ips-with-the-most-access/</link><pubDate>Fri, 15 May 2009 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/view-the-10-ips-with-the-most-access/</guid><description>&lt;p&gt;A “recipe” to keep on hand:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cat fichero.log &lt;span class="p"&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="se"&gt;\ &lt;/span&gt;awk &lt;span class="s1"&gt;&amp;#39;{print $1}&amp;#39;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="se"&gt;\ &lt;/span&gt;sort &lt;span class="p"&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="se"&gt;\ &lt;/span&gt;uniq -c &lt;span class="p"&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="se"&gt;\ &lt;/span&gt;sort -n &lt;span class="p"&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="se"&gt;\ &lt;/span&gt;tail -10&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Now it's time for video</title><link>https://antoniocortes.com/en/now-its-time-for-video/</link><pubDate>Tue, 12 May 2009 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/now-its-time-for-video/</guid><description>&lt;p&gt;I just acquired a &lt;a href="http://www.vimeo.com/drzippie"&gt;“plus” account on Vimeo&lt;/a&gt;. This will allow me, just like with Flickr, to upload up to 5 GB of videos per week, without limitations on whether they are HD or not.&lt;/p&gt;
&lt;p&gt;Now I will start creating videos and I will take advantage of the incredible &lt;a href="http://www.jamendo.com/en/albums?license_class=cc_standard&amp;amp;license_maxrights=sa&amp;amp;license_minrights=by&amp;#43;c&amp;#43;d"&gt;CC&lt;/a&gt; music that exists to use as a base for the videos.&lt;/p&gt;</description></item><item><title>European Accessibility Forum</title><link>https://antoniocortes.com/en/european-accessibility-forum-videos/</link><pubDate>Tue, 05 May 2009 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/european-accessibility-forum-videos/</guid><description>&lt;p&gt;At the following address &lt;a href="http://vimeo.com/channels/eafraen"&gt;http://vimeo.com/channels/eafraen&lt;/a&gt; the videos of the &lt;strong&gt;European Accessibility Forum&lt;/strong&gt; are available. They are highly recommended, especially those related to how to amortize costs and the importance of these.&lt;/p&gt;</description></item><item><title>What to do in a disaster</title><link>https://antoniocortes.com/en/what-to-do-in-a-disaster/</link><pubDate>Mon, 23 Mar 2009 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/what-to-do-in-a-disaster/</guid><description>&lt;p&gt;I have always said: ” &lt;em&gt;there are two types of people: Those who have lost data and those who have not yet&lt;/em&gt;“. Given this scenario, we try to do everything in our power to safeguard all the information we have on computers in the safest way.&lt;/p&gt;</description></item><item><title>In the Works</title><link>https://antoniocortes.com/en/in-the-works/</link><pubDate>Mon, 22 Sep 2008 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/in-the-works/</guid><description>&lt;p&gt;Lately I&amp;rsquo;ve been busy studying and testing different libraries and resources:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://extjs.com/"&gt;ExtJS&lt;/a&gt;: Javascript.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.cakephp.org"&gt;CakePHP&lt;/a&gt;: PHP.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/p/joose-js/"&gt;Joose&lt;/a&gt;: Javascript.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.imatia.com/ontimize"&gt;Ontimize&lt;/a&gt;: Java.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://developer.yahoo.com/yui/"&gt;Yahoo UI Library&lt;/a&gt;: Javascript.&lt;/li&gt;
&lt;li&gt;…&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I have many examples, tricks, and &amp;ldquo;recipes&amp;rdquo; for each of these that I&amp;rsquo;ll be publishing to keep them organized and easily accessible, and also because they&amp;rsquo;ll surely be useful to others.&lt;/p&gt;</description></item><item><title>Arrakis.com</title><link>https://antoniocortes.com/en/portfolio/arrakis/</link><pubDate>Mon, 01 Jan 2007 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/portfolio/arrakis/</guid><description>&lt;p&gt;Development in PHP, with MorcegoCMS.&lt;/p&gt;
&lt;p&gt;Url: &lt;a href="http://www.arrakis.com"&gt;www.arrakis.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>MorcegoCMS</title><link>https://antoniocortes.com/en/portfolio/morcegocms/</link><pubDate>Mon, 01 Jan 2007 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/portfolio/morcegocms/</guid><description>&lt;p&gt;MorcegoCMS is a minimalist CMS as a proof of concept&lt;/p&gt;
&lt;p&gt;Url: &lt;a href="http://sourceforge.net/projects/morcegocms/"&gt;http://sourceforge.net/projects/morcegocms/&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Arines 7</title><link>https://antoniocortes.com/en/portfolio/arines7/</link><pubDate>Sat, 01 Jan 2005 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/portfolio/arines7/</guid><description>&lt;p&gt;Web developed with CakePHP&lt;/p&gt;</description></item><item><title>Coppelia Danza</title><link>https://antoniocortes.com/en/portfolio/coppelia/</link><pubDate>Sat, 01 Jan 2005 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/portfolio/coppelia/</guid><description>&lt;p&gt;Web developed with WordPress&lt;/p&gt;
&lt;p&gt;Web: &lt;a href="http://www.coppeliadanza.com"&gt;http://www.coppeliadanza.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>I Love Chuches</title><link>https://antoniocortes.com/en/portfolio/ilovechuches/</link><pubDate>Sat, 01 Jan 2005 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/portfolio/ilovechuches/</guid><description>&lt;p&gt;Web developed with WordPress + WooCommerce&lt;/p&gt;</description></item><item><title>Liga Galega de Traiñeiras</title><link>https://antoniocortes.com/en/portfolio/lgt/</link><pubDate>Sat, 01 Jan 2005 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/portfolio/lgt/</guid><description>&lt;p&gt;Web developed with Laravel for management and visualization of teams, competitions and recording of the minutes of each event.&lt;/p&gt;
&lt;p&gt;Each team visually positions the crew on the form and this is validated by the referee.&lt;/p&gt;</description></item><item><title>Mercavenda</title><link>https://antoniocortes.com/en/portfolio/mercavenda/</link><pubDate>Sat, 01 Jan 2005 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/portfolio/mercavenda/</guid><description>&lt;p&gt;Web developed with CakePHP&lt;/p&gt;</description></item><item><title>NovasCMS</title><link>https://antoniocortes.com/en/portfolio/novascms/</link><pubDate>Sat, 01 Jan 2005 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/portfolio/novascms/</guid><description>&lt;p&gt;CMS developed with PHP with MongoDB and SQLite database, multi-domain and with editing roles.&lt;/p&gt;</description></item><item><title>Pilar Vera</title><link>https://antoniocortes.com/en/portfolio/pilarvera/</link><pubDate>Sat, 01 Jan 2005 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/portfolio/pilarvera/</guid><description>&lt;p&gt;Web developed with WordPress&lt;/p&gt;</description></item><item><title>Pontecesures (App)</title><link>https://antoniocortes.com/en/portfolio/pontecesures-app/</link><pubDate>Sat, 01 Jan 2005 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/portfolio/pontecesures-app/</guid><description>&lt;p&gt;Mobile app for Android and iOS that shows information and alerts from RSS and different data sources.&lt;/p&gt;
&lt;p&gt;Developed with Titanium Alloy&lt;/p&gt;</description></item><item><title>Ramón Franco</title><link>https://antoniocortes.com/en/portfolio/ramonfranco/</link><pubDate>Sat, 01 Jan 2005 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/portfolio/ramonfranco/</guid><description>&lt;p&gt;Multi-language web developed on CakePHP&lt;/p&gt;</description></item><item><title>Teatro Lope de Vega</title><link>https://antoniocortes.com/en/portfolio/lopedevega/</link><pubDate>Sat, 01 Jan 2005 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/portfolio/lopedevega/</guid><description>&lt;p&gt;Web developed with MorcegoCMS&lt;/p&gt;</description></item><item><title>TPO Informática (App)</title><link>https://antoniocortes.com/en/portfolio/apptpo/</link><pubDate>Sat, 01 Jan 2005 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/portfolio/apptpo/</guid><description>&lt;p&gt;Mobile app for Android and iOS developed with Ionic Framework (Angular)&lt;/p&gt;</description></item><item><title>Virtual Meeting</title><link>https://antoniocortes.com/en/portfolio/encuentroviral/</link><pubDate>Sat, 01 Jan 2005 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/portfolio/encuentroviral/</guid><description>&lt;p&gt;Web developed with PHP with file-based XML database.&lt;/p&gt;</description></item><item><title>We Love Flamenco</title><link>https://antoniocortes.com/en/portfolio/wlf/</link><pubDate>Sat, 01 Jan 2005 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/portfolio/wlf/</guid><description>&lt;p&gt;Web developed with WordPress&lt;/p&gt;</description></item><item><title>Workshop App</title><link>https://antoniocortes.com/en/portfolio/talleres/</link><pubDate>Sat, 01 Jan 2005 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/portfolio/talleres/</guid><description>&lt;p&gt;Mobile app for Android and iOS for workshop agenda and booking management, promotions and alerts developed with Appcelerator Titanium.&lt;/p&gt;</description></item></channel></rss>