<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>AIMRAN Blog</title>
    <link>https://blog.aimran.es/en/</link>
    <description>Official blog of the AIMRAN ecosystem: practical guides on web development, artificial intelligence, developer tools, SEO and technology, by Aimran.</description>
    <language>en</language>
    <lastBuildDate>Tue, 06 Oct 2026 00:00:00 GMT</lastBuildDate>
    <atom:link href="https://blog.aimran.es/en/feed.xml" rel="self" type="application/rss+xml"/>
    <item>
      <title>Canonical and hreflang: how to implement them properly (and the mistakes that cancel them)</title>
      <link>https://blog.aimran.es/en/articles/canonical-and-hreflang-how-to-implement/</link>
      <guid isPermaLink="true">https://blog.aimran.es/en/articles/canonical-and-hreflang-how-to-implement/</guid>
      <description>What the canonical tag does, what hreflang does, how to combine them on a multilingual site with x-default, and the mistakes that make Google ignore them.</description>
      <pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate>
      <dc:creator>Aimran Oukham</dc:creator>
      <category>SEO</category>
    </item>
    <item>
      <title>Docker: the difference between an image and a container, explained with commands</title>
      <link>https://blog.aimran.es/en/articles/docker-image-vs-container/</link>
      <guid isPermaLink="true">https://blog.aimran.es/en/articles/docker-image-vs-container/</guid>
      <description>What a Docker image is, what a container is and how they relate, with the basic commands to create, list, stop and remove each one, plus the most frequent mistakes.</description>
      <pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate>
      <dc:creator>Aimran Oukham</dc:creator>
      <category>Web development</category>
    </item>
    <item>
      <title>How to undo the last commit in Git without losing work</title>
      <link>https://blog.aimran.es/en/articles/git-undo-last-commit/</link>
      <guid isPermaLink="true">https://blog.aimran.es/en/articles/git-undo-last-commit/</guid>
      <description>How to undo the last commit in Git with reset, revert and amend, which one to use when the commit is already pushed, and how to recover a commit you thought lost.</description>
      <pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate>
      <dc:creator>Aimran Oukham</dc:creator>
      <category>Web development</category>
    </item>
    <item>
      <title>How a language model works: tokens, context window and temperature</title>
      <link>https://blog.aimran.es/en/articles/how-language-models-work-tokens-context-temperature/</link>
      <guid isPermaLink="true">https://blog.aimran.es/en/articles/how-language-models-work-tokens-context-temperature/</guid>
      <description>What a token is, what the context window limits, what temperature does and why language models are confidently wrong. Explained for developers, no maths.</description>
      <pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate>
      <dc:creator>Aimran Oukham</dc:creator>
      <category>Artificial intelligence</category>
    </item>
    <item>
      <title>How to convert images to WebP (and when not to)</title>
      <link>https://blog.aimran.es/en/articles/how-to-convert-images-to-webp/</link>
      <guid isPermaLink="true">https://blog.aimran.es/en/articles/how-to-convert-images-to-webp/</guid>
      <description>What WebP is, how much it saves over JPEG and PNG, how to convert images in the browser, the terminal or Node.js, and how to serve them with picture.</description>
      <pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate>
      <dc:creator>Aimran Oukham</dc:creator>
      <category>Web development</category>
    </item>
    <item>
      <title>How to count the tokens in a prompt and estimate what a call to a language model costs</title>
      <link>https://blog.aimran.es/en/articles/how-to-count-tokens-and-estimate-prompt-cost/</link>
      <guid isPermaLink="true">https://blog.aimran.es/en/articles/how-to-count-tokens-and-estimate-prompt-cost/</guid>
      <description>Why models charge per token, how to count tokens exactly for GPT and approximately for Claude, and how to cut the cost of each call without losing quality.</description>
      <pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate>
      <dc:creator>Aimran Oukham</dc:creator>
      <category>Artificial intelligence</category>
    </item>
    <item>
      <title>How to read and write a cron expression (with examples you can copy)</title>
      <link>https://blog.aimran.es/en/articles/how-to-read-and-write-a-cron-expression/</link>
      <guid isPermaLink="true">https://blog.aimran.es/en/articles/how-to-read-and-write-a-cron-expression/</guid>
      <description>What each of the five fields of a cron expression means, what *, comma, hyphen and slash do, the mistakes that confuse most people and ready-made examples to copy.</description>
      <pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate>
      <dc:creator>Aimran Oukham</dc:creator>
      <category>Developer tools</category>
    </item>
    <item>
      <title>How to validate JSON and understand its most common errors</title>
      <link>https://blog.aimran.es/en/articles/how-to-validate-json-common-errors/</link>
      <guid isPermaLink="true">https://blog.aimran.es/en/articles/how-to-validate-json-common-errors/</guid>
      <description>JSON syntax rules according to the standard, the five mistakes behind almost every parse failure, and how to validate a file in the browser, terminal or Node.js.</description>
      <pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate>
      <dc:creator>Aimran Oukham</dc:creator>
      <category>Developer tools</category>
    </item>
    <item>
      <title>HTTP security headers: which ones to set on any website and what each does</title>
      <link>https://blog.aimran.es/en/articles/http-security-headers/</link>
      <guid isPermaLink="true">https://blog.aimran.es/en/articles/http-security-headers/</guid>
      <description>What HSTS, Content-Security-Policy, X-Content-Type-Options, X-Frame-Options, Referrer-Policy and Permissions-Policy do, with recommended values and checks.</description>
      <pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate>
      <dc:creator>Aimran Oukham</dc:creator>
      <category>Technology</category>
    </item>
    <item>
      <title>Lazy loading images in HTML: loading=&quot;lazy&quot;, fetchpriority and decoding</title>
      <link>https://blog.aimran.es/en/articles/lazy-loading-images-in-html/</link>
      <guid isPermaLink="true">https://blog.aimran.es/en/articles/lazy-loading-images-in-html/</guid>
      <description>How to enable deferred image loading with loading=&quot;lazy&quot;, why you must not apply it to the main image, and how to combine it with fetchpriority and decoding.</description>
      <pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate>
      <dc:creator>Aimran Oukham</dc:creator>
      <category>Web development</category>
    </item>
    <item>
      <title>robots.txt versus noindex: what each one does and when to use them</title>
      <link>https://blog.aimran.es/en/articles/robots-txt-vs-noindex/</link>
      <guid isPermaLink="true">https://blog.aimran.es/en/articles/robots-txt-vs-noindex/</guid>
      <description>robots.txt controls crawling and noindex controls indexing. What happens when you combine them badly, how to handle internal search and filters, and how to check it.</description>
      <pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate>
      <dc:creator>Aimran Oukham</dc:creator>
      <category>SEO</category>
    </item>
    <item>
      <title>WCAG colour contrast: how it is calculated, which ratios it requires and how to meet them</title>
      <link>https://blog.aimran.es/en/articles/wcag-colour-contrast-how-to-calculate-and-meet-it/</link>
      <guid isPermaLink="true">https://blog.aimran.es/en/articles/wcag-colour-contrast-how-to-calculate-and-meet-it/</guid>
      <description>What the contrast ratio is, how it is calculated from luminance, what levels AA and AAA require, how to measure it and the design mistakes that fail it.</description>
      <pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate>
      <dc:creator>Aimran Oukham</dc:creator>
      <category>Web development</category>
    </item>
    <item>
      <title>What are the Core Web Vitals: LCP, INP and CLS explained with thresholds</title>
      <link>https://blog.aimran.es/en/articles/what-are-core-web-vitals/</link>
      <guid isPermaLink="true">https://blog.aimran.es/en/articles/what-are-core-web-vitals/</guid>
      <description>What LCP, INP and CLS measure, which thresholds Google uses to call them good, how they are assessed with real user data and what usually breaks each metric.</description>
      <pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate>
      <dc:creator>Aimran Oukham</dc:creator>
      <category>SEO</category>
    </item>
    <item>
      <title>What a JWT is, what is inside it and why decoding it is not validating it</title>
      <link>https://blog.aimran.es/en/articles/what-is-a-jwt-decoding-is-not-validating/</link>
      <guid isPermaLink="true">https://blog.aimran.es/en/articles/what-is-a-jwt-decoding-is-not-validating/</guid>
      <description>Anatomy of a JSON Web Token (header, payload and signature), which claims it carries, how to read it, the common security mistakes and where to store it.</description>
      <pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate>
      <dc:creator>Aimran Oukham</dc:creator>
      <category>Technology</category>
    </item>
    <item>
      <title>What an AI agent is and how it differs from a chatbot</title>
      <link>https://blog.aimran.es/en/articles/what-is-an-ai-agent/</link>
      <guid isPermaLink="true">https://blog.aimran.es/en/articles/what-is-an-ai-agent/</guid>
      <description>An AI agent combines a language model with tools and a decision loop to complete tasks. How it differs from a chatbot, how it works, its risks and when to use one.</description>
      <pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate>
      <dc:creator>Aimran Oukham</dc:creator>
      <category>Artificial intelligence</category>
    </item>
    <item>
      <title>What Base64 is, when to use it and how to encode in JavaScript, Node and the terminal</title>
      <link>https://blog.aimran.es/en/articles/what-is-base64/</link>
      <guid isPermaLink="true">https://blog.aimran.es/en/articles/what-is-base64/</guid>
      <description>Base64 turns binary data into text so it can travel safely. What it is, how much it grows the size, how to encode in JavaScript, Node.js and the terminal.</description>
      <pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate>
      <dc:creator>Aimran Oukham</dc:creator>
      <category>Developer tools</category>
    </item>
    <item>
      <title>What DNS is and what A, AAAA, CNAME, MX and TXT records are for</title>
      <link>https://blog.aimran.es/en/articles/what-is-dns-a-cname-mx-txt-records/</link>
      <guid isPermaLink="true">https://blog.aimran.es/en/articles/what-is-dns-a-cname-mx-txt-records/</guid>
      <description>How DNS turns a domain into an IP address, what each record type does, what TTL and “propagation” are, and how to check your domain’s configuration with dig.</description>
      <pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate>
      <dc:creator>Aimran Oukham</dc:creator>
      <category>Technology</category>
    </item>
    <item>
      <title>Which favicon sizes a website needs today (and which ones it no longer does)</title>
      <link>https://blog.aimran.es/en/articles/which-favicon-sizes-does-a-website-need/</link>
      <guid isPermaLink="true">https://blog.aimran.es/en/articles/which-favicon-sizes-does-a-website-need/</guid>
      <description>The five favicon files needed in 2026 (ICO, SVG, apple-touch-icon and manifest icons), what Google requires to show it in results and which tags go in the head.</description>
      <pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate>
      <dc:creator>Aimran Oukham</dc:creator>
      <category>Web development</category>
    </item>
  </channel>
</rss>
