<?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/</link><description>Recent content on Antonio Cortés (DrZippie)</description><generator>Hugo</generator><language>es-es</language><lastBuildDate>Mon, 30 Mar 2026 10:26:28 +0200</lastBuildDate><atom:link href="https://antoniocortes.com/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/post/2026/03/2026-03-30-claude-code-auto-dream-consolidated-memory/</link><pubDate>Mon, 30 Mar 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2026/03/2026-03-30-claude-code-auto-dream-consolidated-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>Auto Memory y Auto Dream: como Claude Code aprende y consolida su memoria</title><link>https://antoniocortes.com/2026/03/30/auto-memory-y-auto-dream-como-claude-code-aprende-y-consolida-su-memoria/</link><pubDate>Mon, 30 Mar 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2026/03/30/auto-memory-y-auto-dream-como-claude-code-aprende-y-consolida-su-memoria/</guid><description>&lt;p&gt;Si llevas un tiempo usando Claude Code con Auto Memory activado, probablemente hayas notado que al cabo de unas cuantas sesiones, las notas que Claude toma sobre tu proyecto empiezan a acumular contradicciones. Entradas que dicen &amp;ldquo;ayer decidimos usar Redis&amp;rdquo; sin especificar qué día era ese &amp;ldquo;ayer&amp;rdquo;. Notas de debugging que referencian ficheros que ya no existen. Tres entradas diferentes sobre el mismo bug del build. Lo que empezó como un cuaderno útil se convierte en ruido.&lt;/p&gt;</description></item><item><title>Claude Code con LSP: de buscar texto a entender codigo</title><link>https://antoniocortes.com/2026/03/10/claude-code-con-lsp-de-buscar-texto-a-entender-codigo/</link><pubDate>Tue, 10 Mar 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2026/03/10/claude-code-con-lsp-de-buscar-texto-a-entender-codigo/</guid><description>&lt;p&gt;Llevo meses usando Claude Code a diario y hay una configuración que ha cambiado por completo cómo trabaja con mi código. No es un plugin nuevo, ni un modelo más potente, ni un prompt mágico. Es algo que existe desde 2016 y que la mayoría de desarrolladores usamos sin saberlo cada vez que abrimos VS Code: el Language Server Protocol (LSP).&lt;/p&gt;
&lt;p&gt;&lt;a href="https://karanbansal.in/blog/claude-code-lsp/"&gt;Karan Bansal publicó un artículo excelente&lt;/a&gt; explicando en detalle cómo activar LSP en Claude Code y por qué importa. Después de probarlo, puedo confirmar que la diferencia es real y significativa.&lt;/p&gt;</description></item><item><title>Claude Code with LSP: from searching text to understanding code</title><link>https://antoniocortes.com/en/post/2026/03/2026-03-10-claude-code-lsp-upgrade-code-navigation/</link><pubDate>Tue, 10 Mar 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2026/03/2026-03-10-claude-code-lsp-upgrade-code-navigation/</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: la economía construida sobre empleos que no existen</title><link>https://antoniocortes.com/2026/03/10/ghost-jobs-la-econom%C3%ADa-construida-sobre-empleos-que-no-existen/</link><pubDate>Tue, 10 Mar 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2026/03/10/ghost-jobs-la-econom%C3%ADa-construida-sobre-empleos-que-no-existen/</guid><description>&lt;p&gt;Cada mes, 2,2 millones de ofertas de empleo en Estados Unidos no resultan en ninguna contratación. Cuatro de cada diez empresas admiten que sus ofertas son falsas. Siete de cada diez lo consideran moralmente aceptable. El 85 por ciento de ellas llega a entrevistar candidatos para esos puestos inexistentes.&lt;/p&gt;
&lt;p&gt;Estos no son datos de un blog conspiranoico. Son datos del Bureau of Labor Statistics, de encuestas a 650 responsables de contratación publicadas por ResumeBuilder, y de análisis de Revelio Labs. La economía de los empleos fantasma es un fenómeno documentado, cuantificado y, por lo que parece, perfectamente tolerado.&lt;/p&gt;</description></item><item><title>Ghost Jobs: the economy built on positions that don't exist</title><link>https://antoniocortes.com/en/post/2026/03/2026-03-10-ghost-jobs-economy-built-on-positions-that-dont-exist/</link><pubDate>Tue, 10 Mar 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2026/03/2026-03-10-ghost-jobs-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/post/2026/03/2026-03-02-duckdb-httpfs-proxy/</link><pubDate>Mon, 02 Mar 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2026/03/2026-03-02-duckdb-httpfs-proxy/</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>DuckDB y httpfs detrás de un proxy: el secreto que nadie te cuenta</title><link>https://antoniocortes.com/2026/03/02/duckdb-y-httpfs-detr%C3%A1s-de-un-proxy-el-secreto-que-nadie-te-cuenta/</link><pubDate>Mon, 02 Mar 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2026/03/02/duckdb-y-httpfs-detr%C3%A1s-de-un-proxy-el-secreto-que-nadie-te-cuenta/</guid><description>&lt;h2 id="el-problema-httpfs-ignora-tus-variables-de-entorno"&gt;El problema: httpfs ignora tus variables de entorno&lt;/h2&gt;
&lt;p&gt;Si trabajas con DuckDB y la extensión &lt;code&gt;httpfs&lt;/code&gt; para leer Parquet remotos, CSVs desde S3 o cualquier recurso HTTP, probablemente asumes que las variables de entorno &lt;code&gt;HTTP_PROXY&lt;/code&gt; y &lt;code&gt;HTTPS_PROXY&lt;/code&gt; funcionan igual que en cualquier otra herramienta. Curl las respeta. wget las respeta. Python requests las respeta. Node.js las respeta.&lt;/p&gt;
&lt;p&gt;DuckDB no.&lt;/p&gt;
&lt;p&gt;Me he encontrado con esto trabajando en un entorno corporativo con proxy obligatorio. Tenía un script que leía ficheros Parquet desde Google Cloud Storage usando &lt;code&gt;httpfs&lt;/code&gt;, y simplemente no funcionaba. Sin error claro, sin timeout descriptivo, solo silencio. Mientras tanto, un &lt;code&gt;curl&lt;/code&gt; al mismo recurso con las mismas variables de entorno devolvía los datos sin problema.&lt;/p&gt;</description></item><item><title>Cómo PostgreSQL estima tus consultas (y por qué a veces se equivoca)</title><link>https://antoniocortes.com/postgresql-statistics/</link><pubDate>Fri, 27 Feb 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/postgresql-statistics/</guid><description>&lt;p&gt;Toda consulta empieza con un plan. Toda consulta lenta probablemente empieza con uno malo. Y más a menudo de lo que crees, las estadísticas son las culpables.&lt;/p&gt;
&lt;p&gt;Pero ¿cómo funciona realmente? PostgreSQL no ejecuta la consulta para averiguarlo — estima el coste. Lee datos precalculados de &lt;code&gt;pg_class&lt;/code&gt; y &lt;code&gt;pg_statistic&lt;/code&gt; y hace los cálculos para encontrar la ruta más barata hacia tus datos.&lt;/p&gt;
&lt;p&gt;En el escenario ideal, los números que lee son precisos y obtienes el plan que esperas. Pero cuando están desactualizados, la situación se descontrola. El planificador estima 500 filas, planifica un nested loop, y se encuentra con 25,000. Lo que parecía un plan óptimo se convierte en una falla en cascada.&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>Analizando el aislamiento de filesystems en contenedores para cargas multi-tenant</title><link>https://antoniocortes.com/aislamiento-filesystem-contenedores-multitenencia/</link><pubDate>Fri, 13 Feb 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/aislamiento-filesystem-contenedores-multitenencia/</guid><description>&lt;p&gt;Recientemente me encontré con un análisis técnico excepcionalmente denso sobre seguridad de contenedores que merece la pena ser compartido. El autor empezó con una hipótesis simple: el aislamiento de filesystems de los contenedores debería ser suficiente para cargas de trabajo multi-tenant sin necesidad de máquinas virtuales, si se entiende suficientemente bien qué está pasando a nivel de syscall.&lt;/p&gt;
&lt;p&gt;Después de una investigación exhaustiva, la conclusión es más incómoda de lo que esperaba: los valores por defecto te protegen bien, pero en el momento que empiezas a usar características &amp;ldquo;avanzadas&amp;rdquo; como la propagación de montajes bidireccional o el reetiquetado de SELinux, estás a un paso de entregarle las llaves de tu host a un atacante.&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>El renacimiento del desarrollo de software con agentes de IA</title><link>https://antoniocortes.com/ia-agentes-renacimiento-desarrollo-software/</link><pubDate>Fri, 06 Feb 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/ia-agentes-renacimiento-desarrollo-software/</guid><description>&lt;p&gt;Greg Brockman, presidente y co-fundador de OpenAI, publicó recientemente un hilo que describe perfectamente el momento que estamos viviendo en el desarrollo de software. Según él, estamos presenciando un auténtico renacimiento del desarrollo de software, impulsado por herramientas de IA que han mejorado exponencialmente desde diciembre.&lt;/p&gt;
&lt;h2 id="el-salto-cualitativo"&gt;El salto cualitativo&lt;/h2&gt;
&lt;p&gt;Lo más llamativo del hilo de Brockman es cómo describen el cambio interno en OpenAI: ingenieros que antes usaban Codex para tests unitarios ahora ven que la herramienta escribe prácticamente todo el código y se encarga de una gran parte de las operaciones y debugging. No es una mejora incremental, es un cambio de paradigma.&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>La atención es lo que tenemos</title><link>https://antoniocortes.com/la-atencion-es-lo-que-tenemos/</link><pubDate>Wed, 04 Feb 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/la-atencion-es-lo-que-tenemos/</guid><description>&lt;p&gt;Hace unos días leía un ensayo fascinante de David Bessis que me hizo reflexionar profundamente sobre algo que todos damos por hecho: la inteligencia. Bessis, matemático y autor de &lt;em&gt;Mathematica: A Secret World of Intuition and Curiosity&lt;/em&gt;, plantea una tesis que desafía muchas de nuestras creencias más arraigadas sobre el origen de las diferencias cognitivas entre las personas.&lt;/p&gt;
&lt;p&gt;Lo más interesante de su planteamiento no es tanto la conclusión -a la que llegaré- sino el camino que traza para llegar allí, un camino que mezcla matemáticas, neurociencia y una buena dosis de experiencia personal.&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>Agent Lightning: Microsoft y el futuro de la orquestación de agentes de IA</title><link>https://antoniocortes.com/agent-lightning/</link><pubDate>Mon, 02 Feb 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/agent-lightning/</guid><description>&lt;p&gt;Hace pocos días descubrí &lt;a href="https://github.com/microsoft/agent-lightning"&gt;Agent Lightning&lt;/a&gt;, un proyecto de Microsoft que creo que marca un antes y un después en cómo pensamos la orquestación de agentes de IA. No es solo otra librería más; es un intento serio de estandarizar cómo construimos sistemas multiagente.&lt;/p&gt;
&lt;h2 id="qué-es-agent-lightning"&gt;¿Qué es Agent Lightning?&lt;/h2&gt;
&lt;p&gt;Agent Lightning es un framework de Microsoft para orquestar agentes de IA. Permite composición, integración y despliegue de sistemas multiagente de forma modular y escalable. La premisa es simple pero poderosa: los agentes deben ser componentes que se pueden combinar, conectar y reutilizar.&lt;/p&gt;</description></item><item><title>Jeffrey Way: 'I'm Done' - La cruda realidad de la IA en la educación de programación</title><link>https://antoniocortes.com/jeffrey-way-ia-realidad/</link><pubDate>Mon, 02 Feb 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/jeffrey-way-ia-realidad/</guid><description>&lt;p&gt;Hace unos días vi &lt;a href="https://www.youtube.com/watch?v=g_Bvo0tsD9s"&gt;un video&lt;/a&gt; que me ha dado mucho que pensar. Jeffrey Way, el fundador de Laracasts y una de las personas más influyentes en la comunidad Laravel/PHP, compartió una reflexión brutalmente honesta sobre cómo la inteligencia artificial está transformando su negocio y su profesión.&lt;/p&gt;
&lt;p&gt;El video empieza con una frase que te deja helado: &lt;em&gt;&amp;ldquo;I&amp;rsquo;m Done&amp;rdquo;&lt;/em&gt;. No es un adiós a la programación, sino una aceptación de la realidad que viene.&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>Tangible Media Collection: La curiosidad como forma de vida</title><link>https://antoniocortes.com/tangible-media-collection/</link><pubDate>Mon, 02 Feb 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/tangible-media-collection/</guid><description>&lt;p&gt;Hace pocos días descubrí &lt;a href="https://tangiblemediacollection.com/"&gt;Tangible Media Collection&lt;/a&gt;, un sitio web que me ha resonado profundamente. Es una colección de unos 1700 objetos relacionados con el almacenamiento de información: desde discos de vinilo y cintas magnéticas hasta tarjetas perforadas y discos ópticos. Pero no es solo una colección de objetos tecnológicos; es un testimonio de curiosidad humana.&lt;/p&gt;
&lt;h2 id="la-colección-que-nació-de-una-cinta-perdida"&gt;La colección que nació de una cinta perdida&lt;/h2&gt;
&lt;p&gt;La historia de cómo empezó esta colección es fascinante. En 2001, John Wallace (el coleccionista) encontró en un cajón una cinta de computadora de finales de los 80. Sabía qué contenía: un archivo de imágenes generadas por computadora de su época de estudiante, el producto de noches y fines de semana en el laboratorio de computación. Pero la unidad de cinta que podía leerla ya no existía.&lt;/p&gt;</description></item><item><title>Vercel Sandbox: ¿Ejecutar código PHP, Node y Go de forma segura?</title><link>https://antoniocortes.com/vercel-sandbox/</link><pubDate>Mon, 02 Feb 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/vercel-sandbox/</guid><description>&lt;p&gt;Vercel ha anunciado la disponibilidad general de &lt;a href="https://vercel.com/blog/vercel-sandbox-is-now-generally-available"&gt;Vercel Sandbox&lt;/a&gt;, una capa de ejecución diseñada específicamente para agentes de IA. Pero más allá del hype de los agentes, hay una pregunta interesante: ¿puede servirnos para ejecutar código de forma segura en diferentes lenguajes como PHP, Node o Go?&lt;/p&gt;
&lt;h2 id="qué-es-vercel-sandbox"&gt;¿Qué es Vercel Sandbox?&lt;/h2&gt;
&lt;p&gt;Vercel Sandbox proporciona microVMs Linux bajo demanda. Cada sandbox está aislado, con su propio sistema de archivos, red y espacio de procesos. Obtienes acceso &lt;code&gt;sudo&lt;/code&gt;, gestores de paquetes y la capacidad de ejecutar los mismos comandos que ejecutarías en una máquina Linux.&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/post/2026/02/ai-coding-agents-conceptos-clave/</link><pubDate>Sun, 01 Feb 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2026/02/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>AI Coding Agents: Rules, Commands, Skills, MCP y Hooks explicados</title><link>https://antoniocortes.com/2026/02/01/ai-coding-agents-conceptos-clave/</link><pubDate>Sun, 01 Feb 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2026/02/01/ai-coding-agents-conceptos-clave/</guid><description>&lt;p&gt;Si estás usando herramientas como Claude Code, GitHub Copilot Workspace o similares, habrás notado que hay una jerga técnica que va más allá de simplemente &amp;ldquo;chatear con la IA&amp;rdquo;. Hablo de términos como &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; y &lt;strong&gt;hooks&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Estos conceptos son la arquitectura que hace que los agentes de IA sean realmente útiles para desarrollo de software. No son solo palabras bonitas de marketing — cada uno cumple una función específica en cómo el agente trabaja.&lt;/p&gt;
&lt;p&gt;Vamos a desglosarlos uno por uno de forma clara.&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>DuckDB: Formatos de archivo y optimizaciones de rendimiento</title><link>https://antoniocortes.com/duckdb-formatos-archivos-optimizacion/</link><pubDate>Sun, 01 Feb 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/duckdb-formatos-archivos-optimizacion/</guid><description>&lt;p&gt;Últimamente estoy trabajando bastante con &lt;strong&gt;DuckDB&lt;/strong&gt;, y una de las cosas que más me interesan es entender cómo optimizar el rendimiento según el formato de archivo que estemos usando.&lt;/p&gt;
&lt;p&gt;No es lo mismo trabajar con Parquet, con CSV comprimido, o con CSV descomprimido. Y las diferencias de rendimiento pueden ser &lt;strong&gt;dramáticas&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Vamos a revisar las optimizaciones clave que hay que tener en cuenta cuando trabajamos con diferentes formatos de archivo en DuckDB.&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>European Open Source AI Index: Midiendo la verdadera apertura de la IA</title><link>https://antoniocortes.com/european-open-source-ai-index/</link><pubDate>Sun, 01 Feb 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/european-open-source-ai-index/</guid><description>&lt;p&gt;Últimamente veo cada vez más modelos de IA que se autodenominan &amp;ldquo;open source&amp;rdquo;. Llama, Mistral, Falcon&amp;hellip; todos dicen ser &amp;ldquo;abiertos&amp;rdquo;. Pero, ¿realmente lo son? ¿Hasta qué punto son abiertos de verdad?&lt;/p&gt;
&lt;p&gt;Hace poco descubrí el &lt;strong&gt;European Open Source AI Index (OSAI)&lt;/strong&gt;, una iniciativa europea que está haciendo un trabajo excelente evaluando de forma sistemática qué tan abiertos son realmente los modelos de IA generativa.&lt;/p&gt;</description></item><item><title>NativePHP for Mobile es ahora gratuito: ¡Por fin puedo probarlo!</title><link>https://antoniocortes.com/nativephp-mobile-gratuito/</link><pubDate>Sun, 01 Feb 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/nativephp-mobile-gratuito/</guid><description>&lt;p&gt;Confieso que llevo siguiendo &lt;strong&gt;NativePHP for Mobile&lt;/strong&gt; desde que se anunció. La idea de poder hacer aplicaciones móviles nativas con Laravel y &lt;strong&gt;solo PHP&lt;/strong&gt; me parecía —y me parece— una cosa muy buena.&lt;/p&gt;
&lt;p&gt;Pero había un problema: el precio. Cuando solo quería probarlo, experimentar, jugar un rato&amp;hellip; el coste de la licencia me echaba para atrás. No podía justificar el gasto solo para &amp;ldquo;curiosear&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Pues bien, &lt;strong&gt;acaban de anunciar que NativePHP for Mobile v3 es completamente gratuito&lt;/strong&gt;. Open Source, licencia MIT, gratis para siempre.&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: Cuando la IA empieza a mejorarse a sí misma</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;Hace poco, Addy Osmani publicó un artículo que me dio mucho en qué pensar: &lt;em&gt;&amp;ldquo;Self-Improving Coding Agents&amp;rdquo;&lt;/em&gt;. La idea es simple pero potente: &lt;strong&gt;agentes que no solo ejecutan tareas, sino que mejoran su propio rendimiento con el tiempo&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Esto no es ciencia ficción. Es algo que está pasando ya, ahora mismo, en 2026. Y tiene implicaciones profundas para el futuro del desarrollo de software y, por extensión, para todas las profesiones.&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>¿Estamos subcontratando nuestro pensamiento? Reflexiones sobre IA y cognición</title><link>https://antoniocortes.com/estamos-subcontratando-nuestro-pensamiento/</link><pubDate>Sat, 31 Jan 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/estamos-subcontratando-nuestro-pensamiento/</guid><description>&lt;p&gt;Últimamente vengo siguiendo una discusión que me tiene bastante preocupado: &lt;strong&gt;hasta qué punto estamos delegando nuestro pensamiento a la IA&lt;/strong&gt;. No es una pregunta abstracta o filosófica, es algo muy real que estoy viendo día a día en nuestra profesión y en la sociedad en general.&lt;/p&gt;
&lt;p&gt;Hace poco leí un artículo de Erik Johannes Husom titulado &lt;em&gt;&amp;ldquo;Outsourcing thinking&amp;rdquo;&lt;/em&gt; que, entre otras cosas, discute el concepto de &lt;em&gt;&amp;ldquo;lump of cognition fallacy&amp;rdquo;&lt;/em&gt; (la falacia de la suma de cognición). La idea es que, igual que hay una falacia económica que dice que hay una cantidad fija de trabajo que hacer, algunos creen que hay una cantidad fija de pensamiento que hacer, y que si las máquinas piensan por nosotros, simplemente pensaremos sobre otras cosas.&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>Cuando Claude planea tu ruta en Marte: NASA usa IA para Perseverance</title><link>https://antoniocortes.com/2026/01/31/cuando-claude-planea-tu-ruta-en-marte-nasa-usa-ia-para-perseverance/</link><pubDate>Sat, 31 Jan 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2026/01/31/cuando-claude-planea-tu-ruta-en-marte-nasa-usa-ia-para-perseverance/</guid><description>&lt;p&gt;Hace unos días leí una noticia que me dejó pensando rato largo. No es que sea la primera vez que oigo de IA en el espacio, pero sí es la primera vez que leo sobre Claude planeando rutas en Marte. Y lo mejor: funcionó.&lt;/p&gt;
&lt;p&gt;La NASA ha estado usando Anthropic&amp;rsquo;s Claude para planear las rutas del rover Perseverance en Marte. Sí, has leído bien: un modelo de lenguaje generando rutas de navegación para un rover que está a 225 millones de kilómetros de distancia.&lt;/p&gt;</description></item><item><title>Cuando la curiosidad se encuentra con Go: TinyEMU-Go y el arte de portar un emulador con IA</title><link>https://antoniocortes.com/2026/01/31/cuando-la-curiosidad-se-encuentra-con-go-tinyemu-go-y-el-arte-de-portar-un-emulador-con-ia/</link><pubDate>Sat, 31 Jan 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2026/01/31/cuando-la-curiosidad-se-encuentra-con-go-tinyemu-go-y-el-arte-de-portar-un-emulador-con-ia/</guid><description>&lt;p&gt;Hace unos días me topé con un artículo que me dejó literalmente con la boca abierta. No es que sea nuevo - en realidad es de enero de 2026, pero bueno, a veces llega tarde a mi radar - pero la combinación de tecnologías y la historia detrás me parecen fascinantes.&lt;/p&gt;
&lt;p&gt;Se trata de &lt;strong&gt;TinyEMU-Go&lt;/strong&gt;: un emulador de RISC-V escrito completamente en Go, portado desde C usando Claude. Y lo mejor: puedes ejecutar un Linux completo con un solo comando.&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>Laravel Fuse: Circuit Breaker para 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;Acaba de anunciarse en Laracon India 2026 un paquete interesante: &lt;strong&gt;Laravel Fuse&lt;/strong&gt;. Es un circuit breaker implementado como middleware para jobs de Laravel Queue, y resuelve un problema que todos los que trabajamos con servicios externos hemos tenido alguna vez.&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/post/2026/01/2026-01-31-claude-nasa-mars-rover/</link><pubDate>Sat, 31 Jan 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2026/01/2026-01-31-claude-nasa-mars-rover/</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/post/2026/01/tinyemu-go-curiosity-riscv-emulation/</link><pubDate>Sat, 31 Jan 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2026/01/tinyemu-go-curiosity-riscv-emulation/</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>Cuando la IA nos desempodera: patrones preocupantes en el uso real de Claude</title><link>https://antoniocortes.com/2026/01/30/cuando-la-ia-nos-desempodera-patrones-preocupantes-en-el-uso-real-de-claude/</link><pubDate>Fri, 30 Jan 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2026/01/30/cuando-la-ia-nos-desempodera-patrones-preocupantes-en-el-uso-real-de-claude/</guid><description>&lt;p&gt;Hace unos días Anthropic publicó un paper que me ha dado mucho en qué pensar. Se titula &amp;ldquo;Disempowerment patterns in real-world AI usage&amp;rdquo; y analiza, por primera vez a gran escala, cómo las interacciones con IA pueden estar disminuyendo nuestra capacidad de juicio autónomo.&lt;/p&gt;
&lt;p&gt;Y no, no estamos hablando de escenarios de ciencia ficción tipo &amp;ldquo;Skynet toma el control&amp;rdquo;. Estamos hablando de algo mucho más sutil y, quizás por eso, más peligroso: la cesión voluntaria de nuestro juicio crítico a un sistema de IA.&lt;/p&gt;</description></item><item><title>MCPHero: El puente entre MCP y las librerías tradicionales de IA</title><link>https://antoniocortes.com/mcphero-puente-mcp-libs-ia/</link><pubDate>Fri, 30 Jan 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/mcphero-puente-mcp-libs-ia/</guid><description>&lt;p&gt;Últimamente estoy siguiendo de cerca todo lo que rodea al &lt;strong&gt;protocolo MCP&lt;/strong&gt; (Model Context Protocol), y hace poco me encontré con un proyecto que tiene bastante sentido: &lt;strong&gt;MCPHero&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;La realidad es que aunque MCP está pegando fuerte, muchas librerías de IA &amp;ldquo;tradicionales&amp;rdquo; como &lt;code&gt;openai&lt;/code&gt; o &lt;code&gt;google-genai&lt;/code&gt; siguen sin soporte nativo para MCP. Solo soportan tool/function calls. MCPHero viene a solucionar precisamente esto: hacer de puente entre servidores MCP y estas librerías.&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/post/2026/01/2026-01-30-ai-disempowerment-patterns/</link><pubDate>Fri, 30 Jan 2026 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2026/01/2026-01-30-ai-disempowerment-patterns/</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>Laravel Boost v2 y las nuevas Skills: En mi lista de tareas para probar</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;Hace pocos días se lanzó &lt;strong&gt;Laravel Boost v2.0&lt;/strong&gt; y, como buen curioso que soy de todo lo que rodea al ecosistema de Laravel, no he podido evitar perder un buen rato leyendo sobre las novedades. La verdad es que hay una feature que tiene especialmente mi atención: el sistema de &lt;strong&gt;Skills&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Cinco principios para usar IA profesionalmente (sin volverse loco)</title><link>https://antoniocortes.com/2025/07/23/cinco-principios-para-usar-ia-profesionalmente-sin-volverse-loco/</link><pubDate>Wed, 23 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2025/07/23/cinco-principios-para-usar-ia-profesionalmente-sin-volverse-loco/</guid><description>&lt;p&gt;Hace unos días leí un artículo de &lt;a href="https://dominiek.substack.com/p/the-5-principles-of-using-ai-professionally"&gt;Dominiek sobre los 5 principios para usar IA profesionalmente&lt;/a&gt; y me encontré asintiendo constantemente. Después de años viendo llegar y evolucionar tecnologías, la IA me genera las mismas sensaciones que tuve con otras &amp;ldquo;revoluciones&amp;rdquo;: entusiasmo mezclado con una necesaria dosis de escepticismo.&lt;/p&gt;
&lt;p&gt;El artículo de Dominiek me resonó especialmente porque describe perfectamente lo que estamos viviendo: un mundo donde la IA se está metiendo en todo, pero no siempre de la manera más útil o sensata.&lt;/p&gt;</description></item><item><title>Five principles for using AI professionally (without going crazy)</title><link>https://antoniocortes.com/en/post/2025/07/cinco-principios-para-usar-ia-profesionalmente/</link><pubDate>Wed, 23 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2025/07/cinco-principios-para-usar-ia-profesionalmente/</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>IA Local en Raspberry Pi 5 con Ollama: Tu servidor de IA privado en casa</title><link>https://antoniocortes.com/2025/07/21/ia-local-en-raspberry-pi-5-con-ollama-tu-servidor-de-ia-privado-en-casa/</link><pubDate>Mon, 21 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2025/07/21/ia-local-en-raspberry-pi-5-con-ollama-tu-servidor-de-ia-privado-en-casa/</guid><description>&lt;p&gt;Hace unos meses me topé con algo que realmente me llamó la atención: la posibilidad de tener mi propio &amp;ldquo;ChatGPT&amp;rdquo; funcionando en casa, sin enviar datos a ningún lado, usando únicamente un Raspberry Pi 5. Suena demasiado bueno para ser verdad, ¿no?&lt;/p&gt;
&lt;p&gt;Pues resulta que con &lt;strong&gt;Ollama&lt;/strong&gt; y un Pi 5 es perfectamente posible montar un servidor de IA local que funciona sorprendentemente bien. Te cuento mi experiencia y cómo puedes hacerlo tú también.&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/post/2025/07/ia-local-raspberry-pi-5-ollama/</link><pubDate>Mon, 21 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2025/07/ia-local-raspberry-pi-5-ollama/</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: Almacenamiento vectorial nativo en la nube</title><link>https://antoniocortes.com/2025/07/17/amazon-s3-vectors-almacenamiento-vectorial-nativo-en-la-nube/</link><pubDate>Thu, 17 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2025/07/17/amazon-s3-vectors-almacenamiento-vectorial-nativo-en-la-nube/</guid><description>&lt;p&gt;Amazon ha dado un paso importante en el mundo de la inteligencia artificial con el lanzamiento de &lt;strong&gt;S3 Vectors&lt;/strong&gt;, el primer servicio de almacenamiento en la nube con soporte nativo para vectores a gran escala. Esta novedad promete reducir hasta un 90% los costes de subida, almacenamiento y consulta de datos vectoriales.&lt;/p&gt;
&lt;h2 id="qué-son-los-vectores-y-por-qué-nos-importan"&gt;¿Qué son los vectores y por qué nos importan?&lt;/h2&gt;
&lt;p&gt;Los vectores son representaciones numéricas de datos no estructurados (texto, imágenes, audio, video) generados por modelos de embedding. Son la base de las aplicaciones de IA generativa que necesitan encontrar similitudes entre datos usando métricas de distancia.&lt;/p&gt;</description></item><item><title>Amazon S3 Vectors: Native vector storage in the cloud</title><link>https://antoniocortes.com/en/post/2025/07/amazon-s3-vectors/</link><pubDate>Thu, 17 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2025/07/amazon-s3-vectors/</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: simplificando la documentación de contenedores</title><link>https://antoniocortes.com/2025/07/15/docker-pushrm-simplificando-la-documentaci%C3%B3n-de-contenedores/</link><pubDate>Tue, 15 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2025/07/15/docker-pushrm-simplificando-la-documentaci%C3%B3n-de-contenedores/</guid><description>&lt;p&gt;Hace unos días, trabajando con Claude Code, me topé con una herramienta que lleva bastante tiempo en el ecosistema Docker pero que no conocía: &lt;strong&gt;docker pushrm&lt;/strong&gt;. Y la verdad es que me ha sorprendido lo útil que resulta para algo tan simple como mantener sincronizada la documentación de tus repositorios de contenedores.&lt;/p&gt;
&lt;h2 id="el-problema-que-resuelve"&gt;El problema que resuelve&lt;/h2&gt;
&lt;p&gt;Cualquiera que haya trabajado con Docker Hub, Quay o Harbor conoce el típico flujo: actualizas el README de tu proyecto en GitHub, construyes y pusheas tu imagen, pero&amp;hellip; el README del registro de contenedores sigue desactualizado. Tienes que ir manualmente al navegador, copiar y pegar el contenido, y hacer el update manualmente.&lt;/p&gt;</description></item><item><title>Docker pushrm: simplifying container documentation</title><link>https://antoniocortes.com/en/post/2025/07/docker_pushrm_automatizacion_documentacion_15_julio_2025/</link><pubDate>Tue, 15 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2025/07/docker_pushrm_automatizacion_documentacion_15_julio_2025/</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/post/2025/07/claude_code_avanzado/</link><pubDate>Sun, 13 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2025/07/claude_code_avanzado/</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/post/2025/07/programacion_agentica_claude/</link><pubDate>Sun, 13 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2025/07/programacion_agentica_claude/</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>Claude Code Avanzado: Tips, trucos y comandos personalizados para maximizar tu productividad</title><link>https://antoniocortes.com/2025/07/13/claude-code-avanzado-tips-trucos-y-comandos-personalizados-para-maximizar-tu-productividad/</link><pubDate>Sun, 13 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2025/07/13/claude-code-avanzado-tips-trucos-y-comandos-personalizados-para-maximizar-tu-productividad/</guid><description>&lt;p&gt;Después de mi &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;anterior artículo sobre programación agéntica&lt;/a&gt;, he estado investigando más sobre técnicas avanzadas para usar Claude Code de forma realmente productiva. Como programador con 30 años de experiencia, he visto muchas herramientas prometedoras que al final no cumplían sus promesas. Pero Claude Code, cuando se usa correctamente, está siendo un game-changer real.&lt;/p&gt;
&lt;h2 id="más-allá-de-lo-básico-la-diferencia-entre-jugar-y-trabajar-en-serio"&gt;Más allá de lo básico: La diferencia entre jugar y trabajar en serio&lt;/h2&gt;
&lt;p&gt;Una cosa es usar Claude Code para experimentos o proyectos personales, y otra muy distinta es integrarlo en un flujo de trabajo profesional. Para proyectos serios, necesitas un enfoque diferente:&lt;/p&gt;</description></item><item><title>Programación Agéntica con Claude: Mi experiencia práctica desarrollando con IA</title><link>https://antoniocortes.com/2025/07/13/programaci%C3%B3n-ag%C3%A9ntica-con-claude-mi-experiencia-pr%C3%A1ctica-desarrollando-con-ia/</link><pubDate>Sun, 13 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2025/07/13/programaci%C3%B3n-ag%C3%A9ntica-con-claude-mi-experiencia-pr%C3%A1ctica-desarrollando-con-ia/</guid><description>&lt;p&gt;Hace unos días me topé con un stream muy interesante donde alguien mostraba su setup para programación agéntica usando Claude Code. Después de años desarrollando &amp;ldquo;a la vieja usanza&amp;rdquo;, tengo que admitir que esto me ha resultado revelador.&lt;/p&gt;
&lt;h2 id="qué-es-la-programación-agéntica"&gt;¿Qué es la programación agéntica?&lt;/h2&gt;
&lt;p&gt;Para los que no estéis familiarizados con el término, la programación agéntica es básicamente dejar que un agente de IA (en este caso Claude) escriba código por ti. Pero no hablo de pedirle que te genere un snippet, sino de darle acceso completo a tu sistema para que pueda leer, escribir, ejecutar y debuggear código de forma autónoma.&lt;/p&gt;</description></item><item><title>NGINX njs ahora soporta QuickJS: Adiós LUA, hola JavaScript moderno</title><link>https://antoniocortes.com/2025/07/11/nginx-njs-ahora-soporta-quickjs-adi%C3%B3s-lua-hola-javascript-moderno/</link><pubDate>Fri, 11 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2025/07/11/nginx-njs-ahora-soporta-quickjs-adi%C3%B3s-lua-hola-javascript-moderno/</guid><description>&lt;h2 id="por-fin-javascript-moderno-en-nginx-y-podemos-olvidarnos-de-lua"&gt;Por fin: JavaScript moderno en NGINX (y podemos olvidarnos de LUA)&lt;/h2&gt;
&lt;p&gt;Cuando leí el &lt;a href="https://blog.nginx.org/blog/quickjs-engine-support-for-njs"&gt;anuncio de NGINX sobre el soporte QuickJS en njs&lt;/a&gt;, no pude evitar sonreír. &lt;strong&gt;Por fin puedo dejar de luchar con LUA&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Como alguien que ha configurado más servidores NGINX de los que puedo recordar (desde mi época en Arrakis hasta ahora en Carto), siempre me ha molestado la limitación de tener que usar LUA para lógica compleja en NGINX. No es que LUA sea malo, pero&amp;hellip; &lt;strong&gt;¿por qué aprender otro lenguaje cuando ya domino JavaScript?&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>NGINX njs now supports QuickJS: Goodbye LUA, hello modern JavaScript</title><link>https://antoniocortes.com/en/post/2025/07/nginx-quickjs-javascript-moderno-11-julio_2025/</link><pubDate>Fri, 11 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2025/07/nginx-quickjs-javascript-moderno-11-julio_2025/</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>Cómo construir un agente: de la idea a la realidad</title><link>https://antoniocortes.com/2025/07/10/c%C3%B3mo-construir-un-agente-de-la-idea-a-la-realidad/</link><pubDate>Thu, 10 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2025/07/10/c%C3%B3mo-construir-un-agente-de-la-idea-a-la-realidad/</guid><description>&lt;p&gt;Últimamente no para de hablarse de agentes de IA por todas partes. Cada empresa tiene su roadmap lleno de &amp;ldquo;agentes que van a revolucionar esto y aquello&amp;rdquo;, pero cuando rascas un poco, te das cuenta de que pocos han conseguido realmente construir algo útil y que funcione en producción.&lt;/p&gt;
&lt;p&gt;Hace poco leí un &lt;a href="https://blog.langchain.com/how-to-build-an-agent/"&gt;artículo muy interesante de LangChain&lt;/a&gt; sobre cómo construir agentes de forma práctica, y me ha parecido un enfoque muy sensato que quería compartir contigo. Lo he adaptado con mis propias reflexiones después de haberme dado más de un cabezazo intentando implementar sistemas &amp;ldquo;inteligentes&amp;rdquo; que al final no lo eran tanto.&lt;/p&gt;</description></item><item><title>How to build an agent: from idea to reality</title><link>https://antoniocortes.com/en/post/2025/07/como-construir-un-agente/</link><pubDate>Thu, 10 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2025/07/como-construir-un-agente/</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>La nueva promiscuidad de los desarrolladores: cuando ser infiel a las herramientas es lo normal</title><link>https://antoniocortes.com/2025/07/10/la-nueva-promiscuidad-de-los-desarrolladores-cuando-ser-infiel-a-las-herramientas-es-lo-normal/</link><pubDate>Thu, 10 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2025/07/10/la-nueva-promiscuidad-de-los-desarrolladores-cuando-ser-infiel-a-las-herramientas-es-lo-normal/</guid><description>&lt;p&gt;A lo largo de mi carrera he visto cambiar muchas cosas. He pasado de Borland a Visual Studio, de vi a Sublime Text, de Sublime a VS Code&amp;hellip; Y créeme, cada cambio fue una decisión meditada que me costó semanas de adaptación. Pero lo que está pasando ahora con las herramientas de IA es algo completamente diferente.&lt;/p&gt;
&lt;p&gt;Me he encontrado usando Copilot por la mañana, probando Cursor por la tarde, y echando un vistazo a Claude Code antes de irme a dormir. Y no soy el único. Los desarrolladores hemos pasado de ser fieles como perros a nuestras herramientas a ser&amp;hellip; bueno, promiscuos.&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/post/2025/07/promiscuidad-desarrolladores-modernos-10-julio_2025/</link><pubDate>Thu, 10 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2025/07/promiscuidad-desarrolladores-modernos-10-julio_2025/</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: ¿Herramientas o Agentes? La diferencia que cambiará cómo construimos sistemas de IA</title><link>https://antoniocortes.com/2025/07/09/a2a-vs-mcp-herramientas-o-agentes-la-diferencia-que-cambiar%C3%A1-c%C3%B3mo-construimos-sistemas-de-ia/</link><pubDate>Wed, 09 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2025/07/09/a2a-vs-mcp-herramientas-o-agentes-la-diferencia-que-cambiar%C3%A1-c%C3%B3mo-construimos-sistemas-de-ia/</guid><description>&lt;h2 id="dos-protocolos-dos-filosofías"&gt;Dos protocolos, dos filosofías&lt;/h2&gt;
&lt;p&gt;En los últimos meses han aparecido dos protocolos que van a cambiar cómo construimos sistemas de IA: &lt;strong&gt;&lt;a href="https://a2aprotocol.ai/"&gt;Agent2Agent Protocol (A2A)&lt;/a&gt;&lt;/strong&gt; de Google y &lt;strong&gt;&lt;a href="https://modelcontextprotocol.io/"&gt;Model Context Protocol (MCP)&lt;/a&gt;&lt;/strong&gt; de Anthropic. Pero aquí está el tema: &lt;strong&gt;no compiten entre sí&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Es más, tras analizar ambos durante semanas, me he dado cuenta de que entender la diferencia entre A2A y MCP es crucial para cualquiera que esté construyendo sistemas de IA más allá de simples chatbots.&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/post/2025/07/a2a_vs_mcp_herramientas_agentes_09_julio_2025/</link><pubDate>Wed, 09 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2025/07/a2a_vs_mcp_herramientas_agentes_09_julio_2025/</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: Cuando las bases de datos empiezan a hablar nuestro idioma</title><link>https://antoniocortes.com/2025/07/09/agenthouse-cuando-las-bases-de-datos-empiezan-a-hablar-nuestro-idioma/</link><pubDate>Wed, 09 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2025/07/09/agenthouse-cuando-las-bases-de-datos-empiezan-a-hablar-nuestro-idioma/</guid><description>&lt;p&gt;Hace unos meses, cuando Anthropic lanzó su protocolo MCP (Model Context Protocol), sabía que íbamos a ver integraciones interesantes entre LLMs y bases de datos. Lo que no esperaba era ver algo tan pulido y funcional como AgentHouse de ClickHouse tan pronto.&lt;/p&gt;
&lt;p&gt;Tengo planificado probar esta demo en breve, pero ya solo leyendo sobre ella me parece fascinante la idea de poder preguntarle a una base de datos cosas como &amp;ldquo;¿cuáles son los repositorios más populares de GitHub este mes?&amp;rdquo; y obtener no solo una respuesta, sino visualizaciones automáticas.&lt;/p&gt;</description></item><item><title>AgentHouse: When databases start speaking our language</title><link>https://antoniocortes.com/en/post/2025/07/agenthouse-clickhouse-mcp-09_julio_2025/</link><pubDate>Wed, 09 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2025/07/agenthouse-clickhouse-mcp-09_julio_2025/</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: Cuando fallar rápido es la estrategia inteligente</title><link>https://antoniocortes.com/2025/07/09/jest-cuando-fallar-r%C3%A1pido-es-la-estrategia-inteligente/</link><pubDate>Wed, 09 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2025/07/09/jest-cuando-fallar-r%C3%A1pido-es-la-estrategia-inteligente/</guid><description>&lt;p&gt;Trabajando en proyectos grandes, es habitual tener suites de tests que pueden tardar varios minutos en ejecutarse. Y cuando uno de esos tests falla al principio de la ejecución, es frustrante esperar a que todos los demás se ejecuten para ver el resultado completo.&lt;/p&gt;
&lt;p&gt;Jest incluye una funcionalidad que he encontrado muy útil en desarrollo: la opción &lt;code&gt;bail&lt;/code&gt;, que permite parar la ejecución de tests después de un número determinado de fallos. Es una de esas características que una vez la conoces y empiezas a usar, no entiendes cómo has vivido sin ella.&lt;/p&gt;</description></item><item><title>Jest: When Failing Fast is the Smart Strategy</title><link>https://antoniocortes.com/en/post/2025/07/jest-bail-09_julio_2025/</link><pubDate>Wed, 09 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2025/07/jest-bail-09_julio_2025/</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 elimina las barreras: ahora es gratis también para el trabajo</title><link>https://antoniocortes.com/2025/07/09/lm-studio-elimina-las-barreras-ahora-es-gratis-tambi%C3%A9n-para-el-trabajo/</link><pubDate>Wed, 09 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2025/07/09/lm-studio-elimina-las-barreras-ahora-es-gratis-tambi%C3%A9n-para-el-trabajo/</guid><description>&lt;p&gt;En mis años desarrollando software, he aprendido que las mejores herramientas son las que eliminan fricciones innecesarias. Y LM Studio acaba de dar un paso enorme en esa dirección: &lt;strong&gt;&lt;a href="https://lmstudio.ai/blog/free-for-work"&gt;ya es completamente gratuito para uso empresarial&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Esto puede sonar como &amp;ldquo;otra noticia más&amp;rdquo; de IA, pero para quienes llevamos tiempo experimentando con modelos locales, es un cambio de paradigma importante.&lt;/p&gt;
&lt;h2 id="el-problema-que-había-antes"&gt;El problema que había antes&lt;/h2&gt;
&lt;p&gt;Desde su lanzamiento en mayo de 2023, LM Studio siempre fue gratuito para uso personal. Pero si querías usarlo en tu empresa, tenías que contactar con ellos para obtener una licencia comercial. Esto creaba exactamente el tipo de fricción que mata la experimentación en equipos.&lt;/p&gt;</description></item><item><title>LM Studio Removes Barriers: Now Free for Work Too</title><link>https://antoniocortes.com/en/post/2025/07/lm-studio-gratis-trabajo-julio-2025/</link><pubDate>Wed, 09 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2025/07/lm-studio-gratis-trabajo-julio-2025/</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: cuando eliminar código es tan importante como escribirlo</title><link>https://antoniocortes.com/2025/07/08/reaper-cuando-eliminar-c%C3%B3digo-es-tan-importante-como-escribirlo/</link><pubDate>Tue, 08 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2025/07/08/reaper-cuando-eliminar-c%C3%B3digo-es-tan-importante-como-escribirlo/</guid><description>&lt;p&gt;En mi experiencia con desarrollo móvil, he visto cómo las apps se vuelven cada vez más complejas y los proyectos crecen sin control. Recuerdo perfectamente esa sensación de tener miles de líneas de código y no estar seguro de qué se estaba usando realmente y qué no.&lt;/p&gt;
&lt;p&gt;Por eso me ha llamado tanto la atención esta herramienta que ha liberado Sentry (que antes era de Emerge Tools): &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;. Un SDK de código abierto que hace algo que suena simple pero es tremendamente útil: encontrar código muerto en tus aplicaciones móviles.&lt;/p&gt;</description></item><item><title>Reaper: When Deleting Code Is as Important as Writing It</title><link>https://antoniocortes.com/en/post/2025/07/reaper-eliminar-codigo-tan-importante-como-escribirlo/</link><pubDate>Tue, 08 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2025/07/reaper-eliminar-codigo-tan-importante-como-escribirlo/</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: El prompt engineering ha crecido</title><link>https://antoniocortes.com/2025/07/05/context-engineering-el-prompt-engineering-ha-crecido/</link><pubDate>Sat, 05 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2025/07/05/context-engineering-el-prompt-engineering-ha-crecido/</guid><description>&lt;p&gt;Hace unos años, muchos investigadores de IA (incluso los más reputados) predecían que el prompt engineering sería una habilidad temporal que desaparecería rápidamente. Se equivocaron completamente. No solo no ha desaparecido, sino que &lt;strong&gt;ha evolucionado hacia algo mucho más sofisticado: Context Engineering&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Y no, no es solo otro término de moda. Es una evolución natural que refleja la complejidad real de trabajar con LLMs en aplicaciones productivas.&lt;/p&gt;
&lt;h2 id="de-prompt-engineering-a-context-engineering"&gt;De prompt engineering a context engineering&lt;/h2&gt;
&lt;p&gt;El problema con el término &amp;ldquo;prompt engineering&amp;rdquo; es que mucha gente lo confunde con &lt;strong&gt;blind prompting&lt;/strong&gt; - simplemente escribir una pregunta en ChatGPT y esperar un resultado. Eso no es ingeniería, es usar una herramienta.&lt;/p&gt;</description></item><item><title>Context Engineering: Prompt Engineering Has Grown Up</title><link>https://antoniocortes.com/en/post/2025/context-engineering-el-prompt-engineering-ha-crecido/</link><pubDate>Sat, 05 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2025/context-engineering-el-prompt-engineering-ha-crecido/</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: El bundle ha vuelto</title><link>https://antoniocortes.com/2025/07/05/deno-2.4-el-bundle-ha-vuelto/</link><pubDate>Sat, 05 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2025/07/05/deno-2.4-el-bundle-ha-vuelto/</guid><description>&lt;p&gt;Deno 2.4 acaba de ser liberado, y debo admitir que me ha sorprendido gratamente. No solo por la cantidad de características nuevas, sino por una en particular que muchos creíamos que no volvería: &lt;strong&gt;&lt;code&gt;deno bundle&lt;/code&gt; ha regresado&lt;/strong&gt;. Y esta vez, para quedarse.&lt;/p&gt;
&lt;p&gt;Esta versión viene cargada de mejoras que van desde importar archivos de texto directamente hasta observabilidad estable con OpenTelemetry. Vamos a ver qué nos trae esta release.&lt;/p&gt;
&lt;h2 id="el-regreso-triunfal-de-deno-bundle"&gt;El regreso triunfal de &lt;code&gt;deno bundle&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Para los que llevamos tiempo con Deno, &lt;code&gt;deno bundle&lt;/code&gt; fue una de esas características que usábamos constantemente hasta que &lt;a href="https://github.com/denoland/deno/issues/11073"&gt;fue deprecada en 2021&lt;/a&gt;. El equipo de Deno admitió que el bundling es un problema complejo y que no podían hacerlo bien.&lt;/p&gt;</description></item><item><title>Deno 2.4: The Bundle is Back</title><link>https://antoniocortes.com/en/post/2025/deno-24-el-bundle-ha-vuelto/</link><pubDate>Sat, 05 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2025/deno-24-el-bundle-ha-vuelto/</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: El XPath que necesitábamos para JSON</title><link>https://antoniocortes.com/2025/07/05/jsonpath-el-xpath-que-necesit%C3%A1bamos-para-json/</link><pubDate>Sat, 05 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2025/07/05/jsonpath-el-xpath-que-necesit%C3%A1bamos-para-json/</guid><description>&lt;p&gt;He visto cómo ciertos estándares y herramientas se convierten en imprescindibles cuando trabajas con datos. Y si hay algo que hemos aprendido en estos años es que &lt;strong&gt;JSON está en todas partes&lt;/strong&gt;: APIs, logs, configuraciones, bases de datos NoSQL&amp;hellip; La pregunta ya no es si trabajarás con JSON, sino cuándo te enfrentarás a esa estructura anidada de 15 niveles que te hace suspirar.&lt;/p&gt;
&lt;h2 id="el-problema-que-todos-hemos-vivido"&gt;El problema que todos hemos vivido&lt;/h2&gt;
&lt;p&gt;¿Cuántas veces has tenido que escribir algo como esto?&lt;/p&gt;</description></item><item><title>JSONPath: The XPath We Needed for JSON</title><link>https://antoniocortes.com/en/post/2025/jsonpath-el-xpath-que-necesitabamos-para-json/</link><pubDate>Sat, 05 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2025/jsonpath-el-xpath-que-necesitabamos-para-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 hacia el futuro</title><link>https://antoniocortes.com/2025/07/05/php-8.5.0-alpha-1-pipeline-hacia-el-futuro/</link><pubDate>Sat, 05 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2025/07/05/php-8.5.0-alpha-1-pipeline-hacia-el-futuro/</guid><description>&lt;p&gt;La primera versión alpha de PHP 8.5 acaba de ser liberada, y debo confesar que me tiene más emocionado que las últimas versiones. No es solo por las mejoras técnicas (que son muchas), sino porque &lt;strong&gt;PHP 8.5 introduce características que van a cambiar la forma en que escribimos código&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Y cuando digo &amp;ldquo;cambiar&amp;rdquo;, me refiero a ese tipo de cambios que, una vez que los usas, no puedes volver atrás. Como cuando apareció el null coalescing operator (&lt;code&gt;??&lt;/code&gt;) en PHP 7, o las arrow functions en PHP 7.4.&lt;/p&gt;</description></item><item><title>PHP 8.5.0 Alpha 1: Pipeline to the Future</title><link>https://antoniocortes.com/en/post/2025/php-85-alpha-1-pipeline-hacia-el-futuro/</link><pubDate>Sat, 05 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2025/php-85-alpha-1-pipeline-hacia-el-futuro/</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 en el navegador sin complicaciones</title><link>https://antoniocortes.com/2025/07/04/webassembly-agents-ai-en-el-navegador-sin-complicaciones/</link><pubDate>Fri, 04 Jul 2025 12:00:00 +0200</pubDate><guid>https://antoniocortes.com/2025/07/04/webassembly-agents-ai-en-el-navegador-sin-complicaciones/</guid><description>&lt;h2 id="mozilla-ai-vuelve-a-sorprender-agentes-de-ia-que-funcionan-con-solo-abrir-un-html"&gt;Mozilla AI vuelve a sorprender: agentes de IA que funcionan con solo abrir un HTML&lt;/h2&gt;
&lt;p&gt;Hace unos días me topé con un proyecto de Mozilla AI que me ha llamado muchísimo la atención: &lt;a href="https://blog.mozilla.ai/wasm-agents-ai-agents-running-in-your-browser/"&gt;WebAssembly Agents&lt;/a&gt;. Y es que después de 30 años viendo cómo la industria se complica la vida con dependencias, instalaciones y configuraciones, ver algo que funciona con solo &amp;ldquo;abrir un HTML&amp;rdquo; me ha hecho sonreír.&lt;/p&gt;
&lt;h3 id="el-problema-que-resuelve-y-que-todos-conocemos"&gt;El problema que resuelve (y que todos conocemos)&lt;/h3&gt;
&lt;p&gt;¿Cuántas veces habéis intentado probar un proyecto de IA y os habéis encontrado con esto?&lt;/p&gt;</description></item><item><title>WebAssembly Agents: AI in the Browser Without Complications</title><link>https://antoniocortes.com/en/post/2025/webassembly-agents-mozilla-ai/</link><pubDate>Fri, 04 Jul 2025 12:00:00 +0200</pubDate><guid>https://antoniocortes.com/en/post/2025/webassembly-agents-mozilla-ai/</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/post/2025/baidu-ai-search-paradigm-multi-agentes/</link><pubDate>Fri, 04 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2025/baidu-ai-search-paradigm-multi-agentes/</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>Baidu y el nuevo paradigma de búsqueda con multi-agentes: cuando la IA aprende a colaborar</title><link>https://antoniocortes.com/2025/07/04/baidu-y-el-nuevo-paradigma-de-b%C3%BAsqueda-con-multi-agentes-cuando-la-ia-aprende-a-colaborar/</link><pubDate>Fri, 04 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2025/07/04/baidu-y-el-nuevo-paradigma-de-b%C3%BAsqueda-con-multi-agentes-cuando-la-ia-aprende-a-colaborar/</guid><description>&lt;p&gt;Después de muchos años trabajando con sistemas de toda índole, he visto cómo la búsqueda de información ha evolucionado desde simples bases de datos hasta los sofisticados sistemas de hoy. Pero lo que acaban de proponer los investigadores de Baidu me ha llamado especialmente la atención, y creo que marca un antes y un después en cómo pensamos sobre la recuperación inteligente de información.&lt;/p&gt;
&lt;h2 id="el-problema-que-todos-conocemos-pero-no-siempre-admitimos"&gt;El problema que todos conocemos (pero no siempre admitimos)&lt;/h2&gt;
&lt;p&gt;Si has trabajado con sistemas RAG (Retrieval-Augmented Generation), sabes que funcionan bastante bien para preguntas directas. Pero cuando te enfrentas a consultas que requieren varios pasos de razonamiento, comparar información de múltiples fuentes, o manejar datos contradictorios&amp;hellip; ahí es donde la cosa se complica. Y mucho.&lt;/p&gt;</description></item><item><title>LLMs en Ingeniería de Software: Reality Check de 2025</title><link>https://antoniocortes.com/2025/07/03/llms-en-ingenier%C3%ADa-de-software-reality-check-de-2025/</link><pubDate>Thu, 03 Jul 2025 10:00:00 +0200</pubDate><guid>https://antoniocortes.com/2025/07/03/llms-en-ingenier%C3%ADa-de-software-reality-check-de-2025/</guid><description>&lt;h2 id="el-hype-vs-la-realidad-reflexiones-de-un-desarrollador-con-30-años-de-guerra"&gt;El hype vs la realidad: reflexiones de un desarrollador con 30 años de guerra&lt;/h2&gt;
&lt;p&gt;Esta mañana me he topado con una charla que me ha hecho reflexionar bastante sobre todo este revuelo que hay montado con la IA y el desarrollo de software. El ponente, con una dosis saludable de escepticismo, hace un &amp;ldquo;reality check&amp;rdquo; sobre las afirmaciones grandilocuentes que estamos escuchando por todas partes.&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;La charla completa que ha inspirado estas reflexiones. Vale la pena verla entera.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>LLMs in Software Engineering: 2025 Reality Check</title><link>https://antoniocortes.com/en/post/2025/llms-ingenieria-software-reality-check-2025/</link><pubDate>Thu, 03 Jul 2025 10:00:00 +0200</pubDate><guid>https://antoniocortes.com/en/post/2025/llms-ingenieria-software-reality-check-2025/</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: el tool que hace que Cloudflare Tunnels sea finalmente usable (y por qué lo necesitábamos)</title><link>https://antoniocortes.com/2025/07/03/moley-el-tool-que-hace-que-cloudflare-tunnels-sea-finalmente-usable-y-por-qu%C3%A9-lo-necesit%C3%A1bamos/</link><pubDate>Thu, 03 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2025/07/03/moley-el-tool-que-hace-que-cloudflare-tunnels-sea-finalmente-usable-y-por-qu%C3%A9-lo-necesit%C3%A1bamos/</guid><description>&lt;h2 id="el-problema-que-todos-tenemos-pero-solucionamos-mal"&gt;El problema que todos tenemos (pero solucionamos mal)&lt;/h2&gt;
&lt;p&gt;Como DevOps Manager, paso más tiempo del que debería configurando formas para que el equipo pueda &lt;strong&gt;mostrar su trabajo en desarrollo&lt;/strong&gt;. Demos para clientes, webhooks para testing, APIs temporales para integraciones&amp;hellip; siempre necesitamos exponer localhost al mundo.&lt;/p&gt;
&lt;p&gt;Las opciones tradicionales son un dolor:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ngrok&lt;/strong&gt;: Funciona, pero URLs feas, límites en el plan gratuito, y cada reinicio genera una URL nueva&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;localtunnel&lt;/strong&gt;: Inestable, URLs que expiran, y a menudo bloqueado por firewalls corporativos&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SSH tunneling&lt;/strong&gt;: Requiere servidores propios, configuración manual, y conocimiento de redes&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cloudflare Tunnels manuales&lt;/strong&gt;: Potente pero&amp;hellip; Dios, la configuración manual es infernal&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Y entonces descubrí &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>Moley: The Tool That Makes Cloudflare Tunnels Finally Usable (and Why We Needed It)</title><link>https://antoniocortes.com/en/post/2025/moley-cloudflare-tunnels-simplificado-03_julio_2025/</link><pubDate>Thu, 03 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2025/moley-cloudflare-tunnels-simplificado-03_julio_2025/</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): El HTTP de los agentes de IA</title><link>https://antoniocortes.com/2025/07/02/agent-communication-protocol-acp-el-http-de-los-agentes-de-ia/</link><pubDate>Wed, 02 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2025/07/02/agent-communication-protocol-acp-el-http-de-los-agentes-de-ia/</guid><description>&lt;h2 id="otro-protocolo-más-que-promete-cambiarlo-todo"&gt;Otro protocolo más que promete cambiarlo todo&lt;/h2&gt;
&lt;p&gt;Cuando IBM Research anunció el &lt;strong&gt;Agent Communication Protocol (ACP)&lt;/strong&gt; como parte del proyecto BeeAI, mi primera reacción fue la habitual: &lt;em&gt;&amp;ldquo;Ah, otro protocolo universal más&amp;rdquo;&lt;/em&gt;. Con casi 30 años en esto, he visto demasiados &amp;ldquo;estándares definitivos&amp;rdquo; que acabaron en el olvido.&lt;/p&gt;
&lt;p&gt;Pero hay algo diferente en ACP que me hizo prestar atención: &lt;strong&gt;no promete resolver todos los problemas del mundo&lt;/strong&gt;. Simplemente se enfoca en uno muy específico: hacer que agentes de IA de diferentes frameworks puedan hablar entre sí. Y lo hace de una manera que realmente tiene sentido.&lt;/p&gt;</description></item><item><title>Agent Communication Protocol (ACP): The HTTP of AI Agents</title><link>https://antoniocortes.com/en/post/2025/agent-communication-protocol-acp-02_julio_2025/</link><pubDate>Wed, 02 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2025/agent-communication-protocol-acp-02_julio_2025/</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/post/2025/cloudflare-verified-bots-criptografia-02_julio_2025/</link><pubDate>Wed, 02 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2025/cloudflare-verified-bots-criptografia-02_julio_2025/</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>Cloudflare vuelve a innovar: autenticación criptográfica para bots (el fin de los user-agents falsos)</title><link>https://antoniocortes.com/2025/07/02/cloudflare-vuelve-a-innovar-autenticaci%C3%B3n-criptogr%C3%A1fica-para-bots-el-fin-de-los-user-agents-falsos/</link><pubDate>Wed, 02 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2025/07/02/cloudflare-vuelve-a-innovar-autenticaci%C3%B3n-criptogr%C3%A1fica-para-bots-el-fin-de-los-user-agents-falsos/</guid><description>&lt;h2 id="el-problema-que-todos-conocemos-pero-fingimos-que-no-existe"&gt;El problema que todos conocemos (pero fingimos que no existe)&lt;/h2&gt;
&lt;p&gt;Como persona que gestiona infraestructuras web desde hace décadas, he visto demasiados bots fingiendo ser lo que no son. &lt;strong&gt;User-Agent: &amp;ldquo;Mozilla/5.0 (Windows NT 10.0; Win64; x64)&amp;rdquo;&lt;/strong&gt; cuando en realidad es un scraper chino aspirando tu contenido a las 3 de la mañana.&lt;/p&gt;
&lt;p&gt;Los métodos tradicionales para identificar bots legítimos han sido, seamos honestos, &lt;strong&gt;patéticos&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Rangos de IP&lt;/strong&gt;: Que cambian, se comparten, o se spoofean&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Headers User-Agent&lt;/strong&gt;: Que cualquiera puede falsificar en una línea de código&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reverse DNS&lt;/strong&gt;: Que funciona hasta que no funciona&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Hoy Cloudflare anunció que está integrando &lt;strong&gt;HTTP Message Signatures&lt;/strong&gt; directamente en su programa Verified Bots. Y después de leer los detalles técnicos, tengo que admitir algo: &lt;strong&gt;esto puede cambiar las reglas del juego definitivamente&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>El 'AI-Native Software Engineer': Entre el hype y la realidad práctica</title><link>https://antoniocortes.com/2025/07/02/el-ai-native-software-engineer-entre-el-hype-y-la-realidad-pr%C3%A1ctica/</link><pubDate>Wed, 02 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2025/07/02/el-ai-native-software-engineer-entre-el-hype-y-la-realidad-pr%C3%A1ctica/</guid><description>&lt;h2 id="una-reflexión-necesaria-sobre-el-ai-native-engineer"&gt;Una reflexión necesaria sobre el &amp;ldquo;AI-Native Engineer&amp;rdquo;&lt;/h2&gt;
&lt;p&gt;He leído el &lt;a href="https://addyo.substack.com/p/the-ai-native-software-engineer"&gt;artículo de Addyo&lt;/a&gt; sobre el &amp;ldquo;AI-Native Software Engineer&amp;rdquo; y, como Principal Backend Engineer que lleva años viendo promesas tecnológicas ir y venir, tengo opiniones &lt;strong&gt;bastante sinceras&lt;/strong&gt; al respecto. No todas son cómodas de escuchar.&lt;/p&gt;
&lt;p&gt;He visto suficientes &amp;ldquo;revoluciones&amp;rdquo; como para separar el grano de la paja. &lt;strong&gt;Y aquí hay mucho de ambos&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id="lo-que-está-funcionando-de-verdad"&gt;Lo que está funcionando (de verdad)&lt;/h2&gt;
&lt;h3 id="1-ia-como-copiloto-no-como-piloto"&gt;&lt;strong&gt;1. IA como copiloto, no como piloto&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;La metáfora del artículo sobre tratar la IA como un &amp;ldquo;programador junior disponible 24/7&amp;rdquo; es &lt;strong&gt;acertada&lt;/strong&gt;. En mi experiencia trabajando con equipos, he visto developers usar GitHub Copilot y Claude de manera efectiva para:&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/post/2025/mcp-para-escepticos/</link><pubDate>Wed, 02 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2025/mcp-para-escepticos/</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>MCP para escépticos: Por qué el Model Context Protocol vale la pena (aunque no lo parezca)</title><link>https://antoniocortes.com/2025/07/02/mcp-para-esc%C3%A9pticos-por-qu%C3%A9-el-model-context-protocol-vale-la-pena-aunque-no-lo-parezca/</link><pubDate>Wed, 02 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2025/07/02/mcp-para-esc%C3%A9pticos-por-qu%C3%A9-el-model-context-protocol-vale-la-pena-aunque-no-lo-parezca/</guid><description>&lt;h2 id="confesión-de-un-escéptico-convertido"&gt;Confesión de un escéptico convertido&lt;/h2&gt;
&lt;p&gt;Cuando Anthropic anunció el &lt;strong&gt;Model Context Protocol (MCP)&lt;/strong&gt; en noviembre de 2024, mi primera reacción fue: &lt;em&gt;&amp;ldquo;Ah, otro protocolo más que promete resolver todos los problemas de integración&amp;rdquo;&lt;/em&gt;. Como DevOps Manager que ha visto nacer y morir docenas de &amp;ldquo;estándares universales&amp;rdquo;, tengo razones para ser escéptico.&lt;/p&gt;
&lt;p&gt;Pero después de varios meses viendo cómo MCP se ha adoptado masivamente - &lt;strong&gt;OpenAI lo integró en marzo 2025, Google DeepMind en abril&lt;/strong&gt; - decidí investigar más allá del hype. Y tengo que admitir algo: &lt;strong&gt;estaba equivocado&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/post/2025/ai-native-engineer-realidad/</link><pubDate>Wed, 02 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2025/ai-native-engineer-realidad/</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>C.V. de Antonio Cortés AKA DrZippie</title><link>https://antoniocortes.com/drzippie/</link><pubDate>Tue, 01 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/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;Desarrollador con más de 30 años de experiencia trabajando en proyectos de todos los tamaños, con un &amp;ldquo;toque&amp;rdquo; de sistemas. Me siento cómodo trabajando tanto en tareas creativas/visuales como en tareas técnicas.&lt;/p&gt;
&lt;p&gt;Me encanta programar, no importa el lenguaje, pero tengo el extraño vicio de utilizar más el papel y bolígrafos de colores que directamente el teclado.&lt;/p&gt;
&lt;p&gt;El haber trabajado con muchos y diferentes Sistemas operativos, Bases de datos, Lenguajes de programación y con la casuística de cada uno, me ha llevado a tener una serie de pautas y premisas antes de echarle mano a un proyecto:&lt;/p&gt;</description></item><item><title>Claude Code Hooks: Automation and Customization of Development Workflows</title><link>https://antoniocortes.com/en/post/2025/claude_code_hooks_automatizacion_01_julio_2025/</link><pubDate>Tue, 01 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2025/claude_code_hooks_automatizacion_01_julio_2025/</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>Claude Code Hooks: Automatización y Personalización de Workflows de Desarrollo</title><link>https://antoniocortes.com/2025/07/01/claude-code-hooks-automatizaci%C3%B3n-y-personalizaci%C3%B3n-de-workflows-de-desarrollo/</link><pubDate>Tue, 01 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2025/07/01/claude-code-hooks-automatizaci%C3%B3n-y-personalizaci%C3%B3n-de-workflows-de-desarrollo/</guid><description>&lt;p&gt;Con la evolución constante de las herramientas de desarrollo impulsadas por IA, &lt;strong&gt;Claude Code&lt;/strong&gt; ha introducido una funcionalidad revolucionaria: &lt;strong&gt;Hooks&lt;/strong&gt;. Esta característica permite a los desarrolladores personalizar y automatizar comportamientos específicos en el ciclo de vida de Claude Code, transformando sugerencias en código ejecutable que funciona de manera determinística.&lt;/p&gt;
&lt;p&gt;Los hooks representan un salto cualitativo en la personalización de herramientas de IA para desarrollo, permitiendo que cada equipo y desarrollador adapte Claude Code a sus necesidades específicas y estándares de proyecto.&lt;/p&gt;</description></item><item><title>Cloudflare acaba de cambiar las reglas del juego con 'Pay per Crawl' (y era hora)</title><link>https://antoniocortes.com/2025/07/01/cloudflare-acaba-de-cambiar-las-reglas-del-juego-con-pay-per-crawl-y-era-hora/</link><pubDate>Tue, 01 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2025/07/01/cloudflare-acaba-de-cambiar-las-reglas-del-juego-con-pay-per-crawl-y-era-hora/</guid><description>&lt;h2 id="content-independence-day-el-día-que-la-web-dijo-ya-basta"&gt;&amp;ldquo;Content Independence Day&amp;rdquo;: el día que la web dijo &amp;ldquo;ya basta&amp;rdquo;&lt;/h2&gt;
&lt;p&gt;Hoy, 1 de julio de 2025, Cloudflare declaró oficialmente el &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; con el lanzamiento de &lt;strong&gt;&amp;ldquo;Pay per Crawl&amp;rdquo;&lt;/strong&gt;, su nueva herramienta que permite a los propietarios de sitios web cobrar a los crawlers de IA por acceder a su contenido. Como DevOps Manager que gestiona infraestructuras web diariamente, puedo decir que &lt;strong&gt;era hora&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Y es que los números no mienten: mientras Google mantiene una relación de 18 crawls por cada referral que envía (que ya es brutal comparado con los 6:1 de hace seis meses), OpenAI tiene un ratio de &lt;strong&gt;1,500:1&lt;/strong&gt; y Anthropic llega a los &lt;strong&gt;73,000:1&lt;/strong&gt;. Básicamente, están aspirando todo nuestro contenido sin devolver ni una migaja de tráfico.&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/post/2025/cloudflare-pay-per-crawl/</link><pubDate>Tue, 01 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2025/cloudflare-pay-per-crawl/</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>Por qué me fascina la ordenación distribuida (y por qué debería fascinarte a ti también)</title><link>https://antoniocortes.com/2025/07/01/por-qu%C3%A9-me-fascina-la-ordenaci%C3%B3n-distribuida-y-por-qu%C3%A9-deber%C3%ADa-fascinarte-a-ti-tambi%C3%A9n/</link><pubDate>Tue, 01 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2025/07/01/por-qu%C3%A9-me-fascina-la-ordenaci%C3%B3n-distribuida-y-por-qu%C3%A9-deber%C3%ADa-fascinarte-a-ti-tambi%C3%A9n/</guid><description>&lt;h2 id="una-revelación-en-forma-de-algoritmo"&gt;Una revelación en forma de algoritmo&lt;/h2&gt;
&lt;p&gt;Gracias a un artículo de &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; que me llegó esta semana, he estado reflexionando sobre algo que me parece &lt;strong&gt;curioso y simple&lt;/strong&gt; a la vez: cómo ordenar datasets masivos de manera distribuida. Y sabes qué? Estos patrones son tan elegantes que se pueden aplicar a muchísimos otros problemas que enfrentamos día a día.&lt;/p&gt;
&lt;p&gt;Como desarrollador que ha pasado de JavaScript a PHP, luego Python, y ahora está completamente inmerso en Golang, me llama la atención cómo ciertos patrones trascienden lenguajes y frameworks. La ordenación distribuida es uno de esos casos donde la &lt;strong&gt;arquitectura importa más que la implementación&lt;/strong&gt;.&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/post/2025/walmart_futuro_agentico_ia_1_julio_2025/</link><pubDate>Tue, 01 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2025/walmart_futuro_agentico_ia_1_julio_2025/</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>Walmart y el futuro agéntico: Cómo el gigante retail está revolucionando las compras con agentes de IA autónomos</title><link>https://antoniocortes.com/2025/07/01/walmart-y-el-futuro-ag%C3%A9ntico-c%C3%B3mo-el-gigante-retail-est%C3%A1-revolucionando-las-compras-con-agentes-de-ia-aut%C3%B3nomos/</link><pubDate>Tue, 01 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2025/07/01/walmart-y-el-futuro-ag%C3%A9ntico-c%C3%B3mo-el-gigante-retail-est%C3%A1-revolucionando-las-compras-con-agentes-de-ia-aut%C3%B3nomos/</guid><description>&lt;p&gt;El futuro de las compras está aquí, y Walmart está liderando una revolución silenciosa que cambiará para siempre la forma en que interactuamos con el retail. Mientras muchas empresas siguen experimentando con ChatGPT y herramientas básicas de IA generativa, el gigante de Arkansas ha dado un salto cuántico hacia la &lt;strong&gt;IA Agéntica&lt;/strong&gt; (Agentic AI), desarrollando sistemas autónomos que no solo recomiendan productos, sino que actúan, deciden y ejecutan tareas completas por sí mismos.&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/post/2025/sistemas-ordenacion-distribuida/</link><pubDate>Tue, 01 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2025/sistemas-ordenacion-distribuida/</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: Revolución en Datos Geoespaciales para el Analytics Moderno</title><link>https://antoniocortes.com/2025/06/30/apache-iceberg-v3-revoluci%C3%B3n-en-datos-geoespaciales-para-el-analytics-moderno/</link><pubDate>Mon, 30 Jun 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2025/06/30/apache-iceberg-v3-revoluci%C3%B3n-en-datos-geoespaciales-para-el-analytics-moderno/</guid><description>&lt;h1 id="apache-iceberg-v3-revolución-en-datos-geoespaciales-para-el-analytics-moderno"&gt;Apache Iceberg v3: Revolución en Datos Geoespaciales para el Analytics Moderno&lt;/h1&gt;
&lt;p&gt;La reciente ratificación de la especificación Apache Iceberg v3 marca un hito significativo en el ecosistema de datos abiertos, especialmente en el ámbito de los &lt;strong&gt;datos geoespaciales&lt;/strong&gt;. Esta actualización no solo consolida a Iceberg como el estándar líder en formatos de tabla abiertos, sino que introduce capacidades geoespaciales nativas que prometen transformar cómo manejamos datos de ubicación y mapeo a gran escala.&lt;/p&gt;</description></item><item><title>Apache Iceberg v3: Revolution in Geospatial Data for Modern Analytics</title><link>https://antoniocortes.com/en/post/2025/apache_iceberg_v3_geoespacial_30_junio_2025/</link><pubDate>Mon, 30 Jun 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2025/apache_iceberg_v3_geoespacial_30_junio_2025/</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: Análisis completo de las características revolucionarias que transformarán el desarrollo de aplicaciones Laravel</title><link>https://antoniocortes.com/2025/06/30/filament-v4-beta-an%C3%A1lisis-completo-de-las-caracter%C3%ADsticas-revolucionarias-que-transformar%C3%A1n-el-desarrollo-de-aplicaciones-laravel/</link><pubDate>Mon, 30 Jun 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2025/06/30/filament-v4-beta-an%C3%A1lisis-completo-de-las-caracter%C3%ADsticas-revolucionarias-que-transformar%C3%A1n-el-desarrollo-de-aplicaciones-laravel/</guid><description>&lt;p&gt;La &lt;strong&gt;Filament v4 Beta&lt;/strong&gt; ha llegado oficialmente, y es sin duda la actualización más ambiciosa y completa en la historia de este framework. Después de explorar en detalle todas las nuevas características, puedo afirmar que esta versión representa un salto cuántico en términos de rendimiento, facilidad de uso y capacidades de desarrollo.&lt;/p&gt;
&lt;p&gt;En este análisis exhaustivo, vamos a explorar cada una de las nuevas características de Filament v4, explicando no solo qué es nuevo, sino también cómo estas mejoras pueden transformar tu flujo de trabajo y las posibilidades de tus aplicaciones.&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/post/2025/filament_v4_beta_caracteristicas_completas_30_junio_2025/</link><pubDate>Mon, 30 Jun 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2025/filament_v4_beta_caracteristicas_completas_30_junio_2025/</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>Idempotencia en Laravel: Cómo Evitar Duplicados en tus APIs con Elegancia</title><link>https://antoniocortes.com/2025/06/30/idempotencia-en-laravel-c%C3%B3mo-evitar-duplicados-en-tus-apis-con-elegancia/</link><pubDate>Mon, 30 Jun 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2025/06/30/idempotencia-en-laravel-c%C3%B3mo-evitar-duplicados-en-tus-apis-con-elegancia/</guid><description>&lt;h1 id="idempotencia-en-laravel-cómo-evitar-duplicados-en-tus-apis-con-elegancia"&gt;Idempotencia en Laravel: Cómo Evitar Duplicados en tus APIs con Elegancia&lt;/h1&gt;
&lt;p&gt;En el desarrollo de APIs modernas, uno de los desafíos más críticos es garantizar que las operaciones no se ejecuten múltiples veces de forma accidental. Imagina un usuario que realiza un pago y, por problemas de conectividad, hace clic varias veces en el botón &amp;ldquo;Pagar&amp;rdquo;. Sin las medidas adecuadas, podrías procesar múltiples pagos por la misma transacción. Aquí es donde entra en juego la &lt;strong&gt;idempotencia&lt;/strong&gt;.&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/post/2025/idempotencia_laravel_30_junio_2025/</link><pubDate>Mon, 30 Jun 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2025/idempotencia_laravel_30_junio_2025/</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/post/2025/filament_v4_beta_29_junio_2025/</link><pubDate>Sun, 29 Jun 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2025/filament_v4_beta_29_junio_2025/</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>Todo sobre el lanzamiento de Filament v4 Beta: Recursos anidados, autenticación multi-factor y mucho más</title><link>https://antoniocortes.com/2025/06/29/todo-sobre-el-lanzamiento-de-filament-v4-beta-recursos-anidados-autenticaci%C3%B3n-multi-factor-y-mucho-m%C3%A1s/</link><pubDate>Sun, 29 Jun 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2025/06/29/todo-sobre-el-lanzamiento-de-filament-v4-beta-recursos-anidados-autenticaci%C3%B3n-multi-factor-y-mucho-m%C3%A1s/</guid><description>&lt;p&gt;El equipo de &lt;strong&gt;Filament&lt;/strong&gt; ha anunciado emocionantes detalles sobre el próximo lanzamiento de &lt;strong&gt;Filament v4 Beta&lt;/strong&gt;, y sin duda es la versión más esperada hasta la fecha. Filament v4 es el lanzamiento más grande y repleto de características que Filament haya tenido nunca, superando incluso a la masiva v3 que requirió más de 100 versiones menores.&lt;/p&gt;
&lt;h2 id="las-características-más-destacadas-de-filament-v4"&gt;Las características más destacadas de Filament v4&lt;/h2&gt;
&lt;h3 id="recursos-anidados-nested-resources"&gt;Recursos Anidados (Nested Resources)&lt;/h3&gt;
&lt;p&gt;Una de las solicitudes más longevas de la comunidad finalmente se hace realidad. Los recursos anidados permiten operar sobre un recurso de Filament dentro del contexto de un recurso padre.&lt;/p&gt;</description></item><item><title>Effect TS: La biblioteca que está revolucionando la programación funcional en TypeScript</title><link>https://antoniocortes.com/2025/06/22/effect-ts-la-biblioteca-que-est%C3%A1-revolucionando-la-programaci%C3%B3n-funcional-en-typescript/</link><pubDate>Sun, 22 Jun 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2025/06/22/effect-ts-la-biblioteca-que-est%C3%A1-revolucionando-la-programaci%C3%B3n-funcional-en-typescript/</guid><description>&lt;p&gt;Durante mucho tiempo, TypeScript ha carecido de una &lt;strong&gt;biblioteca estándar robusta&lt;/strong&gt;. Mientras que otros lenguajes como Rust, Go o Python ofrecen herramientas estándar para el manejo de errores, concurrencia y efectos secundarios, los desarrolladores de TypeScript hemos tenido que recurrir a múltiples bibliotecas especializadas. &lt;strong&gt;Effect TS&lt;/strong&gt; está cambiando esto al ofrecer una solución unificada y potente para el desarrollo de aplicaciones TypeScript modernas.&lt;/p&gt;
&lt;h2 id="qué-es-effect-ts"&gt;¿Qué es Effect TS?&lt;/h2&gt;
&lt;p&gt;Effect es una poderosa biblioteca de TypeScript diseñada para ayudar a los desarrolladores a crear fácilmente programas complejos, síncronos y asíncronos. Inspirada en &lt;strong&gt;ZIO&lt;/strong&gt; de Scala, Effect trae los principios de la programación funcional a TypeScript de una manera práctica y accesible.&lt;/p&gt;</description></item><item><title>Effect TS: The Library Revolutionizing Functional Programming in TypeScript</title><link>https://antoniocortes.com/en/post/2025/effect_ts_22_junio_2025/</link><pubDate>Sun, 22 Jun 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2025/effect_ts_22_junio_2025/</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: La herramienta que revoluciona el scaffolding con YAML y te ahorra horas de desarrollo</title><link>https://antoniocortes.com/2025/06/20/laravel-blueprint-la-herramienta-que-revoluciona-el-scaffolding-con-yaml-y-te-ahorra-horas-de-desarrollo/</link><pubDate>Fri, 20 Jun 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2025/06/20/laravel-blueprint-la-herramienta-que-revoluciona-el-scaffolding-con-yaml-y-te-ahorra-horas-de-desarrollo/</guid><description>&lt;p&gt;¿Cuántas veces has comenzado un proyecto Laravel creando manualmente modelos, controladores, migraciones, factories, form requests y tests uno por uno? Si eres como la mayoría de desarrolladores Laravel, probablemente has perdido incontables horas en estas tareas repetitivas que, aunque necesarias, no aportan valor directo a la lógica de negocio de tu aplicación.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Laravel Blueprint&lt;/strong&gt; está cambiando completamente este paradigma. Esta herramienta de generación de código, creada por Jason McCreary (el mismo genio detrás de Laravel Shift), permite generar múltiples componentes de Laravel desde un único archivo YAML legible y expresivo. En este análisis profundo, exploraremos cómo Blueprint puede transformar tu flujo de desarrollo y por qué está ganando tracción en la comunidad Laravel.&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/post/2025/laravel_blueprint_scaffolding_yaml_20_junio_2025/</link><pubDate>Fri, 20 Jun 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2025/laravel_blueprint_scaffolding_yaml_20_junio_2025/</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>Descubriendo el mundo de la programación GIS con Python: Una inmersión completa en el curso de Qiusheng Wu</title><link>https://antoniocortes.com/2025/06/15/descubriendo-el-mundo-de-la-programaci%C3%B3n-gis-con-python-una-inmersi%C3%B3n-completa-en-el-curso-de-qiusheng-wu/</link><pubDate>Sun, 15 Jun 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2025/06/15/descubriendo-el-mundo-de-la-programaci%C3%B3n-gis-con-python-una-inmersi%C3%B3n-completa-en-el-curso-de-qiusheng-wu/</guid><description>&lt;p&gt;En el mundo actual, los &lt;strong&gt;datos geoespaciales&lt;/strong&gt; están en todas partes. Desde aplicaciones de mapas en nuestros teléfonos hasta análisis climáticos globales, la capacidad de trabajar con información geográfica se ha vuelto una habilidad fundamental para desarrolladores, científicos de datos y analistas. Recientemente he tenido la oportunidad de explorar el excepcional recurso educativo &lt;strong&gt;&amp;ldquo;Introduction to GIS Programming&amp;rdquo;&lt;/strong&gt; del Dr. Qiusheng Wu, y debo decir que es, sin duda, uno de los materiales más completos y accesibles que he encontrado para adentrarse en este fascinante campo.&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/post/2025/gis_programming_curso_15_junio_2025/</link><pubDate>Sun, 15 Jun 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2025/gis_programming_curso_15_junio_2025/</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/post/2025/path_aliases_nodejs_typescript_8_junio_2025/</link><pubDate>Sun, 08 Jun 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2025/path_aliases_nodejs_typescript_8_junio_2025/</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>Guía completa para configurar Path Aliases en Node.js con TypeScript: Adiós a los '../../../' infinitos</title><link>https://antoniocortes.com/2025/06/-infinitos/</link><pubDate>Sun, 08 Jun 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2025/06/-infinitos/</guid><description>&lt;p&gt;¿Estás cansado de ver imports como &lt;code&gt;import Logger from &amp;quot;../../../utils/logger&amp;quot;&lt;/code&gt; en tus proyectos de Node.js? Si desarrollas aplicaciones con estructuras de carpetas complejas, seguramente te has encontrado con el &lt;strong&gt;laberinto de puntos y barras&lt;/strong&gt; que pueden llegar a ser los imports relativos. Afortunadamente, TypeScript ofrece una solución elegante: los &lt;strong&gt;Path Aliases&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;En esta guía completa aprenderás a configurar path aliases en proyectos Node.js con TypeScript, eliminando para siempre esos imports confusos y mejorando significativamente la legibilidad y mantenibilidad de tu código.&lt;/p&gt;</description></item><item><title>STORM: El sistema de IA que revoluciona la escritura de artículos largos simulando el proceso de investigación humano</title><link>https://antoniocortes.com/2025/05/18/storm-el-sistema-de-ia-que-revoluciona-la-escritura-de-art%C3%ADculos-largos-simulando-el-proceso-de-investigaci%C3%B3n-humano/</link><pubDate>Sun, 18 May 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2025/05/18/storm-el-sistema-de-ia-que-revoluciona-la-escritura-de-art%C3%ADculos-largos-simulando-el-proceso-de-investigaci%C3%B3n-humano/</guid><description>&lt;p&gt;La creación de artículos largos y fundamentados ha sido tradicionalmente una tarea compleja que requiere habilidades avanzadas de investigación y escritura. Recientemente, investigadores de Stanford han presentado &lt;strong&gt;STORM&lt;/strong&gt; (&lt;em&gt;Synthesis of Topic Outlines through Retrieval and Multi-perspective Question Asking&lt;/em&gt;), un sistema revolucionario que automatiza el proceso de escritura de artículos tipo Wikipedia desde cero, y los resultados son realmente impresionantes.&lt;/p&gt;
&lt;p&gt;En este análisis detallado, exploraremos cómo STORM está transformando la manera en que pensamos sobre la escritura asistida por IA y por qué este enfoque podría cambiar para siempre la forma en que creamos contenido informativo.&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/post/2025/storm_sistema_ia_escritura_articulos_18_mayo_2025/</link><pubDate>Sun, 18 May 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2025/storm_sistema_ia_escritura_articulos_18_mayo_2025/</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: El Futuro Asíncrono de la Gestión de Cookies en JavaScript</title><link>https://antoniocortes.com/2025/05/15/cookiestore-api-el-futuro-as%C3%ADncrono-de-la-gesti%C3%B3n-de-cookies-en-javascript/</link><pubDate>Thu, 15 May 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2025/05/15/cookiestore-api-el-futuro-as%C3%ADncrono-de-la-gesti%C3%B3n-de-cookies-en-javascript/</guid><description>&lt;h1 id="cookiestore-api-el-futuro-asíncrono-de-la-gestión-de-cookies-en-javascript"&gt;CookieStore API: El Futuro Asíncrono de la Gestión de Cookies en JavaScript&lt;/h1&gt;
&lt;p&gt;Durante décadas, los desarrolladores web hemos dependido de la antigua y limitada interfaz &lt;code&gt;document.cookie&lt;/code&gt; para manejar cookies en el navegador. Esta API síncrona, con su sintaxis peculiar de cadenas de texto, ha sido fuente de frustración y errores. Pero eso está cambiando con la llegada de &lt;strong&gt;CookieStore API&lt;/strong&gt;, una interfaz moderna y asíncrona que promete revolucionar cómo interactuamos with cookies.&lt;/p&gt;</description></item><item><title>CookieStore API: The Async Future of Cookie Management in JavaScript</title><link>https://antoniocortes.com/en/post/2025/cookiestore_api_gestion_cookies_15_mayo_2025/</link><pubDate>Thu, 15 May 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2025/cookiestore_api_gestion_cookies_15_mayo_2025/</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>Política de Privacidad</title><link>https://antoniocortes.com/privacy/</link><pubDate>Tue, 21 Jan 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/privacy/</guid><description>&lt;h1 id="política-de-privacidad"&gt;Política de Privacidad&lt;/h1&gt;
&lt;p&gt;Última actualización: 21 de enero de 2025&lt;/p&gt;
&lt;h2 id="información-general"&gt;Información General&lt;/h2&gt;
&lt;p&gt;Esta política de privacidad describe cómo &lt;strong&gt;Antonio Cortés&lt;/strong&gt; (en adelante, &amp;ldquo;nosotros&amp;rdquo;, &amp;ldquo;nuestro&amp;rdquo; o &amp;ldquo;el sitio&amp;rdquo;) recopila, usa y protege la información que usted proporciona al utilizar este sitio web &lt;strong&gt;antoniocortes.com&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Nos comprometemos a proteger su privacidad. Si le pedimos que proporcione cierta información por la cual puede ser identificado al usar este sitio web, puede estar seguro de que solo se utilizará de acuerdo con esta declaración de privacidad.&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>Compartir código entre aplicaciones usando Yarn Symlinks: Una alternativa simple a los monorepos complejos</title><link>https://antoniocortes.com/2024/07/15/compartir-c%C3%B3digo-entre-aplicaciones-usando-yarn-symlinks-una-alternativa-simple-a-los-monorepos-complejos/</link><pubDate>Mon, 15 Jul 2024 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2024/07/15/compartir-c%C3%B3digo-entre-aplicaciones-usando-yarn-symlinks-una-alternativa-simple-a-los-monorepos-complejos/</guid><description>&lt;p&gt;¿Te has encontrado alguna vez duplicando utilidades, tipos de datos o componentes entre diferentes aplicaciones? Si trabajas en múltiples proyectos que necesitan compartir código común, seguramente has enfrentado el dilema de cómo gestionar este código compartido de manera eficiente.&lt;/p&gt;
&lt;p&gt;Recientemente, mientras exploraba diferentes enfoques para compartir código entre aplicaciones, me topé con una solución elegante y simple que muchos desarrolladores pasan por alto: &lt;strong&gt;los symlinks de Yarn&lt;/strong&gt;. Esta técnica puede ser la respuesta perfecta si buscas una alternativa liviana a las configuraciones complejas de monorepos.&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/post/2024/yarn_symlinks_compartir_codigo_15_julio_2024/</link><pubDate>Mon, 15 Jul 2024 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2024/yarn_symlinks_compartir_codigo_15_julio_2024/</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>Recursos 11 de marzo 2022</title><link>https://antoniocortes.com/2022/03/11/recursos-11-de-marzo-2022/</link><pubDate>Fri, 11 Mar 2022 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2022/03/11/recursos-11-de-marzo-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 March 11, 2022</title><link>https://antoniocortes.com/en/post/2022/recursos_11_marzo_2022/</link><pubDate>Fri, 11 Mar 2022 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2022/recursos_11_marzo_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>Recursos Semana 13 de Mayo</title><link>https://antoniocortes.com/2019/05/13/recursos-semana-13-de-mayo/</link><pubDate>Mon, 13 May 2019 11:01:16 +0200</pubDate><guid>https://antoniocortes.com/2019/05/13/recursos-semana-13-de-mayo/</guid><description>&lt;h2 id="tailwindcss-ya-tiene-su-versión-1x"&gt;&lt;a href="https://tailwindcss.com/"&gt;Tailwindcss ya tiene su versión 1.x&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;El genial Utility-first framework de CSS ha liberado su versión 1.0, hay cambios, como la nomenclatura de colores, fuentes, posicionamiento, &amp;hellip; Para actualizarnos deberemos seguir la &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;Ejemplos de múltiples Dashboards que nos ayudarán a diseñar y definir, de forma visual, nuestros dashboards y paneles de control para mostrar la información más clara y directa.&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;Si estais preparando alguna certificación de Azure, no está de más tener a mano esta lista de recursos organizado por cada uno de los exámenes&lt;/p&gt;</description></item><item><title>Resources Week of May 13</title><link>https://antoniocortes.com/en/post/2019/recursos_semana_2_mayo/</link><pubDate>Mon, 13 May 2019 11:01:16 +0200</pubDate><guid>https://antoniocortes.com/en/post/2019/recursos_semana_2_mayo/</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>Migración a Netlify</title><link>https://antoniocortes.com/2019/05/13/migraci%C3%B3n-a-netlify/</link><pubDate>Mon, 13 May 2019 10:35:41 +0200</pubDate><guid>https://antoniocortes.com/2019/05/13/migraci%C3%B3n-a-netlify/</guid><description>&lt;p&gt;En una nueva fase de esta web, y a modo de PoC, se ha migrado a &lt;a href="https://www.netlify.com/"&gt;Netlify&lt;/a&gt; y actualizado el repo para Hugo 0.5.5, eliminando el theme como elemento externo.&lt;/p&gt;
&lt;p&gt;Eso significa que puede que tengamos algun error o algún problema temporal con la visualización, certificados o similares.&lt;/p&gt;</description></item><item><title>Migration to Netlify</title><link>https://antoniocortes.com/en/post/2019/migrated_to_netlify/</link><pubDate>Mon, 13 May 2019 10:35:41 +0200</pubDate><guid>https://antoniocortes.com/en/post/2019/migrated_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/post/2018/06/29---certbot/</link><pubDate>Fri, 29 Jun 2018 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2018/06/29---certbot/</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>Certbot y ngnix - renovación y alta sin parada de servicio</title><link>https://antoniocortes.com/2018/06/29/certbot-y-ngnix-renovaci%C3%B3n-y-alta-sin-parada-de-servicio/</link><pubDate>Fri, 29 Jun 2018 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2018/06/29/certbot-y-ngnix-renovaci%C3%B3n-y-alta-sin-parada-de-servicio/</guid><description>&lt;p&gt;A la hora de instalar/renovar let&amp;rsquo;s encrypt en un servidor web con nginx tenemos que decidir si lo hacemos con un servidor temporal, lo que implica que debemos parar el servicio web temporalmente, o indicando cual es el DocumentRoot del servidor web para el dominio.&lt;/p&gt;
&lt;p&gt;Esto último implica que la web o servicio tenga un DocumentRoot &amp;ldquo;público&amp;rdquo;, y eso no es siempre sencillo cuando estamos utilizando, por ejemplo una aplicación en Python, Java, Go y el nginx como proxy.&lt;/p&gt;</description></item><item><title>API Documentation Library</title><link>https://antoniocortes.com/en/post/2017/11/api_documentation_gallery/</link><pubDate>Mon, 27 Nov 2017 15:53:40 +0100</pubDate><guid>https://antoniocortes.com/en/post/2017/11/api_documentation_gallery/</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>API Documentation Library</title><link>https://antoniocortes.com/2017/11/27/api-documentation-library/</link><pubDate>Mon, 27 Nov 2017 15:53:40 +0100</pubDate><guid>https://antoniocortes.com/2017/11/27/api-documentation-library/</guid><description>&lt;p&gt;Un recursos interesante para tener a mano cuando tenemos que ponernos a documentar un 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;Donde tenemos unos ejemplos, Seleecionados, muy gráficos de como mostrar la documentación de nuestras APIs.&lt;/p&gt;
&lt;p&gt;Si sabeis de alguna interesante no hay más que hacer un pull request a:&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/post/2017/11/20171125-echarts/</link><pubDate>Sun, 26 Nov 2017 21:38:52 +0100</pubDate><guid>https://antoniocortes.com/en/post/2017/11/20171125-echarts/</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>echarts 3</title><link>https://antoniocortes.com/2017/11/26/echarts-3/</link><pubDate>Sun, 26 Nov 2017 21:38:52 +0100</pubDate><guid>https://antoniocortes.com/2017/11/26/echarts-3/</guid><description>&lt;p&gt;Gracias al tweet de &lt;a href="https://twitter.com/juantomas"&gt;@juantomas&lt;/a&gt; me he encontrado con una lista de 9 librerías para &amp;ldquo;Charts&amp;rdquo; en JavaScript: &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>Probando Tailwind CSS</title><link>https://antoniocortes.com/2017/11/26/probando-tailwind-css/</link><pubDate>Sun, 26 Nov 2017 17:43:32 +0100</pubDate><guid>https://antoniocortes.com/2017/11/26/probando-tailwind-css/</guid><description>&lt;p&gt;Esta semana he estado viendo un nuevo concepto de framework CSS, los &amp;ldquo;Utility First&amp;rdquo;, un concepto que planteaba &lt;a href="https://adamwathan.me"&gt;Adam Wathan&lt;/a&gt; en su artículo: &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>Testing Tailwind CSS</title><link>https://antoniocortes.com/en/post/2017/11/20171126-nueva-migracion/</link><pubDate>Sun, 26 Nov 2017 17:43:32 +0100</pubDate><guid>https://antoniocortes.com/en/post/2017/11/20171126-nueva-migracion/</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/post/2017/06/20170628---redhat/</link><pubDate>Wed, 28 Jun 2017 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2017/06/20170628---redhat/</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>Retomando el blog</title><link>https://antoniocortes.com/2017/06/28/retomando-el-blog/</link><pubDate>Wed, 28 Jun 2017 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2017/06/28/retomando-el-blog/</guid><description>&lt;p&gt;El día a día me ha impedido hacer muchas cosas, una de estas es tener actualizado el blog, pero no hay tiempo para todo, y al final el cansancio hace que tenga que reorganizar prioridades.&lt;/p&gt;
&lt;p&gt;Estos últimos meses he estado trabajando en la implantación de RedHat Cloudforms, Ansible Tower, &amp;hellip; por lo que ha sido mucho el Ansible que he
tenido que tocar, ya era habitual, pero últimamente es mucho más.&lt;/p&gt;</description></item><item><title>Últimas fotos en Flickr</title><link>https://antoniocortes.com/social/flickr/</link><pubDate>Sun, 28 May 2017 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/social/flickr/</guid><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>Un día descubriré lo que es la zona de confort, o no</title><link>https://antoniocortes.com/zona-de-confort/</link><pubDate>Sat, 06 Aug 2016 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/zona-de-confort/</guid><description>&lt;p&gt;Momentos de cambios, momentos de evolución, una constante en mi vida, con el 25 aniversario de la creación de la web he entrado en modo &amp;ldquo;revisión&amp;rdquo; y estoy altamente desconcertado.&lt;/p&gt;
&lt;p&gt;Llevo el mismo tiempo (25 años) haciendo cosas, disfrutando, siempre con el mismo concepto y particularidad: Disfrute y resultado, pero ya hace mucho que no es relevante (cosa que tambien es poco relevante).&lt;/p&gt;
&lt;p&gt;Me he dado cuenta que lo habitual es hacer cosas dentro de tu zona de confort, y yo nunca he tenido una ni he sabido que podía existir, de ahí que haya tocado y hecho cosas poco usuales o quizás a &amp;ldquo;destiempo&amp;rdquo;, cuando cierta tecnología se podía de moda &amp;ldquo;Buzz&amp;rdquo; hacía tiempo que no lo utilizaba porque no me aportaba lo que me aportaba otra cosa, &amp;hellip;&lt;/p&gt;</description></item><item><title>Laravel Collections: Arrays on stereoids</title><link>https://antoniocortes.com/laravel-collections/</link><pubDate>Fri, 01 Jul 2016 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/laravel-collections/</guid><description>&lt;p&gt;Laravel además de utilizar múltiples paquetes de terceros tambien es posible utilizar partes como componentes. Todos los componentes están bajo el namespace &amp;ldquo;Illuminate&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Si hay una clase realmente interesante y útil es &lt;a href="https://laravel.com/docs/5.2/collections"&gt;Collection&lt;/a&gt;, que nos permite trabajar con arrays de datos de una forma sencilla y &amp;ldquo;programática&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Para tener esta clase en nuestro proyecto solo necesitaremos el paquete illuminate/support que podremos instalar con:&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;Para mostrar algunos ejemplos utilizaremos un pequeño array con estos datos:&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>Una reflexión sin más</title><link>https://antoniocortes.com/una-reflexion-sin-mas/</link><pubDate>Sat, 07 May 2016 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/una-reflexion-sin-mas/</guid><description>&lt;p&gt;No sabría por donde empezar pero si cómo acabar esta reflexión, y es tan simple que se resumiría en dos frases, &amp;ldquo;No es país para programadores&amp;rdquo; y &amp;ldquo;Ser mediocre es más relajado y te aportará más&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Cuando uno lleva más de 20 años desarrollando y siempre se le ha llenado la boca diciendo que ha disfrutado, disfruta y disfrutará programando, en los lenguajes más extraños o comunes, con las tecnologías más peculiares y extrañas, los más punteros y los más &amp;ldquo;viejunos&amp;rdquo;, pero que cada uno en su momento y sólo para la más (en la medida de lo posible) precisa implementación, mejor debería estar callado.&lt;/p&gt;</description></item><item><title>News of the week 2016-03-27</title><link>https://antoniocortes.com/en/post/2016/20160327-novedades/</link><pubDate>Sun, 27 Mar 2016 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2016/20160327-novedades/</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>Novedades de la semana 2016-03-27</title><link>https://antoniocortes.com/2016/03/27/novedades-de-la-semana-2016-03-27/</link><pubDate>Sun, 27 Mar 2016 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2016/03/27/novedades-de-la-semana-2016-03-27/</guid><description>&lt;p&gt;Estos últimos días hemos tenido muchas novedades, artículos, informaciones, en el mundo del desarrollo y tecnología, estas son las más relevantes para mi:&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 anuncia un nuevo servicio de Machine Learning en la nube&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;: El caso Kik - left-pad de NPM y la caida crítica al &amp;ldquo;esto lo hago con un modulo/plugin/paquete/clase&amp;rdquo; de terceros&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;El caso Kik - left-pad de NPM y la caida en (oficial) &lt;/a&gt; o de como las dependencias más insignificantes nos pueden dejar realmente tirados.&lt;/p&gt;</description></item><item><title>Go en el mundo real</title><link>https://antoniocortes.com/2016/03/13/go-en-el-mundo-real/</link><pubDate>Sun, 13 Mar 2016 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2016/03/13/go-en-el-mundo-real/</guid><description>&lt;p&gt;En &lt;a href="http://www.sevilladevelopers.com"&gt;Sevilla Developers Conf 2&lt;/a&gt; comenté algunos ejemplos de quién utiliza y para que Go.&lt;/p&gt;
&lt;p&gt;Entre otros estos me han parecido interesantes, y crearé una lista un poco más grande que nos servirá para ver casos de uso reales y casos de éxito a la hora de escoger Go para determinadas soluciones.&lt;/p&gt;</description></item><item><title>Go in the real world</title><link>https://antoniocortes.com/en/post/2016/2016-03-13-go-en-el-mundo-real/</link><pubDate>Sun, 13 Mar 2016 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2016/2016-03-13-go-en-el-mundo-real/</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>Home at Homes</title><link>https://antoniocortes.com/portfolio/homeathomes/</link><pubDate>Tue, 01 Dec 2015 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/portfolio/homeathomes/</guid><description>&lt;p&gt;Sobre CakePHP gestión completa de reservas, multi-idioma para apartamentos de lujo.&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>Gestión de instalaciones</title><link>https://antoniocortes.com/portfolio/actas/</link><pubDate>Tue, 10 Nov 2015 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/portfolio/actas/</guid><description>&lt;p&gt;Gestión de Actas e instalaciones, proyectos y documentación.&lt;/p&gt;
&lt;p&gt;Desarrollado con 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>ATAS</title><link>https://antoniocortes.com/portfolio/atas/</link><pubDate>Sun, 01 Nov 2015 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/portfolio/atas/</guid><description>&lt;p&gt;Sistema de para la gestión de perfiles de usuario, habilidades, cursos y demandas de empleo mediante normalización y uso de métodos de Machine Learning&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>CBDOC</title><link>https://antoniocortes.com/portfolio/cbdoc/</link><pubDate>Sun, 01 Nov 2015 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/portfolio/cbdoc/</guid><description>&lt;p&gt;Aplicación para Android para la lectura de datos biométricos desde un dispositivo USB en Android y su uso para encriptación de contenidos.&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>Damasco (xdms)</title><link>https://antoniocortes.com/portfolio/damasco/</link><pubDate>Sun, 01 Nov 2015 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/portfolio/damasco/</guid><description>&lt;p&gt;Sistema de edición distribuido y bajo demanda desarrollado en Go, de alta disponibilidad y abierto a cualquier origen de datos.&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>Synaptica</title><link>https://antoniocortes.com/portfolio/synaptica/</link><pubDate>Sun, 01 Nov 2015 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/portfolio/synaptica/</guid><description>&lt;p&gt;Desarrollo original en CakePHP, actualmente se ha migrado a 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>Xfind</title><link>https://antoniocortes.com/portfolio/xfind/</link><pubDate>Sun, 01 Nov 2015 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/portfolio/xfind/</guid><description>&lt;p&gt;Desarrollo del interface de usuario con RiotJS con componentes base, que se extienden y generan automáticamente a partir de una descripción en Json&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/post/2015/cayle-gremlin-example/</link><pubDate>Sun, 25 Oct 2015 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2015/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>Una consulta en Gremlin para Cayley</title><link>https://antoniocortes.com/2015/10/25/cayle-gremlin-example/</link><pubDate>Sun, 25 Oct 2015 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2015/10/25/cayle-gremlin-example/</guid><description>&lt;p&gt;Desde Cayley podemos hacer consultas vía REST en dos &amp;ldquo;lenguajes&amp;rdquo;: MQL y una versión reducida de Gremlin&lt;/p&gt;
&lt;p&gt;Con el siguiente ejemplo podemos obtener los skills más habituales de personas que pertenezcan a una industria, dentro del sector &amp;ldquo;Edu&amp;rdquo;&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>Recapitulando</title><link>https://antoniocortes.com/recapitulando/</link><pubDate>Thu, 08 Oct 2015 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/recapitulando/</guid><description>&lt;p&gt;Me he puesto a ver que es lo que estoy tocando últimamente, y por no variar, es … simplemente “excéntrico”, en la suma de los elementos pero no en el uso de cada uno.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Editor de Texto&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; no me hago a el (en gran medida por su complicada integración con &lt;a href="http://www.golang.org"&gt;Go&lt;/a&gt; y &lt;a href="http://www.getgb.io"&gt;Gb&lt;/a&gt; ), y lo mismo de atom se aplica a &lt;a href="https://www.jetbrains.com/phpstorm/"&gt;PHPStorm&lt;/a&gt;.En el terminal mi editor de cabecera es &lt;a href="http://joe-editor.sourceforge.net"&gt;Joe&lt;/a&gt;  y esto tiene una explicación: mi primer editor de texto fue &lt;a href="https://es.wikipedia.org/wiki/WordStar"&gt;WordStar&lt;/a&gt; y soy un nostálgico.&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>Parece que los inicios de Go son similares para todos</title><link>https://antoniocortes.com/cuantos-recuerdos-de-mis-inicios-con-go/</link><pubDate>Wed, 07 Oct 2015 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/cuantos-recuerdos-de-mis-inicios-con-go/</guid><description>&lt;p&gt;Excepto el gorename …&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>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>Proceso de video 4K</title><link>https://antoniocortes.com/portfolio/2015/4k/</link><pubDate>Thu, 01 Oct 2015 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/portfolio/2015/4k/</guid><description>&lt;p&gt;Captura de video y proceso en tiempo real desde una cámara Point Vision &lt;a href="https://www.ptgrey.com/flea3-usb3-vision-cameras"&gt;Flea&lt;/a&gt; utilizando USB 3.&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>Sybarix (beta)</title><link>https://antoniocortes.com/portfolio/sybarix/</link><pubDate>Thu, 01 Oct 2015 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/portfolio/sybarix/</guid><description>&lt;p&gt;En desarrollo:&lt;/p&gt;</description></item><item><title>Qué me gusta de Go</title><link>https://antoniocortes.com/que-me-gusta-de-go/</link><pubDate>Sat, 25 Apr 2015 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/que-me-gusta-de-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;Siempre me ha gustado ver y probar diferentes tecnologías, y dentro de estas, como no, lenguajes de programación.&lt;/p&gt;
&lt;p&gt;Ejemplo de esto fue el uso intensivo que di en su momento, en Arrakis, a &lt;a href="http://www.rebol.com/"&gt;Rebol&lt;/a&gt; , un lenguaje multiplataforma interpretado, con todo lo que podías necesitar para realizar geniales scripts de limpieza de datos, en una sintaxis “extraña”, pero bella en su planteamiento.&lt;/p&gt;
&lt;p&gt;El caso de Go fue un poco diferente, porque al igual que me ocurrió con Angular, en su momento (hace varios años) traté de darle una oportunidad, pero toda la información y ejemplos que encontraba eran bloques de código “muy pequeño”, no veía en eso (a mirada de pájaro) que estuviese terminado, parecía un lenguaje más académico/conceptual que algo para su uso real.&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>Lista de recursos Go de la semana</title><link>https://antoniocortes.com/lista-de-recursos-go-de-la-semana/</link><pubDate>Mon, 06 Apr 2015 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/lista-de-recursos-go-de-la-semana/</guid><description>&lt;p&gt;El primero es el muy sencillo, que no limitado, sistemas de interfaces de Go.&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;El segundo, que no menos importante, dejando bien claro y mostrando el código en C# vs Go.&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;Como siempre necesitaremos algo de depuración:&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;Un proyecto, verde, pero prometedor, para (entre otros) ejecución distribuida:&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>StreamTools: Una herramienta para analizar streams</title><link>https://antoniocortes.com/streamtools-una-herramienta-para-analizar-streams/</link><pubDate>Thu, 02 Apr 2015 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/streamtools-una-herramienta-para-analizar-streams/</guid><description>&lt;p&gt;Todos los días escuchamos hablar de Big Data, IoT, Smart Data, Machine Learning, semantic data, etc. Gran parte de las veces fuera de contexto o simplemente utilizadas porque “están de moda”.&lt;/p&gt;
&lt;p&gt;Uno de los mejores ejemplos es “Big Data”, donde se habla siempre de ingentes cantidades de información, que si sistemas, plataformas, consultas, pero con el error, desde mi punto de vista, de tomar eso como información, no, no es información, son datos, datos en bruto o datos tratados, la información es la que se extrae de esos datos. Se pierden muchas veces, con el termino “Big Data” en sólo la parte de guardar ingentes cantidades de datos, replicados y en volumenes astronómicos. Eso no es “Big Data” eso es sólo hablar de una parte, la más mecánica, y la que menos aporta a lo que se busca “Información”, es sólo “almacenaje y gestión de datos”, una pata de una mesa mucho más amplia.&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>tpoinformatica.com</title><link>https://antoniocortes.com/portfolio/tpoinformatica/</link><pubDate>Wed, 01 Apr 2015 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/portfolio/tpoinformatica/</guid><description>&lt;p&gt;Plataforma de e-commerce a medida, desarrollada con PHP, MongoDB, Solr, MySQL, Gearman, Memcache y 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>Como ver si estás Logueado en WordPress desde Go</title><link>https://antoniocortes.com/como-ver-si-estas-logueado-en-wordpress-desde-go-golang/</link><pubDate>Wed, 25 Mar 2015 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/como-ver-si-estas-logueado-en-wordpress-desde-go-golang/</guid><description>&lt;p&gt;Como prueba de concepto estoy haciendo una pequeña API en Golang que, en un Apache con mod_proxy, sirve ciertos contenidos a un WordPress.&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>Comparación React vs Angular</title><link>https://antoniocortes.com/comparacion-react-vs-angular/</link><pubDate>Tue, 17 Mar 2015 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/comparacion-react-vs-angular/</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>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É</title><link>https://antoniocortes.com/portfolio/aquique_mobile/</link><pubDate>Thu, 01 Jan 2015 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/portfolio/aquique_mobile/</guid><description>&lt;p&gt;Aplicación móvil desarrollada sobre Appcelerator Titanium para Android y para 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>AQUIQUÉ (Backend)</title><link>https://antoniocortes.com/portfolio/aquique_backend/</link><pubDate>Thu, 01 Jan 2015 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/portfolio/aquique_backend/</guid><description>&lt;p&gt;Backend en PHP con el Framework Yii para la Aplicación móvil Aquiqué.&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>Stop DisplayLink driver flooding logs in OS X Yosemite</title><link>https://antoniocortes.com/stop-displaylink-driver-flooding-logs-in-yosemite/</link><pubDate>Sun, 14 Dec 2014 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/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>About ugly code</title><link>https://antoniocortes.com/about-ugly-code/</link><pubDate>Thu, 20 Nov 2014 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/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>Desarrollar es algo más que sólo usar “componentes”</title><link>https://antoniocortes.com/desarrollar-es-algo-mas-solo-usar-componentes/</link><pubDate>Fri, 30 May 2014 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/desarrollar-es-algo-mas-solo-usar-componentes/</guid><description>&lt;p&gt;Una de las conversaciones concurrentes, en las tertulias delante de una cervecita, es la de la actual tendencia, por parte de gran parte de los “desarrolladores” de no realmente programar sobre las necesidades del cliente sino simplemente utilizar módulos/componentes/plugins/…&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="uso de componentes" data-recalc-dims="1" /&gt;
 &lt;p class="wp-caption-text"&gt;
 El uso de componentes excesivos para necesidades muy simples
 &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Esto provoca que la solución final no es más que una amalgama de elementos, muchos de ellos que no fueron diseñados para esa función y otros que realmente no son necesarios,  que no hacen más que crear la sensación de que está solucionado todo pero,  como una solución “AS IS”. De estas de no tocarlas, porque no sabemos si algo puede fallar, ni como, ni porque.&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>Marina Bernal</title><link>https://antoniocortes.com/portfolio/marinabernal/</link><pubDate>Thu, 01 May 2014 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/portfolio/marinabernal/</guid><description>&lt;p&gt;Desarrollo sobre 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>Encuentros en psiquiatría</title><link>https://antoniocortes.com/portfolio/encuentros/</link><pubDate>Tue, 01 Apr 2014 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/portfolio/encuentros/</guid><description>&lt;p&gt;Desarrollo sobre 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>Plantillas de Theme my Login personalizadas</title><link>https://antoniocortes.com/plantillas-de-theme-my-login-personalizadas/</link><pubDate>Thu, 23 Jan 2014 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/plantillas-de-theme-my-login-personalizadas/</guid><description>&lt;p&gt;&lt;a href="http://wordpress.org/plugins/theme-my-login/"&gt;Theme My Login&lt;/a&gt;, es un plugin que nos permite adaptar a nuestras necesidades todos los elementos relativos al: Registro, Entrada, … de un WordPress.&lt;/p&gt;
&lt;p&gt;Dentro de la carpeta del plugin encontramos las plantillas en la carpeta “templates”, como es de rigor, no debemos modificar esas plantillas, podemos copiarlas a el raiz de nuestra plantilla y ahí modificarlas, momento a partir del cual esas plantillas serán las utilizadas por nuestra web, sin que una actualización del plugin afecte a los cambios realizados.&lt;/p&gt;</description></item><item><title>Creación de un nuevo proyecto Laravel</title><link>https://antoniocortes.com/creacion-de-un-nuevo-proyecto-laravel/</link><pubDate>Mon, 20 Jan 2014 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/creacion-de-un-nuevo-proyecto-laravel/</guid><description>&lt;p&gt;En la carpeta donde queremos iniciar el proyecto:&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>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>Firmas en Javascript</title><link>https://antoniocortes.com/firmas-en-javascript/</link><pubDate>Mon, 20 Jan 2014 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/firmas-en-javascript/</guid><description>&lt;p&gt;Si necesitamos crear firmas un sistema de captura de firmas y procesado en HTML, podemos utilizar la librería: &lt;a href="http://thomasjbradley.ca/lab/signature-pad/"&gt;signature-pad&lt;/a&gt;, una buena alternativa para crear webapps que requieran la digitalización de firmas, mediante el uso de canvas.&lt;/p&gt;</description></item><item><title>Integración de Node.js y PHP</title><link>https://antoniocortes.com/integracion-de-node-js-y-php/</link><pubDate>Mon, 20 Jan 2014 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/integracion-de-node-js-y-php/</guid><description>&lt;p&gt;En el siguiente artículo: &lt;a href="http://webandphp.com/IntegratingNode.jswithPHP"&gt;En el siguiente artículo&lt;/a&gt; , podemos ver varias formas de interactuar desde PHP con node.js, mediante websockets.&lt;/p&gt;
&lt;p&gt;El ejemplo es sobre nginx, algo de agradecer, cuando es el servidor web que utilizo para estos menesteres.&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>Como comprobar la validez de un EAN13</title><link>https://antoniocortes.com/como-comprobar-la-validez-de-un-ean13/</link><pubDate>Wed, 13 Mar 2013 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/como-comprobar-la-validez-de-un-ean13/</guid><description>&lt;p&gt;Los EAN13 están compuestos por 13 dígitos de los cuales el último es de &lt;em&gt;check&lt;/em&gt;.&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>Cocos2d x</title><link>https://antoniocortes.com/cocos2d-x/</link><pubDate>Sat, 15 Dec 2012 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/cocos2d-x/</guid><description>&lt;p&gt;A la hora de desarrollar juegos para dispositivos móviles disponemos de múltiples alternativas multiplataforma:&lt;/p&gt;</description></item><item><title>Compilar aplicaciones de Titanium Mobile desde línea de comandos</title><link>https://antoniocortes.com/compilar-aplicaciones-de-titanium-mobile-desde-linea-de-comandos/</link><pubDate>Thu, 02 Feb 2012 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/compilar-aplicaciones-de-titanium-mobile-desde-linea-de-comandos/</guid><description>&lt;p&gt;Cada uno tiene sus preferencias a la hora de editar código. Por ejemplo, para PHP utilizo Netbeans, para html Textmate, …&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>Esperando la nueva versión de Notability</title><link>https://antoniocortes.com/esperando-la-nueva-version-de-notability/</link><pubDate>Thu, 02 Feb 2012 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/esperando-la-nueva-version-de-notability/</guid><description>&lt;p&gt;Siempre he utilizado bolígrafo y papel para tomar notas, transformando mi mochila en una colección de libretas y blocs de todos los tamaños y colores.&lt;/p&gt;
&lt;p&gt;Esto ha sido así hasta que encontré varias aplicaciones, para el iPad, que permitían hacer lo mismo, escribir sobre el iPad, como si de un papel se tratase.&lt;/p&gt;
&lt;p&gt;Tras mucho buscar y probar, al final me quedo con &lt;a href="http://gingerlabs.com/cont/notability.php"&gt;Notability&lt;/a&gt;, ya que permite, además de escribir a mano, insertar imágenes, capturas de web, figuras, … y con un precio de 0’79€, increíble.&lt;/p&gt;</description></item><item><title>Estilos sólo para Ipad</title><link>https://antoniocortes.com/estilos-solo-para-ipad/</link><pubDate>Thu, 02 Feb 2012 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/estilos-solo-para-ipad/</guid><description>&lt;p&gt;Si se desea aplicar unos estilos CSS sólo para el Ipad, se puede hacer&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>Nuevas redes inalámbricas, nuevos retos para las “telecos”</title><link>https://antoniocortes.com/nuevas-redes-nuevos-retos/</link><pubDate>Sat, 29 Oct 2011 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/nuevas-redes-nuevos-retos/</guid><description>&lt;p&gt;Interesante artículo de como las empresas de telecomunicaciones deben afrontar las nuevas formas inalámbricas de conectarse a Internet.&lt;/p&gt;</description></item><item><title>El extraño caso de los rankings</title><link>https://antoniocortes.com/el-extrano-caso-de-los-rankings/</link><pubDate>Mon, 04 Jul 2011 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/el-extrano-caso-de-los-rankings/</guid><description>&lt;p&gt;Está más que visto que los más grandes ningunean a los pequeños, pero eso no quita que hay momentos en los que lo hacen dando información falsa y un enlace a la verdadera.&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>Aplicaciones Facebook sobre SSL</title><link>https://antoniocortes.com/aplicaciones-facebook-sobre-ssl/</link><pubDate>Wed, 13 Apr 2011 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/aplicaciones-facebook-sobre-ssl/</guid><description>&lt;p&gt;Hace unos días Facebook ha empezado a mostrar mensajes de error cuando se accedía a aplicaciones desde https, estando disponible para los desarrolladores, en la configuración de la aplicación, dos nuevos campos, para indicar las urls seguras (sobre https).&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>Optimizar las aplicaciones de Facebook más allá del código</title><link>https://antoniocortes.com/optimizar-las-aplicaciones-de-facebook-mas-alla-del-codigo/</link><pubDate>Sun, 13 Mar 2011 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/optimizar-las-aplicaciones-de-facebook-mas-alla-del-codigo/</guid><description>&lt;p&gt;El desarrollo de aplicaciones para Facebook nos requiere una especial optimización de estas para que funcionen en base a dos premisas muy importantes: Seguridad y rapidez.&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>¿ Lentitud en IIS con FastCGI y PHP ?</title><link>https://antoniocortes.com/%c2%bf-lentitud-en-iis-con-fastcgi-y-php/</link><pubDate>Sat, 05 Mar 2011 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/%c2%bf-lentitud-en-iis-con-fastcgi-y-php/</guid><description>&lt;p&gt;Mediante &lt;a href="http://www.iis.net/download/fastcgi"&gt;FastCGI para IIS&lt;/a&gt; podemos tener soporte para PHP sobre el servidor de Microsoft para Windows (IIS).&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>Implementar Haanga como sistema de plantillas para OpenCart</title><link>https://antoniocortes.com/implementar-haanga-como-sistema-de-plantillas-para-opencart/</link><pubDate>Sun, 31 Oct 2010 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/implementar-haanga-como-sistema-de-plantillas-para-opencart/</guid><description>&lt;p&gt;&lt;a href="http://www.opencart.com/"&gt;OpenCart&lt;/a&gt; es una plataforma de comercio electrónica hecha en php, con un desarrollo impecable, 100% MVC. Como prueba de concepto he reescrito el sistema de plantillas de &lt;a href="http://www.opencart.com/"&gt;OpenCart&lt;/a&gt; a &lt;a href="http://github.com/crodas/Haanga"&gt;Haanga&lt;/a&gt; (plantillas “Django” para PHP, über eficiente) de &lt;a href="http://crodas.org/"&gt;César Rodas&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Encuentro Viral 2</title><link>https://antoniocortes.com/encuentro-viral-2/</link><pubDate>Wed, 13 Oct 2010 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/encuentro-viral-2/</guid><description>&lt;p&gt;El próximo 23 de octubre, sábado, por la tarde, quien le apetezca puede pasarse por la sala de usos múltiples del Ayuntamiento de El Madroño (Sevilla) para charlar sobre las posibilidades abiertas por la Red para el cuidado de la salud y el ejercicio de los derechos ciudadanos.&lt;/p&gt;
&lt;p&gt;Yo daré una charla sobre &lt;a href="http://www.encuentroviral.es/EV.2/ponencia/internet-y-mundo-rural"&gt;Internet y mundo rural&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Noticia en Synaptica: &lt;a href="http://www.synaptica.es/noticia/encuentro-viral-sobre-internet-salud-y-comunidad-rural"&gt;Encuentro Viral sobre Internet, salud y comunidad rural&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Información del Evento: &lt;a href="http://www.encuentroviral.es/EV.2/index"&gt;Encuentro Viral 2&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>PHP-FPM sobre Ubuntu 8.10</title><link>https://antoniocortes.com/php-fpm-sobre-ubuntu-8-10/</link><pubDate>Wed, 05 May 2010 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/php-fpm-sobre-ubuntu-8-10/</guid><description>&lt;p&gt;Tomada la decisión de sólo desarrollar, en el caso de PHP, para la familia 5.3 o superior.&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>Singleton para PHP 5.3, y parche para 5.2</title><link>https://antoniocortes.com/singleton-para-php-5-3-y-parche-para-5-2/</link><pubDate>Wed, 05 May 2010 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/singleton-para-php-5-3-y-parche-para-5-2/</guid><description>&lt;p&gt;Mediante esta clase abstracta de php podremos crear nuestras clases simplemente extendiendo esta clase&lt;/p&gt;</description></item><item><title>Twig, el sistema de plantillas definitivo</title><link>https://antoniocortes.com/twig-el-sistema-de-plantillas-definitivo/</link><pubDate>Mon, 03 May 2010 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/twig-el-sistema-de-plantillas-definitivo/</guid><description>&lt;p&gt;Siempre he sido muy receloso a la hora de utilizar un sistema de plantillas para PHP, pero la llegada de &lt;a href="http://www.twig-project.org/"&gt;Twig&lt;/a&gt; ha sido todo un acontecimiento.&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>Bijou Victoria</title><link>https://antoniocortes.com/portfolio/bijou/</link><pubDate>Sat, 03 Apr 2010 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/portfolio/bijou/</guid><description>&lt;p&gt;Web desarrollada sobre 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>Chipiona Noticias</title><link>https://antoniocortes.com/portfolio/chipionanoticias/</link><pubDate>Sat, 03 Apr 2010 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/portfolio/chipionanoticias/</guid><description>&lt;p&gt;Web desarrollada sobre 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>English in Motion</title><link>https://antoniocortes.com/portfolio/englishinmotion/</link><pubDate>Sat, 03 Apr 2010 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/portfolio/englishinmotion/</guid><description>&lt;p&gt;Web desarrollada sobre Besbello (sobre CakePHP)&lt;/p&gt;
&lt;p&gt;Multi-idioma&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>EPIs</title><link>https://antoniocortes.com/portfolio/epis/</link><pubDate>Sat, 03 Apr 2010 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/portfolio/epis/</guid><description>&lt;p&gt;Servicio SaaS de gestión de EPIs multi-empresa, desarrollada con Laravel 5, con Firma y gestión de documentos en PDF.&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>Nuevo diseño, nuevo planteamiento</title><link>https://antoniocortes.com/nuevo-diseno-nuevo-planteamiento/</link><pubDate>Sat, 03 Apr 2010 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/nuevo-diseno-nuevo-planteamiento/</guid><description>&lt;p&gt;Ya tocaba cambiar un poco mi web.&lt;/p&gt;
&lt;p&gt;Poco a poco irá cogiendo forma, y en ella iré poniendo todos los proyectos en los que trabajo, mi portfolio, y mi colección de código que he ido creando o recopilando en los últimos años, que no son pocos.&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>Pontecesures.net</title><link>https://antoniocortes.com/portfolio/pontecesures-net/</link><pubDate>Sat, 03 Apr 2010 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/portfolio/pontecesures-net/</guid><description>&lt;p&gt;Web desarrollada sobre WordPress. Desde el año 2005&lt;/p&gt;
&lt;p&gt;Plantilla propia.&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>Portal de Gestión</title><link>https://antoniocortes.com/portfolio/asaja/</link><pubDate>Sat, 03 Apr 2010 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/portfolio/asaja/</guid><description>&lt;p&gt;Portal desarrollado en Laravel, con asistentes para generar documentación (PDFs), configurable mediante ficheros XML y/o Json&lt;/p&gt;</description></item><item><title>Actualización claves GPG repositorios Ubuntu</title><link>https://antoniocortes.com/actualizacion-claves-gpg-repositorios-ubuntu/</link><pubDate>Sat, 09 Jan 2010 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/actualizacion-claves-gpg-repositorios-ubuntu/</guid><description>&lt;p&gt;Algunas veces es posible que debamos actualizar las claves públicas de algunos repositorios de Ubuntu. Un síntoma es el siguiente error:&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>¿ Quién se la cuela a quién ?</title><link>https://antoniocortes.com/%c2%bf-quien-se-la-cuela-a-quien/</link><pubDate>Mon, 04 Jan 2010 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/%c2%bf-quien-se-la-cuela-a-quien/</guid><description>&lt;p&gt;En la web de El Mundo, tenemos un  artículo con un titular que dice: “&lt;a href="http://www.elmundo.es/elmundo/2010/01/04/union_europea/1262610678.html"&gt;Mr. Bean ‘se cuela’ en la web oficial de la presidencia española&lt;/a&gt;“.&lt;/p&gt;
&lt;p&gt;Este artículo, sin duda, es un ejemplo de la falta de rigor, y amarillismo “tecnológico” que nos inunda.&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>Iconos para desarrolladores de Android</title><link>https://antoniocortes.com/iconos-para-desarrolladores-de-android/</link><pubDate>Sun, 08 Nov 2009 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/iconos-para-desarrolladores-de-android/</guid><description>&lt;p&gt;WebAppers, nos ofrece 30 iconos, y sus fuentes para los desarrolladores de esta plataforma.&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>Wp-Answers por aNieto2k</title><link>https://antoniocortes.com/wp-answers-por-anieto2k/</link><pubDate>Sun, 08 Nov 2009 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/wp-answers-por-anieto2k/</guid><description>&lt;p&gt;aNieto2K ha creado un fabuloso plugin para wordpress que permite crear comunidades basadas en preguntas y respuestas.&lt;/p&gt;
&lt;p&gt;Más información en: &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>Imágenes generadas por ordenador</title><link>https://antoniocortes.com/impresionantes-ejemplos-en-imagenes-generadas-por-ordenador/</link><pubDate>Tue, 28 Jul 2009 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/impresionantes-ejemplos-en-imagenes-generadas-por-ordenador/</guid><description>&lt;p&gt;&lt;a href="http://abduzeedo.com/amazing-realistic-3d-computer-graphics"&gt;Paulo Antunes&lt;/a&gt; en abduzeedo nos muestra varios ejemplos de imágenes “sintéticas” que ha visto en su visita a la &lt;a href="http://www.cgsociety.org/"&gt;Computer Graphics Society&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Ampliar: &lt;a href="http://abduzeedo.com/amazing-realistic-3d-computer-graphics"&gt;Ver otras imágenes seleccionadas por 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>Nueva vida, nuevos retos</title><link>https://antoniocortes.com/nueva-vida/</link><pubDate>Fri, 29 May 2009 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/nueva-vida/</guid><description>&lt;p&gt;Hoy es un día de cambios, será el día 0 de un gran cambio.&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>Tutoriales de After Effects</title><link>https://antoniocortes.com/tutoriales-de-after-effects/</link><pubDate>Fri, 22 May 2009 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/tutoriales-de-after-effects/</guid><description>&lt;p&gt;La gente de &lt;a href="http://filmmakeriq.com"&gt;FilmMakerIQ.com&lt;/a&gt; ha creado una impresionante lista con &lt;a href="http://filmmakeriq.com/general/featured/1001-adobe-after-effects-tutorials.html"&gt;1001 tutoriales de After Effects&lt;/a&gt;. Ahora toca conseguir un poco de tiempo para ver todos los tutoriales.&lt;/p&gt;</description></item><item><title>Ver las 10 IPs con más acceso</title><link>https://antoniocortes.com/ver-las-10-ips-con-mas-acceso/</link><pubDate>Fri, 15 May 2009 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/ver-las-10-ips-con-mas-acceso/</guid><description>&lt;p&gt;Una “receta” para tener a mano:&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>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>Ahora toca el vídeo</title><link>https://antoniocortes.com/ahora-toca-el-video/</link><pubDate>Tue, 12 May 2009 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/ahora-toca-el-video/</guid><description>&lt;p&gt;Acabo de adquirir una cuenta &lt;a href="http://www.vimeo.com/drzippie"&gt;“plus” en Vimeo&lt;/a&gt;.  Esto me permitirá, de la misma forma que Flickr, subir hasta 5 GB a la semana de vídeos, sin limitaciones en si son HD o no.&lt;/p&gt;
&lt;p&gt;Ahora empezaré a montar los vídeos y aprovecharé la increible música &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; existente para utilizar como base de los vídeos.&lt;/p&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>European Accessibility Forum</title><link>https://antoniocortes.com/videos-del-european-accessibility-forum-ingles/</link><pubDate>Tue, 05 May 2009 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/videos-del-european-accessibility-forum-ingles/</guid><description>&lt;p&gt;En la siguiente dirección &lt;a href="http://vimeo.com/channels/eafraen"&gt;http://vimeo.com/channels/eafraen&lt;/a&gt; están disponibles los vídeos del &lt;strong&gt;European Accessibility Forum.&lt;/strong&gt; Son altamente recomendables, sobre todos los relativos a como amortizar los costes y la importancia de estos.&lt;/p&gt;</description></item><item><title>Que hacer ante un desastre</title><link>https://antoniocortes.com/que-hacer-ante-un-desastre/</link><pubDate>Mon, 23 Mar 2009 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/que-hacer-ante-un-desastre/</guid><description>&lt;p&gt;Siempre he dicho: ” &lt;em&gt;hay dos tipos de personas: Los que han perdido datos y los que aún no&lt;/em&gt;“.  Ante este panorama tratamos de hacer todo lo que está en nuestra mano para salvaguardar toda la información que tenemos en los ordenadores de la forma más segura.&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>Entre manos</title><link>https://antoniocortes.com/entre-mano/</link><pubDate>Mon, 22 Sep 2008 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/entre-mano/</guid><description>&lt;p&gt;Últimamente estoy liado estudiando y probando diferentes librerías y recursos:&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;Son muchos los ejemplos, trucos y “recetas” que tengo para cada uno de estos y los iré publicando para tenerlas ordenadas y localizadas y también por que seguramente serán de utilidad a otros.&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>Arrakis.com</title><link>https://antoniocortes.com/portfolio/arrakis/</link><pubDate>Mon, 01 Jan 2007 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/portfolio/arrakis/</guid><description>&lt;p&gt;Desarrollo en PHP, con 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>MorcegoCMS</title><link>https://antoniocortes.com/portfolio/morcegocms/</link><pubDate>Mon, 01 Jan 2007 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/portfolio/morcegocms/</guid><description>&lt;p&gt;MorcegoCMS es un CMS minimalista como prueba de concepto&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>SevillaPress</title><link>https://antoniocortes.com/portfolio/sevillapress/</link><pubDate>Sun, 01 Jan 2006 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/portfolio/sevillapress/</guid><description>&lt;p&gt;Desarrollo en PHP, con MongoDB.&lt;/p&gt;
&lt;p&gt;Desde el año 2006 con un desarrollo a medida y múltiples cabeceras, por las cuales se ven diferentes ediciones:&lt;/p&gt;
&lt;p&gt;Url: &lt;a href="http://www.sevillapress.com"&gt;www.sevillapress.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>App Taller</title><link>https://antoniocortes.com/portfolio/talleres/</link><pubDate>Sat, 01 Jan 2005 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/portfolio/talleres/</guid><description>&lt;p&gt;Aplicación móvil para Android e iOS para gestión de agendas y reservas de talleres, promociones y alertas desarrollada con Appcelerator Titanium.&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>Arines 7</title><link>https://antoniocortes.com/portfolio/arines7/</link><pubDate>Sat, 01 Jan 2005 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/portfolio/arines7/</guid><description>&lt;p&gt;Web desarrollada con 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>Coppelia Danza</title><link>https://antoniocortes.com/portfolio/coppelia/</link><pubDate>Sat, 01 Jan 2005 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/portfolio/coppelia/</guid><description>&lt;p&gt;Web desarrollada con 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>Encuentro Virtal</title><link>https://antoniocortes.com/portfolio/encuentroviral/</link><pubDate>Sat, 01 Jan 2005 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/portfolio/encuentroviral/</guid><description>&lt;p&gt;Web desarrollada con PHP con base de datos basada en ficheros XML.&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>I Love Chuches</title><link>https://antoniocortes.com/portfolio/ilovechuches/</link><pubDate>Sat, 01 Jan 2005 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/portfolio/ilovechuches/</guid><description>&lt;p&gt;Web desarrollada con 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>Liga Galega de Traiñeiras</title><link>https://antoniocortes.com/portfolio/lgt/</link><pubDate>Sat, 01 Jan 2005 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/portfolio/lgt/</guid><description>&lt;p&gt;Web desarrollada con Laravel para la gestión y visualización de equipos, competiciones y registro de las actas de cada prueba.&lt;/p&gt;
&lt;p&gt;Cada equipo de forma visual posiciona la tripulación en la ficha y esta es validada por el árbitro.&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>Mercavenda</title><link>https://antoniocortes.com/portfolio/mercavenda/</link><pubDate>Sat, 01 Jan 2005 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/portfolio/mercavenda/</guid><description>&lt;p&gt;Web desarrollada con 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>NovasCMS</title><link>https://antoniocortes.com/portfolio/novascms/</link><pubDate>Sat, 01 Jan 2005 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/portfolio/novascms/</guid><description>&lt;p&gt;CMS desarrollado con PHP con base de datos MongoDB y SQLite, multi dominio y con roles de edición.&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>Pilar Vera</title><link>https://antoniocortes.com/portfolio/pilarvera/</link><pubDate>Sat, 01 Jan 2005 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/portfolio/pilarvera/</guid><description>&lt;p&gt;Web desarrollada con 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>Pontecesures (App)</title><link>https://antoniocortes.com/portfolio/pontecesures-app/</link><pubDate>Sat, 01 Jan 2005 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/portfolio/pontecesures-app/</guid><description>&lt;p&gt;Aplicación móvil para Android e iOS que muestra información y alertas a partir de RSS y diferentes origenes de datos.&lt;/p&gt;
&lt;p&gt;Desarrollada con 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>Ramón Franco</title><link>https://antoniocortes.com/portfolio/ramonfranco/</link><pubDate>Sat, 01 Jan 2005 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/portfolio/ramonfranco/</guid><description>&lt;p&gt;Web multi-idioma desarrollada sobre 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>Teatro Lope de Vega</title><link>https://antoniocortes.com/portfolio/lopedevega/</link><pubDate>Sat, 01 Jan 2005 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/portfolio/lopedevega/</guid><description>&lt;p&gt;Web desarrollada con 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>TPO Informática (App)</title><link>https://antoniocortes.com/portfolio/apptpo/</link><pubDate>Sat, 01 Jan 2005 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/portfolio/apptpo/</guid><description>&lt;p&gt;Aplicación móvil para Android e iOS desarrollada con 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>We Love Flamenco</title><link>https://antoniocortes.com/portfolio/wlf/</link><pubDate>Sat, 01 Jan 2005 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/portfolio/wlf/</guid><description>&lt;p&gt;Web desarrollada con 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>