<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Rafael / rafaself</title><link>https://rafaself.pages.dev/</link><description>Recent content on Rafael / rafaself</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Wed, 21 Oct 2026 23:54:01 +0000</lastBuildDate><atom:link href="https://rafaself.pages.dev/index.xml" rel="self" type="application/rss+xml"/><item><title>Qwen3 4B vs 0.6B on a 6 GB GPU: Speed, Memory, and Answer Quality</title><link>https://rafaself.pages.dev/posts/qwen3-4b-vs-06b-on-a-6-gb-gpu-speed-memory-and-answer-quality-4pik/</link><pubDate>Wed, 21 Oct 2026 23:54:01 +0000</pubDate><guid>https://rafaself.pages.dev/posts/qwen3-4b-vs-06b-on-a-6-gb-gpu-speed-memory-and-answer-quality-4pik/</guid><description>&lt;p&gt;For my personal retrieval-augmented generation (RAG) study, I needed a local model to answer questions from documents. My laptop has an RTX 3060 Laptop GPU with 6 GiB of VRAM, so memory use mattered alongside speed.&lt;/p&gt;</description></item><item><title>How JavaScript Is Defined: From ECMAScript to Array.prototype.map</title><link>https://rafaself.pages.dev/posts/how-javascript-is-defined-from-ecmascript-to-arrayprototypemap-5971/</link><pubDate>Fri, 02 Oct 2026 21:18:51 +0000</pubDate><guid>https://rafaself.pages.dev/posts/how-javascript-is-defined-from-ecmascript-to-arrayprototypemap-5971/</guid><description>&lt;p&gt;We use JavaScript every day through syntax such as:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-js" data-lang="js"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;numbers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;doubled&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;numbers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;number&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;number&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;We know what &lt;code&gt;map()&lt;/code&gt; does, but there is a more interesting question underneath:&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Who decided that &lt;code&gt;map()&lt;/code&gt; should behave this way?&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;Why does it skip empty array slots? Why does its callback receive the value, index, and array? Why can &lt;code&gt;Array.prototype.map&lt;/code&gt; even be used with objects that are not arrays?&lt;/p&gt;</description></item><item><title>AWS Networking Fundamentals: VPCs, Subnets, Routing, IGWs, NACLs, and Security Groups</title><link>https://rafaself.pages.dev/posts/aws-networking-fundamentals-vpcs-subnets-routing-igws-nacls-and-security-groups-10f4/</link><pubDate>Mon, 28 Sep 2026 13:44:58 +0000</pubDate><guid>https://rafaself.pages.dev/posts/aws-networking-fundamentals-vpcs-subnets-routing-igws-nacls-and-security-groups-10f4/</guid><description>&lt;p&gt;In this post, we&amp;rsquo;ll explore some of the fundamental concepts behind &lt;strong&gt;AWS networking&lt;/strong&gt; and understand how they work together.&lt;/p&gt;&#10;&lt;p&gt;The goal is to build a clear mental model of how network communication works inside AWS. By the end of this post, you should be able to explain the role of components such as &lt;strong&gt;Regions, Availability Zones (AZs), VPCs, Subnets, Route Tables, Internet Gateways (IGWs), Network ACLs (NACLs), and Security Groups (SGs)&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>AI Subagents orchestration are now reliable</title><link>https://rafaself.pages.dev/posts/ai-subagents-orchestration-are-now-reliable-2hee/</link><pubDate>Fri, 25 Sep 2026 14:26:13 +0000</pubDate><guid>https://rafaself.pages.dev/posts/ai-subagents-orchestration-are-now-reliable-2hee/</guid><description>&lt;p&gt;Since the end of 2025, I&amp;rsquo;ve been thinking a lot about how to improve my development workflow with AI agents. Like many developers, I started using agents in their simplest form: manually. One agent, one task, a lot of supervision, and a lot of interaction to keep the work moving in the right direction. As I became more comfortable with these tools, understanding how to communicate with them, how much context to provide, and when to intervene, the main question started to change. It was no longer just about how AI could help me write code, but how much of my development workflow I could delegate to AI without losing control or quality.&lt;/p&gt;</description></item><item><title>From Epic to Merge: An End-to-End Workflow for Software Development with AI Agents</title><link>https://rafaself.pages.dev/posts/from-epic-to-merge-an-end-to-end-workflow-for-software-development-with-ai-agents-1ijn/</link><pubDate>Mon, 21 Sep 2026 21:55:40 +0000</pubDate><guid>https://rafaself.pages.dev/posts/from-epic-to-merge-an-end-to-end-workflow-for-software-development-with-ai-agents-1ijn/</guid><description>&lt;p&gt;Coding agents are becoming increasingly capable of implementing individual software tasks. Give an agent a repository, a clear issue, and enough context, and it can often inspect the codebase, modify files, write tests, and produce a working implementation.&lt;/p&gt;</description></item></channel></rss>