<?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/pt/</link><description>Recent content on Rafael / rafaself</description><generator>Hugo</generator><language>pt-BR</language><lastBuildDate>Wed, 21 Oct 2026 23:54:01 +0000</lastBuildDate><atom:link href="https://rafaself.pages.dev/pt/index.xml" rel="self" type="application/rss+xml"/><item><title>Qwen3 4B vs. 0.6B em uma GPU de 6 GB: velocidade, memória e qualidade das respostas</title><link>https://rafaself.pages.dev/pt/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/pt/posts/qwen3-4b-vs-06b-on-a-6-gb-gpu-speed-memory-and-answer-quality-4pik/</guid><description>&lt;p&gt;Para meu estudo pessoal de geração aumentada por recuperação (RAG), eu precisava de um modelo local para responder a perguntas sobre documentos. Meu notebook tem uma RTX 3060 Laptop GPU com 6 GiB de VRAM, então o uso de memória importava tanto quanto a velocidade.&lt;/p&gt;</description></item><item><title>Como o JavaScript é definido: do ECMAScript ao Array.prototype.map</title><link>https://rafaself.pages.dev/pt/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/pt/posts/how-javascript-is-defined-from-ecmascript-to-arrayprototypemap-5971/</guid><description>&lt;p&gt;Usamos JavaScript todos os dias com uma sintaxe como esta:&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;Sabemos o que &lt;code&gt;map()&lt;/code&gt; faz, mas há uma pergunta mais interessante por trás disso:&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Quem decidiu que &lt;code&gt;map()&lt;/code&gt; deveria se comportar assim?&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Fundamentos de redes na AWS: VPCs, sub-redes, roteamento, IGWs, NACLs e Security Groups</title><link>https://rafaself.pages.dev/pt/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/pt/posts/aws-networking-fundamentals-vpcs-subnets-routing-igws-nacls-and-security-groups-10f4/</guid><description>&lt;p&gt;Neste artigo, vamos explorar conceitos fundamentais de &lt;strong&gt;redes na AWS&lt;/strong&gt; e entender como eles funcionam em conjunto.&lt;/p&gt;&#10;&lt;p&gt;O objetivo é formar um modelo mental claro de como a comunicação de rede acontece na AWS. Ao final, você deverá conseguir explicar o papel de &lt;strong&gt;Regiões, Zonas de Disponibilidade (AZs), VPCs, sub-redes, tabelas de rotas, Internet Gateways (IGWs), Network ACLs (NACLs) e Security Groups (SGs)&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>A orquestração de subagentes de IA está ficando confiável</title><link>https://rafaself.pages.dev/pt/posts/ai-subagents-orchestration-are-now-reliable-2hee/</link><pubDate>Fri, 25 Sep 2026 14:26:13 +0000</pubDate><guid>https://rafaself.pages.dev/pt/posts/ai-subagents-orchestration-are-now-reliable-2hee/</guid><description>&lt;p&gt;Desde o fim de 2025, venho pensando bastante em como melhorar meu fluxo de desenvolvimento com agentes de IA. Como muitos desenvolvedores, comecei usando agentes da maneira mais simples: manualmente. Um agente, uma tarefa, muita supervisão e muita interação para manter o trabalho na direção certa. Conforme fui me acostumando com essas ferramentas — entendendo como conversar com elas, quanto contexto fornecer e quando intervir —, a pergunta principal começou a mudar. Já não era apenas como a IA poderia me ajudar a escrever código, mas quanto do meu fluxo de desenvolvimento eu poderia delegar sem perder controle ou qualidade.&lt;/p&gt;</description></item><item><title>Do épico ao merge: um fluxo completo de desenvolvimento com agentes de IA</title><link>https://rafaself.pages.dev/pt/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/pt/posts/from-epic-to-merge-an-end-to-end-workflow-for-software-development-with-ai-agents-1ijn/</guid><description>&lt;p&gt;Agentes de programação estão cada vez mais capazes de implementar tarefas individuais de software. Dê a um agente um repositório, uma issue clara e contexto suficiente, e ele frequentemente conseguirá inspecionar o código, modificar arquivos, escrever testes e produzir uma implementação funcional.&lt;/p&gt;</description></item></channel></rss>