<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Daniel Lourenço]]></title><description><![CDATA[Eu sou aquele moleque da turma que estranhamente fala bastante quando você interage. Basicamente um NPC. ]]></description><link>https://danielloureno1.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!R9Vo!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F261dd700-ea10-4145-aa78-6533dc23f0e8_395x613.jpeg</url><title>Daniel Lourenço</title><link>https://danielloureno1.substack.com</link></image><generator>Substack</generator><lastBuildDate>Thu, 07 May 2026 19:06:56 GMT</lastBuildDate><atom:link href="https://danielloureno1.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Daniel Lourenço]]></copyright><language><![CDATA[pt-br]]></language><webMaster><![CDATA[danielloureno1@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[danielloureno1@substack.com]]></itunes:email><itunes:name><![CDATA[Daniel Lourenço]]></itunes:name></itunes:owner><itunes:author><![CDATA[Daniel Lourenço]]></itunes:author><googleplay:owner><![CDATA[danielloureno1@substack.com]]></googleplay:owner><googleplay:email><![CDATA[danielloureno1@substack.com]]></googleplay:email><googleplay:author><![CDATA[Daniel Lourenço]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Experimentando o OpenCode]]></title><description><![CDATA[Todas as minhas experi&#234;ncias com IA at&#233; ano passado foram de pedir c&#243;digo avulso no ChatGPT. O primeiro CLI que usei foi o do Gemini 2.5-Pro e 2.5-Flash. Usei em projetos pequenos e me ajudou bastante, mas n&#227;o era nada impressionante. Na pr&#225;tica, s&#243; o Pro era &#250;til e tinha um limite gratuito que n&#227;o durava nada. Com o tempo parei de usar por que era mais r&#225;pido fazer eu mesmo &#8212; n&#227;o que eu seja t&#227;o r&#225;pido ou competente assim &#8212; do que avan&#231;ar o projeto concomitantemente e depois explicar o que tinha mudado e de onde continuar.]]></description><link>https://danielloureno1.substack.com/p/experimentando-o-opencode</link><guid isPermaLink="false">https://danielloureno1.substack.com/p/experimentando-o-opencode</guid><dc:creator><![CDATA[Daniel Lourenço]]></dc:creator><pubDate>Mon, 27 Apr 2026 21:41:18 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!zoKE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10e0a3e8-bfc9-4fa4-a949-b62e1090f148_1079x665.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p style="text-align: justify;">Todas as minhas experi&#234;ncias com IA at&#233; ano passado foram de pedir c&#243;digo avulso no <em>ChatGPT</em>. O primeiro CLI que usei foi o do <em>Gemini 2.5-Pro</em> e <em>2.5-Flash</em>. Usei em projetos pequenos e me ajudou bastante, mas n&#227;o era nada impressionante. Na pr&#225;tica, s&#243; o Pro era &#250;til e tinha um limite gratuito que n&#227;o durava nada. Com o tempo parei de usar por que era mais r&#225;pido fazer eu mesmo &#8212; n&#227;o que eu seja t&#227;o r&#225;pido ou competente assim &#8212; do que avan&#231;ar o projeto concomitantemente e depois explicar o que tinha mudado e de onde continuar.</p><p style="text-align: justify;">Outro salto que dei no mundo de programa&#231;&#227;o com IA foi o <em>Claude Sonnet 4.5</em> via web. O chat me devolvia c&#243;digos que funcionavam com quase nenhum erro mas tamb&#233;m n&#227;o era pr&#225;tico de se usar, j&#225; que tinha que ficar baixando os arquivos em cada diret&#243;rio sem me perder. Aqui j&#225; estava colocando projetos no ar.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://danielloureno1.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Inscreva-se&quot;,&quot;language&quot;:&quot;pt-br&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Obrigado por ler! Assine gratuitamente para receber novos posts e apoiar meu trabalho.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Digite seu e-mail&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Inscreva-se"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p style="text-align: justify;">O pr&#243;ximo passo aconteceu quando a <em>OpenAI</em> liberou o <em>Codex</em> para usu&#225;rios com plano gratuito recentemente. Experimentei e fiquei espantado com a praticidade e qualidade do c&#243;digo gerado. Eu simplesmente abria o <em>Codex</em> no diret&#243;rio do projeto, pedia para analisar e me ajudar com uma nova funcionalidade. Ele fazia, corrigia eventuais erros de compila&#231;&#227;o que ele criava e eu tinha algo funcional com uma ou duas itera&#231;&#245;es no m&#225;ximo.</p><p style="text-align: justify;"><strong>Contudo, n&#227;o existe almo&#231;o gr&#225;tis.</strong> Me deram uma amostra, me fizeram sentir o gosto do banquete para logo depois me negar a entrada. Continuei o ritmo de desenvolvimento tentando de todas as formas contornar os limites, s&#243; para me frustrar ainda mais. Era como uma droga, quanto mais usava, mais precisava daquilo. Continuar sem era enfadonho.</p><p style="text-align: justify;">Comecei a brincar com o <em>Groq</em> e sua API gratuita para infer&#234;ncia com modelos como <em>GPT-OSS 120B</em>, <em>20B</em> e <em>Llama 70B-versatile</em>. Para conversa&#231;&#227;o e tradu&#231;&#227;o eram &#243;timos modelos. Integrei eles em alguns projetos, mas n&#227;o para programa&#231;&#227;o. N&#227;o era vi&#225;vel com a qualidade dos modelos e tamanho do contexto que o <em>Groq</em> disponibilizava. Isso me deu a experi&#234;ncia de mexer programaticamente com APIs e LLMs.</p><p style="text-align: justify;">Na mesma &#233;poca houve o vazamento do c&#243;digo do <em>Claude Code</em>, o CLI do <em>Claude</em> para agentes de codifica&#231;&#227;o. Li a an&#225;lise do <em><a href="https://akitaonrails.com/2026/03/31/codigo-fonte-do-claude-code-vazou-o-que-achamos-dentro/">Akita</a></em> sobre o c&#243;digo. Dei uma olhada nos ports que estavam fazendo para Python e Rust. N&#227;o havia muito c&#243;digo funcional. Larguei m&#227;o e segui a vida, mas aquilo me deixou com uma pulga atr&#225;s da orelha. <strong>&#8220;N&#227;o existe s&#243; o Codex. Tamb&#233;m existem CLIs open source&#8221;.</strong></p><p style="text-align: justify;">Naquele ponto eu j&#225; tinha ouvido falar bastante do <em>OpenCode</em>. Decidi instalar e ver o que era aquilo. Se n&#227;o tivesse nenhum plano ou uso gratuito, paci&#234;ncia, me contentaria em ver o c&#243;digo, j&#225; que era aberto.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zoKE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10e0a3e8-bfc9-4fa4-a949-b62e1090f148_1079x665.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zoKE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10e0a3e8-bfc9-4fa4-a949-b62e1090f148_1079x665.png 424w, https://substackcdn.com/image/fetch/$s_!zoKE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10e0a3e8-bfc9-4fa4-a949-b62e1090f148_1079x665.png 848w, https://substackcdn.com/image/fetch/$s_!zoKE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10e0a3e8-bfc9-4fa4-a949-b62e1090f148_1079x665.png 1272w, https://substackcdn.com/image/fetch/$s_!zoKE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10e0a3e8-bfc9-4fa4-a949-b62e1090f148_1079x665.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zoKE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10e0a3e8-bfc9-4fa4-a949-b62e1090f148_1079x665.png" width="1079" height="665" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/10e0a3e8-bfc9-4fa4-a949-b62e1090f148_1079x665.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:665,&quot;width&quot;:1079,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:20275,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://danielloureno1.substack.com/i/195679007?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10e0a3e8-bfc9-4fa4-a949-b62e1090f148_1079x665.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!zoKE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10e0a3e8-bfc9-4fa4-a949-b62e1090f148_1079x665.png 424w, https://substackcdn.com/image/fetch/$s_!zoKE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10e0a3e8-bfc9-4fa4-a949-b62e1090f148_1079x665.png 848w, https://substackcdn.com/image/fetch/$s_!zoKE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10e0a3e8-bfc9-4fa4-a949-b62e1090f148_1079x665.png 1272w, https://substackcdn.com/image/fetch/$s_!zoKE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10e0a3e8-bfc9-4fa4-a949-b62e1090f148_1079x665.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p style="text-align: justify;">Logo de cara me impressionei com a interface, bem melhor do que <em>Codex</em> e <em>Gemini CLI</em>. Havia algumas op&#231;&#245;es de providers como <em>OpenAI</em>, <em>Anthropic</em>, <em>Zen</em> e pra minha surpresa at&#233; mesmo <em>Groq</em>. O <em>Zen</em>, que &#233; o padr&#227;o do <em>OpenCode</em> tinha alguns modelos dispon&#237;veis para uso sem que eu tivesse que ca&#231;ar algum provider e chaves de API. Escolhi um modelo qualquer, j&#225; que n&#227;o conhecia nenhum naquela lista: <em>MiniMax M2.5</em></p><h1>O Projeto de Teste</h1><p style="text-align: justify;">N&#227;o tinha coragem de usar aquilo em nenhum projeto rolando por pregui&#231;a mesmo. Queria subir o n&#237;vel aos poucos para ver onde seria o limite, tanto de tokens quanto de qualidade de c&#243;digo. Escolhi algo que j&#225; fiz algumas vezes sozinho em mais de uma linguagem diferente: Um bot de xadrez.</p><p style="text-align: justify;">Comecei pedindo que ele fizesse uma interface que processasse comandos no protocolo padr&#227;o chamado <em>UCI</em>(Universal Chess Interface). Ele fez sem dificuldades, e fez al&#233;m. Implementou uma vers&#227;o rudimentar de engine que lidava com regras de tabuleiro e pe&#231;as, basicamente um jogo completo de xadrez via texto. N&#227;o cheguei a testar se aquilo realmente funcionava. Pedi para ele importar uma biblioteca que lidasse com essa l&#243;gica interna do jogo. Meu objetivo era fazer um bot que conseguisse jogar procurando o melhor lance. N&#227;o queria passar o resto da vida analisando casos raros onde as regras de jogo que ele implementou falhavam. Al&#233;m disso, precisava de fun&#231;&#245;es que gerassem listas com os lances poss&#237;veis na posi&#231;&#227;o com a maior efici&#234;ncia poss&#237;vel.</p><p style="text-align: justify;">Em seguida pedi explicitamente por um bot que respondesse aos comandos UCI (a biblioteca cuidava disso) e respondesse com um movimento aleat&#243;rio entre os movimentos poss&#237;veis na posi&#231;&#227;o. Ele fez sem problemas.</p><h1>Testes</h1><p style="text-align: justify;">Outro motivo pra eu ter escolhido essa tarefa foi o m&#233;todo de testar. N&#227;o &#233; trivial saber quando houve uma melhora olhando apenas para o c&#243;digo. No passado, quando eu era mais ing&#234;nuo, eu compilava o bot e jogava contra ele. Funcionava bem no come&#231;o, quando o bot deixava de levar mate em um ou entregar pe&#231;as valiosas eu sabia que havia melhorado. Mas pra todo o resto era muito subjetivo e dif&#237;cil de mensurar.</p><p style="text-align: justify;">Com o tempo descobri que existem outras bibliotecas que fazem torneios automatizados entre arquivos execut&#225;veis. Basta que o bot responda e se comunique em UCI para que possa ser testado. Pedi uma desse tipo e pedi que ele usasse a primeira que listou. Qualquer uma servia. Ele clonou o reposit&#243;rio de uma escrita em C e compilou sem qualquer problema. Pedi que ele explicasse o funcionamento. Eram comandos gigantes com dezenas de flags para se preocupar. Pedi um script que usasse a biblioteca com os caminhos dos execut&#225;veis. Por enquanto s&#243; tinha a vers&#227;o 1 aleat&#243;ria.</p><p style="text-align: justify;">A biblioteca roda os bin&#225;rios e realiza um n&#250;mero predeterminado de jogos, cada vers&#227;o jogando a mesma posi&#231;&#227;o de brancas e de pretas. Peguei uma base de dados com jogos do <em>Lichess</em>. A base continha dados de partidas completas, mas a biblioteca exigia arquivos com aberturas. Pedi para o modelo pegar as partidas ap&#243;s os cinco primeiros lances. N&#227;o era perfeito, poderiam ter desigualdades e posi&#231;&#245;es com vantagem para um dos lados, mas isso era razoavelmente mitigado j&#225; que havia a altern&#226;ncia das cores. Pegar posi&#231;&#245;es de partidas reais &#233; uma boa abordagem pois se come&#231;ar as partidas a partir da posi&#231;&#227;o inicial do Xadrez (eu j&#225; cometi esse erro) todas as partidas s&#227;o praticamente iguais. A vers&#227;o aleat&#243;ria n&#227;o seria afetada, mas as futuras sim.</p><p style="text-align: justify;">Ap&#243;s o fim do torneio a biblioteca me devolve informa&#231;&#245;es importantes como n&#250;mero de vit&#243;rias, derrotas e empates do modelo mais recente, junto com estimativas de <em>ELO</em> e <em>LOS</em>(Likelyhood of Superiority) que me ajudam a saber o qu&#227;o melhor o bot ficou e se o resultado &#233; estatisticamente confi&#225;vel. Ap&#243;s uma mudan&#231;a ou melhoria no bot o m&#237;nimo que tenho que fazer &#233; rodar esse teste e saber interpretar os resultados para saber se n&#227;o houve regress&#227;o.</p><h1>Vers&#227;o 2</h1><p style="text-align: justify;">Com uma forma objetiva de avaliar o progresso, podia finalmente come&#231;ar fazer o c&#243;digo para o bot. N&#227;o vou me aprofundar nas t&#233;cnicas que implemento no bot para encontrar bons lances, basta entender que ele faz uma busca em profundidade com uma fun&#231;&#227;o de avalia&#231;&#227;o.</p><p style="text-align: justify;">Em outras palavras, ele faz o lance em um tabuleiro imagin&#225;rio, executa a fun&#231;&#227;o que diz quanta vantagem ele tem, repete para todos os lances poss&#237;veis, depois faz o mesmo para todas as respostas do oponente, depois todas as respostas dele. Sempre indo uma camada mais profunda na busca.</p><p style="text-align: justify;">Pedi ao modelo que implementasse uma itera&#231;&#227;o gradual e que mantivesse o melhor lance da camada anterior, assim o bot sempre teria uma resposta para dar quando o tempo que ele tinha para pensar acabasse. A vers&#227;o 2 estava pronta. Caso queira pesquisar as t&#233;cnicas utilizadas at&#233; aqui s&#227;o <em>MiniMax</em>(n&#227;o confundir com o nome da LLM, &#233; s&#243; uma coincid&#234;ncia) e <em>Iterative Deepening</em>.</p><p style="text-align: justify;">Como esperado, a vers&#227;o 2 ganhou de lavada, mas ainda com algumas derrotas. Isso &#233; interessante. Um modelo com uma fun&#231;&#227;o de avalia&#231;&#227;o que entende quanto material cada jogador tem consegue perder cerca de 16% das vezes para um bot que joga qualquer coisa. Isso pode acontecer pois esse m&#233;todo de busca &#233; muito demorado. A segunda vers&#227;o mal conseguia enxergar 2 ou 3 lances no futuro.</p><pre><code><code>"stats": {
&#9;"v0.2.0 vs v0.1.0": {
&#9;&#9;"wins": 1658,
&#9;&#9;"losses": 28,
&#9;&#9;"draws": 314,
&#9;&#9;"penta_WW": 684,
&#9;&#9;"penta_WD": 267,
&#9;&#9;"penta_WL": 23,
&#9;&#9;"penta_DD": 21,
&#9;&#9;"penta_LD": 5,
&#9;&#9;"penta_LL": 0
&#9;}
}
</code></code></pre><blockquote><p style="text-align: justify;"><strong>Observa&#231;&#227;o</strong>: No torneio os bots t&#234;m 1 segundo para pensar em cada lance.</p></blockquote><h1>Vers&#227;o 3 (<em>Alpha-Beta Pruning</em>)</h1><p style="text-align: justify;">A melhoria aqui &#233; deixar a busca mais inteligente, cortando ramifica&#231;&#245;es inteiras que sabemos que s&#227;o <strong>ruins</strong> sem ter que vasculhar e avaliar. Assim sobrando mais tempo para vasculhar o que realmente importa.</p><p style="text-align: justify;">Lembrando que no fim das contas o que estava fazendo era analisando o modelo e o <em>OpenCode</em>. At&#233; aqui <strong>n&#227;o tinha escrito</strong>, mexido ou sequer lido <strong>uma linha de c&#243;digo.</strong> Pedi para o modelo fazer tudo e ele fez tudo de primeira. Minha &#250;nica preocupa&#231;&#227;o era dizer quais melhorias fazer e ir com calma. Eu poderia desde o in&#237;cio pedir para ele fazer o bot mais forte quanto poss&#237;vel, mas queria ter controle sobre o processo e avaliar qu&#227;o significativa cada passo seria no desempenho do programa.</p><p style="text-align: justify;">O resultado foi de 18% derrotas da terceira vers&#227;o contra a segunda.</p><pre><code><code>"stats": {
&#9;"v0.3.0 vs v0.2.0": {
&#9;&#9;"wins": 264,
&#9;&#9;"losses": 64,
&#9;&#9;"draws": 22,
&#9;&#9;"penta_WW": 102,
&#9;&#9;"penta_WD": 12,
&#9;&#9;"penta_WL": 48,
&#9;&#9;"penta_DD": 2,
&#9;&#9;"penta_LD": 6,
&#9;&#9;"penta_LL": 5
&#9;}
}
</code></code></pre><blockquote><p style="text-align: justify;"><strong>Observa&#231;&#227;o</strong>: A primeira vers&#227;o do bot n&#227;o precisava pensar, ent&#227;o a execu&#231;&#227;o do torneio era muito mais r&#225;pida que a segunda e a terceira que usam todo o tempo dispon&#237;vel. Para esse segundo torneio precisei diminuir o n&#250;mero total de partidas.</p></blockquote><h1>Vers&#227;o 4 (<em>Transposition Table</em>)</h1><p style="text-align: justify;">A ideia dessa altera&#231;&#227;o &#233; evitar c&#225;lculos desnecess&#225;rios. No xadrez existe o que chamamos de transposi&#231;&#245;es. S&#227;o posi&#231;&#245;es iguais que s&#227;o alcan&#231;adas por meio de movimentos diferentes. Como o bot vasculha todos os movimentos poss&#237;veis, ele encontra v&#225;rias posi&#231;&#245;es iguais. Sempre que calculamos a avalia&#231;&#227;o de uma posi&#231;&#227;o, guardamos ela em mem&#243;ria, e antes de calcular outras posi&#231;&#245;es, verificamos se a posi&#231;&#227;o j&#225; foi analisada antes.</p><p style="text-align: justify;">At&#233; aqui o modelo estava lidando muito bem com o trabalho de codifica&#231;&#227;o e eu estava bastante impressionado. O resultado foi uma taxa de vit&#243;ria entre 50-60%. Realizei o teste com um n&#250;mero de partidas suficiente para que a signific&#226;ncia estat&#237;stica fosse real, mas o resultado foi menor que o esperado.</p><p style="text-align: justify;">N&#227;o estava fazendo nenhum versionamento de c&#243;digo. Isso me causou problemas no futuro. (Acabei apagando o registro do torneio)</p><h1>Princ&#237;pio do Fim</h1><p style="text-align: justify;">Existe algo chamado <em>Efeito Horizonte</em> em bots de xadrez. Acontece pois o c&#225;lculo e avalia&#231;&#227;o da posi&#231;&#227;o acontece at&#233; um n&#250;mero limitado de lances futuros. Esse limite entre o que entra no c&#225;lculo e o que n&#227;o entra pode ser no meio de uma troca. Por exemplo, no limite pode estar um movimento que uma Dama captura um Pe&#227;o, o que &#233; claramente um lance que ganha material. E &#233; s&#243; isso que o bot enxerga. A avalia&#231;&#227;o parou antes de ver aquela Dama sendo recapturada por outra pe&#231;a, o que configura uma perda de material (uma Dama vale bem mais que um Pe&#227;o).</p><p style="text-align: justify;">Algo semelhante acontece para xeques. O bot pode achar que est&#225; se defendendo de um xeque, quando na verdade est&#225; caminhando para um <em>xeque-mate</em> no lance seguinte. Isso acontece frequentemente em uma an&#225;lise pouco profunda.</p><p style="text-align: justify;">Para resolver isso podemos fazer uma busca especial somente em lances decisivos. Ou seja, n&#227;o paramos a busca antes de capturas ou xeques, mas continuamos at&#233; que a posi&#231;&#227;o estabilize e fique mais calma. S&#243; ent&#227;o rodamos a fun&#231;&#227;o de avalia&#231;&#227;o.</p><p style="text-align: justify;">Como sempre, pedi que o modelo executasse a altera&#231;&#227;o. Ele fez sem dificuldades e rodou o torneio, como j&#225; tinha se acostumado a fazer a essa altura.</p><p style="text-align: justify;">Resultado: 50% de vit&#243;rias, nenhuma melhora real.</p><p style="text-align: justify;">Os &#250;ltimos dois torneios n&#227;o tinham melhorado a for&#231;a do bot substancialmente. Resolvi que era hora de criar o reposit&#243;rio antes de continuar. Eu estava guardando os execut&#225;veis de cada vers&#227;o, mas n&#227;o o c&#243;digo. A qualquer momento eu podia ter uma regress&#227;o e teria que confiar no modelo para retornar o c&#243;digo a como era antes.</p><p style="text-align: justify;">Por&#233;m, fazendo uso de toda a intelig&#234;ncia que acumulei por 20 longos anos, antes de criar o reposit&#243;rio e salvar o progresso - e continuar o processo de melhoria sem preocupa&#231;&#245;es - pedi para o modelo refatorar o c&#243;digo do n&#250;cleo do programa. <strong>O que poderia dar de errado, n&#227;o &#233; mesmo? XD</strong></p><p style="text-align: justify;">Resultado: 0% de vit&#243;rias, quebrou totalmente, de forma silenciosa.</p><p style="text-align: justify;">Em teoria o bot deveria estar mais otimizado, sem realizar c&#225;lculos desnecess&#225;rios. Na pr&#225;tica, eu n&#227;o fazia ideia de como o c&#243;digo funcionava aquela altura. Pra piorar, n&#227;o tinha uma forma clara de voltar atr&#225;s.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mzII!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F625ddf76-3208-4157-a709-de604dba81d1_1441x900.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mzII!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F625ddf76-3208-4157-a709-de604dba81d1_1441x900.png 424w, https://substackcdn.com/image/fetch/$s_!mzII!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F625ddf76-3208-4157-a709-de604dba81d1_1441x900.png 848w, https://substackcdn.com/image/fetch/$s_!mzII!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F625ddf76-3208-4157-a709-de604dba81d1_1441x900.png 1272w, https://substackcdn.com/image/fetch/$s_!mzII!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F625ddf76-3208-4157-a709-de604dba81d1_1441x900.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mzII!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F625ddf76-3208-4157-a709-de604dba81d1_1441x900.png" width="1441" height="900" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/625ddf76-3208-4157-a709-de604dba81d1_1441x900.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:900,&quot;width&quot;:1441,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:159667,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://danielloureno1.substack.com/i/195679007?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F625ddf76-3208-4157-a709-de604dba81d1_1441x900.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!mzII!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F625ddf76-3208-4157-a709-de604dba81d1_1441x900.png 424w, https://substackcdn.com/image/fetch/$s_!mzII!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F625ddf76-3208-4157-a709-de604dba81d1_1441x900.png 848w, https://substackcdn.com/image/fetch/$s_!mzII!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F625ddf76-3208-4157-a709-de604dba81d1_1441x900.png 1272w, https://substackcdn.com/image/fetch/$s_!mzII!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F625ddf76-3208-4157-a709-de604dba81d1_1441x900.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p style="text-align: justify;">Depois de v&#225;rias itera&#231;&#245;es investigando e debugando o c&#243;digo, o modelo ainda n&#227;o faz ideia de qual foi o problema ou qualquer proposta para desfazer a altera&#231;&#227;o que introduziu o problema.</p><p style="text-align: justify;">&#201; nesses momentos que voc&#234; deve parar, respirar fundo e refletir. Existem algumas li&#231;&#245;es aqui a serem aprendidas:</p><ol><li><p style="text-align: justify;"><strong>Nenhum projeto &#233; t&#227;o pequeno que n&#227;o mere&#231;a um reposit&#243;rio local.</strong> Ainda n&#227;o tenho o costume de trabalhar com Git, uso somente para projetos que sei que vou manter. Pensei que n&#227;o seria necess&#225;rio para um teste r&#225;pido.</p></li><li><p style="text-align: justify;"><strong>N&#227;o se atreva a fazer uma grande mudan&#231;a antes de marcos importantes.</strong> A escolha do momento n&#227;o poderia ter sido pior.</p></li><li><p style="text-align: justify;"><strong>Modelos de linguagem s&#227;o convictos e nada confi&#225;veis.</strong> Tudo indica que as altera&#231;&#245;es que a IA me apresentou como pequenas melhorias causaram um erro silencioso, na l&#243;gica do programa, que causou uma mudan&#231;a total no comportamento.</p></li><li><p style="text-align: justify;"><strong>N&#227;o aceite altera&#231;&#245;es que n&#227;o entende.</strong> Eu n&#227;o busquei entender as altera&#231;&#245;es propostas pelo modelo. Confiei cegamente na an&#225;lise dele devido aos resultado anteriores realmente satisfat&#243;rios.</p></li></ol><p style="text-align: justify;">Ele continuou por mais um tempo em loop de corre&#231;&#227;o e testes, mas sem sucesso. No meio disso tudo ele acabou apagando os torneios recentes e escrevendo por cima com outras vers&#245;es do bot j&#225; totalmente quebrado.</p><p style="text-align: justify;">De certa forma alcancei um dos objetivos prim&#225;rios, atingir o limite do modelo. Agora eu sei at&#233; onde o modelo <em>MiniMax M2.5</em> no ambiente do <em>OpenCode</em> consegue ir sem monitoramento pesado e expertise do usu&#225;rio.</p><p style="text-align: justify;">A ferramenta &#233; realmente &#250;til, mas sem meu esfor&#231;o ativo na tarefa n&#227;o vai longe. Com certeza modelos melhores como <em>GPT 5.4</em>, <em>Claude Opus 4.6</em> ou <em>Sonnet 4.6</em> chegariam um pouco mais longe, mas apesar de tudo isso ainda fiquei impressionado com o desempenho desse modelo. N&#227;o sei dizer quanto do m&#233;rito se deve ao <em>OpenCode</em>.</p><p style="text-align: justify;">Os pr&#243;ximos passos s&#227;o evidentes: Testar em projetos um pouco maiores e com outros modelos.</p><p style="text-align: justify;">Sobre o bot, a solu&#231;&#227;o seria uns bons dias lendo e testando o c&#243;digo linha a linha, mas o progresso que eu tinha at&#233; agora era t&#227;o pouco que seria mais pr&#225;tico simplesmente come&#231;ar do zero.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://danielloureno1.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Inscreva-se&quot;,&quot;language&quot;:&quot;pt-br&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Obrigado por ler! Assine gratuitamente para receber novos posts e apoiar meu trabalho.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Digite seu e-mail&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Inscreva-se"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Redes Neurais e o futuro das LLMs]]></title><description><![CDATA[Por que elas parecem t&#227;o inteligentes e por que surgiram s&#243; agora?]]></description><link>https://danielloureno1.substack.com/p/redes-neurais-e-o-futuro-das-llms</link><guid isPermaLink="false">https://danielloureno1.substack.com/p/redes-neurais-e-o-futuro-das-llms</guid><dc:creator><![CDATA[Daniel Lourenço]]></dc:creator><pubDate>Tue, 21 Apr 2026 16:29:12 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ml7o!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5608cb19-1fa9-4798-818f-0bb476315608_967x1200.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p style="text-align: justify;">Acredito que entender o que h&#225; debaixo do cap&#244; ajuda tanto no compreendimento geral &#8212; para onde estamos indo agora que a tecnologia existe &#8212; quanto para melhor proveito do que j&#225; temos. Particularmente me incomoda quando proclamam o fim dos empregos para IAs que automatizar&#227;o o trabalho ou que atingiremos a AGI<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a> em um futuro pr&#243;ximo sem mais dificuldades.</p><p style="text-align: justify;">Para come&#231;ar vou explicar o processo para a rede neural mais cl&#225;ssica de todas. &#201; como o <em>Hello Word</em><a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a> dessa &#225;rea. A ideia n&#227;o &#233; ser estritamente t&#233;cnico, mas dar uma no&#231;&#227;o para quem acha que &#233; algo quase et&#233;reo.</p><blockquote><p>Qualquer tecnologia suficientemente avan&#231;ada &#233; indistingu&#237;vel de magia. (Arthur C. Clarke)</p></blockquote><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://danielloureno1.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Inscreva-se&quot;,&quot;language&quot;:&quot;pt-br&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Assine gratuitamente para receber novos posts e apoiar meu trabalho.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Digite seu e-mail&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Inscreva-se"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h1>O Problema</h1><p style="text-align: justify;">O problema XOR &#233; simples: dadas duas entradas bin&#225;rias, a sa&#237;da &#233; 1 se elas forem diferentes, e 0 se forem iguais.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:&quot;1d960b77-6d3e-412f-ad66-f752e4877242&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">A | B | A XOR B
--|---|--------
0 | 0 |    0
0 | 1 |    1
1 | 0 |    1
1 | 1 |    0</code></pre></div><p style="text-align: justify;">Nenhuma linha reta separa os casos onde a sa&#237;da &#233; 0 dos casos onde &#233; 1. XOR n&#227;o &#233; linearmente separ&#225;vel, o que o torna o exemplo cl&#225;ssico para justificar redes com mais de uma camada. Diferente de um AND, por exemplo, onde &#233; f&#225;cil da rede criar uma rela&#231;&#227;o de proporcionalidade com os dados:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;markdown&quot;,&quot;nodeId&quot;:&quot;2b09a224-322b-4731-92fa-0daa18807282&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-markdown">A | B | A AND B
--|---|--------
0 | 0 |    0
0 | 1 |    0
1 | 0 |    0
1 | 1 |    1</code></pre></div><h1>O Modelo</h1><p>A rede que vamos treinar tem essa estrutura:</p><ul><li><p><strong>Camada de entrada</strong>: 2 neur&#244;nios (os valores de A e B)</p></li><li><p><strong>Camada oculta</strong>: 2 neur&#244;nios</p></li><li><p><strong>Camada de sa&#237;da</strong>: 1 neur&#244;nio</p></li></ul><p style="text-align: justify;">Em cada neur&#244;nio o que existe &#233; uma s&#233;rie de multiplica&#231;&#245;es e uma soma. Cada conex&#227;o entre neur&#244;nios tem um <strong>peso</strong>, e cada neur&#244;nio tem um <strong>vi&#233;s</strong>. A opera&#231;&#227;o &#233;:</p><pre><code><code>sa&#237;da = ativa&#231;&#227;o( entrada&#8321;&#215;peso&#8321; + entrada&#8322;&#215;peso&#8322; + vi&#233;s )</code></code></pre><p style="text-align: justify;">A fun&#231;&#227;o de <strong>ativa&#231;&#227;o</strong> &#233; o que introduz n&#227;o-linearidade na rede &#8212; sem ela, empilhar camadas n&#227;o ajudaria em nada, porque a rede seria s&#243; uma fun&#231;&#227;o linear proporcional a entrada. Usamos a sigmoide, que comprime qualquer valor real para o intervalo (0, 1):</p><pre><code><code>sigmoid(x) = 1 / (1 + e^(-x))</code></code></pre><p style="text-align: justify;">O c&#243;digo abaixo implementa tudo isso do zero, sem nenhuma depend&#234;ncia externa. Todos os c&#225;lculos s&#227;o feitos &#224; m&#227;o:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;a713eb2f-9e5f-4677-ab8b-95938b51c594&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">import random
import math

# &#9472;&#9472; Fun&#231;&#245;es base &#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;

def sigmoid(x):
    return 1.0 / (1.0 + math.exp(-x))

def forward(inputs, weights_hidden, bias_hidden, weights_out, bias_out):
    # Camada oculta: 2 neur&#244;nios
    h0 = sigmoid(inputs[0]*weights_hidden[0][0] + inputs[1]*weights_hidden[0][1] + bias_hidden[0])
    h1 = sigmoid(inputs[0]*weights_hidden[1][0] + inputs[1]*weights_hidden[1][1] + bias_hidden[1])

    # Camada de sa&#237;da: 1 neur&#244;nio
    out = sigmoid(h0*weights_out[0] + h1*weights_out[1] + bias_out)
    return out

def loss(weights_hidden, bias_hidden, weights_out, bias_out):
    # Dados XOR
    data = [([0,0], 0), ([0,1], 1), ([1,0], 1), ([1,1], 0)]
    total = 0.0
    for inputs, target in data:
        pred = forward(inputs, weights_hidden, bias_hidden, weights_out, bias_out)
        total += (pred - target) ** 2  # erro quadr&#225;tico
    return total / len(data)

# &#9472;&#9472; Inicializa&#231;&#227;o aleat&#243;ria &#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;

random.seed(42)
weights_hidden = [[random.uniform(-1, 1) for _ in range(2)] for _ in range(2)]
bias_hidden    = [random.uniform(-1, 1) for _ in range(2)]
weights_out    = [random.uniform(-1, 1) for _ in range(2)]
bias_out       =  random.uniform(-1, 1)

# &#9472;&#9472; Treinamento por passo aleat&#243;rio &#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;

best_loss = loss(weights_hidden, bias_hidden, weights_out, bias_out)

for step in range(100_000):
    # Escolhe um peso aleat&#243;rio para perturbar
    layer = random.choice(['hidden', 'out', 'bias_h', 'bias_o'])

    if layer == 'hidden':
        i, j = random.randint(0,1), random.randint(0,1)
        old = weights_hidden[i][j]
        weights_hidden[i][j] += random.uniform(-0.1, 0.1)
        new_loss = loss(weights_hidden, bias_hidden, weights_out, bias_out)
        if new_loss &lt; best_loss:
            best_loss = new_loss
        else:
            weights_hidden[i][j] = old  # reverte

    elif layer == 'out':
        i = random.randint(0,1)
        old = weights_out[i]
        weights_out[i] += random.uniform(-0.1, 0.1)
        new_loss = loss(weights_hidden, bias_hidden, weights_out, bias_out)
        if new_loss &lt; best_loss:
            best_loss = new_loss
        else:
            weights_out[i] = old

    elif layer == 'bias_h':
        i = random.randint(0,1)
        old = bias_hidden[i]
        bias_hidden[i] += random.uniform(-0.1, 0.1)
        new_loss = loss(weights_hidden, bias_hidden, weights_out, bias_out)
        if new_loss &lt; best_loss:
            best_loss = new_loss
        else:
            bias_hidden[i] = old

    else:
        old = bias_out
        bias_out += random.uniform(-0.1, 0.1)
        new_loss = loss(weights_hidden, bias_hidden, weights_out, bias_out)
        if new_loss &lt; best_loss:
            best_loss = new_loss
        else:
            bias_out = old

# &#9472;&#9472; Infer&#234;ncia &#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;

print(f"Erro final: {best_loss:.4f}\n")
for inputs, target in [([0,0], 0), ([0,1], 1), ([1,0], 1), ([1,1], 0)]:
    pred = forward(inputs, weights_hidden, bias_hidden, weights_out, bias_out)
    print(f"{inputs} &#8594; {pred:.3f}  (esperado: {target})")
</code></pre></div><p style="text-align: justify;"><strong>Treinamento</strong> &#233; o loop de 100 mil passos. Em cada itera&#231;&#227;o, o algoritmo escolhe um peso qualquer da rede e o altera um pouco. Depois calcula o erro total sobre todos os quatro exemplos XOR. Se o erro caiu, mant&#233;m a mudan&#231;a. Se piorou, reverte. Simples assim &#8212; nenhuma matem&#225;tica sofisticada, s&#243; tentativa e erro.</p><p style="text-align: justify;"><strong>Infer&#234;ncia</strong> &#233; o que acontece depois do treino, quando a rede j&#225; est&#225; pronta &#8212; entenda rede como um conjunto de pesos e vieses, nesse caso 6 pesos e 3 vieses. Voc&#234; passa uma entrada pelo <code>forward</code> e l&#234; a sa&#237;da. Nenhum peso muda. A rede agora &#233; uma fun&#231;&#227;o fixa que aprendeu a imitar o padr&#227;o.</p><p style="text-align: justify;"><strong>A fun&#231;&#227;o de erro</strong> (ou loss) mede o qu&#227;o longe as previs&#245;es est&#227;o das respostas certas. Aqui usamos o erro quadr&#225;tico m&#233;dio: para cada exemplo, eleva ao quadrado a diferen&#231;a entre o que a rede previu e o que era esperado, e tira a m&#233;dia. Quanto menor, melhor.</p><p>O resultado ap&#243;s o treino se parece com isso:</p><pre><code><code>Erro final: 0.0023

[0, 0] &#8594; 0.047  (esperado: 0)
[0, 1] &#8594; 0.956  (esperado: 1)
[1, 0] &#8594; 0.957  (esperado: 1)
[1, 1] &#8594; 0.051  (esperado: 0)</code></code></pre><p style="text-align: justify;">A rede n&#227;o memorizou uma tabela. Ela encontrou pesos que, quando combinados pelas opera&#231;&#245;es matem&#225;ticas de cada neur&#244;nio, produzem os valores certos. Isso &#233; o que existe dentro de qualquer rede neural, independente do tamanho.</p><blockquote><p style="text-align: justify;"><strong>Observa&#231;&#227;o</strong>: t&#233;cnicas como o gradiente descendente &#8212; que ao inv&#233;s de alterar os pesos &#224;s cegas calculam a dire&#231;&#227;o exata em que cada peso deve se mover para reduzir o erro &#8212; d&#227;o um salto enorme na velocidade e efici&#234;ncia do treinamento. Mas o objetivo &#233; o mesmo: encontrar os pesos certos. O m&#233;todo muda, a ess&#234;ncia n&#227;o.</p></blockquote><p style="text-align: justify;">O resultado desse processo, quando o erro fica abaixo de um certo limite aceit&#225;vel, &#233; uma rede capaz de prever o padr&#227;o nos dados de treino.</p><p style="text-align: justify;">Coisas como n&#250;mero de neur&#244;nios s&#227;o diretamente proporcionais ao n&#250;mero de padr&#245;es que podem ser potencialmente aprendidos (existe um fator exponencial aqui).</p><h1>Modelos de Linguagem</h1><p style="text-align: justify;">Uma <em>LLM(Large Language Model)</em> &#233; um modelo de rede neural grande feito para aprender <strong>padr&#245;es de linguagem</strong>. Ele tem uma estrutura em camadas com neur&#244;nios que fazem as mesmas opera&#231;&#245;es que acabei de descrever. S&#227;o multiplica&#231;&#245;es e somas. O que muda? Os dados de treinamento.</p><p style="text-align: justify;">LLMs s&#227;o treinadas com quantidades colossais de textos escritos por humanos. At&#233; que ponto uma m&#225;quina &#233; inteligente por imitar padr&#245;es criados por uma intelig&#234;ncia real?</p><p style="text-align: justify;">Qual a diferen&#231;a entre imitar esse padr&#227;o e reproduzir um debate ou discurso altamente inteligente em texto ou v&#237;deo? Estou falando de reprodutor mesmo, no sentido de arquivos de v&#237;deo ou <code>.txt</code>.</p><p style="text-align: justify;">Claramente existe uma diferen&#231;a aqui. A adaptabilidade. LLMs j&#225; se mostraram &#250;teis para resolver <strong>novos</strong> <strong>problemas</strong> pela aplica&#231;&#227;o de t&#233;cnicas <strong>j&#225; conhecidas</strong>. Encaixando um padr&#227;o no outro ela consegue gerar uma resposta e manter uma conversa totalmente nova a cada vez.</p><h1>Treinamento</h1><p style="text-align: justify;">O treinamento &#233; apenas ajuste de par&#226;metros &#8212; pesos e vieses, que ser&#227;o multiplicados e somados &#8212; ent&#227;o existe um processo ordenado. Sa&#237;mos de par&#226;metros aleat&#243;rios para uma sequ&#234;ncia bem espec&#237;fica que processa entradas em sa&#237;das desejadas.</p><p style="text-align: justify;"><em>Overfitting</em> &#233; um problema bem conhecido que descreve quando o treinamento passou do ponto. &#201; quando o treinamento dura demais fazendo o modelo ficar t&#227;o preso aos dados do treinamento ao ponto de ser in&#250;til para outros dados que ele nunca viu.</p><p style="text-align: justify;"><em>Overfitting</em> vs Generaliza&#231;&#227;o &#233; um balan&#231;o bem subjetivo que depende do uso que far&#227;o do modelo. Prender-se aos dados te d&#225; respostas objetivamente <strong>mais confi&#225;veis</strong>, mas cada vez <strong>mais in&#250;teis</strong> para problemas novos. Do outro lado da moeda, treino de menos faz um modelo flex&#237;vel de mais, que n&#227;o internalizou padr&#245;es e n&#227;o fala coisa com coisa.</p><p style="text-align: justify;">Comparar o modelo do exemplo com LLMs &#233; como comparar o conceito de formas b&#225;sicas do desenho com o teto da Capela Sistina. &#201; comparar um beb&#234; aprendendo a andar e um ginasta ol&#237;mpico. Ainda assim, existe semelhan&#231;a na ess&#234;ncia da atividade. A diferen&#231;a n&#227;o &#233; qualitativa, a a&#231;&#227;o n&#227;o mudou. &#201; quantitativa, a pot&#234;ncia mudou.</p><p style="text-align: justify;">Sei que o exemplo que dei &#233; simples, mas quero tentar extrapolar para redes maiores, da ordem de centenas de bilh&#245;es de pesos, tipo os modelos comerciais como ChatGPT e Claude. O <em>input</em> &#233; o contexto da conversa, s&#227;o todos os tokens/palavras ditos at&#233; agora, seja por voc&#234; ou por ele mesmo. O <em>output</em> &#233; o pr&#243;ximo token.</p><p style="text-align: justify;">A infer&#234;ncia &#233; calcular tokens, um seguido do outro at&#233; chegar ao fim da resposta. No c&#225;lculo do segundo token, o <em>input</em> &#233; o primeiro. No c&#225;lculo do terceiro, o <em>input</em> s&#227;o os dois primeiros tokens. Assim por diante.</p><p style="text-align: justify;">Qual &#233; o processo de treinamento? &#201; feito com textos de livros, artigos, blogs, tutoriais e tudo mais que est&#225; dispon&#237;vel na internet, tomando os devidos cuidados com copyright e propriedade intelectual. Esses textos s&#227;o dados para a IA da mesma forma que expliquei antes. Depois de um chunk de treinamento ser feito a <em>fun&#231;&#227;o loss</em> calcula o erro de todas as infer&#234;ncias e &#233; feito um c&#225;lculo de quais pesos mudar para diminuir o erro m&#233;dio em todas as amostras do chunk.</p><p style="text-align: justify;">Com o tempo, a rede consegue reproduzir o texto com razo&#225;vel fidelidade, talvez usando sin&#244;nimos, ou simplesmente a ideia geral. &#201; um ajuste fino onde ir em uma dire&#231;&#227;o afeta a resposta em outros milh&#245;es de textos, mas no final temos um modelo que no pior dos casos pesa algo em torno de 50-200 GB sendo capaz de citar trechos inteiros de diversas obras, englobando o conhecimento de dezenas de terabytes de dados. Uma forma de pensar em LLMs &#233; como um compressor do conhecimento humano, como ZIP faz com arquivos de computador.</p><blockquote><p style="text-align: justify;"><strong>Observa&#231;&#227;o</strong>: Por mais que a informa&#231;&#227;o esteja ali em algum lugar no modelo, o que geralmente acontece &#233; uma busca na internet pois &#233; mais seguro. Os modelos atuais n&#227;o rodam de forma crua, mas num ambiente que foram treinados para usar. Esse ambiente permite que eles requisitem informa&#231;&#227;o da internet, de arquivos dentro do pr&#243;prio chat, ou arquivos da sua m&#225;quina em caso de interfaces de linha de comando(CLI).</p></blockquote><p style="text-align: justify;">Nenhum desses conceitos que expliquei &#233; novo. <a href="https://en.wikipedia.org/wiki/Neural_network_(machine_learning)#Perceptrons">Redes Neurais</a> s&#227;o ideias t&#227;o velhas quanto a pr&#243;pria computa&#231;&#227;o e estat&#237;stica, que s&#243; foram aplicadas algumas d&#233;cadas depois da Segunda Guerra &#8212; que &#233; vista como a era de ouro da computa&#231;&#227;o para a maioria das pessoas &#8212; com o <em>Perceptron</em><a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-3" href="#footnote-3" target="_self">3</a> de Frank Rosenblatt.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ml7o!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5608cb19-1fa9-4798-818f-0bb476315608_967x1200.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ml7o!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5608cb19-1fa9-4798-818f-0bb476315608_967x1200.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ml7o!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5608cb19-1fa9-4798-818f-0bb476315608_967x1200.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ml7o!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5608cb19-1fa9-4798-818f-0bb476315608_967x1200.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ml7o!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5608cb19-1fa9-4798-818f-0bb476315608_967x1200.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ml7o!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5608cb19-1fa9-4798-818f-0bb476315608_967x1200.jpeg" width="967" height="1200" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5608cb19-1fa9-4798-818f-0bb476315608_967x1200.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1200,&quot;width&quot;:967,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:377965,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://danielloureno1.substack.com/i/194932961?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5608cb19-1fa9-4798-818f-0bb476315608_967x1200.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ml7o!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5608cb19-1fa9-4798-818f-0bb476315608_967x1200.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ml7o!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5608cb19-1fa9-4798-818f-0bb476315608_967x1200.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ml7o!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5608cb19-1fa9-4798-818f-0bb476315608_967x1200.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ml7o!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5608cb19-1fa9-4798-818f-0bb476315608_967x1200.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><strong>Frank Rosenblatt com o Mark I Perceptron em 1960</strong></figcaption></figure></div><p style="text-align: justify;">Acontece que entre a formula&#231;&#227;o dos conceitos e a implementa&#231;&#227;o existe um gap temporal. LLMs n&#227;o se chamam assim &#224; toa. Com poucos par&#226;metros elas n&#227;o tem estrutura suficiente para armazenar padr&#245;es complexos. Com muitos par&#226;metros elas n&#227;o conseguem rodar r&#225;pido o suficiente para serem &#250;teis e isso <strong>ainda vale para os dias de hoje</strong>.</p><p style="text-align: justify;">Nos &#250;ltimos anos houve uma verdadeira guerra armamentista entre empresas de tecnologia por infraestrutura e chips capazes de rodar modelos de linguagem, mas mesmo todo esse poder de processamento n&#227;o seria suficiente para sustentar a quantidade de infer&#234;ncia atual servindo milhares de usu&#225;rios simult&#226;neos, esque&#231;a milh&#245;es.</p><p style="text-align: justify;">O paper <a href="https://arxiv.org/pdf/1706.03762">Attention is All You Need</a> da <strong>Google</strong> prop&#244;s, em 2017, a arquitetura que usava Transformers para transformar o comportamento recursivo dos modelos antigos em um comportamento paraleliz&#225;vel.</p><p style="text-align: justify;">A partir de ent&#227;o, novos modelos cada vez maiores foram treinados. Eles s&#243; podiam ter quantidades absurdas de par&#226;metros gra&#231;as a nova arquitetura e a expertise de treinar modelos com mais par&#226;metros e com melhor material de treinamento. Em 2026 parece que chegamos ao estado da arte em modelos de linguagem. <strong>OpenAI</strong>, <strong>Anthropic</strong> e <strong>Google</strong> desistiram de aumentar os modelos e est&#227;o focando em aspectos laterais aos modelos. <em>Agents</em>, <em>tool calling</em>, <em>harness</em> e coisas do tipo est&#227;o sendo desenvolvidas e s&#227;o o maior diferencial entre os produtos delas.</p><p style="text-align: justify;">Comercialmente n&#227;o compensa aumentar o tamanho do modelo, dividir o poder computacional em menos modelos fazendo infer&#234;ncia para menos clientes para ter um pouco mais de intelig&#234;ncia.</p><p style="text-align: justify;">Atualmente as LLMs est&#227;o pr&#243;ximas do que <a href="https://www.youtube.com/@Akitando">F&#225;bio Akita</a> chama de <em>Inverno das IAs</em>. Modelos pararam de crescer, bateram num teto do que &#233; vi&#225;vel comercialmente. O processo de infer&#234;ncia e treinamento &#233; muito caro. Mesmo as maiores empresas do ramo com esses modelos topo de linha operam no vermelho, se mantendo gra&#231;as a dinheiro de investidores. A &#250;nica esperan&#231;a para elas &#233; acumular o maior n&#250;mero poss&#237;vel de usu&#225;rios agora e quando eles estiverem totalmente dependentes do servi&#231;o de infer&#234;ncia, ajustar o pre&#231;o para cobrir &#8212; dessa vez de verdade &#8212; os custos de toda essa brincadeira.</p><p>Outras sa&#237;das poss&#237;veis para toda essa bagun&#231;a seriam:</p><ol><li><p>uma nova arquitetura ainda mais barata</p></li><li><p>uma revolu&#231;&#227;o na produ&#231;&#227;o de energia global e de chips capaz de derrubar os custos de infer&#234;ncia de LLMs</p></li></ol><p style="text-align: justify;">Outra coisa interessante que aconteceu recentemente foi a distribui&#231;&#227;o de um modelo de linguagem de grande porte da Meta como open source. At&#233; onde sei n&#227;o existia nenhum outro modelo t&#227;o bom dispon&#237;vel para o p&#250;blico. Depois disso o modelo(Llama) foi customizado e retreinado em v&#225;rias vers&#245;es para diferentes prop&#243;sitos e especialidades pela comunidade open source.</p><p style="text-align: justify;">Pessoalmente estou bastante animado e ansioso para saber onde tudo isso vai dar. Mais recentemente, do ano passado para c&#225;, as empresas est&#227;o investindo na &#225;rea de desenvolvimento com agentes de programa&#231;&#227;o, janelas de contexto maiores e capacidade de planejar e executar tarefas em paralelo.</p><p>Usando as palavras do pr&#243;prio Akita:</p><blockquote><p style="text-align: justify;">Os agentes foram evoluindo nessa dire&#231;&#227;o. Esses modelos pararam de fazer a guerra dos par&#226;metros e melhoraram o treinamento &#8212; foi saindo 5.0, 5.1, 5.2, e agora estamos no 5.4. A <strong>OpenAI</strong> foi iterando em cima do mesmo modelo cinco, sem refazer do zero para um modelo seis, fazendo ajustes e alinhamentos em cima dele. (Trecho do <a href="https://www.youtube.com/live/4c7pbOxYn_A?si=BwikRDcfGfHR7bsM&amp;t=4165">Flow Podcast</a> 1:09:25-1:09:47)</p><p style="text-align: justify;">Agora, no ano passado, finalmente a gente chegou, depois eu vou explicar mais sobre isso, mas parece que a gente chegou num ponto onde <strong>acabou as possibilidades</strong>, eles finalmente tiveram que: &#8220;vamos parar de ficar aumentando, ver o que a gente tem e realmente <strong>usar</strong> o que a gente tem.&#8221; (Trecho do <a href="https://www.youtube.com/live/4c7pbOxYn_A?si=t29h5NFkDxAuTcJj&amp;t=152">Flow Podcast</a> 2:32-2:49)</p></blockquote><p>&#201; isso. Acabou.</p><p style="text-align: justify;">Um dos primeiros textos que escrevi foi sobre arquitetura e limites. Existe um limite para o qu&#227;o um algoritmo pode ser otimizado, a partir dali o algoritmo deve ser trocado. Por&#233;m, n&#227;o existe um limite para o qu&#227;o devagar um algoritmo pode ser.</p><p style="text-align: justify;">Nesse texto eu tento imaginar um computador hipot&#233;tico e mostrar que mesmo ele n&#227;o seria suficiente para calcular todo e qualquer algoritmo:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;88512a7c-c6a0-4a85-84f4-01797f627c93&quot;,&quot;caption&quot;:&quot;Pensei em escrever esse texto por causa da explos&#227;o das LLMs (sei que voc&#234; n&#227;o aguenta mais falar disso, mas tenha calma) e por uma reflex&#227;o aleat&#243;ria sobre o boom populacional da humanidade nos &#250;ltimos s&#233;culos devido &#224; urbaniza&#231;&#227;o, ind&#250;stria e revolu&#231;&#227;o verde.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;O Limite da Computa&#231;&#227;o&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:399614913,&quot;name&quot;:&quot;Daniel Louren&#231;o&quot;,&quot;bio&quot;:&quot;Eu sou aquele moleque da turma que estranhamente fala bastante quando voc&#234; interage. Basicamente um NPC. &quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/261dd700-ea10-4145-aa78-6533dc23f0e8_395x613.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-12-14T14:01:00.935Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!0mql!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46d9fa75-1958-47af-b602-6f08fce46675_144x144.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://substack.com/home/post/p-181350395&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:181350395,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:6465422,&quot;publication_name&quot;:&quot;Daniel Louren&#231;o&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!R9Vo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F261dd700-ea10-4145-aa78-6533dc23f0e8_395x613.jpeg&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p style="text-align: justify;">Intelig&#234;ncia Artificial Geral, algo equipar&#225;vel a humanos, tendo consci&#234;ncia e ag&#234;ncia. Esse tipo de entidade seria teoricamente capaz de tomar decis&#245;es sozinha e aprimorar a si mesma assim como humanos faziam com as vers&#245;es anteriores.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p style="text-align: justify;">H&#225; o costume na &#225;rea da programa&#231;&#227;o de fazer um programa que imprime na tela o texto &#8220;Hello, world!&#8221;, como se fosse o nascimento de uma nova habilidade por parte da pessoa</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-3" href="#footnote-anchor-3" class="footnote-number" contenteditable="false" target="_self">3</a><div class="footnote-content"><p>Era um modelo de vis&#227;o computacional sem camadas intermedi&#225;rias.</p><p></p></div></div>]]></content:encoded></item><item><title><![CDATA[Dilema do Guerreiro no Começo Depois do Fim]]></title><description><![CDATA[Antes rei lutador, agora reincarnado como Arthur Leywin em um mundo fant&#225;stico com belos genes e uma fam&#237;lia amorosa.]]></description><link>https://danielloureno1.substack.com/p/dilema-do-guerreiro-no-comeco-depois</link><guid isPermaLink="false">https://danielloureno1.substack.com/p/dilema-do-guerreiro-no-comeco-depois</guid><dc:creator><![CDATA[Daniel Lourenço]]></dc:creator><pubDate>Mon, 06 Apr 2026 17:02:50 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/75ae91af-3b25-4733-873b-02ba8c7093f6_2560x1442.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Antes rei lutador, agora reincarnado como Arthur Leywin em um mundo fant&#225;stico com belos genes e uma fam&#237;lia amorosa. The Beginning After The End &#8212; que chamarei de TBATE de agora em diante &#8212; conta a hist&#243;ria de um guerreiro que abandonou todas as suas amizades e amores em busca de poder para se vingar. Que morreu afogado em um vazio imensur&#225;vel ap&#243;s concluir seu objetivo e que nessa nova vida aprende mais uma vez o que &#233; o amor fraterno.</p><p><strong>Alerta de Spoilers!</strong></p><p>O come&#231;o da hist&#243;ria mostra a inf&#226;ncia de Arthur descobrindo mais sobre seus novos poderes nesse mundo enquanto convive com sua nova fam&#237;lia e aprende o que &#233; ter uma, j&#225; que ele era um &#243;rf&#227;o em sua vida passada.</p><p>Desde cedo ele percebe como o mundo &#233; perigoso e como ele precisa de poder para proteger aqueles que ele ama. Existem in&#250;meros perigos, desde bandidos na estrada, tr&#225;fico humano e nobres com poder para sa&#237;rem impunes de suas injusti&#231;as. E Arthur quer for&#231;a para manter tudo isso longe dos seus pais, irm&#227; e amigos.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0vna!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a71b9ee-9a5b-46e0-b029-25cbb66bf30c_750x422.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0vna!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a71b9ee-9a5b-46e0-b029-25cbb66bf30c_750x422.webp 424w, https://substackcdn.com/image/fetch/$s_!0vna!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a71b9ee-9a5b-46e0-b029-25cbb66bf30c_750x422.webp 848w, https://substackcdn.com/image/fetch/$s_!0vna!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a71b9ee-9a5b-46e0-b029-25cbb66bf30c_750x422.webp 1272w, https://substackcdn.com/image/fetch/$s_!0vna!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a71b9ee-9a5b-46e0-b029-25cbb66bf30c_750x422.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0vna!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a71b9ee-9a5b-46e0-b029-25cbb66bf30c_750x422.webp" width="750" height="422" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3a71b9ee-9a5b-46e0-b029-25cbb66bf30c_750x422.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:422,&quot;width&quot;:750,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:29966,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://danielloureno1.substack.com/i/193339642?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a71b9ee-9a5b-46e0-b029-25cbb66bf30c_750x422.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!0vna!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a71b9ee-9a5b-46e0-b029-25cbb66bf30c_750x422.webp 424w, https://substackcdn.com/image/fetch/$s_!0vna!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a71b9ee-9a5b-46e0-b029-25cbb66bf30c_750x422.webp 848w, https://substackcdn.com/image/fetch/$s_!0vna!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a71b9ee-9a5b-46e0-b029-25cbb66bf30c_750x422.webp 1272w, https://substackcdn.com/image/fetch/$s_!0vna!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3a71b9ee-9a5b-46e0-b029-25cbb66bf30c_750x422.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Ap&#243;s uma experi&#234;ncia de quase morte ao defender sua fam&#237;lia durante uma viagem, Arthur encontra Silvia, um ser estranhamente carinhoso e compreens&#237;vel que destoa de sua apar&#234;ncia sombria e opressiva, que o ajuda a voltar para casa durante alguns meses. Silvia &#233; gravemente feria por algu&#233;m de sua ra&#231;a e deixa uma mensagem para Arthur, pedindo que ele n&#227;o repita os erros da sua vida anterior ao procurar ving&#225;-la. Que chegar&#225; o dia em que ele far&#225; a diferen&#231;a, mas que aproveite sua vida, sua inf&#226;ncia e sua fam&#237;lia at&#233; l&#225;.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://danielloureno1.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Inscreva-se&quot;,&quot;language&quot;:&quot;pt-br&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Obrigado por ler! Assine gratuitamente para receber novos posts e apoiar meu trabalho.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Digite seu e-mail&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Inscreva-se"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>O protagonista segue esse pedido a risca, se tornando aventureiro e depois entrando na escola de magia, mas coisas estranhas continuam acontecendo: uma besta Rank S onde n&#227;o devia, alunos com runas estranhas marcadas na pele, a descoberta de um novo continente e, por fim, uma general assassinada.</p><p>Os tempos de paz estavam chegando ao fim. Arthur continuou crescendo em for&#231;a para lidar com as amea&#231;as do mundo, mas n&#227;o em maturidade para lidar com as dificuldades, que sempre ser&#227;o maiores do que n&#243;s. Em sua vida passada afastou todas as pessoas que se importavam com ele, eliminando todas as suas fraquezas e se tornou invenc&#237;vel, mas perdeu o sentido de lutar. Agora, teria que lidar com a culpa de talvez ter acelerado uma guerra que s&#243; viria em um futuro distante.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3W69!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95a1ab00-73e6-4600-98a8-6f335c6eb445_1920x1080.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3W69!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95a1ab00-73e6-4600-98a8-6f335c6eb445_1920x1080.webp 424w, https://substackcdn.com/image/fetch/$s_!3W69!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95a1ab00-73e6-4600-98a8-6f335c6eb445_1920x1080.webp 848w, https://substackcdn.com/image/fetch/$s_!3W69!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95a1ab00-73e6-4600-98a8-6f335c6eb445_1920x1080.webp 1272w, https://substackcdn.com/image/fetch/$s_!3W69!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95a1ab00-73e6-4600-98a8-6f335c6eb445_1920x1080.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3W69!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95a1ab00-73e6-4600-98a8-6f335c6eb445_1920x1080.webp" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/95a1ab00-73e6-4600-98a8-6f335c6eb445_1920x1080.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:48336,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://danielloureno1.substack.com/i/193339642?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95a1ab00-73e6-4600-98a8-6f335c6eb445_1920x1080.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!3W69!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95a1ab00-73e6-4600-98a8-6f335c6eb445_1920x1080.webp 424w, https://substackcdn.com/image/fetch/$s_!3W69!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95a1ab00-73e6-4600-98a8-6f335c6eb445_1920x1080.webp 848w, https://substackcdn.com/image/fetch/$s_!3W69!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95a1ab00-73e6-4600-98a8-6f335c6eb445_1920x1080.webp 1272w, https://substackcdn.com/image/fetch/$s_!3W69!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95a1ab00-73e6-4600-98a8-6f335c6eb445_1920x1080.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Aluno da mais prestigiada academia de magia, amigo de pr&#237;ncipes e princesas dos reinos humanos e &#233;lficos, &#250;nico mago quadra elemental. Arthur parte em um arco de treinamento e volta ap&#243;s o in&#237;cio da guerra.</p><p>Ele podia ser um dos combatentes mais fortes do continente, ser nomeado como general ou qualquer outra coisa, mas n&#227;o tinha a capacidade para defender sua fam&#237;lia da forma que desejava. Pensou que bastava ser forte o suficiente e todos os problemas poderiam ser contornados. Seus pais e irm&#227; entram na guerra como soldados. Seu pai morre em uma batalha particularmente dif&#237;cil. Sua namorada, Tessia, entra em crise em outra batalha. O reino &#233;lfico &#233; invadido.</p><p>Sem tempo para chorar a morte do seu pai, Arthur &#233; confrontado com uma das batalhas mais marcantes da guerra para mim: A batalha de Bloodfrost.</p><p>Nesse ponto a guerra j&#225; foi perdida para Arthur que perdeu parte da sua fam&#237;lia. Isso o faz refletir sobre a proposta que ele tinha recebido do inimigo, Agrona, alguns dias antes: Deixar a guerra e ter sua fam&#237;lia poupada.</p><p>Durante a batalha o castelo cai por conta da trai&#231;&#227;o do rei elfo para salvar sua filha, Tessia. Assim como Arthur, Alduin teve sua grande perda na guerra: seu reino. Sua fam&#237;lia era a &#250;nica coisa que lhe restava e ela se encontrava com uma doen&#231;a incur&#225;vel.</p><p>Arthur sente algo esquisito na batalha, que s&#243; tinha escravos e nenhum soldado ou mago de verdade. Volta pro castelo e descobre a trai&#231;&#227;o. Descobre tamb&#233;m a for&#231;a real dos generais inimigos, e que nunca tiveram nenhuma chance de vit&#243;ria. Ele foge com os &#250;nicos sobreviventes no castelo para algum lugar qualquer perto de uma montanha e chora a derrota.</p><p>Seu pai tinha morrido alguns dias antes. Sua m&#227;e e irm&#227; estavam no castelo. Ele n&#227;o sabia se tinham sido carbonizadas pelas mesmas chamas que mataram Silvia ou se tinham escapado e estavam fugindo assim como ele. A &#250;nica coisa que restava para ele era sua companheira drag&#227;o que criou desde filhote, Silvie, e talvez Tessia.</p><p>Nessa situa&#231;&#227;o ele faz algo inesperado movido pelo desespero. Contata Agrona aceitando o contrato sem nem mesmo saber se ainda tem uma fam&#237;lia para proteger, entregando de bandeja um continente que j&#225; tinha sido conquistado de qualquer maneira.</p><p>Esse &#233; o fundo do po&#231;o para o personagem. No futuro ele ainda ficaria mais ferido, mais fraco, com mais cicatrizes, mais cansado, mas nunca com tantas perdas como nesse momento.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AhPV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b1bf292-a0b9-4b0f-abc3-111057b2636b_625x1000.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AhPV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b1bf292-a0b9-4b0f-abc3-111057b2636b_625x1000.jpeg 424w, https://substackcdn.com/image/fetch/$s_!AhPV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b1bf292-a0b9-4b0f-abc3-111057b2636b_625x1000.jpeg 848w, https://substackcdn.com/image/fetch/$s_!AhPV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b1bf292-a0b9-4b0f-abc3-111057b2636b_625x1000.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!AhPV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b1bf292-a0b9-4b0f-abc3-111057b2636b_625x1000.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AhPV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b1bf292-a0b9-4b0f-abc3-111057b2636b_625x1000.jpeg" width="625" height="1000" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7b1bf292-a0b9-4b0f-abc3-111057b2636b_625x1000.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1000,&quot;width&quot;:625,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:86441,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://danielloureno1.substack.com/i/193339642?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b1bf292-a0b9-4b0f-abc3-111057b2636b_625x1000.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!AhPV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b1bf292-a0b9-4b0f-abc3-111057b2636b_625x1000.jpeg 424w, https://substackcdn.com/image/fetch/$s_!AhPV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b1bf292-a0b9-4b0f-abc3-111057b2636b_625x1000.jpeg 848w, https://substackcdn.com/image/fetch/$s_!AhPV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b1bf292-a0b9-4b0f-abc3-111057b2636b_625x1000.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!AhPV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b1bf292-a0b9-4b0f-abc3-111057b2636b_625x1000.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>TBATE &#233; uma obra que acompanhei os lan&#231;amentos semanalmente alguns anos atr&#225;s com uma mente totalmente diferente da que tenho hoje. Lembro que na &#233;poca o mais importante para mim, o que realmente ocupava minha mente, eram assuntos que hoje percebo serem menores.</p><p>A evolu&#231;&#227;o de for&#231;a do personagem era um deles. Ansiava pelo momento onde o protagonista dominaria sua vontade bestial e varreria o ch&#227;o com a cara de seus inimigos. Isso veio, mas junto de momentos que os humanizavam.</p><p>Havia tamb&#233;m bastante discuss&#227;o entre torcidas organizadas sobre poss&#237;veis interesses amorosos do protagonista, sendo que era claro que ele terminaria com Tessia, sem a menor sombra de d&#250;vida.</p><p>E ao mesmo tempo se desenvolvia no fundo de tudo isso um dilema que eu s&#243; daria import&#226;ncia depois. Algo que Arthur repetiu em suas duas vidas, mas que n&#227;o percebi na &#233;poca por simplesmente pular todos os flashbacks da vida passada dele. Afinal, eles eram in&#250;teis para o desenrolar dos eventos, as batalhas e t&#225;ticas de guerra no primeiro plano, mas fundamentais para entender a vis&#227;o de mundo do personagem. Tamb&#233;m &#233; curioso como ele come&#231;a a ter pesadelos com a vida passada somente depois do in&#237;cio da guerra.</p><p>Arthur tem, desde o princ&#237;pio, um desejo natural de afastar todo o mal daqueles que ele ama. E quando ele perde a primeira pessoa com quem se importou na vida passada, a diretora do seu orfanato, desvirtua toda sua vida em busca de vingan&#231;a.</p><p>Aqui o dilema surge, ele ainda tem pessoas para proteger: seus amigos Nico e Cecilia. Mas ele decide se afastar de ambos, deixando de os proteger, porque os caminhos que ele trilharia seriam muito perigosos dali em diante. Por&#233;m, seus amigos n&#227;o o abandonam e decidem trilhar esse caminho junto com ele, o que os leva para vidas terr&#237;veis e mortes prematuras.</p><p>De forma semelhante, nessa nova vida ele perde Silvia, mas decide fazer diferente, mostrando amadurecimento. Essa maturidade seria posta a prova quando ele perde outro amigo Elijah e quando perde seu pai, sua fam&#237;lia, seu pa&#237;s. Durante toda essa nova vida ele sente o peso de tudo que ele precisa proteger e tenta carregar aquilo sozinho, acumulando fracassos no processo.</p><p>A obra me pegou pelas lutas e sistema de combate, mas me segurou pelo desenvolvimento dos personagens, ou a falta dele em muitos casos, o que &#233; bem humano na verdade.</p><p>Arthur &#233; cabe&#231;a dura e se apoia no seu tempo somado de duas vidas para fantasiar sua teimosia como experi&#234;ncia. Tessia faz de tudo para se sentir menos in&#250;til como princesa, participando nas linhas de frente da guerra. O &#243;dio irracional que Nico e Cecilia alimentam por Arthur. A manipula&#231;&#227;o de Agrona sobre o psicol&#243;gico de personagens nos dois continentes. Algumas poucas disputas pol&#237;ticas bem localizadas. Esses s&#227;o s&#243; alguns exemplos.</p><p>Outro grande arco para mim acontece quando ele tem que se infiltrar no continente inimigo, interagindo tanto com camponeses quanto militares e l&#237;deres. O foco do personagem &#233; conseguir voltar para casa o mais r&#225;pido poss&#237;vel, mas voc&#234; nota cap&#237;tulo a cap&#237;tulo o pensamento dele mudando e ele lutando contra isso.</p><p>N&#227;o digo que a hist&#243;ria &#233; a melhor de todos os tempos, mas com certeza &#233; uma das quais eu mais engajei e, por isso, tive tempo para notar o que vai al&#233;m do &#243;bvio.</p><p>OBS: <strong>N&#227;o vejam o anime, &#233; horr&#237;vel</strong>. Al&#233;m de que tudo que eu descrevi demoraria anos de adapta&#231;&#227;o para chegar, se &#233; que chegar&#225;.</p><p>Eu consumi muitas hist&#243;rias na minha adolesc&#234;ncia e com o &#250;ltimo texto sobre Attack on Titan percebi que foi um entretenimento, mas que pode ser aproveitado retroativamente tamb&#233;m. Sempre posso revisitar aquelas mem&#243;rias e analisar outros pontos de vista. Foi o que tentei fazer em ambos os textos.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;6099b27d-5cc3-4033-94a0-130c85d68dde&quot;,&quot;caption&quot;:&quot;H&#225; cerca de 100 anos surgiram os tit&#227;s, seres humanoides variando entre 3 e 15 metros de altura, o que causou a quase extin&#231;&#227;o da humanidade. Ou pelo menos era isso que pens&#225;vamos at&#233; o fim da terceira temporada do anime.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Ciclo de &#211;dio em Attack On Titan&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:399614913,&quot;name&quot;:&quot;Daniel Louren&#231;o&quot;,&quot;bio&quot;:&quot;Eu sou aquele moleque da turma que estranhamente fala bastante quando voc&#234; interage. Basicamente um NPC. &quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/261dd700-ea10-4145-aa78-6533dc23f0e8_395x613.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-03-23T17:01:19.329Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!9e80!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4289eedf-a675-4b92-a1b2-fbb123d97e2f_540x350.gif&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://substack.com/home/post/p-191869196&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:191869196,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:5,&quot;comment_count&quot;:7,&quot;publication_id&quot;:6465422,&quot;publication_name&quot;:&quot;Daniel Louren&#231;o&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!R9Vo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F261dd700-ea10-4145-aa78-6533dc23f0e8_395x613.jpeg&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://danielloureno1.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Inscreva-se&quot;,&quot;language&quot;:&quot;pt-br&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Obrigado por ler! Assine gratuitamente para receber novos posts e apoiar meu trabalho.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Digite seu e-mail&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Inscreva-se"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Ciclo de Ódio em Attack On Titan]]></title><description><![CDATA[H&#225; cerca de 100 anos surgiram os tit&#227;s, seres humanoides variando entre 3 e 15 metros de altura, o que causou a quase extin&#231;&#227;o da humanidade.]]></description><link>https://danielloureno1.substack.com/p/ciclo-de-odio-em-attack-on-titan</link><guid isPermaLink="false">https://danielloureno1.substack.com/p/ciclo-de-odio-em-attack-on-titan</guid><dc:creator><![CDATA[Daniel Lourenço]]></dc:creator><pubDate>Mon, 23 Mar 2026 17:01:19 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!9e80!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4289eedf-a675-4b92-a1b2-fbb123d97e2f_540x350.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>H&#225; cerca de 100 anos surgiram os tit&#227;s, seres humanoides variando entre 3 e 15 metros de altura, o que causou a quase extin&#231;&#227;o da humanidade. Ou pelo menos era isso que pens&#225;vamos at&#233; o fim da terceira temporada do anime.</p><p>Sou obrigado a dizer que esse texto cont&#233;m <strong>spoiler</strong> de toda a obra, apesar de que seria interessante ver a percep&#231;&#227;o de algu&#233;m que n&#227;o conhece e n&#227;o assistiu.</p><p>A parte mais legal da hist&#243;ria para mim sempre foi o mist&#233;rio sobre a origem das muralhas, dos tit&#227;s e dos humanos que viravam tit&#227;s. Por&#233;m, quando descobrimos os segredos guardados no por&#227;o da casa do Eren o foco muda completamente para um lado mais pol&#237;tico da coisa.</p><p>Ou &#233; o que gostaria de dizer. A verdade &#233; que Shingeki n&#227;o mudou tanto quanto as pessoas tanto reclamam, muito menos o protagonista. Sempre houve uma semente desde o in&#237;cio, como uma premissa oculta que o argumento ainda n&#227;o levou &#224;s &#250;ltimas consequ&#234;ncias.</p><p>No por&#227;o, e mais pra frente com a expedi&#231;&#227;o de reconhecimento em Marley e a hist&#243;ria do Zeke, descobrimos que o povo das muralhas n&#227;o eram que restou da humanidade, que eram s&#250;ditos de Ymir presos em um ciclo de vingan&#231;a iniciado h&#225; 2000 anos.</p><p>O Reino de Eldia era um reino qualquer at&#233; que recebeu o poder do Tit&#227; Fundador e usou esse poder para oprimir todos os outros povos, se tornando uma superpot&#234;ncia tit&#227;. O aspecto sobrenatural e grotesco desse poder criou um trauma e ressentimento similar, ou at&#233; pior, ao de paises vencidos em guerras.</p><p>Esse per&#237;odo de guerra e carnificina unilateral continuou at&#233; que o Rei Fritz decide se isolar na ilha e construir as muralhas, ele est&#225; sendo movido por um enorme sentimento de culpa por algo que seus ancestrais cometeram.</p><p>Alguns eldianos ficam no continente e um outro pa&#237;s ascende como nova pot&#234;ncia Tit&#227; usando esses remanescentes, mostrando que n&#227;o existe v&#225;cuo de poder.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://danielloureno1.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Inscreva-se&quot;,&quot;language&quot;:&quot;pt-br&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Obrigado por ler! Assine gratuitamente para receber novos posts e apoiar meu trabalho.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Digite seu e-mail&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Inscreva-se"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>Pelo pr&#243;ximo s&#233;culo se forma um equil&#237;brio falso de poder. Marley tem quase todos os Tit&#227;s primordiais enquanto os descendentes do Rei Fritz t&#234;m milhares de colossais podendo, se assim quisessem, destruir o mundo inteiro, e nenhum toma nenhuma a&#231;&#227;o contra o outro.</p><p>Marley denomina a ilha como Para&#237;so e passa a exilar criminosos e rebeldes na ilha depois de transform&#225;-los em Tit&#227;s. O objetivo era cercar a muralha de Tit&#227;s para que os s&#250;ditos de ymir, mais conhecidos como &#8220;Dem&#244;nios da Ilha&#8221;, n&#227;o pudessem ter dias tranquilos nem desenvolvimento tecnol&#243;gico.</p><p>Portanto existe uma tens&#227;o entre Eldia, agora Paradis, e o resto do mundo, representado por Marley. Acompanhamos a hist&#243;ria do ponto de vista do povo dentro das muralhas em uma vida compar&#225;vel a da era medieval que n&#227;o sabem o que s&#227;o os Tit&#227;s, mas os t&#234;m como uma amea&#231;a silenciosa, por&#233;m constante.</p><p>O sonho de Marley seria acabar com o risco de um ataque massivo de Eldia tomando o poder do rei atual, enquanto o sonho de Eldia, representado agora pela Divis&#227;o de Reconhecimento com Eren e Hist&#243;ia, &#233; de acabar com os Tit&#227;s e, posteriormente, com qualquer outra amea&#231;a.</p><p>O Rei Fritz, com seu pensamento e vis&#227;o de mundo indiscutivelmente &#250;nicos condenou as futuras gera&#231;&#245;es do seu povo a ficarem indefesos ao apagar toda a mem&#243;ria dos seus s&#250;ditos e qualquer registro, al&#233;m de passar a pr&#243;pria ideologia para seus descendentes quando herdam o poder de fazer algo para mudar essa situa&#231;&#227;o. No fundo ele deixou o futuro de todos nas m&#227;os dos pr&#243;prios inimigos em nome de uma dita repara&#231;&#227;o hist&#243;rica.</p><p>Claramente nosso protagonista shounnen com sonho de liberdade n&#227;o lidaria bem com isso. Por causa do pensamento entreguista do rei, Eren vai para o extremo oposto:</p><blockquote><p>Se a gente matar os inimigos do outro lado do mar, ser&#225; que finalmente n&#243;s seremos livres? (Fim da 3&#170; temporada)</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9e80!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4289eedf-a675-4b92-a1b2-fbb123d97e2f_540x350.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9e80!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4289eedf-a675-4b92-a1b2-fbb123d97e2f_540x350.gif 424w, https://substackcdn.com/image/fetch/$s_!9e80!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4289eedf-a675-4b92-a1b2-fbb123d97e2f_540x350.gif 848w, https://substackcdn.com/image/fetch/$s_!9e80!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4289eedf-a675-4b92-a1b2-fbb123d97e2f_540x350.gif 1272w, https://substackcdn.com/image/fetch/$s_!9e80!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4289eedf-a675-4b92-a1b2-fbb123d97e2f_540x350.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9e80!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4289eedf-a675-4b92-a1b2-fbb123d97e2f_540x350.gif" width="540" height="350" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4289eedf-a675-4b92-a1b2-fbb123d97e2f_540x350.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:350,&quot;width&quot;:540,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:7920168,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://danielloureno1.substack.com/i/191869196?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4289eedf-a675-4b92-a1b2-fbb123d97e2f_540x350.gif&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!9e80!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4289eedf-a675-4b92-a1b2-fbb123d97e2f_540x350.gif 424w, https://substackcdn.com/image/fetch/$s_!9e80!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4289eedf-a675-4b92-a1b2-fbb123d97e2f_540x350.gif 848w, https://substackcdn.com/image/fetch/$s_!9e80!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4289eedf-a675-4b92-a1b2-fbb123d97e2f_540x350.gif 1272w, https://substackcdn.com/image/fetch/$s_!9e80!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4289eedf-a675-4b92-a1b2-fbb123d97e2f_540x350.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>Se queremos a solu&#231;&#227;o mais pac&#237;fica para esse conflito, isto &#233;, aquela com menos mortes n&#227;o importando de que lado, nem a solu&#231;&#227;o do rei, que n&#227;o &#233; uma solu&#231;&#227;o de fato, nem a do Eren s&#227;o v&#225;lidas. Sobra ent&#227;o o plano do Zeke e o da Divis&#227;o de Reconhecimento.</p><p>Zeke, apesar de nascido em Marley e de um ramo diferente da fam&#237;lia real de Eldia, tem no fundo um pensamento parecido com o do Rei Fritz por&#233;m com uma nuance. A solu&#231;&#227;o do rei n&#227;o &#233; uma solu&#231;&#227;o no sentido de delegar a outrem o direito de julgar Eldia por seus crimes passados fadando-os a um inevit&#225;vel exterm&#237;nio no futuro. J&#225; Zeke tamb&#233;m quer o exterm&#237;nio de Eldia, um exterm&#237;nio pac&#237;fico, mas ainda exterm&#237;nio. Isso mostra que ele enxerga culpa no pr&#243;prio povo, mas principalmente um cansa&#231;o por tanta luta e &#243;dio que s&#243; quer que acabe, n&#227;o importando o ganhador.</p><p>J&#225; o plano da Divis&#227;o de Reconhecimento era integrar Paradis no jogo pol&#237;tico e de poder internacional, mostrar um gostinho do poder de Eldia e negociar uma paz t&#227;o duradoura quanto poss&#237;vel. Nesse cen&#225;rio ver&#237;amos um mundo de poder b&#233;lico e tecnol&#243;gico crescente movido pelo medo da for&#231;a da ilha. O poder de ambos os lados cresceria at&#233; que o poder Tit&#227; fosse irrelevante numa guerra generalizada, isso revela algo interessante: Por mais que os fundadores dessa nova era pol&#237;tica da ilha tivessem as melhores inten&#231;&#245;es de manter a paz e a coopera&#231;&#227;o entre os povos, todo o incentivo para as futuras gera&#231;&#245;es era de atacar e erradicar seus vizinhos para n&#227;o ver seu poder e sua vantagem derretendo diante dos seus olhos.</p><div><hr></div><p>Zeke defende <s>eutan&#225;sia</s> exterm&#237;nio silencioso. Eren defende exterm&#237;nio violento. Paradis defende uma falsa paz, mas quem disse que existe uma paz verdadeira?</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://danielloureno1.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Inscreva-se&quot;,&quot;language&quot;:&quot;pt-br&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Obrigado por ler! Assine gratuitamente para receber novos posts e apoiar meu trabalho.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Digite seu e-mail&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Inscreva-se"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[A Culpa do Analfabetismo Funcional é da Matemática]]></title><description><![CDATA[O maior erro quando tratam desse tema &#233; atribuir a dificuldade de interpretar textos ao ensino da linguagem e da literatura.]]></description><link>https://danielloureno1.substack.com/p/a-culpa-do-analfabetismo-funcional</link><guid isPermaLink="false">https://danielloureno1.substack.com/p/a-culpa-do-analfabetismo-funcional</guid><dc:creator><![CDATA[Daniel Lourenço]]></dc:creator><pubDate>Mon, 16 Mar 2026 17:02:32 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/c5e8f615-e124-40a5-aa57-6edaae36a89f_1264x842.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>O maior erro quando tratam desse tema &#233; atribuir a dificuldade de interpretar textos ao ensino da linguagem e da literatura.</p><p>O problema n&#227;o &#233; de transforma&#231;&#227;o de texto em pensamento ou racioc&#237;nio, &#233; anterior. N&#227;o h&#225; capacidade de racioc&#237;nio estruturado, complexo ou sequer consistente sendo ensinado nas escolas. E isso pertence ao campo da matem&#225;tica, mais especificamente ao campo do Racioc&#237;nio L&#243;gico Matem&#225;tico.</p><p>Nada na matem&#225;tica &#233; arbitr&#225;rio, mas &#233; constru&#237;do a partir de uma base de premissas por meio de racioc&#237;nios estruturados que chamamos de provas matem&#225;ticas. No entanto, a mat&#233;ria &#233; apresentada aos alunos desprovida de sua parte mais importante, sua constru&#231;&#227;o, restando somente as conclus&#245;es jogadas aos coitados com o m&#237;nimo de contexto poss&#237;vel enganando-os a acreditar que as aplica&#231;&#245;es das f&#243;rmulas aprendidas &#233; a &#250;nica coisa que h&#225; para ser aproveitada, sendo que n&#227;o &#233; a &#250;nica, nem mesmo a mais importante.</p><p>A geometria plana de Euclides se junta ao plano cartesiano de Descartes, figuras e n&#250;meros se unem numa das ferramentas mais interessantes da matem&#225;tica: Fun&#231;&#245;es.</p><p>A teoria dos conjuntos ensina sobre elementos, grupos, interse&#231;&#245;es e uni&#245;es que permitem entender quantificadores: universal e existencial, muito confundidos e usados em fal&#225;cias l&#243;gicas e generaliza&#231;&#245;es.</p><p>O racioc&#237;nio l&#243;gico propriamente dito, a base para as provas matem&#225;ticas, define conectivos para linkar proposi&#231;&#245;es na l&#243;gica proposicional que permite elevar o racioc&#237;nio para algo realmente estruturado e consistentemente transmiss&#237;vel entre diferentes pessoas.</p><p>Ela tamb&#233;m escancara as bases aristot&#233;licas de silogismos usados em argumentos. Existem premissas e um argumento que leva a uma conclus&#227;o. Estudamos os argumentos logicamente v&#225;lidos e entendemos que se a conclus&#227;o se segue das premissas por um argumento v&#225;lido, a validade e veracidade dela est&#227;o diretamente ligados a veracidade das premissas.</p><p>Somente estas ideias que pincelei superficialmente j&#225; derrubariam in&#250;meras fal&#225;cias comumente espalhadas no debate p&#250;blico e dariam bases s&#243;lidas para o aprendizado de outras tantas mat&#233;rias para os estudantes caso internalizadas desde o come&#231;o.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://danielloureno1.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Inscreva-se&quot;,&quot;language&quot;:&quot;pt-br&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Obrigado por ler! Assine gratuitamente para receber novos posts e apoiar meu trabalho.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Digite seu e-mail&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Inscreva-se"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>Problemas do sistema educacional brasileiro como aprova&#231;&#227;o compuls&#243;ria afetam todas as disciplinas, mas com muito mais peso prejudicam o aprendizado das exatas, entre elas a matem&#225;tica.</p><p>Passar de ano sem ter aprendido sobre Revolu&#231;&#227;o Francesa de forma apropriada n&#227;o gera nenhuma dificuldade aparente em aprender sobre o Per&#237;odo Napole&#244;nico, mas n&#227;o aprender fun&#231;&#245;es e trigonometria te impedem de aprender C&#225;lculo e coisas como derivadas que dependem fortemente de interpretar fun&#231;&#245;es e gr&#225;ficos.</p><p>Ao inv&#233;s de admitir que existe um erro na forma como matem&#225;tica &#233; ensinada na escola porque ningu&#233;m consegue aprender o segundo por uma defici&#234;ncia no primeiro, jogam o estudo de C&#225;lculo silenciosamente para fora do curr&#237;culo da educa&#231;&#227;o b&#225;sica e se enganam fingindo que os alunos terminam o ensino m&#233;dio sabendo sobre fun&#231;&#245;es. Este &#233; s&#243; um exemplo de algo que acontece com diversos outros exemplos como An&#225;lise Combinat&#243;ria e Geometria no geral.</p><p>Isso fica claro quando olhamos para o Exame Nacional do Ensino M&#233;dio(ENEM) que deveria, na teoria, avaliar o dom&#237;nio do aluno sobre conte&#250;dos aprendidos no <strong>ENSINO M&#201;DIO</strong>. Quando, na pr&#225;tica, mais da metade da prova se trata sobre conte&#250;do do ensino fundamental. Deixando bem claro o quanto a prova se adaptou aos alunos e n&#227;o o contr&#225;rio.</p><p>Professor Toshio Nakamura em <a href="https://www.correiobraziliense.com.br/brasil/2021/11/4966692-enem-questoes-de-matematica-sao-de-ensino-fundamental-avalia-professor.html">entrevista</a> ao Correio Braziliense sobre o ENEM de 2021:</p><blockquote><p>A prova &#233; de ensino fundamental. Grande parte das quest&#245;es envolvia porcentagem, estat&#237;stica e interpreta&#231;&#227;o de gr&#225;ficos/tabelas &#8212; conte&#250;do que um aluno aplicado do 9&#186; ano resolveria. Assuntos cl&#225;ssicos do ensino m&#233;dio (probabilidade, an&#225;lise combinat&#243;ria, matrizes, geometria anal&#237;tica, polin&#244;mios) tiveram zero ou uma quest&#227;o. Trigonometria apareceu s&#243; uma vez; logaritmos e exponenciais, nenhum.</p></blockquote><p>Ele chamou a prova de &#8220;Enef&#8221; (mais fundamental que m&#233;dio) e criticou a falta de profundidade para avaliar candidatos a cursos como engenharia. Dificuldade: baixa em conte&#250;do, mas exigia leitura e c&#225;lculos simples. E esse padr&#227;o se mant&#233;m em todo o hist&#243;rico recente de provas. Muita contextualiza&#231;&#227;o, pouca avalia&#231;&#227;o do que realmente importa.</p><p>A ideia de que exatas, diferente de mat&#233;rias de humanas, s&#227;o como pr&#233;dios com andares que precisam ser constru&#237;dos na ordem certa &#233; uma boa maneira de ver isso. Os andares 4 e 5 estar&#227;o flutuando sem compreens&#227;o b&#225;sica enquanto n&#227;o voltar para construir o terceiro.</p><p>Professores de C&#225;lculo e F&#237;sica do curr&#237;culo comum das engenharias costumeiramente dizem que os alunos n&#227;o t&#234;m dificuldade espec&#237;fica nos conceitos de limites, derivadas e integrais, mas uma dificuldade anterior que vem da escola.</p><p>Notem o que fiz at&#233; aqui:</p><blockquote><p>Dificuldade de interpreta&#231;&#227;o &#233; dificuldade de racioc&#237;nio, que por sua vez &#233; matem&#225;tica deficiente criada por um ensino p&#250;blico direcionado por um incentivo (passar no ENEM e cursar ensino superior).</p></blockquote><p>Isso &#233; uma sequ&#234;ncia encadeada de <strong>implica&#231;&#245;es</strong>.</p><p>A implica B que implica C. Se A &#233; falso, C &#233; falso. N&#227;o h&#225; costume de estruturar o racioc&#237;nio. Essa estrutura foi formalizada na matem&#225;tica. E sem ela nos perdemos no m&#233;rito da discuss&#227;o sem entender o que estamos falando ou lendo.</p><p>Ningu&#233;m devia sequer abrir a boca para argumentar algo sem antes entender os pressupostos das partes. Qualquer argumento pode ser v&#225;lido a partir de premissas quaisquer. &#201; preciso saber a diferen&#231;a entre argumento e premissa, geralmente entendido como valores no sentido de serem parte da vis&#227;o de mundo de algu&#233;m, inclu&#237;do por tabela em qualquer argumento.</p><p>A solu&#231;&#227;o n&#227;o &#233; ensinar <strong>mais</strong> matem&#225;tica, isso seria ing&#234;nuo. &#201; mudar a estrutura, o <strong>como</strong> matem&#225;tica &#233; ensinada. Uma mudan&#231;a tanto no foco, de f&#243;rmulas para constru&#231;&#227;o, como de ritmo.</p><p>Uma modulariza&#231;&#227;o do ensino onde todos os conte&#250;dos pudessem ser acessados a qualquer momento seria <strong>uma ideia</strong> para resolver o problema do pr&#233;dio. Ao inv&#233;s de parar no segundo andar, ter dificuldade com o resto, repetir de ano para finalmente aprender o terceiro, quarto e quinto, o aluno, de alguma forma, pudesse preencher a lacuna de forma paralela ao ano letivo. Claro que isso leva a repensar v&#225;rias caracter&#237;sticas do sistema atual como reprova&#231;&#227;o, ano letivo, turmas fixas e etc.</p><p>Essas s&#227;o somente algumas ideias. Muitas outras coisas poderiam ser feitas, corre&#231;&#245;es pontuais e altera&#231;&#245;es do paradigma de ensino atual para otimizar os recursos atuais.</p><p>Esse texto &#233; a constru&#231;&#227;o de um argumento maior que procura mostrar que resultados melhores podem ser atingidos, n&#227;o por otimiza&#231;&#227;o com aprimoramento que vem de um aumento de complexidade do sistema que impedem melhorias futuras, mas por remodelagem que mude a rota de forma a permitir saltos de efici&#234;ncia que a complexidade anterior n&#227;o permitia.</p><p>Falo um pouco sobre complexidade e ganho de efici&#234;ncia por organiza&#231;&#227;o no texto a seguir:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;22fab05e-5e44-4ca5-82ec-bc9ed308c884&quot;,&quot;caption&quot;:&quot;A Troca Equivalente&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Lei e Ordem&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:399614913,&quot;name&quot;:&quot;Daniel Louren&#231;o&quot;,&quot;bio&quot;:&quot;Eu sou aquele moleque da turma que estranhamente fala bastante quando voc&#234; interage. Basicamente um NPC. &quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/261dd700-ea10-4145-aa78-6533dc23f0e8_395x613.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-03-02T17:02:27.583Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ee62a490-9fcd-4343-80ad-05fd629aaafb_1536x1024.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://substack.com/home/post/p-189663021&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:189663021,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:5,&quot;comment_count&quot;:0,&quot;publication_id&quot;:6465422,&quot;publication_name&quot;:&quot;Daniel Louren&#231;o&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!R9Vo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F261dd700-ea10-4145-aa78-6533dc23f0e8_395x613.jpeg&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>Voc&#234; pode achar interessante estes textos sobre aprendizado e o papel da LLM na expans&#227;o de generalistas:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;498b1457-e9be-46bc-a174-79ea9cbd2e10&quot;,&quot;caption&quot;:&quot;Nosso c&#233;rebro &#233; formado por neur&#244;nios, como voc&#234; provavelmente aprendeu na escola. Esses neur&#244;nios s&#227;o uma esp&#233;cie especial de c&#233;lulas que usam de eletricidade para se comunicarem entre si. &#201; bem comum usar a quantidade de neur&#244;nios como um indicador de intelig&#234;ncia, apesar de n&#227;o ser verdade. Tamb&#233;m &#233; bem comum ouvir falar de neuroplasticidade, a capac&#8230;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Neuroplasticidade&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:399614913,&quot;name&quot;:&quot;Daniel Louren&#231;o&quot;,&quot;bio&quot;:&quot;Eu sou aquele moleque da turma que estranhamente fala bastante quando voc&#234; interage. Basicamente um NPC. &quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/261dd700-ea10-4145-aa78-6533dc23f0e8_395x613.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-02-02T17:02:46.620Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/32f89540-8c78-40cc-81ea-c9bef4d5c179_1536x1024.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://substack.com/home/post/p-186629475&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:186629475,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:1,&quot;comment_count&quot;:2,&quot;publication_id&quot;:6465422,&quot;publication_name&quot;:&quot;Daniel Louren&#231;o&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!R9Vo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F261dd700-ea10-4145-aa78-6533dc23f0e8_395x613.jpeg&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;d0234570-caa4-4a5e-9962-f86a931d96b6&quot;,&quot;caption&quot;:&quot;Escrita&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;A Pr&#243;xima Camada de Abstra&#231;&#227;o&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:399614913,&quot;name&quot;:&quot;Daniel Louren&#231;o&quot;,&quot;bio&quot;:&quot;Eu sou aquele moleque da turma que estranhamente fala bastante quando voc&#234; interage. Basicamente um NPC. &quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/261dd700-ea10-4145-aa78-6533dc23f0e8_395x613.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-02-09T16:06:51.788Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0ab634d1-7fb7-4425-9265-01861d11d207_1024x1536.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://substack.com/home/post/p-187404215&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:187404215,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:1,&quot;comment_count&quot;:0,&quot;publication_id&quot;:6465422,&quot;publication_name&quot;:&quot;Daniel Louren&#231;o&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!R9Vo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F261dd700-ea10-4145-aa78-6533dc23f0e8_395x613.jpeg&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://danielloureno1.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Inscreva-se&quot;,&quot;language&quot;:&quot;pt-br&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Obrigado por ler! Assine gratuitamente para receber novos posts e apoiar meu trabalho.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Digite seu e-mail&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Inscreva-se"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Aprender inglês nunca foi tão fácil]]></title><description><![CDATA[Meu fluxo de estudo ultra acelerado para reten&#231;&#227;o suprema transformado em sistema]]></description><link>https://danielloureno1.substack.com/p/aprender-ingles-nunca-foi-tao-facil</link><guid isPermaLink="false">https://danielloureno1.substack.com/p/aprender-ingles-nunca-foi-tao-facil</guid><dc:creator><![CDATA[Daniel Lourenço]]></dc:creator><pubDate>Tue, 10 Mar 2026 17:01:16 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!MDxM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c75718b-5f98-451b-8804-8a548974a3cc_872x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Aprender um novo idioma sempre &#233; tratado como um bicho de sete cabe&#231;as. Eu diria que levei dois ou tr&#234;s anos estudando antes de me sentir confort&#225;vel lendo textos quaisquer na internet.</p><p>A maior dificuldade que percebo em estudantes de ingl&#234;s &#233; a fala. Eu absolutamente nunca precisei falar em ingl&#234;s ent&#227;o nunca me interessei por desenvolver essa habilidade. Por outro lado, sempre quis ler massivamente em ingl&#234;s centenas de cap&#237;tulos de dezenas de hist&#243;rias e livros.</p><p>No caminho para atingir um n&#237;vel alto de leitura, para ler sem demora e com fluidez eu percebi, n&#227;o por falta de avisos de pessoas como <a href="https://www.youtube.com/@mairovergara">Mairo Vergara</a> e <a href="https://www.youtube.com/@mattvsjapan">Matt</a>, que minha habilidade de me expressar evolu&#237;a sempre na mesma propor&#231;&#227;o, mas um passo atr&#225;s da minha leitura.</p><p>N&#227;o me pe&#231;a para pronunciar nada em ingl&#234;s com pessoas presentes num raio de 100 metros, mas eu n&#227;o hesitaria em explicar racioc&#237;nio longos e complexos ou nerdar sobre animes e mang&#225;s para um falante nativo num chat via texto, por exemplo.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://danielloureno1.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Inscreva-se&quot;,&quot;language&quot;:&quot;pt-br&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Obrigado por ler! Assine gratuitamente para receber novos posts e apoiar meu trabalho.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Digite seu e-mail&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Inscreva-se"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>A maioria das pessoas que diz ser capaz de entender conte&#250;do escrito ou falado, mas n&#227;o de falar <strong>tamb&#233;m n&#227;o escreve</strong>. S&#243; por isso j&#225; &#233; bem &#243;bvio que o problema da pessoa n&#227;o &#233; pron&#250;ncia, <strong>&#233; vocabul&#225;rio</strong>.</p><p>Enquanto coisas como gram&#225;tica, g&#237;rias e <em>phrasal verbs</em> recebem aten&#231;&#227;o desproporcional, acredito que a coisa mais importante e que traz a maior parte dos resultados &#233; ter um vocabul&#225;rio extenso. &#201; como diz a Regra de Pareto, <strong>80% da sua capacidade de se expressar</strong> vem dos 20% dos esfor&#231;os vem de <strong>aprender novas palavras</strong> e seus significados. Depois voc&#234; pode buscar os 20% restantes que envolvem gram&#225;tica, velocidade, naturalidade, mas inverter essa l&#243;gica e priorizar isso nas primeiras etapas do aprendizado &#233; matar completamente o progresso que voc&#234; poderia ter.</p><p>&#201; de onde vem o conceito de <em>Comprehensible Input</em>. A melhor forma de aumentar seu vocabul&#225;rio &#233; por imers&#227;o por causa do contexto, mas voc&#234; n&#227;o sabe ingl&#234;s ent&#227;o n&#227;o pega o contexto. Por isso &#233; necess&#225;rio um certo uso de conte&#250;dos feitos para estudantes no in&#237;cio. Por&#233;m recomendo fortemente que voc&#234; deixe a piscina o mais r&#225;pido poss&#237;vel e se jogue no mar dos textos reais, feitos por nativos para nativos.</p><p>Querendo potencializar ainda mais a velocidade com que novas palavras s&#227;o aprendidas em contexto foram criados m&#233;todos usando o Anki<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a> para revisar aquelas palavras no contexto em que foram estudadas.</p><p>Juntamente com isso surge o conceito de frases I+1 para reduzir o peso da revis&#227;o e internalizar aquelas palavras. Estudamos palavras novas e guardamos somente as frases com uma &#250;nica palavra nova.</p><p>Aqui existem dois truques:</p><ol><li><p>Ao usar frases inteiras para revis&#227;o, voc&#234; aprende gram&#225;tica de forma passiva.</p></li><li><p>Voc&#234; internaliza os padr&#245;es da l&#237;ngua. Coisas como quando uma palavra &#233; usada, e com que outras palavras ela &#233; usada.</p></li></ol><p>No come&#231;o &#233; um sofrimento achar fases I+1, o que geralmente acontece &#233; decifrar um texto de forma lenta e em v&#225;rias etapas, pesquisando em dicion&#225;rios e buscando frases mais simples que usam as palavras do texto base. Com o tempo, depois de meses de pratica deliberada com pesquisas e revis&#245;es di&#225;rias, voc&#234; passa a achar frases I+1 nos pr&#243;prios textos que voc&#234; est&#225; estudando.</p><p>Voc&#234; aprende os padr&#245;es e palavras mais usados, os mais comuns de maneira geral e no nicho do conte&#250;do que voc&#234; gosta. Isso cria um ciclo retroalimentado de aprendizado. Voc&#234; aprende e se torna mais capaz de acompanhar textos do seu interesse. Com mais compreens&#227;o voc&#234; come&#231;a a entender via contexto, al&#233;m de estar por si s&#243; revisando estruturas gramaticais e palavras que voc&#234; estudou antes sem o Anki.</p><p>A maior d&#250;vida para quem come&#231;a a usar o m&#233;todo &#233; saber quais textos estudar. Escolha os textos do seu interesse a menos que seja algo muito t&#233;cnico e espec&#237;fico como treinamento de redes neurais convolucionais. Geralmente a melhor escolha &#233; fic&#231;&#227;o, entretenimento, no m&#225;ximo not&#237;cias.</p><p>Chamamos de minerar senten&#231;as o passo a passo de ler o texto at&#233; encontrar palavras desconhecidas, pesquisar seu significado, entender a frase original ou procurar outra frase que use a palavra, formatar e copiar no Anki. Essas palavras desconhecidas n&#227;o necessariamente precisam ser totalmente novas, mas devem estar ali com um significado novo que te impede de explicar a senten&#231;a com propriedade e facilidade.</p><p>As consultas no dicion&#225;rio e a leitura de um texto cheio de palavras desconhecidas e contexto nebuloso s&#227;o um trabalho cognitivo que n&#227;o tem escapat&#243;ria. &#201; necess&#225;rio passar por isso para, junto com as revis&#245;es, assimilar a l&#237;ngua. Por outro lado, a etapa de passar esse material para o Anki &#233; puramente mec&#226;nico e perfeitamente evit&#225;vel.</p><p>Pensando nos sufocos que passei para aprender ingl&#234;s e que continuo passando para ler textos mais complexos e t&#233;cnicos decidi criar um site que me ajudasse no processo de estudar um texto e simplesmente pular a barreira Texto-&gt;Anki, que agora s&#227;o sincronizados sem a necessidade de ficar copiando e colando de l&#225; pra c&#225; por mais de 20 minutos.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MDxM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c75718b-5f98-451b-8804-8a548974a3cc_872x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MDxM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c75718b-5f98-451b-8804-8a548974a3cc_872x768.png 424w, https://substackcdn.com/image/fetch/$s_!MDxM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c75718b-5f98-451b-8804-8a548974a3cc_872x768.png 848w, https://substackcdn.com/image/fetch/$s_!MDxM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c75718b-5f98-451b-8804-8a548974a3cc_872x768.png 1272w, https://substackcdn.com/image/fetch/$s_!MDxM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c75718b-5f98-451b-8804-8a548974a3cc_872x768.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MDxM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c75718b-5f98-451b-8804-8a548974a3cc_872x768.png" width="872" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6c75718b-5f98-451b-8804-8a548974a3cc_872x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:872,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:87567,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://danielloureno1.substack.com/i/190497708?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c75718b-5f98-451b-8804-8a548974a3cc_872x768.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!MDxM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c75718b-5f98-451b-8804-8a548974a3cc_872x768.png 424w, https://substackcdn.com/image/fetch/$s_!MDxM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c75718b-5f98-451b-8804-8a548974a3cc_872x768.png 848w, https://substackcdn.com/image/fetch/$s_!MDxM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c75718b-5f98-451b-8804-8a548974a3cc_872x768.png 1272w, https://substackcdn.com/image/fetch/$s_!MDxM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c75718b-5f98-451b-8804-8a548974a3cc_872x768.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9TKt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe6520a4-881a-4565-a1b0-9d1c57091e50_1846x959.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9TKt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe6520a4-881a-4565-a1b0-9d1c57091e50_1846x959.png 424w, https://substackcdn.com/image/fetch/$s_!9TKt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe6520a4-881a-4565-a1b0-9d1c57091e50_1846x959.png 848w, https://substackcdn.com/image/fetch/$s_!9TKt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe6520a4-881a-4565-a1b0-9d1c57091e50_1846x959.png 1272w, https://substackcdn.com/image/fetch/$s_!9TKt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe6520a4-881a-4565-a1b0-9d1c57091e50_1846x959.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9TKt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe6520a4-881a-4565-a1b0-9d1c57091e50_1846x959.png" width="1456" height="756" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fe6520a4-881a-4565-a1b0-9d1c57091e50_1846x959.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:756,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:111596,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://danielloureno1.substack.com/i/190497708?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe6520a4-881a-4565-a1b0-9d1c57091e50_1846x959.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!9TKt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe6520a4-881a-4565-a1b0-9d1c57091e50_1846x959.png 424w, https://substackcdn.com/image/fetch/$s_!9TKt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe6520a4-881a-4565-a1b0-9d1c57091e50_1846x959.png 848w, https://substackcdn.com/image/fetch/$s_!9TKt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe6520a4-881a-4565-a1b0-9d1c57091e50_1846x959.png 1272w, https://substackcdn.com/image/fetch/$s_!9TKt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe6520a4-881a-4565-a1b0-9d1c57091e50_1846x959.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xbUC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffef4b2b8-ac10-459c-b419-bd4a59759303_1846x959.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xbUC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffef4b2b8-ac10-459c-b419-bd4a59759303_1846x959.png 424w, https://substackcdn.com/image/fetch/$s_!xbUC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffef4b2b8-ac10-459c-b419-bd4a59759303_1846x959.png 848w, https://substackcdn.com/image/fetch/$s_!xbUC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffef4b2b8-ac10-459c-b419-bd4a59759303_1846x959.png 1272w, https://substackcdn.com/image/fetch/$s_!xbUC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffef4b2b8-ac10-459c-b419-bd4a59759303_1846x959.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xbUC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffef4b2b8-ac10-459c-b419-bd4a59759303_1846x959.png" width="1456" height="756" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fef4b2b8-ac10-459c-b419-bd4a59759303_1846x959.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:756,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:133822,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://danielloureno1.substack.com/i/190497708?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffef4b2b8-ac10-459c-b419-bd4a59759303_1846x959.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!xbUC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffef4b2b8-ac10-459c-b419-bd4a59759303_1846x959.png 424w, https://substackcdn.com/image/fetch/$s_!xbUC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffef4b2b8-ac10-459c-b419-bd4a59759303_1846x959.png 848w, https://substackcdn.com/image/fetch/$s_!xbUC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffef4b2b8-ac10-459c-b419-bd4a59759303_1846x959.png 1272w, https://substackcdn.com/image/fetch/$s_!xbUC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffef4b2b8-ac10-459c-b419-bd4a59759303_1846x959.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0NWg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1827f127-122a-49b6-918b-46988e2e2582_1846x959.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0NWg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1827f127-122a-49b6-918b-46988e2e2582_1846x959.png 424w, https://substackcdn.com/image/fetch/$s_!0NWg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1827f127-122a-49b6-918b-46988e2e2582_1846x959.png 848w, https://substackcdn.com/image/fetch/$s_!0NWg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1827f127-122a-49b6-918b-46988e2e2582_1846x959.png 1272w, https://substackcdn.com/image/fetch/$s_!0NWg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1827f127-122a-49b6-918b-46988e2e2582_1846x959.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0NWg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1827f127-122a-49b6-918b-46988e2e2582_1846x959.png" width="1456" height="756" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1827f127-122a-49b6-918b-46988e2e2582_1846x959.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:756,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:69722,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://danielloureno1.substack.com/i/190497708?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1827f127-122a-49b6-918b-46988e2e2582_1846x959.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0NWg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1827f127-122a-49b6-918b-46988e2e2582_1846x959.png 424w, https://substackcdn.com/image/fetch/$s_!0NWg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1827f127-122a-49b6-918b-46988e2e2582_1846x959.png 848w, https://substackcdn.com/image/fetch/$s_!0NWg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1827f127-122a-49b6-918b-46988e2e2582_1846x959.png 1272w, https://substackcdn.com/image/fetch/$s_!0NWg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1827f127-122a-49b6-918b-46988e2e2582_1846x959.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Eu estou me esfor&#231;ando para tornar a experi&#234;ncia o mais fluida poss&#237;vel pra poder focar s&#243; no aprendizado. Foram semanas interessantes aprendendo sobre codifica&#231;&#227;o e experi&#234;ncia de usu&#225;rio, questionando os meus m&#233;todos de aprendizado e se devia compartilhar isso aqui.</p><p>Gostaria muito que voc&#234; usasse e me desse feedback sobre a usabilidade e se seria &#250;til para aprender novos idiomas. Pode deixar seu coment&#225;rio ou mandar mensagens diretamente para mim, agradeceria muito.</p><p>O projeto ainda est&#225; em desenvolvimento e adoraria sugest&#245;es, contribui&#231;&#245;es e ideias. Qualquer coisa que melhore o aprendizado t&#225; valendo!</p><p><a href="linguamap.daniellourenco.site">Link do projeto</a></p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>Sistema de repeti&#231;&#227;o espa&#231;ada baseado em flashcards</p></div></div>]]></content:encoded></item><item><title><![CDATA[Lei e Ordem]]></title><description><![CDATA[O conceito pol&#237;tico mais subestimado da era moderna]]></description><link>https://danielloureno1.substack.com/p/lei-e-ordem</link><guid isPermaLink="false">https://danielloureno1.substack.com/p/lei-e-ordem</guid><dc:creator><![CDATA[Daniel Lourenço]]></dc:creator><pubDate>Mon, 02 Mar 2026 17:02:27 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/ee62a490-9fcd-4343-80ad-05fd629aaafb_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>A Troca Equivalente</h3><p>Quando duas pessoas fazem uma troca volunt&#225;ria, tendemos a enxergar isso como algo bom. E de fato, segundo qualquer vis&#227;o de mundo liberal, conservadora ou anarco capitalista n&#227;o devia ter nada de errado nisso. Isso se deve a no&#231;&#227;o de que a troca se d&#225; entre itens de valor equivalente ou pr&#243;ximo.</p><p>Apesar de n&#227;o ser exatamente o que ocorre. A verdade &#233; que uma <em>&#8220;Troca Equivalente&#8221;</em> pelo princ&#237;pio do m&#237;nimo esfor&#231;o n&#227;o aconteceria. Se a satisfa&#231;&#227;o por ter o outro bem ao inv&#233;s do atual fosse <strong>exatamente igual</strong>, n&#227;o haveria sentido empenhar esfor&#231;o na execu&#231;&#227;o da troca.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://danielloureno1.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Inscreva-se&quot;,&quot;language&quot;:&quot;pt-br&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Obrigado por ler! Assine gratuitamente para receber novos posts e apoiar meu trabalho.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Digite seu e-mail&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Inscreva-se"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>Antes da troca existe uma valora&#231;&#227;o de satisfa&#231;&#227;o atrelada a cada parte da troca com seus bens. Fazer a troca deve <strong>aumentar o n&#237;vel de satisfa&#231;&#227;o</strong> de forma a justificar o seu custo. Depois da troca o n&#237;vel geral de satisfa&#231;&#227;o geral &#233; maior que antes da troca. Riqueza foi gerada apesar de os bens n&#227;o mudaram em quantidade ou qualidade. <strong>A &#250;nica coisa que mudou foi na m&#227;o de quem eles est&#227;o.</strong></p><h3>Conserva&#231;&#227;o da Mat&#233;ria</h3><p>O princ&#237;pio da conserva&#231;&#227;o da mat&#233;ria &#233; absoluto. N&#227;o &#233; poss&#237;vel criar recursos, apenas explorar os recursos da natureza e agregar nosso trabalho em cima. &#201; disso que trata o estudo da Economia: lidar com recursos escassos.</p><p>Por&#233;m, isso n&#227;o se aplica para tudo na nossa vida. <strong>Existem coisas que podem ser criadas e compartilhadas infinitamente.</strong></p><h3>Conhecimento</h3><p>Conhecimento, informa&#231;&#227;o e t&#233;cnica/tecnologia s&#227;o bens imateriais que requerem um <strong>esfor&#231;o ordenado e direcionado</strong> para passarem a existir, mas depois de surgirem podem ser espalhados e compartilhados de forma ilimitada. Uma ideia n&#227;o deixa de existir por escassez, <strong>ela morre da mem&#243;ria coletiva quando deixa de ser &#250;til.</strong></p><p>Assimetria de informa&#231;&#227;o d&#225; ao criador de uma t&#233;cnica vantagem competitiva em uma &#225;rea que o incentiva a dispender tempo e recursos em <strong>atividades que n&#227;o s&#227;o imediatamente produtivas.</strong> Isso se chama investimento, que tamb&#233;m pode se dar na fabrica&#231;&#227;o de bens intermedi&#225;rios (bens que n&#227;o s&#227;o para consumo imediato) para al&#233;m de inven&#231;&#245;es somente.</p><p>De certo modo, patentes s&#227;o uma tentativa centralizada de proteger esse incentivo &#224; cria&#231;&#227;o de conhecimento na forma de propriedade intelectual. Na pr&#225;tica n&#227;o existe propriedade sobre bens n&#227;o escassos.</p><h3>Neuroci&#234;ncia</h3><p>O c&#233;rebro humano &#233; uma rede de neur&#244;nios interconectada. Existe hardware (neur&#244;nios) e o software (conex&#245;es). Os mesmos neur&#244;nios podem representar diversos pensamentos e mem&#243;rias tudo a depender da forma como est&#227;o conectados. O aprendizado &#233; o processo de reordenar as conex&#245;es deles para a execu&#231;&#227;o de uma nova tarefa, aumentando a utilidade do circuito.</p><p>O n&#250;mero de conex&#245;es poss&#237;veis aumenta em uma propor&#231;&#227;o exponencial se comparada com o n&#250;mero de neur&#244;nios. Se voc&#234; lembra de qualquer coisa de <em>An&#225;lise Combinat&#243;ria</em> das aulas de matem&#225;tica b&#225;sica, sabe do que estou falando.</p><p>Portanto, o maior trabalho realizado pelo c&#233;rebro - a m&#225;quina mais complexa que o ser humano utiliza no seu dia a dia - n&#227;o &#233; de fabricar novos neur&#244;nios dia e noite. <strong>O maior trabalho do c&#233;rebro &#233; de reorganizar as conex&#245;es</strong> para aumentar a gama de habilidades dispon&#237;veis: motoras e cognitivas. Isso ocorre durante o sono, como eu explico <a href="https://substack.com/@danielloureno1/p-186629475">aqui</a>.</p><h3>Materialismo</h3><p>Tanto o <strong>comunismo</strong> quanto o <strong>capitalismo</strong> se prenderam ao material, aos recursos que obedecem as leis da f&#237;sica, e esqueceram completamente do imaterial: ideias, inova&#231;&#227;o. Todos as correntes econ&#244;micas que buscam dar uma forma para a sociedade trata inova&#231;&#227;o como um mero detalhe sendo que foi a <strong>inova&#231;&#227;o em tecnologia</strong> que permitiu o mundo que vivemos hoje sequer existir.</p><p>Discuss&#245;es sobre produtividade e desenvolvimento nacional s&#243; se preocupam com quanto recurso tiramos da terra e como agregamos valor aos produtos antes de exportar. &#201; uma melhora, mas n&#227;o existe um efeito bola de neve enquanto um problema anterior n&#227;o for resolvido.</p><p>Aumentar a produ&#231;&#227;o tem um limite, assim como aumentar neur&#244;nios no c&#233;rebro. Um ser humano n&#227;o precisa de trilh&#245;es de neur&#244;nios, isso seria s&#243; um <strong>desperd&#237;cio</strong> de energia, uma <strong>m&#225;quina ineficiente</strong>.</p><p>Se o objetivo &#233; aumentar a satisfa&#231;&#227;o geral isso envolve aumentar a produ&#231;&#227;o, mas tamb&#233;m envolve resolver outros problemas nascidos da entropia, do caos, da dissolu&#231;&#227;o da ordem p&#250;blica.</p><h3>Ordem e Progresso</h3><p>&#201; comum um sistema acumular emendas, corre&#231;&#245;es e &#8220;aprimoramentos&#8221; que aumentam a sua complexidade. Essas altera&#231;&#245;es muitas vezes geram retornos cada vez menores ao ponto que revolucionar o sistema, mesmo com todos os custos da incerteza, se torna a melhor op&#231;&#227;o.</p><p>Uma das coisas mais naturais para um dev &#233; abandonar projetos pessoais que cresceram da forma errada e come&#231;ar de novo j&#225; sabendo o caminho que deve ser tomado. Muda-se a arquitetura, &#224;s vezes as tecnologias usadas, e chegamos num resultado melhor e com espa&#231;o para crescimento que n&#227;o existia na vers&#227;o anterior. Isso n&#227;o acontece por genialidade do desenvolvedor, mas por incompet&#234;ncia na primeira tentativa, revelada pela pr&#225;tica no mundo real. A corre&#231;&#227;o &#233; feita por honestidade de saber que os fundamentos no qual o sistema foi pensado eram falhos.</p><p>&#201; conhecimento comum que n&#227;o &#233; poss&#237;vel aumentar um pr&#233;dio <em>ad eternum</em>, mas &#233; preciso desde a base saber o tamanho final do pr&#233;dio. Se j&#225; h&#225; um pr&#233;dio ali, para construir um maior &#233; preciso demolir e construir uma base espec&#237;fica para o novo pr&#233;dio.</p><p>&#201; preciso, portanto, de uma ordem no projeto para que os recursos sejam aplicados de forma racional. Ordem essa que degrada e precisa ser restaurada, &#224;s vezes por um processo desagrad&#225;vel.</p><p>Lei e ordem &#233; exatamente esse conceito materializado em express&#227;o idiom&#225;tica frequentemente associado a autoritarismo e coisas ruins quando na verdade &#233; o que tem o maior potencial de trazer enormes resultados. Pois reduz a complexidade, desata n&#243;s e abre espa&#231;o para melhoria real.</p><p>Enquanto h&#225; briga por todos os lados discutindo sobre estado sim ou estado n&#227;o, estado forte ou estado fraco, <strong>o estado existe</strong> e &#233; ineficiente, de prop&#243;sito. &#201; dito que busca o desenvolvimento nacional na Constitui&#231;&#227;o de 1988, quando na verdade &#233; s&#243; uma institui&#231;&#227;o de caridade com dinheiro alheio.</p><p>O nosso progresso n&#227;o vir&#225; de criar cidad&#227;os com consci&#234;ncia social ou coisas do tipo, mas de criar cidad&#227;os capazes de usar os recursos naturais e humanos do pa&#237;s para algo mais &#250;til que decidir quem senta no trono. Vir&#225; de criar um sistema educacional que realmente eduque de verdade. Vir&#225; de criar um ambiente onde as pessoas n&#227;o sintam medo de serem violentadas, assaltadas, fraudadas, mortas. Vir&#225; de criar um mercado onde voc&#234; n&#227;o tenha medo do desemprego, pois sempre h&#225; mais e mais empresas crescendo e sendo criadas disputando por funcion&#225;rios. E nada disso se dar&#225; com reformas envergonhadas, com medo de mudar o que est&#225; posto, mas de fazer uso forte da m&#227;o do estado para o bem, n&#227;o s&#243; para o mal como acontece hoje. O autoritarismo que todos temem j&#225; est&#225; posto, embalado em gentileza e palavras bonitas, mas est&#225; posto.</p><p>Lei e Ordem s&#227;o necess&#225;rios para que o poder estatal tenha algum sentido em existir. N&#227;o h&#225; motivo para deixar na m&#227;o dos indiv&#237;duos o desenvolvimento do pa&#237;s se h&#225; um estado com poderes absolutos sobre a sociedade. <strong>Ordem n&#227;o &#233; um pressuposto para a exist&#234;ncia do Estado.</strong> &#201; sua &#250;nica justificativa.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://danielloureno1.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Inscreva-se&quot;,&quot;language&quot;:&quot;pt-br&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Obrigado por ler! Assine gratuitamente para receber novos posts e apoiar meu trabalho.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Digite seu e-mail&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Inscreva-se"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Carteiras Bitcoin]]></title><description><![CDATA[O Bitcoin funciona &#224; base de Chaves P&#250;blicas(PubKey) e Chaves Privadas(PrivKey). Voc&#234; recebe em um endere&#231;o, usa a Chave Privada para assinar uma transa&#231;&#227;o gastando os bitcoins naquele endere&#231;o e a Chave P&#250;blica &#233; usada para provar que a assinatura &#233; realmente v&#225;lida.]]></description><link>https://danielloureno1.substack.com/p/carteiras-bitcoin</link><guid isPermaLink="false">https://danielloureno1.substack.com/p/carteiras-bitcoin</guid><dc:creator><![CDATA[Daniel Lourenço]]></dc:creator><pubDate>Mon, 23 Feb 2026 17:11:38 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/f7d69d2b-5ddd-4513-9b33-4264ddb0cda8_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>O Bitcoin funciona &#224; base de <em>Chaves P&#250;blicas(PubKey)</em> e <em>Chaves Privadas(PrivKey)</em>. Voc&#234; recebe em um endere&#231;o, usa a <em>Chave Privada</em> para assinar uma transa&#231;&#227;o gastando os bitcoins naquele endere&#231;o e a <em>Chave P&#250;blica</em> &#233; usada para provar que a assinatura &#233; realmente v&#225;lida. Por&#233;m isso &#233; uma simplifica&#231;&#227;o. N&#227;o existem bitcoins naquele endere&#231;o. </p><p>Na verdade, todos esses termos que acabei de falar s&#227;o apenas n&#250;meros com algumas dezenas de d&#237;gitos na base decimal ou 256 d&#237;gitos na base bin&#225;ria. Os bitcoins n&#227;o est&#225; em um endere&#231;o (hash da <em>Chave P&#250;blica</em>) ou <em>Chave P&#250;blica</em>, muito menos numa <em>Chave Privada</em>. <strong>Todos os bitcoins</strong> est&#227;o na <em>blockchain</em>.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://danielloureno1.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Inscreva-se&quot;,&quot;language&quot;:&quot;pt-br&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Assine gratuitamente para receber novos posts e apoiar meu trabalho.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Digite seu e-mail&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Inscreva-se"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3>Blockchain</h3><div><hr></div><p>Essencialmente, a <em>blockchain</em> &#233; um registro cont&#225;bil. Nela est&#227;o registradas todas as transa&#231;&#245;es feitas com bitcoin deste 2009. Fazer uma transa&#231;&#227;o na camada principal do Bitcoin &#233; pedir para todos os <em>full nodes<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a></em> do mundo inteiro guardem aquela informa&#231;&#227;o por toda a eternidade. Imagine uma planilha com <a href="https://exame.com/future-of-money/bitcoin-supera-mais-de-1-bilhao-transacoes-processadas-no-blockchain/">1 bilh&#227;o de linhas</a>, cada nova transa&#231;&#227;o feita &#233; uma nova linha nessa planilha onde todos os usu&#225;rios da rede tem uma c&#243;pia em um formato resistente &#224; mudan&#231;as: <strong>a blockchain</strong>.</p><p>O resultado real de uma transa&#231;&#227;o ser inclu&#237;da na <em>blockchain</em> &#233; a cria&#231;&#227;o de um novo output(UTXO) no nome de um endere&#231;o. O que isso significa? Significa que voc&#234; criou esse output com uma condi&#231;&#227;o de gasto. A condi&#231;&#227;o normalmente &#233; &#8220;Quem quer que tenha a <em>Chave Privada</em> da <em>Chave P&#250;blica</em> que criou esse endere&#231;o pode gastar esse output&#8221; e isso &#233; feito com o que chamamos de <code>scriptPubKey</code>  em uma linguagem de pilha usada pelo Bitcoin chamada simplesmente de <code>Script</code>.</p><h3>Script</h3><div><hr></div><p><code>Script</code> &#233; uma linguagem baseada em <strong>pilha</strong>, isso significa que as informa&#231;&#245;es e dados que um script dessa linguagem recebe <strong>s&#243; podem entrar ou sair pelo topo</strong> dessa estrutura. Isso limita a linguagem e a torna mais previs&#237;vel.</p><h4>Locking script (scriptPubKey)</h4><p>&#201; o script que fica na <strong>sa&#237;da (output)</strong> de uma transa&#231;&#227;o. Ele define as condi&#231;&#245;es que precisam ser satisfeitas para que aquele Bitcoin possa ser gasto no futuro. Funciona como um cadeado.</p><p>Exemplo cl&#225;ssico (P2PKH &#8212; Pay to Public Key Hash):</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:&quot;96e50a70-a432-472a-a9dd-31dcb0d79047&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">OP_DUP OP_HASH160 &lt;hash da chave p&#250;blica&gt; OP_EQUALVERIFY OP_CHECKSIG</code></pre></div><p>Traduzindo: &#8220;Para gastar isso, prove que voc&#234; tem a chave p&#250;blica correspondente a esse hash <strong>e</strong> assine com a chave privada.&#8221;</p><h4>Unlocking script (scriptSig)</h4><p>Enquanto o output da transa&#231;&#227;o &#233; &#8220;travado&#8221; pelo <code>scriptPubKey</code>, ao virar o input de uma nova transa&#231;&#227;o &#233; preciso destravar, ou seja, atender as condi&#231;&#245;es definidas pelo <code>scriptPubKey</code>. No exemplo P2PKH, &#233; simples assim:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:&quot;1dca3974-a269-473b-98c1-6bff34f3f0d2&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">&lt;assinatura&gt; &lt;chave p&#250;blica&gt;</code></pre></div><p>Observa&#231;&#227;o: Tanto <code>scriptPubKey</code> quanto <code>scriptSig</code> s&#227;o inclu&#237;dos na transa&#231;&#227;o que vai para a <em>blockchain</em>. Eis a import&#226;ncia de ser simples, compacto e de comportamento previs&#237;vel.</p><h4>Como a pilha funciona na valida&#231;&#227;o</h4><p>Quando um n&#243; valida a transa&#231;&#227;o, ele <strong>concatena</strong> os dois scripts e os executa em sequ&#234;ncia sobre uma pilha vazia:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:&quot;7ed411de-0477-4ac1-ad10-131ec08f6867&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">[scriptSig]  +  [scriptPubKey]</code></pre></div><p>Passo a passo para P2PKH:</p><ol><li><p>&lt;assinatura&gt; &#8594; empilha a assinatura</p></li><li><p>&lt;chave p&#250;blica&gt; &#8594; empilha a chave p&#250;blica</p></li><li><p>OP_DUP &#8594; duplica o topo da pilha (copia a chave p&#250;blica)</p></li><li><p>OP_HASH160 &#8594; aplica HASH160 no topo (hash da chave p&#250;blica)</p></li><li><p>&lt;hash esperado&gt; &#8594; empilha o hash do scriptPubKey</p></li><li><p>OP_EQUALVERIFY &#8594; compara os dois hashes; falha se diferentes</p></li><li><p>OP_CHECKSIG &#8594; verifica a assinatura com a chave p&#250;blica; empilha TRUE</p></li></ol><p>Se ao final restar <strong>TRUE</strong> no topo da pilha, a transa&#231;&#227;o &#233; v&#225;lida e os bitcoins podem ser gastos. O passo 6 verifica se a <em>Chave P&#250;blica</em> que voc&#234; deu &#233; a mesma do endere&#231;o original. Agora s&#243; resta a assinatura e a <em>Chave P&#250;blica</em> &#8212; dona do endere&#231;o, portanto, dos fundos &#8212; na pilha. &#201; hora de verificar se a assinatura realmente foi feita pela <em>Chave Privada</em> correspondente. <a href="https://danielloureno1.substack.com/p/criptografia-de-curva-eliptica">Nesse artigo</a> eu explico a matem&#225;tica que permite a valida&#231;&#227;o de assinaturas.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:&quot;862c5155-7623-43f5-90af-4a843859b90d&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">OUTPUT (criado por quem pagou)    INPUT (quem gasta depois)
&#9484;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9488;           &#9484;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9488;
&#9474;   scriptPubKey     &#9474;    &#8592;&#9472;&#9472;    &#9474;     scriptSig        &#9474;
&#9474;   (cadeado)        &#9474;           &#9474;     (chave)          &#9474;
&#9492;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9496;           &#9492;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9496;</code></pre></div><h3>Carteiras Bitcoin</h3><div><hr></div><p>Agora que passamos pela introdu&#231;&#227;o, voc&#234; deve estar se perguntando &#8220;O que tudo isso tem a ver com carteiras Bitcoin?&#8221;. Se voc&#234; prestou aten&#231;&#227;o na explica&#231;&#227;o, entendeu que existem dois processos entre uma <em>Chave Privada</em> e gastar os bitcoins: A <em><a href="https://danielloureno1.substack.com/p/criptografia-de-curva-eliptica">Criptografia de Curva El&#237;ptica(ECC)</a></em> que gera a <em>Chave P&#250;blica</em> e o <em>SHA-256</em> que gera o endere&#231;o. </p><p>Apesar do nome, &#233; uma boa pr&#225;tica expor sua <em>Chave P&#250;blica</em> uma &#250;nica vez, somente na hora de gastar os bitcoins controlados por aquela chave e depois nunca mais us&#225;-la novamente. A l&#243;gica por tr&#225;s disso &#233; que voc&#234; recebe bitcoins num endere&#231;o e ningu&#233;m sabe qual a <em>Chave P&#250;blica</em> daquele endere&#231;o. Uma vez que voc&#234; gasta aqueles bitcoins (revelando sua PubKey) e continua recebendo naquele endere&#231;o, algu&#233;m pode tentar via for&#231;a bruta adivinhar sua PrivKey. Esse tipo de ataque &#233; imposs&#237;vel com a tecnologia atual, mas o Bitcoin opera na l&#243;gica de longo prazo. Expor algo significa expor eternamente para um atacante imagin&#225;rio que nunca esquece, nunca descansa e nunca se revela. Caso voc&#234; n&#227;o volte a usar aquele endere&#231;o e par de chaves, voc&#234; ficou exposto apenas entre o tempo de propagar sua transa&#231;&#227;o na internet at&#233; a inclus&#227;o dela na <em>blockchain</em>.</p><p>Por&#233;m isso cria outro problema. Como gerenciar todas as suas chaves se voc&#234; s&#243; pode usar cada par uma &#250;nica vez? Esse &#233; o trabalho das carteiras Bitcoin.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://danielloureno1.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Inscreva-se&quot;,&quot;language&quot;:&quot;pt-br&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Assine para receber novos textos como esse!</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Digite seu e-mail&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Inscreva-se"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3>Dos prim&#243;rdios at&#233; Seed Phrases</h3><div><hr></div><p>Quando o Bitcoin foi criado pelo Satoshi, havia somente o programa Bitcoin Core criado pelo mesmo. Era o &#250;nico programa que sabia usar o <a href="https://danielloureno1.substack.com/p/bitcoin-nao-e-dinheiro">protocolo do Bitcoin</a>, diferente de hoje, onde Bitcoin deixou de ser um programa e se tornou uma linguagem que uma infinidade de softwares usam para se comunicar e transferir valor real 24/7.</p><p>Sendo assim, o Bitcoin Core precisava ser completo, fazer tudo ao mesmo tempo:</p><ul><li><p>Validar e propagar transa&#231;&#245;es</p></li><li><p>Minerar</p></li><li><p>Gerenciar chaves/ser uma carteira</p></li></ul><p>Para receber pagamentos, uma nova <em>Chave Privada</em> era criada &#8212; entenda escolher entre as quase infinitas que existem &#8212; a <em>Chave P&#250;blica</em> era derivada e s&#243;. Nem mesmo endere&#231;os existiam naquela &#233;poca. Cada chave tinha que ser armazenada. Perder ela significaria perder os fundos.</p><p>Todas as chaves eram guardadas em um arquivo para que voc&#234; fizesse backup. Todos os seus fundos estavam em um cofre <strong>impenetr&#225;vel</strong>, mas as chaves estavam em um <strong>ef&#234;mero</strong> arquivo <code>.txt</code> ou <code>.dat</code>.</p><p>Exemplo de <code>wallet.dat</code>:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:&quot;53eb5100-bf1b-4487-a721-2a0c6713cdc2&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">Chave 1:

  Privada: 5Kb8kLf9zgWQnogidDA76MzPL6TsZZY36hWXMssSzNydYXYB9KF

  P&#250;blica:  1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa

  Label: &#8220;&#8221;

Chave 2:

  Privada: 5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsreAnchuDf

  P&#250;blica:  1XPTuPXXuW727z92mJvEAsXj75xT3bN4x

  Label: &#8220;Duas pizzas&#8221;

Chave 3:

  Privada: 5JYkZjmN7PVMjJUfJWfRFwtuXTGB439XV6faajeHPAM2Z6ptgqe

  P&#250;blica:  1dice8EMZmqKvrGE4Qc9bUFf9PX3xaYDp

  Label: &#8220;&#8221;

Chave 4:

  Privada: 5KYZdUEo39z3FPrtuX2QbbwGnNP5zTd7yyr2SC1j299sBCnWjss

  P&#250;blica:  1AJbsFZ64EpEfS5UAjAfcUG8pH8Jn3rn1F

  Label: &#8220;Troco tx 2f3a...&#8221;</code></pre></div><h4>Carteiras Hier&#225;rquicas Determin&#237;sticas (HD Wallets)</h4><p>A ideia do BIP 32 era criar uma forma de derivar todas as chaves a partir de uma Chave Mestra. &#201; determin&#237;stico porque voc&#234; sempre vai derivar as mesmas chaves na mesma ordem. </p><p>&#201; hier&#225;rquico pois segue uma estrutura de deriva&#231;&#245;es que suporta altera&#231;&#245;es. Quer criar outra conta com uma cadeia inteira de novos endere&#231;os? Voc&#234; consegue. Quer criar endere&#231;os para SegWit, Taproot ou modelos antigos? Voc&#234; consegue. Chaves para outras moedas? Tamb&#233;m &#233; poss&#237;vel.</p><p>A estrutura de deriva&#231;&#227;o &#233; a seguinte:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:&quot;1e70c6e2-3b50-4d8d-b3b6-066e5efed5ea&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">MasterKey/Purpose&#8217;/CoinType&#8217;/Account&#8217;/Change/AddressIndex</code></pre></div><ul><li><p>A Chave Mestra &#233; fixa e nunca muda. A partir dela voc&#234; desbloqueia toda a &#225;rvore de deriva&#231;&#245;es.</p></li><li><p>O prop&#243;sito &#233; o tipo de endere&#231;o a ser criado, pode ser Legacy, SegWit, Taproot etc.</p></li><li><p>Tipo de moeda pode ser BTC, ETH e por a&#237; vai.</p></li><li><p>Conta &#233; uma quest&#227;o de organiza&#231;&#227;o, para o usu&#225;rio separar como bem entender.</p></li><li><p>Troco serve para separar pagamentos de retornos, pode ser 0 ou 1, booleano.</p></li><li><p>O index &#233; um n&#250;mero de 0 at&#233; 4 bilh&#245;es. Cada um representa um conjunto diferente formado por chaves p&#250;blica e privada + endere&#231;o.</p></li></ul><p>A sequ&#234;ncia de deriva&#231;&#227;o <code>m/84&#8217;/0&#8217;/0&#8217;/0/5</code> sempre vai gerar o mesmo par de chaves, n&#227;o importa qual software eu use nem o momento, nem se algum novo BIP foi adotado.</p><p>Considerando que voc&#234; pode ter 4 bilh&#245;es de contas diferentes, s&#227;o muitos endere&#231;os para uma Chave Mestra de m&#237;seros 256 bits (o mesmo tamanho de uma PrivKey).</p><h4>Seed Phrases</h4><p>Em seguida veio o BIP 39 que convertia essa Chave Mestra em uma sequ&#234;ncia de palavras f&#225;ceis de memorizar. Sem muito segredo aqui. Criaram uma lista de 2048 palavras padronizadas em v&#225;rias l&#237;nguas, onde cada palavra representa 11 bits de informa&#231;&#227;o.</p><p>O processo funciona assim: uma sequ&#234;ncia aleat&#243;ria de 128 a 256 bits &#233; gerada (dependendo se voc&#234; quer 12, 18 ou 24 palavras). Um checksum &#233; adicionado ao final para detectar erros de digita&#231;&#227;o. Essa sequ&#234;ncia &#233; ent&#227;o dividida em peda&#231;os de 11 bits, e cada peda&#231;o corresponde a uma palavra da lista.</p><p>Por exemplo, uma seed de 12 palavras representa 128 bits de entropia + 4 bits de checksum = 132 bits totais, divididos em 12 grupos de 11 bits. J&#225; uma seed de 24 palavras oferece 256 bits de entropia + 8 bits de checksum. Essas palavras, atrav&#233;s de uma fun&#231;&#227;o criptogr&#225;fica chamada PBKDF2, geram a Chave Mestra Estendida de 512 bits que desbloqueia toda a &#225;rvore HD.</p><p>Com seed phrases voc&#234; pode guardar todos os seus endere&#231;os anotando ou memorizando <strong>uma informa&#231;&#227;o, uma &#250;nica vez.</strong></p><h4>Chaves Estendidas (Extended keys)</h4><p>A Chave Mestra Estendida, <strong>tamb&#233;m conhecida como Chave Privada Estendida(xprv)</strong>, &#233; dividida em dois blocos de 256 bits. O primeiro &#233; a <em>Chave Privada Mestra(m)</em> enquanto o segundo &#233; a <em>Master Chain Code</em>. Esse &#250;ltimo &#233; necess&#225;rio para derivar as chaves filhas na &#225;rvore.</p><p>Voc&#234; pode usar <code>m</code> para derivar a <em>Chave P&#250;blica</em>, juntar com a <em>Master Chain Code</em> para obter a <em>Chave P&#250;blica Estendida</em>(famosa <em>xpub</em>) para derivar as PubKeys filhas e os endere&#231;os.</p><h4>Deriva&#231;&#227;o normal vs hardened</h4><p>Com a deriva&#231;&#227;o normal &#233; poss&#237;vel derivar as PubKeys e endere&#231;os filhos somente com a <em>Chave P&#250;blica Estendida</em>. Com a deriva&#231;&#227;o hardened, &#233; necess&#225;rio tamb&#233;m a <em>Chave Privada Estendida</em> para derivar qualquer coisa dos filhos</p><p>Com a deriva&#231;&#227;o normal, caso a PrivKey de um dos filhos seja descoberta &#233; poss&#237;vel, usando a <em>Chave P&#250;blica Estendida</em> do pai, descobrir as chaves de todos os irm&#227;os, comprometendo uma camada inteira da &#225;rvore. Ao exigir a <em>xprv</em>, a deriva&#231;&#227;o hardened impede que outras camadas acima sejam comprometidas tamb&#233;m. </p><p>Essa prote&#231;&#227;o extra foi propositalmente deixada de lado para as &#250;ltimas camadas da &#225;rvore de deriva&#231;&#227;o para permitir carteiras <em>watch-only</em> e servidores que podem gerar endere&#231;os novos para pagamentos online sem comprometer a <em>xprv</em> de nenhuma camada ao mesmo tempo que t&#234;m acesso a <em>xpub</em>.</p><p>Geralmente a nota&#231;&#227;o usada pelos softwares de carteiras para a &#225;rvore de deriva&#231;&#227;o usa um ap&#243;strofo para representar as camadas protegidas pela deriva&#231;&#227;o hardened:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:&quot;f882c23a-a7f6-4aa8-b450-a07dfde80db0&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">MasterKey/Purpose&#8217;/CoinType&#8217;/Account&#8217;/Change/AddressIndex</code></pre></div><p>Digamos que a <em>xpub</em> da sua conta esteja em um servidor em um website gerando novos endere&#231;os diariamente para pagamentos online. Imagine que algum bug no software ou uma invas&#227;o ocorra no sistema de forma que um atacante tenha acesso as chaves privadas dos <code>AddressIndex</code>. Ele conseguiria ent&#227;o descobrir a <em>xprv</em> da camada superior por meio de um c&#225;lculo matem&#225;tico simples. Ele poderia continuar subindo camadas enquanto tivesse a <em>xpub</em> da camada superior. Como a camada de contas &#233; de forma padronizada protegida por deriva&#231;&#227;o hardened, o risco de ter suas outras contas ou seed descobertas &#233; eliminado completamente.</p><p>Ativar deriva&#231;&#227;o hardened para todas as camadas &#233; poss&#237;vel, mas ao custo das vantagens que falei antes. O comportamento padr&#227;o de softwares de carteiras Bitcoin modernas &#233; de usar deriva&#231;&#227;o normal para &#237;ndices de 0 at&#233; 2&#179;&#185;-1(2.147.483.647) e deriva&#231;&#227;o hardened para 2&#179;&#185; at&#233; 2&#179;&#178;-1 (2.147.483.648 a 4.294.967.295) totalizando os 4 bilh&#245;es de &#237;ndices que falei antes.</p><h3>Conclus&#227;o</h3><div><hr></div><p>Sa&#237;mos de chaves avulsas, independentes e aleat&#243;rias para carteiras com uma estrutura bem definida e gera&#231;&#227;o de chaves repet&#237;vel. Esse foi um dos maiores saltos em quesito experi&#234;ncia de usu&#225;rio(UX) desde a cria&#231;&#227;o do Bitcoin. Permitiu gerenciar todos os fundos de uma pessoa sob um &#250;nico dado e o transformou em uma sequ&#234;ncia de palavras memoriz&#225;vel.</p><p>Mas h&#225; algo mais profundo acontecendo aqui. Toda essa complexidade, Scripts, pilhas, deriva&#231;&#245;es hier&#225;rquicas, checksums, existe para resolver um problema que o sistema financeiro tradicional nunca precisou resolver: <strong>como dar a uma pessoa soberania real sobre o pr&#243;prio dinheiro, sem depender de ningu&#233;m para guardar, autorizar ou validar nada.</strong></p><p>Em uma rede descentralizada onde ningu&#233;m &#233; soberano, ningu&#233;m pode validar sua identidade ou posse. Isso tem que ser feito atrav&#233;s da matem&#225;tica da <em>Criptografia de Curva El&#237;ptica</em> com suas Chaves P&#250;blicas e Privadas. O que &#233; bem complicado quando voc&#234; precisa gerenciar m&#250;ltiplos endere&#231;os. Por isso as carteiras precisaram evoluir para lidar com o peso desse gerenciamento e foi exatamente isso que o BIP 32 e o BIP 39 fizeram.</p><p>Quem tem a seed, tem os fundos, sem intermedi&#225;rios, sem permiss&#227;o, sem hor&#225;rio de funcionamento. O pre&#231;o dessa soberania &#233; a responsabilidade. Doze palavras escritas num papel s&#227;o, ao mesmo tempo, a coisa mais simples e mais poderosa que existe no sistema. N&#227;o existe suporte para recuperar o acesso caso voc&#234; as perca. N&#227;o existe seguro. N&#227;o existe recurso.</p><p><em>&#8221;Not your keys, not your coins.&#8221;</em> Simples assim.</p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>Pessoas que participam da rede armazenando a <em>blockchain</em>, propagando transa&#231;&#245;es recebidas e eventualmente minerando</p><p></p></div></div>]]></content:encoded></item><item><title><![CDATA[Entenda como 10 milhões de bitcoins não têm dono]]></title><description><![CDATA[E como o SegWit causou isso]]></description><link>https://danielloureno1.substack.com/p/entenda-como-10-milhoes-de-bitcoins</link><guid isPermaLink="false">https://danielloureno1.substack.com/p/entenda-como-10-milhoes-de-bitcoins</guid><dc:creator><![CDATA[Daniel Lourenço]]></dc:creator><pubDate>Mon, 16 Feb 2026 16:41:48 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/2738c78d-6820-4414-977b-fd1063d8945d_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>Introdu&#231;&#227;o</h3><p>Se voc&#234; roda um full node de Bitcoin e ao mesmo tempo mora numa caverna, no dia 24 de Agosto de 2017 voc&#234; viu algo <strong>sem precedentes</strong> acontecendo na blockchain: transa&#231;&#245;es sem endere&#231;o definido. Semelhantes &#224;quelas feitas para scripts e smart contracts, mas um tipo espec&#237;fico que podia ser realizado por <strong>literalmente qualquer pessoa</strong>.</p><p>Sim, voc&#234; leu corretamente: <strong>Qualquer um poderia gastar aqueles bitcoins</strong>. Mas claro que a hist&#243;ria n&#227;o &#233; t&#227;o simples assim.</p><h3>SegWit</h3><p>O que acontece &#233; que &#224; &#233;poca estava sendo lan&#231;ado uma altera&#231;&#227;o no Bitcoin: o <em>SegWit</em>.</p><p><em>SegWit</em>, uma abrevia&#231;&#227;o para <strong>Segregated Witness</strong>, &#233; um conjunto de BIPs que reorganiza a estrutura dos blocos, separando as assinaturas (witness) das transa&#231;&#245;es base. Isso permite que os dados de assinatura &#8220;contem menos&#8221; para o limite de 1 MB, aumentando a capacidade efetiva dos blocos.</p><p>Outra vantagem crucial foi <strong>resolver a maleabilidade de transa&#231;&#245;es</strong> &#8212; permitindo que o ID da transa&#231;&#227;o (txid) n&#227;o pudesse mais ser alterado. Isso abriu caminho para protocolos de segunda camada como a <strong>Lightning Network</strong>. Pretendo escrever sobre isso no futuro.</p><h3>Soft Fork vs Hard Fork</h3><p>Por se tratar de uma mudan&#231;a nas regras de consenso, isso necessariamente gera um fork, uma divis&#227;o na rede entre <strong>n&#243;s que adotam</strong> a mudan&#231;a e <strong>n&#243;s que n&#227;o adotam</strong>.</p><p><em>Hard Forks</em> s&#227;o divis&#245;es brutas da rede, onde cada lado aceita e trabalha em cima de uma <em>blockchain</em> diferente.</p><p><em>Soft Forks</em> s&#227;o divis&#245;es onde as regras de um dos lados se torna <strong>mais restritiva</strong>, mas ainda dentro do que os dois lados aceitam. Assim, a <em>blockchain</em> n&#227;o se divide.</p><h3>Retrocompatibilidade</h3><p>O resultado disso &#233; uma atualiza&#231;&#227;o retrocompat&#237;vel. Todos os blocos aceitos pelos novos n&#243;s, s&#227;o aceitos pelos antigos. Mas <strong>nem todos</strong> os blocos aceitos pelos n&#243;s antigos s&#227;o aceitos pelos novos.</p><blockquote><p>Regras antigas: &#8220;X &#233; v&#225;lido se condi&#231;&#245;es A, B e C&#8221;</p><p>Soft fork: &#8220;X &#233; v&#225;lido se condi&#231;&#245;es A, B, C e tamb&#233;m D&#8221;</p></blockquote><p>Como n&#243;s antigos continuam podendo usar a rede, <em>Soft Forks</em> s&#227;o prefer&#237;veis.</p><p>Para ser um <em>soft fork</em> (compat&#237;vel com vers&#245;es anteriores), o <em>SegWit</em> precisava que:</p><ul><li><p>N&#243;s antigos aceitassem blocos com transa&#231;&#245;es <em>SegWit</em></p></li><li><p>N&#243;s novos aplicassem regras extras de valida&#231;&#227;o</p></li><li><p>N&#227;o causasse fork da blockchain</p></li></ul><h3>Detalhando o SegWit</h3><p>Enquanto novos n&#243;s olham no novo campo <em>witness</em>:</p><pre><code>witness: &lt;assinatura&gt; &lt;pubKey&gt;</code></pre><p>N&#243;s antigos continuam olhando nos campos antigos:</p><pre><code>scriptPubKey: OP_0 &lt;hash qualquer de 20 ou 32 bytes&gt;
scriptSig: [vazio]</code></pre><p>Onde</p><p>- <code>scriptPubKey</code>: define CONDI&#199;&#213;ES para gastar</p><p>- <code>scriptSig</code>: fornece DADOS para satisfazer as condi&#231;&#245;es</p><p>Ao receberem esses valores ao inv&#233;s de um script de verdade, qualquer um pode satisfazer as condi&#231;&#245;es para gastar os fundos daquela transa&#231;&#227;o.</p><p>Exemplo comum de valores v&#225;lidos:</p><pre><code>scriptSig: &lt;assinatura&gt; &lt;pubKey&gt;
scriptPubKey: OP_DUP OP_HASH160 &lt;hash160(pubKey)&gt; OP_EQUALVERIFY OP_CHECKSIG</code></pre><p>Em outras palavras, para resumir:</p><blockquote><p><em>SegWit</em> n&#227;o usa o campo designado para dizer quem tem controle sobre o output(UTXO) criado naquela transa&#231;&#227;o, ent&#227;o n&#243;s que n&#227;o entendem <em>SegWit</em> pensam que aquele output pode ser gasto por qualquer um.</p></blockquote><blockquote><p>N&#243;s que entendem <em>SegWit</em> fazem a verifica&#231;&#227;o do campo <code>witness</code> e rejeitam transa&#231;&#245;es que n&#227;o atendam as condi&#231;&#245;es espec&#237;ficas do <em>SegWit</em>(diferente do <code>scriptPubKey</code>).</p></blockquote><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://danielloureno1.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Inscreva-se&quot;,&quot;language&quot;:&quot;pt-br&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Para receber textos parecidos, assine gratuitamente.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Digite seu e-mail&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Inscreva-se"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3>Vantagem real do SegWit</h3><p>Pelo que eu disse at&#233; aqui parece que o <em>SegWit</em> meramente move as assinaturas das transa&#231;&#245;es para outro lugar no bloco. Que vantagem real ele traz? E qual a rela&#231;&#227;o disso com o t&#237;tulo do texto? </p><p>Antes as assinaturas estavam unidas de forma insepar&#225;vel &#224;s transa&#231;&#245;es, e por isso entravam no limite m&#225;ximo de 1 MB que os blocos t&#234;m. Com <em>SegWit</em>, a parte principal do bloco fica preenchida de forma cont&#237;gua somente por dados das transa&#231;&#245;es, enquanto os <em>witness</em> ficam segregados em uma parte separada.</p><pre><code>&#9484;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9488;
&#9474; Block Header (80 bytes)             &#9474;
&#9500;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9508;
&#9474; Transaction Count                   &#9474;
&#9500;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9508;
&#9474; TRANSA&#199;&#213;ES (parte principal)        &#9474; &#8592; Cont&#237;guas, SEM witness
&#9474;   TX1: version, inputs, outputs...  &#9474;
&#9474;   TX2: version, inputs, outputs...  &#9474;
&#9474;   TX3: version, inputs, outputs...  &#9474;
&#9474;   ...                               &#9474;
&#9500;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9508;
&#9474; WITNESS DATA (separado)             &#9474; &#8592; Todos os witness juntos
&#9474;   Witness para TX1                  &#9474;
&#9474;   Witness para TX2                  &#9474;
&#9474;   Witness para TX3                  &#9474;
&#9474;   ...                               &#9474;
&#9492;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9496;</code></pre><p>Em ess&#234;ncia, <em>witness</em> cont&#233;m as assinaturas e condi&#231;&#245;es de gasto &#8212; o mesmo conte&#250;do que antes ficava embutido na transa&#231;&#227;o, mas agora em local separado.</p><p>Aqui est&#225; o pulo do gato: <strong>o </strong><em><strong>SegWit</strong></em><strong> redefiniu o que conta como &#8220;tamanho do bloco&#8221;</strong>.</p><p>Antes, a regra era simples: &#8220;bloco n&#227;o pode ter mais de 1 MB de dados, ponto final&#8221;. Isso limitava quantas transa&#231;&#245;es cabiam, j&#225; que cerca de 60% de cada transa&#231;&#227;o era ocupado pela assinatura.</p><p>O <em>SegWit</em> mudou a regra para: &#8220;bloco n&#227;o pode exceder um certo <strong>peso</strong>, onde dados da transa&#231;&#227;o base pesam 4x mais que dados witness&#8221;. Isso significa que assinaturas agora &#8220;contam menos&#8221; para o limite &#8212; &#233; como se voc&#234; pudesse colocar mais coisas numa mala porque roupas agora &#8220;pesam menos&#8221; que antes, mesmo ocupando o mesmo espa&#231;o f&#237;sico.</p><p>O resultado? Blocos podem ter ~1.8-2.2 MB de dados reais (transa&#231;&#245;es + assinaturas), mas para fins da regra de consenso ainda &#8220;cabem&#8221; dentro do limite.</p><p>Para n&#243;s antigos, nada mudou &#8212; eles s&#243; veem a parte base (~1 MB) e pensam &#8220;tudo normal, dentro do limite&#8221;. N&#243;s novos veem o bloco completo (1.8-2.2 MB) mas aplicam as novas regras de peso que tornam isso v&#225;lido.</p><p><strong>Em resumo: </strong><em><strong>SegWit</strong></em><strong> n&#227;o economizou espa&#231;o de armazenamento &#8212; ele trapaceou no sistema de medi&#231;&#227;o para permitir blocos maiores sem fazer hard fork.</strong></p><h3>Por que isso n&#227;o quebra nada?</h3><p>N&#243;s antigos continuam vendo apenas a parte base das transa&#231;&#245;es (sem witness), que fica abaixo de 1 MB &#8212; respeitando o limite antigo. Eles literalmente n&#227;o enxergam os dados witness que foram adicionados. Ou seja, o limite de tamanho do bloco continua sendo respeitado retroativamente.</p><p>Por outro lado, <em>witness</em> &#233; um campo importante que n&#243;s novos se importam. O que garante que as regras <em>SegWit</em> est&#227;o sendo respeitadas se n&#243;s antigos n&#227;o fazem ideia sobre essas regras e n&#227;o as usam para fazer sua valida&#231;&#227;o?</p><p>Quem faz essa verifica&#231;&#227;o s&#227;o os mineradores que s&#227;o n&#243;s novos por uma maioria quase un&#226;nime.</p><h3>Ado&#231;&#227;o do SegWit (Mineradores)</h3><p>Como j&#225; expliquei em um <a href="https://danielloureno1.substack.com/p/bitcoin-nao-e-dinheiro">texto anterior</a> o Bitcoin &#233; um protocolo de consenso onde mudan&#231;as podem ser feitas desde que seja o consenso da rede. O BIP 9 definia um crit&#233;rio claro para organizar essa mudan&#231;a repentina gerando o menor caos poss&#237;vel. </p><p>O BIP 9 dizia que os mineradores poderiam adicionar uma informa&#231;&#227;o extra nos seus blocos de forma padronizada para sinalizar apoio. Caso num per&#237;odo de 2016 blocos seguidos 1916 blocos sinalizassem apoio, em mais 2016 blocos todos deveriam come&#231;ar a usar as novas regras. Ou seja, se no per&#237;odo de duas semanas pelo menos 95% dos mineradores apoiassem as novas regras, em mais duas semanas eles poderiam us&#225;-las.</p><p>De Novembro de 2016 at&#233; Maio de 2017 a sinaliza&#231;&#227;o dos mineradores apoiando <em>SegWit</em> ficou girando em torno de 30% sem sinal de aumentar. Muita coisa aconteceu nesse per&#237;odo entre Maio e Agosto de 2017 que tornam o <em>SegWit</em> a maior mudan&#231;a no Bitcoin e a mais turbulenta.</p><p>Em 24 Maio 2017, o BIP 148 (UASF - User Activated Soft Fork) definiu que os n&#243;s que o adotassem iriam rejeitar blocos de mineradores que n&#227;o sinalizassem apoio ao <em>SegWit</em> a partir de 1 de Agosto de 2017. Isso causaria um <strong>Hard Fork!!</strong></p><p>Em 14 de Junho, o BIP 91 teve seu c&#243;digo finalizado. Ele servia como um passo intermedi&#225;rio na busca do consenso, definia regras mais brandas para ativa&#231;&#227;o do <em>SegWit</em>: Somente 80% de sinaliza&#231;&#227;o num per&#237;odo de 336 blocos (2-3 dias).</p><p>Em 19 de Julho os 80% de sinaliza&#231;&#227;o do BIP 91 s&#227;o atingidos evitando o fork do UASF, que aconteceria em menos de duas semanas.</p><p>Entre 23 e 24 de Agosto a rede atinge 100% de sinaliza&#231;&#227;o para <em>SegWit</em>.</p><p>Toda essa luta era necess&#225;ria por um motivo. Em um <em>Soft Fork</em> os n&#243;s antigos perdem a capacidade de validar plenamente as transa&#231;&#245;es seguindo o padr&#227;o <em>SegWit</em> pelos motivos j&#225; discutidos. Mas com a grande maioria dos mineradores fazendo essa valida&#231;&#227;o, esse problema &#233; mitigado. Sem falar que os n&#243;s antigos que n&#227;o adotaram <em>SegWit</em> na main-net s&#227;o uma ra&#231;a em extin&#231;&#227;o.</p><p>Vale mencionar que em 1 de Agosto de 2017, antes mesmo do <em>SegWit</em> ativar, uma fac&#231;&#227;o contr&#225;ria &#224; mudan&#231;a executou um <strong>hard fork</strong> criando o Bitcoin Cash (BCH) &#8212; uma blockchain separada que rejeitou o <em>SegWit</em> e aumentou o tamanho dos blocos para 8 MB.</p><h3>Conclus&#227;o</h3><p>Ent&#227;o se voc&#234; &#233; um n&#243; desatualizado e usa uma vers&#227;o anterior ao <em>Bitcoin Core 0.13.1</em>, lan&#231;ado em 15 de outubro de 2016, voc&#234; come&#231;ou a ver bitcoins gr&#225;tis sendo distribu&#237;dos pela rede e transa&#231;&#245;es tentando usar esses bitcoins sendo recusadas por n&#227;o ter um certo campo <em>witness</em> que voc&#234; n&#227;o faz ideia de pra que serve. Isso se deve aos mineradores que em sua totalidade aderiram ao <em>SegWit</em> e fazem a correta valida&#231;&#227;o de todas as transa&#231;&#245;es segundo as novas regras.</p><p>N&#243;s antigos ainda podem usar a rede, fazer transa&#231;&#245;es e receber pagamentos normalmente, apesar de usar um modelo de transa&#231;&#227;o antigo que deixou de ser competitivo com os novos modelos, que pagam menos taxas pela sua otimiza&#231;&#227;o.</p><p>Respondendo ao t&#237;tulo: Eles t&#234;m dono, mas n&#243;s antigos n&#227;o sabem disso. Eles s&#227;o UTXOs que foram criados por transa&#231;&#245;es usando <em>SegWit</em>. </p><p>Foi uma boa oportunidade para explorar como o <em>SegWit</em> mudou a forma como o Bitcoin funciona. E ainda deu pra falar sobre a hist&#243;ria do Bitcoin e dar uma ideia de como funciona BIPs e altera&#231;&#245;es das <a href="https://danielloureno1.substack.com/p/bitcoin-nao-e-dinheiro">regras de consenso</a>.</p><p>As discuss&#245;es sobre <em>SegWit</em> se iniciaram em 2015 e se concretizaram totalmente em 2017, mas a ado&#231;&#227;o pelas pessoas n&#227;o foi t&#227;o imediata como pode ver pela tabela a seguir mostrando a quantidade de transa&#231;&#245;es feitas com <em>SegWit</em> e o n&#250;mero de n&#243;s reconhecendo e propagando transa&#231;&#245;es <em>SegWit</em>.</p><pre><code>Data          | % TXs SegWit | % Nodes
--------------|--------------|----------
Ago 2017      | ~10%         | ~60%
Set 2017      | ~12%         | ~65%
Dez 2017      | ~14%         | ~70%
Mar 2018      | ~30%         | ~75%
Dez 2018      | ~40%         | ~80%
2019          | ~50%         | ~85%
2020          | ~60%         | ~90%
2021          | ~70%         | ~92%
2024          | ~85%         | ~95%</code></pre><p>Mudan&#231;as no protocolo s&#227;o poss&#237;veis, mas muito dif&#237;ceis de serem feitas. Elas exigem a aceita&#231;&#227;o de quase toda a rede. Bitcoin pode mudar, mas resiste a isso. Acho isso perfeito pois gera a previsibilidade que ele vai continuar com as caracter&#237;sticas que desejamos e amamos enquanto pode se adaptar contra poss&#237;veis inimigos como computa&#231;&#227;o qu&#226;ntica ou qualquer outra coisa quem ainda nem imaginamos.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://danielloureno1.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Inscreva-se&quot;,&quot;language&quot;:&quot;pt-br&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Obrigado por ler! Assine gratuitamente para receber novos posts e apoiar meu trabalho.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Digite seu e-mail&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Inscreva-se"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><p>Se gostou desse texto, leia outros na mesma pegada:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;ba3da41e-8f06-49e8-86dd-ce431339e903&quot;,&quot;caption&quot;:&quot;Estou terminando uma disciplina de estat&#237;stica que me d&#225; ferramentas para analisar probabilidades associadas &#224; vari&#225;veis aleat&#243;rias com certos tipos de distribui&#231;&#245;es. Nesse texto quero aplicar esse conhecimento em um exemplo do mundo real para solidificar o meu aprendizado e trabalhar em um tema que acho interessante.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Matem&#225;tica por tr&#225;s do Ataque de 51%&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:399614913,&quot;name&quot;:&quot;Daniel Louren&#231;o&quot;,&quot;bio&quot;:&quot;Eu sou aquele moleque da turma que estranhamente fala bastante quando voc&#234; interage. Basicamente um NPC. &quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/261dd700-ea10-4145-aa78-6533dc23f0e8_395x613.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-01-20T11:34:43.673Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/62c16280-ec02-4b31-ab0f-abbd1ab221fe_956x586.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://substack.com/home/post/p-185122608&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:185122608,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:3,&quot;comment_count&quot;:1,&quot;publication_id&quot;:6465422,&quot;publication_name&quot;:&quot;Daniel Louren&#231;o&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!R9Vo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F261dd700-ea10-4145-aa78-6533dc23f0e8_395x613.jpeg&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;67d82f78-295e-48e0-b9f1-27e713d9b337&quot;,&quot;caption&quot;:&quot;Chaves P&#250;blicas e Privadas s&#227;o o cora&#231;&#227;o do Bitcoin. Bitcoins s&#227;o propriedades de Chaves P&#250;blicas, que exercem essa propriedade assinando transa&#231;&#245;es para outras chaves. Essas assinaturas, por sua vez, dependem da Chave Privada.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Criptografia de Curva El&#237;ptica&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:399614913,&quot;name&quot;:&quot;Daniel Louren&#231;o&quot;,&quot;bio&quot;:&quot;Eu sou aquele moleque da turma que estranhamente fala bastante quando voc&#234; interage. Basicamente um NPC. &quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/261dd700-ea10-4145-aa78-6533dc23f0e8_395x613.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-01-26T20:09:03.280Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/835f79fa-eb5e-47fb-b2d3-c04f265e54c4_1024x868.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://substack.com/home/post/p-185879880&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:185879880,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:6465422,&quot;publication_name&quot;:&quot;Daniel Louren&#231;o&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!R9Vo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F261dd700-ea10-4145-aa78-6533dc23f0e8_395x613.jpeg&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;72c2b130-7452-4864-a72c-5df685e95ade&quot;,&quot;caption&quot;:&quot;O Bitcoin n&#227;o &#233; uma dinheiro eletr&#244;nico ponto a ponto. &#201; um protocolo que busca consenso pois quer fugir do autoritarismo de qualquer institui&#231;&#227;o. E isso tem um pre&#231;o.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Bitcoin n&#227;o &#233; dinheiro&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:399614913,&quot;name&quot;:&quot;Daniel Louren&#231;o&quot;,&quot;bio&quot;:&quot;Eu sou aquele moleque da turma que estranhamente fala bastante quando voc&#234; interage. Basicamente um NPC. &quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/261dd700-ea10-4145-aa78-6533dc23f0e8_395x613.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-01-12T21:27:58.355Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c35c0167-7c44-4b17-9373-c34bcafcc047_1024x1536.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://substack.com/home/post/p-184364651&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:184364651,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:1,&quot;comment_count&quot;:1,&quot;publication_id&quot;:6465422,&quot;publication_name&quot;:&quot;Daniel Louren&#231;o&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!R9Vo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F261dd700-ea10-4145-aa78-6533dc23f0e8_395x613.jpeg&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div>]]></content:encoded></item><item><title><![CDATA[A Próxima Camada de Abstração]]></title><description><![CDATA[Como LLMs s&#227;o melhor compreendidas como compress&#227;o de conhecimento]]></description><link>https://danielloureno1.substack.com/p/a-proxima-camada-de-abstracao</link><guid isPermaLink="false">https://danielloureno1.substack.com/p/a-proxima-camada-de-abstracao</guid><dc:creator><![CDATA[Daniel Lourenço]]></dc:creator><pubDate>Mon, 09 Feb 2026 16:06:51 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/0ab634d1-7fb7-4425-9265-01861d11d207_1024x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>Escrita </h3><p>A diferen&#231;a entre os humanos do s&#233;culo 21 <em>depois</em> de Cristo e os do s&#233;culo 21 <em>antes</em> de Cristo n&#227;o &#233; biol&#243;gica. A diferen&#231;a mora no conhecimento acumulado pela ra&#231;a humana.</p><p>Enquanto a tradi&#231;&#227;o oral tinha um limite de tamanho e um tempo de vida &#250;til antes de se perder na mem&#243;ria de uma comunidade pequena, a escrita permitiu que o conhecimento transcendesse o espa&#231;o, podendo ser levado a outros povos, e transcendesse o tempo, podendo resistir e ser preservado para as pr&#243;ximas gera&#231;&#245;es com muito mais efic&#225;cia.</p><h3>Conhecimento acumulado</h3><p>Tecnologia atualmente &#233; vista como dispositivos digitais como computadores, sensores e maquin&#225;rio, mas a defini&#231;&#227;o &#233; algo bem mais abrangente: </p><blockquote><p>t&#233;cnica ou conjunto de t&#233;cnicas de um dom&#237;nio particular.</p></blockquote><p>A inven&#231;&#227;o da <strong>escrita</strong> foi revolucion&#225;ria e permitiu, inclusive, a constru&#231;&#227;o de sociedades maiores e mais complexas gra&#231;as ao registro de leis.</p><p>Posteriormente, com a cria&#231;&#227;o da <strong>imprensa</strong> e o &#237;ndice cada vez maior de <strong>alfabetiza&#231;&#227;o</strong>, a produ&#231;&#227;o e consumo de textos aumentou exponencialmente nos &#250;ltimos s&#233;culos.</p><p>Rapidamente esse corpo de conhecimento acumulado e descentralizado cresceu a um ponto onde seria imposs&#237;vel uma &#250;nica pessoa conseguir ler e aprender todo o conhecimento e tecnologia produzido. Tentativas como a enciclop&#233;dia foram feitas, mas logo descontinuadas pela natureza imposs&#237;vel da tarefa: catalogar e <strong>condensar</strong> o conhecimento sobre <strong>tudo</strong>.</p><p>Foi quando nasceram os especialistas. O sentido de existirem especialistas se contrap&#245;e ao generalista, muito mal visto nos dias de hoje.</p><blockquote><p>O pato nada, o pato anda, o pato voa. O pato n&#227;o faz nada direito.</p></blockquote><p>A conota&#231;&#227;o cada vez mais pejorativa do termo generalista mostra uma intui&#231;&#227;o verdadeira sobre a natureza do conhecimento. <strong>&#201; imposs&#237;vel que uma pessoa saiba tudo sobre tudo.</strong> Por isso &#233; necess&#225;rio um especialista, algu&#233;m que escolhe propositalmente n&#227;o perder tempo e focar em uma &#250;nica &#225;rea. Sendo assim capaz de chegar mais longe, fazer descobertas e desenvolver novas t&#233;cnicas.</p><p>Houveram sim muitos casos na hist&#243;ria de generalistas famosos por conseguirem resultados admir&#225;veis desafiando todo o bom senso: os famosos <strong>pol&#237;matas</strong>. Leonardo Da Vinci e outros tantos se destacaram na hist&#243;ria por fazerem avan&#231;os em v&#225;rias &#225;reas do conhecimento compar&#225;veis aos avan&#231;os de especialistas habilidosos. Isso se deve, claro, &#224; uma genialidade fora de s&#233;rie, mas tamb&#233;m &#224; tend&#234;ncia da &#233;poca de separar menos os assuntos do que atualmente.</p><p>Coisas como a cria&#231;&#227;o das universidades, revolu&#231;&#227;o industrial, urbaniza&#231;&#227;o e globaliza&#231;&#227;o deram um novo salto que somado ao ac&#250;mulo natural do tempo fizeram esse corpo de conhecimento humano crescer ao ponto onde n&#227;o era mais poss&#237;vel uma pessoa saber tudo sobre uma &#225;rea sequer. Assim, especialistas tinham uma literatura muito vasta e precisavam se contentar em estudar e desenvolver uma sub-&#225;rea dentro da sua &#225;rea de estudo.</p><p>Lembro do meu professor de hist&#243;ria no ensino m&#233;dio explicando a l&#243;gica do ensino superior (ele estava terminando seu doutorado na &#233;poca). </p><blockquote><p>Imagine um grande c&#237;rculo. Este &#233; todo o conhecimento da humanidade. Veja esse c&#237;rculo menor contido no maior. Essa &#233; a hist&#243;ria. Ela estuda os acontecimentos passados e os conecta em rela&#231;&#245;es de causa e efeito. Eu me graduei em hist&#243;ria e me especializei na hist&#243;ria do Brasil (e desenhou mais um c&#237;rculo menor dentro do segundo). Agora eu estou fazendo um doutorado, n&#227;o sobre a hist&#243;ria de Sobral (minha cidade), mas sobre como a hist&#243;ria da cidade foi manipulada pelos pol&#237;ticos locais nos registros oficiais. Percebem como vai afunilando? (e desenhou um ponto no c&#237;rculo mais interno)</p></blockquote><p>Ele falava com orgulho como naquele ponto espec&#237;fico desenhado no quadro n&#227;o havia ningu&#233;m mais competente do que ele. Um dom&#237;nio simples, mas poderoso.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XF27!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5649c6c4-f563-4f07-9009-ba07e1f40bca_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XF27!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5649c6c4-f563-4f07-9009-ba07e1f40bca_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!XF27!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5649c6c4-f563-4f07-9009-ba07e1f40bca_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!XF27!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5649c6c4-f563-4f07-9009-ba07e1f40bca_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!XF27!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5649c6c4-f563-4f07-9009-ba07e1f40bca_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XF27!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5649c6c4-f563-4f07-9009-ba07e1f40bca_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5649c6c4-f563-4f07-9009-ba07e1f40bca_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1240860,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://danielloureno1.substack.com/i/187404215?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5649c6c4-f563-4f07-9009-ba07e1f40bca_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!XF27!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5649c6c4-f563-4f07-9009-ba07e1f40bca_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!XF27!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5649c6c4-f563-4f07-9009-ba07e1f40bca_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!XF27!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5649c6c4-f563-4f07-9009-ba07e1f40bca_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!XF27!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5649c6c4-f563-4f07-9009-ba07e1f40bca_1024x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Outra boa analogia &#233; a de c&#237;rculos conc&#234;ntricos. O desenvolvimento humano, o aprimoramento da tecnologia, &#233; a adi&#231;&#227;o de uma camada externa, com &#225;rea maior. Imagine que  voc&#234; deve estudar as camadas internas, subir at&#233; a camada externa para s&#243; ent&#227;o come&#231;ar a construir a nova camada, seria desnecess&#225;rio e ineficiente. Na pr&#225;tica, o que fazemos durante a vida inteira no ensino b&#225;sico &#233; estudar com intelig&#234;ncia o m&#237;nimo poss&#237;vel das camadas interiores. Somente o suficiente para podermos seguir em frente, &#224;s vezes com grande quantidade de abstra&#231;&#245;es.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ymn8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87d32115-dd64-4da4-8b87-44f33957a052_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ymn8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87d32115-dd64-4da4-8b87-44f33957a052_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!ymn8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87d32115-dd64-4da4-8b87-44f33957a052_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!ymn8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87d32115-dd64-4da4-8b87-44f33957a052_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!ymn8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87d32115-dd64-4da4-8b87-44f33957a052_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ymn8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87d32115-dd64-4da4-8b87-44f33957a052_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/87d32115-dd64-4da4-8b87-44f33957a052_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1115487,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://danielloureno1.substack.com/i/187404215?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87d32115-dd64-4da4-8b87-44f33957a052_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ymn8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87d32115-dd64-4da4-8b87-44f33957a052_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!ymn8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87d32115-dd64-4da4-8b87-44f33957a052_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!ymn8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87d32115-dd64-4da4-8b87-44f33957a052_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!ymn8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87d32115-dd64-4da4-8b87-44f33957a052_1024x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://danielloureno1.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Assine agora&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://danielloureno1.substack.com/subscribe?"><span>Assine agora</span></a></p><h3>Camadas de abstra&#231;&#227;o</h3><p>Vamos pegar como exemplo um computador pessoal nos dias de hoje. Ele tem v&#225;rias camadas de abstra&#231;&#227;o que chamamos de Modelo OSI. S&#227;o 7 camadas no total que s&#227;o desenvolvidas <strong>em paralelo</strong>. </p><p>A <em>Camada 1 - F&#237;sica</em>: trata de <strong>sinais</strong>. Voltagem, luz, r&#225;dio, ru&#237;do, conectores, bits crus passando. &#201; o mundo dos el&#233;trons e f&#243;tons. O mundo real.</p><p>A <em>Camada 3 - Rede</em>: decide <strong>por onde</strong> os dados v&#227;o passar para chegar ao destino, mesmo atravessando v&#225;rias redes diferentes. Roteadores operam aqui.</p><p>A <em>Camada 4 - Transporte</em>: cuida da confiabilidade. Ordem dos pacotes, retransmiss&#227;o, controle de congestionamento, portas. TCP e UDP vivem aqui.</p><p>A <em>Camada 6 - Apresenta&#231;&#227;o</em>: Aqui os dados ganham significado. Codifica&#231;&#227;o, compress&#227;o, criptografia. UTF-8, JSON, TLS conceitualmente passam por aqui.</p><p>A <em>Camada 7 - Aplica&#231;&#227;o</em>: &#233; a que voc&#234; usa atrav&#233;s de coisas como HTTP, FTP, SMTP, DNS, navegador, e-mail, APIs.</p><p>Eu, como programador, n&#227;o preciso saber como o computador se comunica com outros pela rede nem como a rede em si funciona. Me basta saber que o computador se comunica e que essa conex&#227;o pode ser atrav&#233;s de requests pontuais ou comunica&#231;&#227;o cont&#237;nua com troca perp&#233;tua de informa&#231;&#245;es.</p><p>J&#225; os engenheiros que trabalham com a parte f&#237;sica n&#227;o precisam saber como sites s&#227;o feitos ou como games s&#227;o programados para aprimorar a tecnologia de fibra &#243;ptica e eletromagn&#233;tica que o computador usa para trocar informa&#231;&#227;o com a rede.</p><p>E voc&#234; n&#227;o precisa saber de nada disso para usar um computador ou um celular para consumir conte&#250;do na camada de Aplica&#231;&#227;o.</p><p><em>Camadas de Abstra&#231;&#227;o</em> te permitem seguir em frente com zero conhecimento sobre como pr&#233;dio que voc&#234; subiu foi constru&#237;do e com a impress&#227;o de que ele n&#227;o vai cair de uma hora pra outra. Abstra&#231;&#227;o &#233; importante para que um aspirante a inova&#231;&#227;o consiga aprender o suficiente para criar nova tecnologia em cima do que j&#225; existe dentro do seu tempo de vida.</p><h3>G&#234;nios</h3><p>Pessoas geniais s&#227;o aquelas com criatividade para aplicar o pouco conhecimento que elas tem no grande esquema das coisas para aplicar uma ideia inovadora, para criar uma t&#233;cnica &#250;til. G&#234;nios s&#227;o pessoas com habilidades incr&#237;veis de aprendizado que conseguem navegar por essas <em>Camadas de Abstra&#231;&#227;o</em> e aprender o suficiente sobre elas para otimizar processos e unir t&#233;cnicas aparentemente n&#227;o relacionadas.</p><p>Enquanto criatividade n&#227;o pode ser controlada, o n&#250;mero de coisas a serem aprendidas cresce a cada dia. </p><h3>A pr&#243;xima camada</h3><p>A quest&#227;o ent&#227;o se torna: como manter essa corrida? Como garantir que novos g&#234;nios continuem surgindo quando o volume de conhecimento necess&#225;rio para chegar &#224; &#8220;borda&#8221; do c&#237;rculo s&#243; aumenta?</p><p>Temos basicamente duas op&#231;&#245;es. A primeira &#233; continuar estreitando os dom&#237;nios de expertise - transformar especialistas em hiper-especialistas, dividindo o conhecimento em peda&#231;os cada vez menores at&#233; que algu&#233;m consiga dominar o suficiente para contribuir. Mas isso tem um limite pr&#225;tico: coordenar milhares de especialistas trabalhando em fragmentos microsc&#243;picos do conhecimento &#233; lento, caro e ineficiente.</p><p>A segunda op&#231;&#227;o &#233; criar uma nova camada de abstra&#231;&#227;o. Assim como a escrita abstraiu a necessidade de estar fisicamente presente para transmitir conhecimento, precisamos de algo que abstraia o processo de consumir todo o conhecimento acumulado.</p><p>E se pud&#233;ssemos comprimir n&#227;o apenas textos individuais, mas a ess&#234;ncia de milh&#245;es deles? E se, em vez de passar anos lendo e conectando ideias dispersas em bibliotecas infinitas, voc&#234; pudesse conversar com o conhecimento acumulado da humanidade e chegar direto ao que precisa para sua inova&#231;&#227;o espec&#237;fica?</p><h3>LLMs</h3><p>A tradi&#231;&#227;o oral permitia que conhecimento morresse. A escrita permite o crescimento teoricamente ilimitado do conhecimento, mas &#224; custa de n&#227;o ser completamente acess&#237;vel para uma pessoa. E se os modelos de linguagem como ChatGPT, Grok, Gemini e Claude fossem a pr&#243;xima tecnologia capaz de levar a produ&#231;&#227;o de tecnologia a outro patamar?</p><p><em>Large Language Models</em>(LLMs) s&#227;o modelos treinados para repetir padr&#245;es dos textos usados no seu treinamento de forma probabil&#237;stica. De forma pr&#225;tica LLMs podem ser pensados como arquivos ZIP, uma compress&#227;o de conte&#250;do e conhecimento de centenas ou milhares de <em>gigabytes</em> de informa&#231;&#227;o condensada em poucos gigas. Mesmo na minha m&#225;quina modesta sem placa de v&#237;deo, consigo rodar modelos de 3 ou 7 bilh&#245;es de par&#226;metros pesando entre 1 e 4 <em>gigabytes</em> capazes de conversar em m&#250;ltiplas l&#237;nguas, fazer racioc&#237;nios simples e at&#233; mesmo citar textos de cor, sem acesso a internet. </p><p>Isso mesmo, a humanidade chegou a um ponto onde conseguiu ajustar <strong>par&#226;metros</strong> de um programa para reproduzir <strong>textos j&#225; escritos</strong> de uma forma comprimida para ocupar menos espa&#231;o ao custo de um comportamento n&#227;o determin&#237;stico, mas probabil&#237;stico. Se voc&#234; ler esse <a href="https://arxiv.org/pdf/2302.13971">paper da Meta</a> voc&#234; vai entender o qu&#227;o conceitualmente profundo &#233; substituir espa&#231;o de armazenamento por tempo e energia gasta no treinamento de forma a conseguir respostas t&#227;o precisas, quase como se os textos estivessem realmente ali, guardados. </p><p>E mais importante do que ocupar menos espa&#231;o, isso permitiu a esse programa ligar essas ideias ao ser guiado por uma pessoa que sabe onde quer chegar.</p><p>Algu&#233;m com o m&#237;nimo conhecimento sobre uma &#225;rea consegue usar da IA para pular etapas e construir coisas acima do pr&#243;prio n&#237;vel. IA n&#227;o pode fazer isso sozinha, mas &#233; uma ferramenta com potencial enorme para <strong>acelerar o processo</strong> de aprender o que a humanidade j&#225; construiu e impulsionar algu&#233;m direto para o <em>endgame</em>.</p><h3>Conclus&#227;o</h3><p>Como algu&#233;m da TI, eu, mais do que voc&#234;, estou cansado de gente falando merda sobre IA, mas n&#227;o posso deixar de falar sobre isso pois &#233; revolucion&#225;rio, n&#227;o ironicamente. </p><p>Vejo muita gente usando IAs das formas mais est&#250;pidas poss&#237;veis. Isso me lembra da imagem de &#237;ndios pegando espadas pela primeira vez, n&#227;o pelo cabo, mas pela l&#226;mina. Maravilhados pelo brilho do metal, esquecemos da utilidade e do potencial do uso direcionado do equipamento.</p><p>Pelo menos eu acho essa uma discuss&#227;o melhor do que entrar em debates sem fim sobre &#8220;Ser&#225; que a IA vai criar consci&#234;ncia?&#8221; ou &#8220;Ser&#225; que a IA vai ficar mais inteligente do que humanos?&#8221; e filosofia sem fim tentando definir o que &#233; e o que n&#227;o &#233; intelig&#234;ncia.</p><p>Fato &#233;, que desde o princ&#237;pio tive a no&#231;&#227;o clara de que IA vai automatizar o conhecimento atual e deixar os humanos de verdade livres para criar coisas novas. </p><p>Um especialista gasta 80% do seu tempo aprendendo o que j&#225; foi descoberto, -dominando sua &#225;rea - e s&#243; 20% inovando/tentando criar coisas novas. A IA pode permitir que isso vire um 30/70, por exemplo. Em vez de passar anos subindo cada camada, voc&#234; pode usar a IA como um atalho - pular direto para a borda externa onde o novo conhecimento &#233; criado.</p><p>Isso inverte a l&#243;gica atual: ao inv&#233;s de &#8220;IA vai roubar empregos/criatividade&#8221;, a IA pode libertar humanos do trabalho repetitivo de processar conhecimento antigo para focar no que realmente importa - inova&#231;&#227;o genu&#237;na.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://danielloureno1.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Inscreva-se&quot;,&quot;language&quot;:&quot;pt-br&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Obrigado por ler! Assine gratuitamente para receber novos posts e apoiar meu trabalho.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Digite seu e-mail&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Inscreva-se"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Neuroplasticidade]]></title><description><![CDATA[O que realmente muda no c&#233;rebro quando voc&#234; aprende algo]]></description><link>https://danielloureno1.substack.com/p/neuroplasticidade</link><guid isPermaLink="false">https://danielloureno1.substack.com/p/neuroplasticidade</guid><dc:creator><![CDATA[Daniel Lourenço]]></dc:creator><pubDate>Mon, 02 Feb 2026 17:02:46 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/32f89540-8c78-40cc-81ea-c9bef4d5c179_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Nosso c&#233;rebro &#233; formado por neur&#244;nios, como voc&#234; provavelmente aprendeu na escola. Esses neur&#244;nios s&#227;o uma esp&#233;cie especial de c&#233;lulas que usam de eletricidade para se comunicarem entre si. &#201; bem comum usar a quantidade de neur&#244;nios como um indicador de intelig&#234;ncia, apesar de n&#227;o ser verdade. Tamb&#233;m &#233; bem comum ouvir falar de neuroplasticidade, a capacidade do c&#233;rebro de mudar, mas sem mais insights &#250;teis sobre isso. Uma <strong>mera constata&#231;&#227;o</strong> sobre a din&#226;mica biol&#243;gica. Nesse texto quero elaborar alguns pensamentos sobre o funcionamento do c&#233;rebro sem me ater a detalhes qu&#237;micos ou biol&#243;gicos, com foco no processo de aprendizado.</p><p>Na vida adulta, quase n&#227;o s&#227;o criados novos neur&#244;nios al&#233;m da taxa de reposi&#231;&#227;o. Neur&#244;nios morrem, novos s&#227;o criados para repor. Diferente da inf&#226;ncia, onde nosso c&#233;rebro aumenta constantemente, tanto em volume quanto em densidade pelo aumento no n&#250;mero deles.</p><p>A maior mudan&#231;a fisiol&#243;gica que ocorre na massa cinzenta &#233; a organiza&#231;&#227;o do n&#250;mero constante de neur&#244;nios. Neur&#244;nios tem uma cabe&#231;a que recebe est&#237;mulos de outros neur&#244;nios e uma cauda que manda esses mesmos est&#237;mulos para outros. Eles podem se conectar com v&#225;rios neur&#244;nios, tanto pela cabe&#231;a quanto pela cauda. Isso cria uma gama de combina&#231;&#245;es de como eles podem se conectar entre si que aumenta de forma exponencial. Em um c&#233;rebro com dezenas de bilh&#245;es deles, as possibilidades de conex&#245;es &#233; praticamente infinita.</p><p>De forma bem simplificada, mem&#243;rias s&#227;o um estado do c&#233;rebro onde circuitos espec&#237;ficos est&#227;o ativados. Uma certa viv&#234;ncia que voc&#234; viveu ativou um desses circuitos que j&#225; existia, mas que nunca tinha sido usado, ou usado raramente . Viv&#234;ncias parecidas ou pensamentos podem reativar aquele caminho, te fazendo experienciar aquela situa&#231;&#227;o novamente na sua cabe&#231;a. Conforme esses circuitos s&#227;o usados para repassar aquela experi&#234;ncia na sua mente, as conex&#245;es daqueles neur&#244;nios se fortalecem, tornando menos prov&#225;vel que eles se separem pela plasticidade do c&#233;rebro, que faz os neur&#244;nios mudarem suas conex&#245;es e at&#233; mesmo sua posi&#231;&#227;o. Essas conex&#245;es fortalecidas facilitam que o c&#233;rebro atinja aquele estado com pouca explora&#231;&#227;o. Como se mesmo o menor dos est&#237;mulos levasse &#224;quele estado.</p><p>Pensamentos funcionam da mesma forma. Linhas de racioc&#237;nio s&#227;o como se voc&#234; navegasse nesses caminhos buscando aquele que te leva de A at&#233; B dentro desse espa&#231;o estranho. Uma vez que voc&#234; acha o caminho correto, fica mais f&#225;cil repeti-lo. Aqui ainda estamos no princ&#237;pio do intelecto humano e nas suas capacidades mais basilares: Lembrar e fazer liga&#231;&#245;es l&#243;gicas. Existem in&#250;meras opera&#231;&#245;es mais complexas e com mais passos como aritm&#233;tica.</p><p>Opera&#231;&#245;es aritm&#233;ticas como somar dois n&#250;meros de um algarismo envolve ligar o conceito daqueles dois n&#250;meros com um terceiro. Chamamos isso de &#8220;decorar a tabuada&#8221;. Para n&#250;meros maiores, com mais algarismos, usamos um circuito espec&#237;fico que envolve manter n&#250;meros em mem&#243;ria de trabalho e executar um algoritmo para cada d&#237;gito, um de cada vez. Aos poucos vamos guardando esses resultados na mem&#243;ria e agilizando o processo, mas j&#225; estou me desviando demais.</p><p>Quando aprendemos conceitos e opera&#231;&#245;es novas n&#227;o temos circuitos neuronais para execut&#225;-los de uma vez. Precisamos fazer uso de circuitos gen&#233;ricos e ineficientes. Ao dormirmos, nosso c&#233;rebro reproduz certas ativa&#231;&#245;es que ocorreram durante o dia de forma acelerada. Ele analisa a topologia e formato dos caminhos ativados e fortalece as conex&#245;es entre neur&#244;nios que ativaram de forma conjunta. O resultado final &#233; um caminho eficiente com menos bifurca&#231;&#245;es, menos energia necess&#225;ria para ativar, mais curto e com conex&#245;es mais fortes.</p><p>Eu nunca dirigi, mas os relatos que ouvi dizem que no come&#231;o voc&#234; precisa de foco intenso em todos os detalhes dos arredores e uma vez que voc&#234; domina o ato de dirigir isso &#233; substitu&#237;do por uma dire&#231;&#227;o intuitiva que n&#227;o consome tanto foco e energia. Isso &#233; a neuroplasticidade agindo como deveria: um comportamento complexo e que exige aten&#231;&#227;o sustentada dizendo quais a&#231;&#245;es devem ser tomadas sendo substitu&#237;do por um circuito que pula do come&#231;o direto para o fim.</p><p>Assim como voc&#234; n&#227;o precisa passar por uma longa linha de racioc&#237;nio para frear ao ver um pedestre na sua frente, voc&#234; n&#227;o precisa lembrar do cheiro que sentiu enquanto seu professor te ensinava a fazer multiplica&#231;&#245;es e pot&#234;ncias. O circuito &#8220;est&#237;mulo -&gt; resultado&#8221; &#233; refor&#231;ado. As bifurca&#231;&#245;es indesejadas que n&#227;o afetam o resultado s&#227;o podadas. Os passos intermedi&#225;rios s&#227;o substitu&#237;dos pelo caminho mais eficiente.</p><p>At&#233; aqui eu falei de circuitos e caminhos, mas diferente das redes neurais que estamos acostumados - feitas pelo homem - a topologia do c&#233;rebro n&#227;o &#233; linear, mas extremamente intrincada. N&#227;o falamos que a ativa&#231;&#227;o de um neur&#244;nio ou conjunto de neur&#244;nios A se propaga e ativa um outro conjunto de neur&#244;nios B. O mais correto &#233; dizer que um estado A do c&#233;rebro como um grande conjunto, obtido por est&#237;mulos externos e internos, leva para um novo estado B. B &#233; o novo estado que leva para um terceiro estado C. Isso torna B um est&#237;mulo interno que leva para o pr&#243;ximo. Isso precisa ser dito para que voc&#234; entenda que o c&#233;rebro n&#227;o &#233; uma m&#225;quina complexa com entrada e sa&#237;da bem definidas , mas um loop, um circuito fechado que se retroalimenta.</p><p>Para programadores, ele &#233; um while True usando vari&#225;veis globais que, &#224;s vezes, s&#227;o alteradas por programas externos.</p><p>Voltando para a simplifica&#231;&#227;o. Um circuito leva a ativa&#231;&#227;o de A at&#233; B por in&#250;meros caminhos, devido as quase infinitas conex&#245;es que existem no c&#233;rebro. Durante o sono o c&#233;rebro reproduz esse processo e percebe a rela&#231;&#227;o causal entre A e B: A ativa e logo em seguida B ativa. O c&#233;rebro, ent&#227;o, fortalece as conex&#245;es desses caminhos de forma a favorecer o caminho mais curto, de prefer&#234;ncia um que n&#227;o d&#234; a volta ao mundo, disparando in&#250;meras mem&#243;rias e distra&#231;&#245;es. O custo de ativar o circuito A-&gt;B diminui. O comportamento passa a precisar de menos aten&#231;&#227;o, o resultado se torna previs&#237;vel, como uma rea&#231;&#227;o impulsiva ou instintiva. Claro que depende da complexidade do comportamento, mas a tend&#234;ncia &#233; essa.</p><p>Simplificar o circuito respons&#225;vel por uma a&#231;&#227;o ou pensamento n&#227;o &#233; importante somente para economizar carga mental. Fazer essa simplifica&#231;&#227;o &#233; preparar a funda&#231;&#227;o na qual voc&#234; poder&#225; construir algo em cima. </p><p>&#201; como fazer um algoritmo complexo com la&#231;os de repeti&#231;&#227;o, recurs&#227;o e v&#225;rias outras t&#233;cnicas para resolver o problema imediato para logo em seguida empacar em continuar, desenvolver, adicionar novas funcionalidades. Primeiro voc&#234; precisa desatar o n&#243; que voc&#234; fez, entender a estrutura para s&#243; ent&#227;o refatorar, mudar o c&#243;digo fonte. Agora sim, o resto flui com naturalidade, depois de uma noite de sono, saindo da analogia.</p><p>J&#225; me peguei muitas vezes tentando manter longas linhas de racioc&#237;nio em mente e tentando seguir em frente. Era imposs&#237;vel. Antes eu teria que sintetizar aquilo em algo mais linear e simples, mesmo as custas de perder alguns nuances para s&#243; ent&#227;o seguir, por vezes, em outro dia.</p><p>Embora eu n&#227;o me considere versado nessa &#225;rea, isso tamb&#233;m se aplica para a criatividade. A t&#227;o recorrente experi&#234;ncia de um escritor de ter ideias nos mais variados momentos, ao ponto discutirem t&#233;cnicas para anot&#225;-las o mais r&#225;pido poss&#237;vel antes que esque&#231;am, n&#227;o &#233; nada mais que o est&#237;mulo do ambiente os levando por novos caminhos criados anteriormente pela plasticidade do c&#233;rebro. N&#227;o quero diminuir a complexidade desse mundo ao material ent&#227;o, pondo em outras palavras, diria que o c&#233;rebro d&#225; uma m&#227;ozinha no processo de conectar os pontos.</p><p>Quando voc&#234; inicia o processo de explorar um racioc&#237;nio, voc&#234; est&#225; enviesado, preso a um &#250;nico caminho no c&#233;rebro. A neuroplasticidade te ajuda, depois de um tempo, a explorar outros caminhos que pareciam n&#227;o existir antes: ideias, processos, experimentos, t&#233;cnicas, abordagens e etc.</p><p>Isso me ajudou a entender que existem barreiras temporais no aprendizado. N&#227;o conseguir agora n&#227;o quer dizer que eu n&#227;o consiga depois de um descanso, de um intervalo ou de uma mudan&#231;a de ares. &#8220;Nove gr&#225;vidas n&#227;o fazem um beb&#234; em um m&#234;s&#8221; e voc&#234; n&#227;o devia tentar aprender tudo de uma vez.</p><h3>M&#233;todo Feynman</h3><p>Um dos melhores m&#233;todos de aprendizado &#233; o de ensinar a algu&#233;m algo que voc&#234; est&#225; aprendendo. A tentativa de ensinar te for&#231;a a passar de forma expl&#237;cita por todos os passos do racioc&#237;nio e avaliar de uma nova perspectiva. Tamb&#233;m te faz entender quais t&#243;picos devem vir antes de forma a construir o conhecimento, como andares de um pr&#233;dio.</p><p>No come&#231;o voc&#234; tem uma <strong>intui&#231;&#227;o comprimida</strong>, algo que pula do in&#237;cio para o fim, do problema para a resposta. Esse tipo de circuito funciona bem para uso imediato, mas &#233; r&#237;gido. Ao tentar ensinar, essa intui&#231;&#227;o precisa ser esticada. Os <strong>passos intermedi&#225;rios</strong> voltam a existir e o racioc&#237;nio se torna <strong>expl&#237;cito</strong>.</p><p>Antes, o circuito resolvia um problema. Depois, ele passa a <strong>suportar varia&#231;&#245;es</strong>: generaliza&#231;&#245;es, analogias, exce&#231;&#245;es, combina&#231;&#245;es com outros conceitos. O que era um atalho vira uma estrutura.</p><p>Uma analogia topologicamente imprecisa do que realmente acontece com os neur&#244;nios de fato, mas vai te fazer entender bem &#233;: Ao tentar explicar um conte&#250;do novo, voc&#234; est&#225; tornando uma corda lisa em uma corrente com elos furados. Desses furos voc&#234; pode encaixar novos elos de outras correntes. Dessa forma voc&#234; pode construir em cima, abrir caminho para novos racioc&#237;nios e aprender deriva&#231;&#245;es do assunto original. Mas primeiro &#233; preciso desfiar a corda por completo.</p><p>Por sinal, meus textos sou eu aplicando o m&#233;todo Feynman na pr&#225;tica. Eu recomento fortemente que voc&#234; escreva sobre assuntos do seu interesse e coisas que voc&#234; quer aprender. Nem precisa publicar, mas garanto que traz clareza produzir uma pe&#231;a coesa do in&#237;cio ao fim sobre um assunto.</p><h3>Repeti&#231;&#227;o Espa&#231;ada</h3><p>J&#225; a repeti&#231;&#227;o espa&#231;ada leva a neuroplasticidade ao extremo te for&#231;ando a revisitar aquele assunto diversas vezes em dias diferentes. Na maioria das vezes o m&#233;todo &#233; apresentado baseado na curva de esquecimento, que n&#227;o deixa de ser verdade, mas entender o porqu&#234; da curva descer cada vez mais devagar &#233; crucial para mostrar o poder da t&#233;cnica.</p><p>No dia 1 voc&#234; aprende a informa&#231;&#227;o. Durante o sono seu c&#233;rebro se reorganiza internamente alterando as conex&#245;es dos neur&#244;nios respons&#225;veis por fazer as opera&#231;&#245;es e a&#231;&#245;es relacionadas &#224;quela informa&#231;&#227;o e os necess&#225;rios para puxar a informa&#231;&#227;o. No dia 2, se voc&#234; revisar, vai estar reativando a mem&#243;ria, a fortalecendo. E tamb&#233;m vai estar reutilizando esses mesmos circuitos aplicando-os em novas coisas que voc&#234; aprender depois.</p><p>Uma boa met&#225;fora para representar o aprendizado com repeti&#231;&#227;o espa&#231;ada &#233; o de uma constru&#231;&#227;o onde voc&#234; faz uma funda&#231;&#227;o que voc&#234; vai fortalecendo, a alargando enquanto constr&#243;i em cima. Voc&#234; continua alargando a base e o andar de cima enquanto constr&#243;i o topo. No fim voc&#234; tem uma pir&#226;mide que n&#227;o tomba, n&#227;o importa o que aconte&#231;a. </p><p>Os efeitos s&#227;o compostos, quanto mais conhecimento interligado voc&#234; aprende usando esse m&#233;todo, mais vantagens voc&#234; colhe desse m&#233;todo. &#201; por isso que ele &#233; muito usado para o aprendizado de idiomas. Eu j&#225; escrevi sobre <a href="https://substack.com/@danielloureno1/p-181827587">como aprendi ingl&#234;s</a> durante a pandemia usando repeti&#231;&#227;o espa&#231;ada.</p><h3>Conclus&#227;o</h3><p>Queria te fazer entender neuroplasticidade como algo diferente de um termo vago, como o limite que o c&#233;rebro precisa para transformar intui&#231;&#245;es fr&#225;geis em estruturas est&#225;veis.</p><p>Talvez voc&#234; j&#225; tenha vivenciado a lei dos retornos decrescentes, n&#227;o no sentido econ&#244;mico formal, mas na experi&#234;ncia pr&#225;tica de estudar por horas e perceber que cada unidade adicional de esfor&#231;o produz cada vez menos avan&#231;o real. Isso n&#227;o acontece apenas por cansa&#231;o ou falta de foco, mas porque o c&#233;rebro tem uma capacidade limitada de reorganiza&#231;&#227;o em um mesmo intervalo de tempo.</p><p>Nem sei at&#233; que ponto explica&#231;&#227;o neurol&#243;gica ajudou, mas se pelo menos a utilidade dos m&#233;todos tiver ficado clara estarei satisfeito.</p><p>Esse assunto em espec&#237;fico foi bem dif&#237;cil e agradeceria se deixasse um coment&#225;rio falando da sua experi&#234;ncia com Feynman e Repeti&#231;&#227;o Espa&#231;ada.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://danielloureno1.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Inscreva-se&quot;,&quot;language&quot;:&quot;pt-br&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Assine para receber textos nessa pegada reflexiva e ancorada na realidade!</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Digite seu e-mail&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Inscreva-se"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Criptografia de Curva Elíptica]]></title><description><![CDATA[E como ela carrega o Bitcoin nas costas]]></description><link>https://danielloureno1.substack.com/p/criptografia-de-curva-eliptica</link><guid isPermaLink="false">https://danielloureno1.substack.com/p/criptografia-de-curva-eliptica</guid><dc:creator><![CDATA[Daniel Lourenço]]></dc:creator><pubDate>Mon, 26 Jan 2026 20:09:03 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/835f79fa-eb5e-47fb-b2d3-c04f265e54c4_1024x868.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Chaves P&#250;blicas e Privadas s&#227;o o cora&#231;&#227;o do Bitcoin. Bitcoins s&#227;o propriedades de Chaves P&#250;blicas, que exercem essa propriedade assinando transa&#231;&#245;es para outras chaves. Essas assinaturas, por sua vez, dependem da Chave Privada.</p><p>Essa liga&#231;&#227;o <em>PrivKey</em> -&gt; <em>PubKey</em> -&gt; Assinatura &#233; feita pela <em>Criptografia de Curva El&#237;ptica(ECC)</em>. Ao aplicar uma fun&#231;&#227;o determin&#237;stica &#8212; que resulta sempre o mesmo para a mesma sa&#237;da &#8212; na Chave Privada, obtemos a Chave P&#250;blica. Nesse texto eu vou explicar que fun&#231;&#227;o &#233; essa e por que ela &#233; irrevers&#237;vel na pr&#225;tica. Ou seja, &#233; humanamente imposs&#237;vel descobrir a Chave Privada de uma Chave P&#250;blica espec&#237;fica.</p><h3>Private Keys</h3><p>Chaves Privadas s&#227;o um n&#250;mero natural entre 1 e aproximadamente 10&#8311;&#8311;. Nada mais, nada menos. Chute um n&#250;mero dentro desse intervalo e voc&#234; tem uma Chave Privada, simples assim. Quando um software de carteira de Bitcoin cria novas chaves, ele est&#225; usando fun&#231;&#245;es espec&#237;ficas para gerar as chaves de forma determin&#237;stica a partir de uma seed que foi escolhida aleatoriamente.</p><h3>Public Keys</h3><p>A partir de uma Chave Privada, &#233; poss&#237;vel derivar uma Chave P&#250;blica. Uma &#233; consequ&#234;ncia matem&#225;tica da outra. O resultado de uma conta. S&#243; isso. E essa conta &#233; feita no espa&#231;o vetorial da curva el&#237;ptica.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!b36b!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98a33d5f-4217-4ca2-9790-5e48a7e410f2_768x576.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!b36b!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98a33d5f-4217-4ca2-9790-5e48a7e410f2_768x576.png 424w, https://substackcdn.com/image/fetch/$s_!b36b!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98a33d5f-4217-4ca2-9790-5e48a7e410f2_768x576.png 848w, https://substackcdn.com/image/fetch/$s_!b36b!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98a33d5f-4217-4ca2-9790-5e48a7e410f2_768x576.png 1272w, https://substackcdn.com/image/fetch/$s_!b36b!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98a33d5f-4217-4ca2-9790-5e48a7e410f2_768x576.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!b36b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98a33d5f-4217-4ca2-9790-5e48a7e410f2_768x576.png" width="768" height="576" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/98a33d5f-4217-4ca2-9790-5e48a7e410f2_768x576.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:576,&quot;width&quot;:768,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:42202,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://danielloureno1.substack.com/i/185879880?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98a33d5f-4217-4ca2-9790-5e48a7e410f2_768x576.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!b36b!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98a33d5f-4217-4ca2-9790-5e48a7e410f2_768x576.png 424w, https://substackcdn.com/image/fetch/$s_!b36b!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98a33d5f-4217-4ca2-9790-5e48a7e410f2_768x576.png 848w, https://substackcdn.com/image/fetch/$s_!b36b!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98a33d5f-4217-4ca2-9790-5e48a7e410f2_768x576.png 1272w, https://substackcdn.com/image/fetch/$s_!b36b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98a33d5f-4217-4ca2-9790-5e48a7e410f2_768x576.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">A curva el&#237;ptica tem esse formato</figcaption></figure></div><p>Enquanto a <em>PrivKey</em> &#233; um n&#250;mero, a <em>PubKey</em> &#233; um ponto da curva em um plano cartesiano. Logo, ela tem coordenadas (x,y). A Chave P&#250;blica &#233; um ponto obtido ao multiplicar a Chave Privada por um ponto inicial da curva arbitrariamente escolhido conhecido como G.</p><p>Lembrando que opera&#231;&#245;es com vetores s&#227;o diferentes de opera&#231;&#245;es com n&#250;meros. Essa multiplica&#231;&#227;o que me refiro &#233; uma repeti&#231;&#227;o de somas (G+G+...+G) de G uma certa quantidade de vezes. A soma na curva el&#237;ptica &#233; definida de forma diferente<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a>, de forma que sabendo o ponto final e o ponto inicial G, voc&#234; n&#227;o tenha como saber <strong>quantas vezes</strong> o c&#225;lculo foi repetido.</p><p>N&#227;o existe um algoritmo que descubra esse n&#250;mero de somas(que &#233; a <em>PrivKey</em>) de forma eficiente. S&#243; o que voc&#234; pode fazer &#233; chutar valores e multiplicar por G e verificar se resultou na Chave P&#250;blica que est&#225; buscando(ou pelo menos uma que tenha fundos). Voc&#234; teria que testar n&#250;meros entre 0 e 115792089237316195423570985008687907852837564279074904382605163141518161494337. <strong>Boa sorte.</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://danielloureno1.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Assine agora&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://danielloureno1.substack.com/subscribe?"><span>Assine agora</span></a></p><p>Mesmo considerando que voc&#234; n&#227;o quer descobrir a <em>PrivKey</em> de uma <em>PubKey</em> espec&#237;fica, mas qualquer <em>PubKey</em> que tenha saldo(aproximadamente 38 milh&#245;es de endere&#231;os com um satoshi ou mais), ainda seria uma chance de 1 em 10&#8311;&#8304;. Seria como procurar um &#225;tomo espec&#237;fico em todo o universo.</p><p>Em suma, fica algo como <strong>PubKey = PrivKey x Ponto G</strong>(padronizado e p&#250;blico). A <em>Criptografia de Curva El&#237;ptica</em> &#233; o que permite que voc&#234; possa expor sua Chave P&#250;blica sem medo na internet para, por exemplo, pesquisar o saldo dos seus endere&#231;os sem ter medo de algu&#233;m descobrir sua Chave Privada. Mais importante que isso, no entanto, &#233; que a Chave P&#250;blica &#233; necess&#225;ria para a <strong>prova de conhecimento da Chave Privada</strong>, necess&#225;ria para a assinatura de uma transa&#231;&#227;o.</p><h3>Assinaturas</h3><p>Assinar uma transa&#231;&#227;o significa provar que voc&#234; conhece a Chave Privada da qual a Chave P&#250;blica &#233; derivada e cujo endere&#231;o tenha dep&#243;sitos de bitcoin. Isso sem revelar sua Chave Privada, claro.</p><p>Na matem&#225;tica existe um conceito chamado <strong>Prova de Conhecimento-Zero</strong>, onde voc&#234; prova que sabe um segredo para outrem sem <strong>jamais</strong> dar possibilidade de o segredo ser descoberto. Assinaturas de transa&#231;&#227;o formalmente n&#227;o s&#227;o Prova de Conhecimento-Zero pois a passagem de Chave P&#250;blica &#8594; Chave Privada pode ser feita com processamento suficiente, mas na pr&#225;tica funciona como se fosse.</p><p>Em termos t&#233;cnicos, uma assinatura &#233; um conjunto de um ponto na curva e um n&#250;mero (R, s) tal que satisfa&#231;am a seguinte igualdade:</p><div class="latex-rendered" data-attrs="{&quot;persistentExpression&quot;:&quot;s \\cdot G = R + e \\cdot PubKey \\quad(1)&quot;,&quot;id&quot;:&quot;CHHHGRGBDF&quot;}" data-component-name="LatexBlockToDOM"></div><p>onde &#8220;e&#8221; &#233; o hash da transa&#231;&#227;o. Pontos na curva s&#227;o representados em letras mai&#250;sculas. O ponto R &#233; G multiplicado por um n&#250;mero aleat&#243;rio k. &#8220;s&#8221; &#233; criado pelo dono da Chave Privada da seguinte forma:</p><div class="latex-rendered" data-attrs="{&quot;persistentExpression&quot;:&quot;s = k + e \\cdot PrivKey \\quad (2)&quot;,&quot;id&quot;:&quot;ZSMEHIWNNQ&quot;}" data-component-name="LatexBlockToDOM"></div><p>Se eu multiplicar os dois lados por G fica:</p><div class="latex-rendered" data-attrs="{&quot;persistentExpression&quot;:&quot;s \\cdot G = k \\cdot G + e \\cdot PrivKey \\cdot G \\quad (3)&quot;,&quot;id&quot;:&quot;AUPPRDJMBU&quot;}" data-component-name="LatexBlockToDOM"></div><p>Note que &#8220;kG&#8221; &#233; a defini&#231;&#227;o de R e &#8220;PrivKey x G&#8221; &#233; a defini&#231;&#227;o de Chave P&#250;blica. O assinante monta a equa&#231;&#227;o 2, o verificador monta a equa&#231;&#227;o 1. A equa&#231;&#227;o 3 &#233; o elo que une as duas. A igualdade s&#243; &#233; verdadeira do lado do verificador se a PrivKey usada para criar &#8220;s&#8221; for a mesma que d&#225; vida a PubKey com os fundos(impl&#237;cito em &#8220;e&#8221;).</p><h3>Conclus&#227;o</h3><p>A <em>Criptografia de Curva El&#237;ptica(ECC)</em> &#233; o que garante a posse soberana das suas chaves. E da pr&#243;xima vez que voc&#234; disser <em>&#8220;Not your keys, not your coins&#8221;</em> vai lembrar disso. A Chave Privada &#233; o que determina o controle sobre seus bitcoins, por isso precisa de uma seguran&#231;a absoluta. Essa seguran&#231;a &#233; feita pela <em>ECC</em>. </p><p>Para quebrar a <em>ECC</em>, n&#227;o basta ter mais poder computacional que o resto da rede &#8212; como acontece em ataques ao consenso da blockchain<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a>. Seria necess&#225;rio operar em escalas f&#237;sicas absurdas ou descobrir um algoritmo capaz de inverter a multiplica&#231;&#227;o na curva, o que seria mais dif&#237;cil ainda. E mesmo se um algoritmo do tipo fosse criado, os fundos de carteiras modernas n&#227;o estariam perdidos automaticamente por um &#250;nico detalhe: A Chave P&#250;blica n&#227;o precisa ser exposta para receber pagamentos, apenas para faz&#234;-los. Pretendo me aprofundar em carteiras em um texto futuro. </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://danielloureno1.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Inscreva-se&quot;,&quot;language&quot;:&quot;pt-br&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Valeu por ler at&#233; o fim! Inscreva-se para receber textos futuros e apoiar meu trabalho.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Digite seu e-mail&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Inscreva-se"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>Veja esse <a href="https://estudiobitcoin.com/elliptic-curve-in-bitcoin/">artigo</a> em ingl&#234;s que explica como a opera&#231;&#227;o &#233; definida. Est&#225; t&#227;o bem explicado que n&#227;o tenho motivos pra reproduzir no meu texto.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>Nesse <a href="https://substack.com/@danielloureno1/p-185122608">artigo</a> eu explico a vulnerabilidade da blockchain e como voc&#234; s&#243; precisa de mais processamento que o resto da rede, bem menos que o necess&#225;rio para quebrar a ECC</p></div></div>]]></content:encoded></item><item><title><![CDATA[Matemática por trás do Ataque de 51%]]></title><description><![CDATA[Don't trust, verify]]></description><link>https://danielloureno1.substack.com/p/matematica-por-tras-do-ataque-de</link><guid isPermaLink="false">https://danielloureno1.substack.com/p/matematica-por-tras-do-ataque-de</guid><dc:creator><![CDATA[Daniel Lourenço]]></dc:creator><pubDate>Tue, 20 Jan 2026 11:34:43 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/62c16280-ec02-4b31-ab0f-abbd1ab221fe_956x586.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Estou terminando uma disciplina de estat&#237;stica que me d&#225; ferramentas para analisar probabilidades associadas &#224; vari&#225;veis aleat&#243;rias com certos tipos de distribui&#231;&#245;es. Nesse texto quero aplicar esse conhecimento em um exemplo do mundo real para solidificar o meu aprendizado e trabalhar em um tema que acho interessante.</p><p>No white paper do Bitcoin, Satoshi avalia as probabilidades de um atacante modificar a blockchain para tentar desfazer seus pr&#243;prios pagamentos, ficando com o dinheiro e o produto comprado. Ele conclui que, desde que o atacante tenha menos poder computacional que o resto da rede combinada, &#233; seguro dizer que transa&#231;&#245;es inclu&#237;das h&#225; certa quantidade de blocos s&#227;o estatisticamente imposs&#237;veis de reverter. A seguir vou analisar as ferramentas que ele usou para concluir isso.</p><h3>Sobre o ataque</h3><p>Antes disso, &#233; importante definir por que especificamente esse tipo e ataque &#233; considerado. Por que n&#227;o alterar a blockchain para desviar os bitcoins das transa&#231;&#245;es alheias para si? </p><p>Uma das regras primordiais do Bitcoin &#233; que outputs(UTXO) est&#227;o ligados a endere&#231;os. Endere&#231;os ligados &#224; Chaves P&#250;blicas que est&#227;o ligadas &#224; Chaves Privadas por Criptografia de Curva El&#237;ptica e SHA-256. Muita matem&#225;tica para dizer, em resumo, que bitcoins tem dono e s&#243; ele pode assinar uma transa&#231;&#227;o. Mesmo que um minerador &#8212; um atacante montando um bloco falso &#8212; crie uma transa&#231;&#227;o de qualquer endere&#231;o para um endere&#231;o dele e inclua no bloco, ele n&#227;o ser&#225; capaz de criar uma assinatura v&#225;lida para a transa&#231;&#227;o e o bloco inteiro ser&#225; rejeitado por todos os n&#243;s da rede.</p><p>Vimos que ele n&#227;o pode criar transa&#231;&#245;es partindo de endere&#231;os que ele n&#227;o controla. S&#243; resta remover transa&#231;&#245;es existentes em um bloco v&#225;lido o substituindo por um bloco sem elas. Isso ainda &#233; ineficaz com transa&#231;&#245;es alheias. Uma vez assinada, uma transa&#231;&#227;o pode ser adicionada a qualquer momento em um bloco. Se a transa&#231;&#227;o j&#225; se espalhou pela rede, fazer uma corrente de blocos alternativa sem ela &#233; adiar o inevit&#225;vel. Assim, s&#243; resta como alternativa substituir um pagamento feito pelo pr&#243;prio atacante para algu&#233;m por um pagamento para outro endere&#231;o pr&#243;prio. Isso torna a primeira inv&#225;lida se a corrente alternativa for adotada como definitiva.</p><h3>Passeio aleat&#243;rio</h3><p>Em um passeio aleat&#243;rio, a tend&#234;ncia quando o experimento &#233; repetido uma quantidade massiva de vezes &#233; que n&#227;o saia do mesmo lugar. Imagine um b&#234;bado andando em uma estrada sempre para frente, mas trope&#231;ando para os lados. Ora ele d&#225; um passo para a esquerda ora para a direita. Passeios aleat&#243;rios seguem a distribui&#231;&#227;o binomial que &#233; bem conhecida no campo da estat&#237;stica.</p><p>Supondo que o dito b&#234;bado tem a mesma chance de dar um passo para a esquerda ou para a direita. Pegamos a probabilidade de um evento (nesse caso dar um passo a esquerda) acontecer e chamamos de <em>p</em>. A probabilidade desse evento acontecer <em>k</em> vezes em <em>n</em> tentativas &#233; dada por:</p><div class="latex-rendered" data-attrs="{&quot;persistentExpression&quot;:&quot;P(k,n,p) = \\frac{n!}{k!(n-k)!} \\cdot p^k \\cdot (1-p)^{n-k}&quot;,&quot;id&quot;:&quot;AANQLYCKJE&quot;}" data-component-name="LatexBlockToDOM"></div><p>Para n = 1 e k = 1, P(1,1,p) = p, como definimos. Isso significa: <strong>A chance do pr&#243;ximo passo lateral ser para a esquerda &#233; p</strong></p><p>Aplicando para o Bitcoin, o evento pode ser um atacante descobrir o hash de um bloco, estendendo uma cadeia de blocos modificada. Isso funciona porque a descoberta do hash que torna um bloco v&#225;lido &#233; um evento probabil&#237;stico onde a probabilidade &#233; proporcional ao seu poder computacional. <em>q</em> seria a porcentagem do poder da rede que o atacante possui. Podemos igualar k e n, resultando na seguinte f&#243;rmula:</p><div class="latex-rendered" data-attrs="{&quot;persistentExpression&quot;:&quot;P(k,q) = 1 \\cdot q^k \\cdot (1-q)^{0} = q^k&quot;,&quot;id&quot;:&quot;EBGYYICOSI&quot;}" data-component-name="LatexBlockToDOM"></div><p>L&#234;-se: A probabilidade P de um atacante minerar k blocos seguidos &#233; a porcentagem q do Hashrate elevado a k.</p><p>Como q &#233; um n&#250;mero entre 0 e 1. P(k,q) fica bem pequeno conforme o n&#250;mero de blocos aumenta. Mas isso n&#227;o importa pois um atacante n&#227;o precisa minerar k blocos seguidos. Ele s&#243; precisa que a cadeia adulterada eventualmente fique maior que a cadeia formada pelos mineradores honestos, n&#227;o importa quanto tempo demore.</p><p>Vamos montar isso passo a passo. Imagine a dist&#226;ncia entre a cadeia de blocos honesta e a cadeia do atacante como um n&#250;mero. Se elas tem o mesmo tamanho, essa dist&#226;ncia &#233; zero. Se n&#243;s honestos estenderem a cadeia a dist&#226;ncia aumenta e vira 1, caso contr&#225;rio -1. </p><p>O atacante precisa esperar uma quantidade z de blocos honestos serem minerados antes de come&#231;ar.</p><p>q_z = chance de uma dist&#226;ncia z&gt;0 virar 0, ou seja, atacante alcan&#231;ar n&#243;s honestos</p><p>Independente do hist&#243;rico passado, as chances do pr&#243;ximo evento &#233; est&#225;tico. p &#233; a chance da cadeia honesta ser estendida.</p><div class="latex-rendered" data-attrs="{&quot;persistentExpression&quot;:&quot;q_z = p \\cdot q_{z+1} + q \\cdot q_{z-1}&quot;,&quot;id&quot;:&quot;QGYAFMCQOG&quot;}" data-component-name="LatexBlockToDOM"></div><p>onde q(z+1) &#233; uma situa&#231;&#227;o mais dif&#237;cil pro atacante - ele ter&#225; uma desvantagem de z+1 blocos - e q(z-1) &#233; uma situa&#231;&#227;o mais f&#225;cil para o atacante - ele ter&#225; uma desvantagem de z-1 blocos.</p><p>Perceba que q_z &#233; um lugar inicial com uma bifurca&#231;&#227;o que leva para dois caminhos distintos. <em>p</em> e <em>q</em> s&#227;o a probabilidade de seguir por cada caminho.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qOl7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08eb4c39-0543-4b7f-a6a2-bc286e1bda60_576x455.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qOl7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08eb4c39-0543-4b7f-a6a2-bc286e1bda60_576x455.png 424w, https://substackcdn.com/image/fetch/$s_!qOl7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08eb4c39-0543-4b7f-a6a2-bc286e1bda60_576x455.png 848w, https://substackcdn.com/image/fetch/$s_!qOl7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08eb4c39-0543-4b7f-a6a2-bc286e1bda60_576x455.png 1272w, https://substackcdn.com/image/fetch/$s_!qOl7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08eb4c39-0543-4b7f-a6a2-bc286e1bda60_576x455.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qOl7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08eb4c39-0543-4b7f-a6a2-bc286e1bda60_576x455.png" width="576" height="455" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/08eb4c39-0543-4b7f-a6a2-bc286e1bda60_576x455.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:455,&quot;width&quot;:576,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:30911,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://danielloureno1.substack.com/i/185122608?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08eb4c39-0543-4b7f-a6a2-bc286e1bda60_576x455.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!qOl7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08eb4c39-0543-4b7f-a6a2-bc286e1bda60_576x455.png 424w, https://substackcdn.com/image/fetch/$s_!qOl7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08eb4c39-0543-4b7f-a6a2-bc286e1bda60_576x455.png 848w, https://substackcdn.com/image/fetch/$s_!qOl7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08eb4c39-0543-4b7f-a6a2-bc286e1bda60_576x455.png 1272w, https://substackcdn.com/image/fetch/$s_!qOl7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08eb4c39-0543-4b7f-a6a2-bc286e1bda60_576x455.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">A linha azul tem probabilidade p de ser seguida. A outra tem probabilidade q</figcaption></figure></div><p>Podemos transformar o problema em um problema quadr&#225;fico da seguinte maneira:</p><div class="latex-rendered" data-attrs="{&quot;persistentExpression&quot;:&quot;\\begin{align*}\nq_z &amp;= r^z\\\\\n\nq_{z+1}&amp;=r^{z+1}\\\\\n\nq_{z-1} &amp;= r^{z-1}\\\\\n\nr^z &amp;= p \\cdot r^{z+1} + q \\cdot r^{z-1}\\\\\n\nr &amp;= p \\cdot r^{2} + q\\\\\n\n0&amp;=p \\cdot r^2 - r + q\\\\\n\\end{align*}&quot;,&quot;id&quot;:&quot;DQDDOFZCAL&quot;}" data-component-name="LatexBlockToDOM"></div><p>Resolvendo a equa&#231;&#227;o temos que r = 1 ou </p><div class="latex-rendered" data-attrs="{&quot;persistentExpression&quot;:&quot;r= \\left( \\frac{q}{p} \\right)&quot;,&quot;id&quot;:&quot;JKSPPGITGY&quot;}" data-component-name="LatexBlockToDOM"></div><p>Ent&#227;o </p><div class="latex-rendered" data-attrs="{&quot;persistentExpression&quot;:&quot;\\begin{align}\nq_z &amp;= 1^z\\\\\nq_z &amp;= \\left( \\frac{q}{p}\\right)^z\\\\\n\\end{align}&quot;,&quot;id&quot;:&quot;HJFFVKSEQA&quot;}" data-component-name="LatexBlockToDOM"></div><p>exatamente como Satoshi concluiu.</p><p>Falando de forma gr&#225;fica, q_z &#233; a chance do gr&#225;fico descer at&#233; o eixo x. A chance dele cair at&#233; zero algum dia, no futuro.</p><p>No tempo entre o pagamento e o recebimento do produto a rede ir&#225; criar <em>z</em> blocos enquanto o atacante vai criar sua pr&#243;pria vers&#227;o em paralelo. Para calcular quantos blocos o atacante minerou nesse tempo precisamos de outra distribui&#231;&#227;o.</p><p>A distribui&#231;&#227;o de Poisson serve para calcular a probabilidade de um evento raro acontecer k vezes em um intervalo fixo. &#201; necess&#225;rio que os eventos sejam independentes. &#201; necess&#225;rio tamb&#233;m conhecer a taxa m&#233;dia de ocorr&#234;ncia do evento. Chamamos essa taxa de &#955; que &#233; dada por:</p><div class="latex-rendered" data-attrs="{&quot;persistentExpression&quot;:&quot;\\lambda = z \\cdot \\frac{q}{p}&quot;,&quot;id&quot;:&quot;SPZQWMSUXX&quot;}" data-component-name="LatexBlockToDOM"></div><p>A probabilidade &#233; dada por:</p><div class="latex-rendered" data-attrs="{&quot;persistentExpression&quot;:&quot;P(K=k)= \\frac{\\lambda^k \\cdot e^{-\\lambda}}{k!}&quot;,&quot;id&quot;:&quot;FEYABPUSOI&quot;}" data-component-name="LatexBlockToDOM"></div><p>Agora sabemos a chance do atacante ter minerado $k$ blocos, que vai de 0 at&#233; infinito, com probabilidade decrescente. E a dist&#226;ncia agora fica como z-k. Caso <em>k</em> seja maior que <em>z</em> o atacante j&#225; ganhou a corrida e o ataque foi um sucesso. Essa probabilidade &#233; dada por:</p><div class="latex-rendered" data-attrs="{&quot;persistentExpression&quot;:&quot;P(K > z) = 1 - P(K < z) = 1 - \\sum_{i=0}^{z}{\\frac{\\lambda^i \\cdot e^{-\\lambda}}{i!}}&quot;,&quot;id&quot;:&quot;XKPVIBRBYO&quot;}" data-component-name="LatexBlockToDOM"></div><p>Basta somar a probabilidade de k ser maior que z com a probabilidade seguinte. A pr&#243;xima probabilidade que nos interessa &#233; a de k ser menor que z e, mesmo assim, o atacante ultrapassar z. Isso pode ser encontrado simplesmente multiplicando q_z por P(K &lt; z). Somando tudo fica:</p><div class="latex-rendered" data-attrs="{&quot;persistentExpression&quot;:&quot;\\begin{align}\n\nP_{total} \n\n&amp;= 1 - P(K<z) + q_z \\cdot P(K<z)\\\\\n\n&amp;= 1 + P(K<z)(q_z - 1)\\\\\n\n&amp;= 1 - P(K<z)(1 - q_z)\\\\\n\n\\end{align}&quot;,&quot;id&quot;:&quot;YJECUBSYSX&quot;}" data-component-name="LatexBlockToDOM"></div><p>Essa &#233; exatamente a &#250;ltima f&#243;rmula do white paper, mas com substituindo P(K&lt;z) e q_z por seus respectivos valores. Note que q_z aqui n&#227;o &#233; a chance de ultrapassar uma dist&#226;ncia z mas sim uma dist&#226;ncia z-k. </p><p>O que vimos nesse texto foi que a corrida entre n&#243;s honestos e atacante se comporta como uma vari&#225;vel aleat&#243;ria binomial, mas isso &#233; insuficiente para calcular a probabilidade do ataque ser bem sucedido. &#201; preciso apelar para a distribui&#231;&#227;o de poisson. Ptotal encontrado &#233; a probabilidade do ataque ser bem sucedido. Seu complemento &#233; a chance de ser mal sucedido, e &#233; simplesmente:</p><div class="latex-rendered" data-attrs="{&quot;persistentExpression&quot;:&quot;P_{complemento} = P(K<z)(1 - q_z)&quot;,&quot;id&quot;:&quot;NUJHPZRLWA&quot;}" data-component-name="LatexBlockToDOM"></div><p>Leia-se: A probabilidade do ataque falhar &#233; a chance do atacante minerar menos blocos durante a espera vezes a chance dele n&#227;o alcan&#231;ar uma dist&#226;ncia de z-k blocos. Talvez o ocultamento das f&#243;rmulas concretas e espec&#237;ficas ajude a entender o racioc&#237;nio macro.</p><p>Podemos, assim como no white paper, fazer as contas com computador. Podemos fixar um Ptotal pequeno o suficiente e calcular qual z satisfaz essa probabilidade em fun&#231;&#227;o de q.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WUxP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde055c2d-dfe5-4776-a7f2-c6cbf7e69e3b_1000x600.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WUxP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde055c2d-dfe5-4776-a7f2-c6cbf7e69e3b_1000x600.png 424w, https://substackcdn.com/image/fetch/$s_!WUxP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde055c2d-dfe5-4776-a7f2-c6cbf7e69e3b_1000x600.png 848w, https://substackcdn.com/image/fetch/$s_!WUxP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde055c2d-dfe5-4776-a7f2-c6cbf7e69e3b_1000x600.png 1272w, https://substackcdn.com/image/fetch/$s_!WUxP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde055c2d-dfe5-4776-a7f2-c6cbf7e69e3b_1000x600.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WUxP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde055c2d-dfe5-4776-a7f2-c6cbf7e69e3b_1000x600.png" width="1000" height="600" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/de055c2d-dfe5-4776-a7f2-c6cbf7e69e3b_1000x600.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:600,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:31347,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://danielloureno1.substack.com/i/185122608?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde055c2d-dfe5-4776-a7f2-c6cbf7e69e3b_1000x600.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!WUxP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde055c2d-dfe5-4776-a7f2-c6cbf7e69e3b_1000x600.png 424w, https://substackcdn.com/image/fetch/$s_!WUxP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde055c2d-dfe5-4776-a7f2-c6cbf7e69e3b_1000x600.png 848w, https://substackcdn.com/image/fetch/$s_!WUxP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde055c2d-dfe5-4776-a7f2-c6cbf7e69e3b_1000x600.png 1272w, https://substackcdn.com/image/fetch/$s_!WUxP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde055c2d-dfe5-4776-a7f2-c6cbf7e69e3b_1000x600.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Probabilidade de ataque bem sucedido em fun&#231;&#227;o de hashrate do atacante</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wk9o!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F056c9a28-0cde-4034-a25d-c88b5e825d73_1200x700.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wk9o!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F056c9a28-0cde-4034-a25d-c88b5e825d73_1200x700.png 424w, https://substackcdn.com/image/fetch/$s_!wk9o!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F056c9a28-0cde-4034-a25d-c88b5e825d73_1200x700.png 848w, https://substackcdn.com/image/fetch/$s_!wk9o!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F056c9a28-0cde-4034-a25d-c88b5e825d73_1200x700.png 1272w, https://substackcdn.com/image/fetch/$s_!wk9o!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F056c9a28-0cde-4034-a25d-c88b5e825d73_1200x700.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wk9o!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F056c9a28-0cde-4034-a25d-c88b5e825d73_1200x700.png" width="1200" height="700" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/056c9a28-0cde-4034-a25d-c88b5e825d73_1200x700.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:700,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:40280,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://danielloureno1.substack.com/i/185122608?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F056c9a28-0cde-4034-a25d-c88b5e825d73_1200x700.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!wk9o!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F056c9a28-0cde-4034-a25d-c88b5e825d73_1200x700.png 424w, https://substackcdn.com/image/fetch/$s_!wk9o!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F056c9a28-0cde-4034-a25d-c88b5e825d73_1200x700.png 848w, https://substackcdn.com/image/fetch/$s_!wk9o!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F056c9a28-0cde-4034-a25d-c88b5e825d73_1200x700.png 1272w, https://substackcdn.com/image/fetch/$s_!wk9o!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F056c9a28-0cde-4034-a25d-c88b5e825d73_1200x700.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"> N&#250;mero de blocos necess&#225;rios para tornar a transa&#231;&#227;o irrevers&#237;vel para um atacante com por&#231;&#227;o q do hashrate total</figcaption></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://danielloureno1.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Assine agora&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://danielloureno1.substack.com/subscribe?"><span>Assine agora</span></a></p><p>Nem eu esperava que a disciplina se encaixasse t&#227;o bem com esse aspecto. Tanto os resultados te&#243;ricos quanto os c&#225;lculos computadorizados indicam que o risco de ataque &#233; bem baixo enquanto q &#233; menor que 0.5. Apesar de z explodir para valores muito pr&#243;ximos a q=0.5 pela esquerda, isso n&#227;o ficou bem representado pela natureza discreta dos c&#225;lculos.</p><p>Comecei pensando em escrever sobre bitcoin, mas o que predominou foi a matem&#225;tica. Aprendi poucas coisas, confirmei muito do que j&#225; sabia e o mais importante: pude aplicar um conhecimento e ferramentas da engenharia em um problema real.</p>]]></content:encoded></item><item><title><![CDATA[Bitcoin não é dinheiro]]></title><description><![CDATA[Ele &#233; um protocolo]]></description><link>https://danielloureno1.substack.com/p/bitcoin-nao-e-dinheiro</link><guid isPermaLink="false">https://danielloureno1.substack.com/p/bitcoin-nao-e-dinheiro</guid><dc:creator><![CDATA[Daniel Lourenço]]></dc:creator><pubDate>Mon, 12 Jan 2026 21:27:58 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/c35c0167-7c44-4b17-9373-c34bcafcc047_1024x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>O Bitcoin n&#227;o &#233; uma dinheiro eletr&#244;nico ponto a ponto. &#201; um protocolo que busca consenso pois quer fugir do autoritarismo de qualquer institui&#231;&#227;o. E isso tem um pre&#231;o.</p><p>A maior dificulade do Bitcoin n&#227;o era dar valor &#224; um token digital. N&#227;o era criar carteiras, multisig ou qualquer besteira parecida. A maior dificuldade do Bitcoin foi resolver o gasto duplo, parece algo simples, mas exige algo que vem por padr&#227;o em qualquer sistema centralizado: Consenso.</p><p>Essa &#233; a ess&#234;ncia do Bitcoin: <strong>Consenso</strong>. </p><p>Como Satoshi resolveu o gasto duplo? <strong>Consenso</strong>. </p><p>Como o Bitcoin garante que os blocos n&#227;o s&#227;o adulterados pelos mineradores? <strong>Consenso</strong>. </p><p>Como o Bitcoin resistir&#225; &#224; computa&#231;&#227;o quantica? <strong>Consenso</strong>.</p><p>Como a sua ado&#231;&#227;o s&#243; aumenta h&#225; 16 anos? <strong>Consenso</strong>.</p><p>Como ele pode criar adi&#231;&#245;es e melhorias num sistema que parece t&#227;o intrincado e complexo? <strong>Consenso</strong>.</p><p>Consenso &#233; uma caracteristica obrigat&#243;ria para um sistema descentralizado. O oposto de uma pessoa mandando &#233; todos mandando. Todos s&#227;o soberanos, logo ningu&#233;m &#233; soberano.</p><p>Eu posso alterar a blockchain e criar uma vers&#227;o onde todos os bitcoins foram minerados para endere&#231;os meus, mas ningu&#233;m aceitaria essa nova vers&#227;o a menos que eu fizesse o trabalho de minerar cada bloco, mesmo que de forma anacr&#244;nica.</p><p>O <em>SHA-256</em> &#233; respons&#225;vel pelos hashes dos blocos. Existem vers&#245;es do Bitcoin que usam outras, mais modernas, mais seguras, mais resistentes prontas para serem adotadas, mas elas n&#227;o ser&#227;o at&#233; que seja necess&#225;rio.</p><p>O dinheiro estatal &#233; um acordo onde concordamos em valorizar papel. O Bitcoin &#233; um acordo onde <strong>valorizamos as regras</strong>, um protocolo de comunica&#231;&#227;o.</p><p>O Bitcoin tem regras que todos concordam, mesmo que tacitamente. Entre elas o n&#250;mero de bitcoins que existem e v&#227;o existir. E como isso &#233; consenso de toda a rede, &#233; a realidade, &#233; dif&#237;cil de mudar, &#233; previs&#237;vel. </p><p>Enquanto o governo valoriza mais &#237;ndices diversos &#8212; como d&#237;vida externa e sonega&#231;&#227;o de imposto, por exemplo &#8212; do que o valor da moeda, os indiv&#237;duos se preocupam principalmente com seu poder de compra. E qualquer coisa que o preserve ser&#225; igualmente valorizado.</p><p><strong>Regra n&#176;0: Criar um bloco deve custar energia ao minerador.</strong> Isso &#233; o que chamamos de Prova de Trabalho(PoW). &#201; feito descobrindo uma assinatura(hash) que torne o bloco v&#225;lido. Se o bloco for inv&#225;lido &#8212; n&#227;o seguir todas as regras em consenso na rede &#8212; ser&#225; ignorado e o minerador ter&#225; desperdi&#231;ado tempo, que significa dinheiro, e energia el&#233;trica.</p><p>Em uma institui&#231;&#227;o centralizada como bancos, voc&#234; n&#227;o precisa saber como a tecnologia funciona. S&#243; precisa saber das politicas da autoridade, como ela age.</p><p>O Bitcoin n&#227;o tem uma autoridade que age, mas um sistema de regras que foram acordadas e que voc&#234; tacitamente concorda quando usa a rede como ela est&#225; arranjada hoje. E por isso &#233; necess&#225;rio se ater ao funcionamento da tecnologia, mesmo que de forma superficial. Sen&#227;o a tecnologia, pelo menos as regras e em que situa&#231;&#245;es elas podem mudar. Sim, elas podem mudar.</p><p>E &#233; disso que quero falar: das regras do Bitcoin e do consenso.</p><h3>Transa&#231;&#245;es</h3><p><strong>Regra n&#176;1: As transa&#231;&#245;es devem ser v&#225;lidas.</strong></p><p>&#211;bvio. Mas o que significa uma transa&#231;&#227;o ser v&#225;lida? Significa que um bitcoin existente ser&#225; gasto com a assinatura do dono.</p><p>Verificar exist&#234;ncia de um bitcoin e a assinatura do dono s&#227;o coisas triviais que qualquer participante da rede faz quando recebe um bloco. Algo n&#227;o bateu? Rejeita. Tudo certo? Adiciona &#224; sua c&#243;pia local da blockchain.</p><p>Vamos ver como exatamente essa verifica&#231;&#227;o &#233; feita. Um detalhe meramente t&#233;cnico: n&#227;o existem bitcoins a serem gastos, mas outputs n&#227;o gastos(UTXO) que s&#227;o consumidos virando o input de uma transa&#231;&#227;o. </p><p>Uma UTXO que j&#225; virou input de uma transa&#231;&#227;o registrada na blockchain n&#227;o pode ser usado, resolvendo o gasto duplo. E &#233; muito f&#225;cil procurar a transa&#231;&#227;o onde esse output foi criado. Assim, &#233; f&#225;cil rastrear qualquer UTXO atual at&#233; sua cria&#231;&#227;o.</p><p>Se todos os blocos que cont&#234;m essas transa&#231;&#245;es fazem parte da blockchain, ent&#227;o aquele bitcoin &#8220;existe&#8221;.</p><blockquote><p>Assinar uma transa&#231;&#227;o &#233; provar que voc&#234; sabe um segredo sem jamais coloc&#225;-lo em risco.</p></blockquote><p>O segredo &#233; a Chave Privada, isso nunca deve estar na internet. Por meio de uma <em>Schnorr Signature</em> voc&#234; pode verificar se uma assinatura veio do possuidor da Chave Privada sem nunca conhec&#234;-la.</p><p>A &#8220;m&#225;gica&#8221; funciona por causa da <em>Criptografia de Curva El&#237;ptica(ECC)</em>. Um ponto da curva pode ser obtido fazendo uma opera&#231;&#227;o simples com o ponto inicial. Repita esse processo um n&#250;mero bem espec&#237;fico de vezes. Esse n&#250;mero &#233; sua Chave Privada e o ponto na curva obtido &#233; a Chave P&#250;blica. &#201; quase imposs&#237;vel saber que n&#250;mero levou at&#233; esse ponto.</p><p><em>Schnorr Signatures</em> n&#227;o foram usadas desde o come&#231;o. Antes o Protocolo Bitcoin usava <em>ECDSA</em>. Esse &#233; um exemplo de regras mudando. A regra que dizia como fazer assinaturas. Nesse caso foi uma altera&#231;&#227;o para otimiza&#231;&#227;o da matem&#225;tica, uma mera tecnicalidade das mais pequenas. O Bitcoin j&#225; passou por dezenas de altera&#231;&#245;es parecidas e existem centenas de propostas de melhoria (BIP&#8217;s) que n&#227;o foram adotadas.</p><p>Existem regras que s&#227;o alteradas com o consenso total da rede. Outro exemplo &#233; o <em>SegWit</em>, que basicamente era uma t&#233;cnica nova para segregar as assinaturas no final do bloco, ao inv&#233;s de intercaladas com as transa&#231;&#245;es em si. Estou falando de forma bem superficial, claro. Quase toda mudan&#231;a tem seus pr&#243;s e contras.</p><p>Por&#233;m, existem casos onde as mudan&#231;as nas regras n&#227;o mudam o consenso da rede. &#201; o que chamamos de <em>fork</em>, quando a rede se divide. <em>Bitcoin Cash</em> &#233; um exemplo. Os blocos do Bitcoin tem tamanho limitado em bytes, e como s&#243; um bloco &#233; gerado a cada dez minutos o n&#250;mero de transa&#231;&#245;es em determinado tempo &#233; limitado. Houve bastante discuss&#227;o sobre aumentar o tamanho dos blocos, j&#225; que o tempo entre blocos n&#227;o podia ser diminu&#237;do por motivos que falarei adiante. Resultado: uma parte da rede alterou a regra para blocos maiores, outra parte n&#227;o. Na pr&#225;tica havia dois protocolos quase id&#234;nticos sendo executados e usados por pessoas diferentes. Tratamos <em>Bitcoin Cash</em> como uma moeda diferente porque ainda existe uma outra vers&#227;o mais usada, o Bitcoin padr&#227;o, mas caso uma altera&#231;&#227;o no consenso de toda a rede acontecesse n&#227;o seria um <em>fork</em>, mas uma transforma&#231;&#227;o do pr&#243;prio padr&#227;o.</p><h3>Blockchain</h3><p><strong>Regra n&#176;2: Os blocos devem demorar 10 minutos para serem minerados.</strong></p><p>Se a quantidade ou a efici&#234;ncia dos mineradores aumentar, a regra diz que as pessoas devem exigir um hash mais dif&#237;cil de se obter nos pr&#243;ximos blocos. Essa regra pode parecer arbitr&#225;ria, mas &#233; consequ&#234;ncia de um sistema descentralizado e da pr&#243;xima regra.</p><p><strong>Regra n&#176;3: A blockchain oficial &#233; a mais longa. </strong>Ou seja, aquela com mais provas de trabalho(PoW).</p><p>Em tese, qualquer pessoa pode adicionar blocos v&#225;lidos &#224; blockchain, por isso podem acontecer situa&#231;&#245;es estranhas onde pessoas t&#234;m blockchains diferentes com o mesmo n&#250;mero de blocos em locais diferentes. Quando um n&#243; da rede recebe dois blocos diferentes estendendo a sua corrente atual isso cria uma bifurca&#231;&#227;o que n&#227;o pode ser resolvida. Podem ser que as duas correntes formadas sejam leg&#237;timas ou uma delas seja uma tentativa de substituir a cadeia legitima.</p><p>Se o n&#243; receber um bloco que estenda uma das correntes, essa tem mais trabalho acumulado e por isso &#233; mais confi&#225;vel. Pode acontecer de duas correntes serem estendidas paralelamente. Parte da rede vai receber uma dessas correntes, parte receber&#225; a outra, e a maioria vai receber ambas. Todos os n&#243;s mineradores v&#227;o tentar estender a maior cadeia de blocos, e no caso de empate v&#227;o escolher a que receberam primeiro. Eventualmente uma cadeia vai se estender mais e colapsar a bifurca&#231;&#227;o.</p><p>Isso &#233; um evento inevit&#225;vel em uma rede descentralizada. &#201; um caso onde o consenso n&#227;o &#233; sobre as regras, mas sobre qual a vers&#227;o verdadeira do registro p&#250;blico global de transa&#231;&#245;es(Blockchain).</p><p>Pra que isso seja resolvido da forma mais suave poss&#237;vel, devemos dar tempo pra que a extens&#227;o da blockchain alcance a maioria dos n&#243;s. Por isso o tempo entre n&#243;s deve ser algo entre 10 minutos. Caso o tempo entre blocos fosse menor, bifurca&#231;&#245;es longas de dezenas de blocos se formaria, gerando incerteza sobre quais transa&#231;&#245;es est&#227;o realmente escritas em pedra. &#201; melhor esperar dois blocos de 10 minutos para que o consenso sobre qual cadeia escolher se forme do que vinte blocos de 5 minutos.</p><p>Mas como venho dizendo nesse texto inteiro, nenhuma regra est&#225; escrita em pedra. Pode haver um momento no futuro onde tudo est&#225; ainda mais conectado do que nos dias de hoje. Talvez internet por sat&#233;lite como a StarLink ou alguma outra coisa inesperada. Caso isso aconte&#231;a, a rede poder&#225; atingir o consenso de forma mais r&#225;pida justificando reduzir o tempo entre blocos.</p><p>Apesar de tudo, existem regras que provavelmente nunca ser&#227;o mudadas, como o n&#250;mero m&#225;ximo de 21 milh&#245;es de bitcoins. Enquanto outras muito provavelmente v&#227;o mudar, como a fun&#231;&#227;o hash <em>SHA-256</em>.</p><p>O Bitcoin nasceu com uma filosofia bem clara, definida pelo seu criador. Mas ele n&#227;o &#233; um sistema fechado, um programa. &#201; um protocolo que est&#225; se desenvolvendo e evoluindo. Um protocolo sem forma final e definitiva.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://danielloureno1.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Assine agora&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://danielloureno1.substack.com/subscribe?"><span>Assine agora</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Reinventando a roda na Gestão do Tempo]]></title><description><![CDATA[Meu sistema para... deixa pra l&#225;. N&#227;o importa tanto]]></description><link>https://danielloureno1.substack.com/p/reinventando-a-roda-na-gestao-do</link><guid isPermaLink="false">https://danielloureno1.substack.com/p/reinventando-a-roda-na-gestao-do</guid><dc:creator><![CDATA[Daniel Lourenço]]></dc:creator><pubDate>Mon, 05 Jan 2026 21:32:02 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/0bd9d13b-f778-4cd6-a3f1-1bd94af937ad_1024x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Durante muito tempo patinei na quest&#227;o de organiza&#231;&#227;o da minha rotina, e percebi um certo padr&#227;o na forma como gastava meu tempo.</p><p>Existem atividades que voc&#234; perde a no&#231;&#227;o do tempo e faz aquilo por horas seguidas sem olhar para o rel&#243;gio ou sequer beber &#225;gua (Beba &#225;gua). Ao mesmo tempo, existem outras atividades que voc&#234; adia para depois, e continua adiando at&#233; o fim do dia, e acaba nem fazendo.</p><p>Nas raras ocasi&#245;es onde voc&#234; executa a tarefa, faz com um olho na tarefa e outro no rel&#243;gio. Diversas pausas para &#8220;tomar um ar&#8221;. Pausa pra banheiro. Pausa pra se hidratar. &#201; uma tarefa penosa que, geralmente, &#233; a mais importante.</p><p>Longe de mim dizer que descobri a cura para a procrastina&#231;&#227;o, mas quero compartilhar algo que venho experimentando comigo mesmo, n&#227;o porque quero te convencer a adotar, mas para pensar um pouco sobre o assunto em voz alta.</p><h3>A teoria</h3><p>A <em>grande ideia</em> que tive foi criar um banco de horas para todas as minhas atividades e taxas de convers&#227;o. &#201; isso.</p><p>Ao inv&#233;s de criar obriga&#231;&#245;es e recompensas como sempre ouvi falar, e que nunca funcionou pra mim, eu queria criar um incentivo para fazer mais que o m&#237;nimo.</p><blockquote><p>Vou estudar uma hora a mais hoje que estou empolgado para poder jogar mais amanh&#227;.</p></blockquote><h3>A pr&#225;tica</h3><p>A pr&#225;tica foi totalmente diferente do que pensei quando arquitetei um programa que gerenciasse esse tal <strong>Banco de Horas</strong>.</p><p>Achei que teria saldo positivo em atividades obrigat&#243;rias para &#8220;gastar&#8221; em lazer. Mas o que realmente ocorreu me chocou um pouco.</p><p>Nas primeiras duas semanas fiquei com saldo negativo na minhas atividades de lazer, ou seja, as gastava sem sequer ter as &#8220;comprado&#8221; com horas de trabalho.</p><p>Entrei numa esp&#233;cie de corrida dos ratos onde n&#227;o conseguia quitar as d&#237;vidas que assumi comigo mesmo. Incr&#237;vel...</p><h3>Dificuldade de manter o foco</h3><p>Por mais que tenha separado entre trabalho e lazer nas outras se&#231;&#245;es, a separa&#231;&#227;o funciona diferente na minha cabe&#231;a. </p><p>A separa&#231;&#227;o &#233; entre atividades que me obrigo a fazer atrav&#233;s de horas de foco e atividades que, por mais que eu enrole para fazer, consigo focar por longas horas. Nessas &#250;ltimas est&#227;o coisas como: Escrever, programar e estudar coisas da faculdade.</p><p>Recentemente entrei numa fase onde paguei a primeira d&#237;vida. Finalmente comecei a fazer o que preciso fazer na medida certa. No fim, o objetivo de tudo isso &#233; me ajudar n&#227;o s&#243; a cumprir minhas obriga&#231;&#245;es, mas cumpri-las na propor&#231;&#227;o correta. Uma esp&#233;cie de gest&#227;o do tempo gamificada.</p><h3>Em detalhes</h3><p>Programei em uma tarde uma aplica&#231;&#227;o web local pra fazer esse gerenciamento pra mim. Eu podia criar atividades que precisava fazer e regras do tipo &#8220;A cada 3 horas estudando eu posso escrever por 1 hora&#8221;. Como disse antes, isso n&#227;o &#233; pra ser uma recompensa, mas para manter um controle na propor&#231;&#227;o.</p><p>Se eu escrever mais que uma hora quer dizer que sa&#237; da minha programa&#231;&#227;o e meu &#8220;saldo&#8221; de escrita fica negativo at&#233; que eu &#8220;pague&#8221; estudando.</p><p>No come&#231;o gastei bastante tempo corrigindo erros do programa e negativei totalmente o saldo dessa atividade, mas isso n&#227;o vem ao caso.</p><h3>A solu&#231;&#227;o</h3><p>Queria chegar aqui com uma hist&#243;ria bonita sobre como consertei meus problemas mudando uma coisa simples na minha rotina, mas a verdade &#233; que isso est&#225; longe de ser perfeito.</p><p>Apesar de tudo, acompanhar com o que eu estava gastando o meu tempo me deu o gatilho que faltava pra fazer o que precisava ser feito.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!As9f!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfba3bfe-f669-4f93-934c-fecb34b9c5da_822x356.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!As9f!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfba3bfe-f669-4f93-934c-fecb34b9c5da_822x356.png 424w, https://substackcdn.com/image/fetch/$s_!As9f!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfba3bfe-f669-4f93-934c-fecb34b9c5da_822x356.png 848w, https://substackcdn.com/image/fetch/$s_!As9f!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfba3bfe-f669-4f93-934c-fecb34b9c5da_822x356.png 1272w, https://substackcdn.com/image/fetch/$s_!As9f!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfba3bfe-f669-4f93-934c-fecb34b9c5da_822x356.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!As9f!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfba3bfe-f669-4f93-934c-fecb34b9c5da_822x356.png" width="822" height="356" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bfba3bfe-f669-4f93-934c-fecb34b9c5da_822x356.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:356,&quot;width&quot;:822,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:62151,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://danielloureno1.substack.com/i/183601297?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfba3bfe-f669-4f93-934c-fecb34b9c5da_822x356.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!As9f!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfba3bfe-f669-4f93-934c-fecb34b9c5da_822x356.png 424w, https://substackcdn.com/image/fetch/$s_!As9f!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfba3bfe-f669-4f93-934c-fecb34b9c5da_822x356.png 848w, https://substackcdn.com/image/fetch/$s_!As9f!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfba3bfe-f669-4f93-934c-fecb34b9c5da_822x356.png 1272w, https://substackcdn.com/image/fetch/$s_!As9f!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfba3bfe-f669-4f93-934c-fecb34b9c5da_822x356.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">O gr&#225;fico do uso do meu tempo no &#250;ltimo m&#234;s</figcaption></figure></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://danielloureno1.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Inscreva-se&quot;,&quot;language&quot;:&quot;pt-br&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Sei que foi curto, mas assine para receber novos posts e apoiar meu trabalho.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Digite seu e-mail&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Inscreva-se"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Uma lição sobre processadores e engenharia]]></title><description><![CDATA[N&#227;o existe almo&#231;o gr&#225;tis, sempre existe um efeito colateral ou letrinha mi&#250;da.]]></description><link>https://danielloureno1.substack.com/p/uma-licao-sobre-processadores-e-engenharia</link><guid isPermaLink="false">https://danielloureno1.substack.com/p/uma-licao-sobre-processadores-e-engenharia</guid><dc:creator><![CDATA[Daniel Lourenço]]></dc:creator><pubDate>Mon, 29 Dec 2025 12:12:50 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!e0DZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7497881-e972-46fc-8ead-7d4f5692aa64_700x1050.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Na faculdade tenho uma mat&#233;ria chamada Estruturas de Dados onde aprendemos diversas formas de organizar os dados para que o computador possa us&#225;-los de forma eficiente.</p><p>O mais b&#225;sico de tudo &#233; uma lista homog&#234;nea de dados que chamamos vetores. A propriedade mais importante dos vetores &#233; que eles s&#227;o espa&#231;os seguidos de mem&#243;ria que guardam valores com o mesmo tamanho.</p><p>A melhor analogia que consigo pensar &#233; a de uma sala de aula com mapeamento dos assentos. Na minha escola nossas posi&#231;&#245;es na sala eram fixas. Se eu queria achar meu amigo eu n&#227;o precisava vasculhar a sala inteira com o olhar, eu poderia olhar diretamente para a cadeira dele.</p><p>Vetores funcionam da mesma forma. Se eu sei a posi&#231;&#227;o, eu acho a informa&#231;&#227;o quase instantaneamente.</p><p>Mas novas informa&#231;&#245;es s&#227;o adicionadas o tempo todo em posi&#231;&#245;es vazias. Informa&#231;&#245;es velhas s&#227;o apagadas e d&#227;o lugar a novas informa&#231;&#245;es. Por isso nem sempre voc&#234; sabe a posi&#231;&#227;o de uma informa&#231;&#227;o dentro de um vetor. Voc&#234; vai precisar olhar em cada posi&#231;&#227;o e verificar se a informa&#231;&#227;o naquela posi&#231;&#227;o &#233; a que voc&#234; deseja.</p><p>Isso &#233; bem ineficiente, visto que eu vou precisar repetir isso para todas as posi&#231;&#245;es do vetor, que pode ser bem grande.</p><h3>Vetor ordenado</h3><p>Ao inv&#233;s de olhar todas as posi&#231;&#245;es at&#233; achar, eu posso ordenar o vetor de forma crescente. Assim eu n&#227;o preciso olhar todas as posi&#231;&#245;es, s&#243; do come&#231;o at&#233; o primeiro elemento que for maior que o desejado. Se mesmo assim n&#227;o encontrar, tenho certeza que ele n&#227;o est&#225; na parte restante que n&#227;o procurei.</p><p>Por outro lado, se o que estiver procurando for maior que todos os elementos do vetor, ainda vai ter bastante trabalho que poderia ser evitado com outra t&#233;cnica.</p><h3>Busca bin&#225;ria</h3><p>Consiste em olhar o elemento no meio do vetor. Se o vetor est&#225; ordenado e o elemento central &#233; maior que a informa&#231;&#227;o procurada, posso descartar &#8212; em 100% dos casos &#8212; metade do vetor. Procurando na outra metade, utilizo a mesma t&#233;cnica e descarto metade da metade.</p><p>Isso significa que mesmo que o vetor cres&#231;a e fique duas vezes maior, o meu trabalho para procurar qualquer elemento vai aumentar uma m&#237;sera compara&#231;&#227;o.</p><p>J&#225; chegamos no estado da arte. N&#227;o existe nada melhor que n&#227;o envolta colocar restri&#231;&#245;es e condi&#231;&#245;es. A busca bin&#225;ria, de forma geral, funciona para qualquer tipo de vetor. A &#250;nica condi&#231;&#227;o &#233; que o vetor esteja ordenado.</p><h3>O problema</h3><p>Parece uma pequena condi&#231;&#227;o, uma letrinha mi&#250;da de um contrato, mas o problema &#233; maior do que parece. Num racioc&#237;nio direto, sem truques, ordenar os elementos de um vetor significa pegar um elemento qualquer e colocar todos os menores &#224; esquerda, maiores &#224; direita. E voc&#234; vai precisar repetir isso para cada elemento.</p><p>Se o vetor tinha N elementos, isso significa mudar quase N elementos de posi&#231;&#227;o, N vezes. S&#227;o necess&#225;rios cerca de N&#178; opera&#231;&#245;es para ordenar um vetor, aparentemente.</p><p>Por&#233;m, existem t&#233;cnicas para fazer isso ligeiramente melhor.</p><h3>Ordena&#231;&#227;o de vetores</h3><p>Existem in&#250;meros algoritmos para ordenar vetores, uns melhores, uns piores.</p><p>Em geral queremos saber como o algoritmo se comporta na maioria dos casos. Existem algoritmos que demoram sempre o mesmo tempo para executar em vetores do mesmo tamanho. Existem outros que executam mais r&#225;pido caso o vetor esteja mais bagun&#231;ado, ou menos.</p><p>O ideal &#233; aquele que seja mais r&#225;pido quando o vetor &#233; totalmente ca&#243;tico. N&#227;o preciso de um algoritmo r&#225;pido para ordenar um vetor j&#225; ordenado.</p><p>Por isso precisamos analisar o comportamento dos algoritmos no pior e no melhor caso. E analisar de qual deles o caso m&#233;dio est&#225; mais pr&#243;ximo.</p><h3>Bubble Sort</h3><p>Um dos algoritmos mais simples de ordena&#231;&#227;o de um vetor.</p><p>Algoritmo:</p><p>1. Verifique se o elemento atual &#233; maior que o pr&#243;ximo</p><p>2. Caso seja, troque os dois de posi&#231;&#227;o</p><p>3. Repita at&#233; o &#250;ltimo elemento</p><p>4. Fa&#231;a isso N vezes</p><p>E o vetor est&#225; ordenado. Eu vasculhei o vetor do inicio ao fim N vezes. O vetor tem N elementos. Logo NxN = N&#178;.</p><p>Em outras palavras, o que o algoritmo Bubble Sort faz &#233; levar o maior elemento para o lugar certo, o final. Depois ele pega o segundo maior e leva at&#233; a pen&#250;ltima posi&#231;&#227;o e assim por diante.</p><p>O algoritmo realiza duas a&#231;&#245;es repetidamente. Verificar qual &#233; maior entre dois elementos e troc&#225;-los de posi&#231;&#227;o. Ambos tem um custo de processamento, pequeno, mas diferente de zero.</p><p>A verifica&#231;&#227;o &#233; feita sempre. A troca n&#227;o. Se queremos o melhor caso, o vetor em que o algoritmo trabalha menos, &#233; aquele que n&#227;o precisa fazer nenhuma troca. Ou seja, o melhor caso &#233; o vetor ordenado de forma crescente.</p><p>E o pior caso? &#201; aquele com mais trocas. Se o algoritmo move os maiores elementos para o final, mais trocas significam que o maior est&#225; no come&#231;o. Ent&#227;o o pior caso &#233; um vetor ordenado de forma decrescente.</p><p>Por&#233;m, de toda forma ainda precisa fazer N&#178; checagens, ent&#227;o o n&#250;mero de opera&#231;&#245;es ainda est&#225; nessa ordem de grandeza.</p><p>- Se o vetor estiver bagun&#231;ado, vou precisar fazer N&#178; opera&#231;&#245;es</p><p>- Se o vetor estiver ordenado de forma decrescente, N&#178;</p><p>- Se for de forma crescente (j&#225; t&#225; da forma que queremos!), ainda assim N&#178;</p><p>Se voc&#234; se lembrar das par&#225;bolas da matem&#225;tica b&#225;sica, vai lembrar que ela cresce mais r&#225;pido que uma linha reta. Ainda podemos melhorar esse algoritmo.</p><h3>Bubble Sort Melhorado</h3><p>J&#225; entendemos que fazemos mais verifica&#231;&#245;es do que trocas. S&#243; precisamos descobrir como fazer menos verifica&#231;&#245;es. Para isso voc&#234; s&#243; precisa saber que a cada vez que o programa vasculha o vetor, alguma troca &#233; feita. Se nenhuma troca tiver sido feita, significa que o vetor j&#225; est&#225; ordenado.</p><p>Resumindo: Quando as trocas pararem de acontecer, paramos de verificar e encerramos o algoritmo, pois atingimos o objetivo.</p><p>Ap&#243;s essa melhoria:</p><p>- Um vetor bagun&#231;ado leva algo entre N e N&#178; opera&#231;&#245;es</p><p>- Um vetor decrescente leva N&#178; opera&#231;&#245;es</p><p>- Um vetor crescente (j&#225; ordenado) leva N opera&#231;&#245;es</p><p>&#201; uma melhoria, mas n&#227;o significativa. Note que no por caso ainda demora N&#178; opera&#231;&#245;es para ordenar o vetor e casos pr&#243;ximos do melhor caso (vetor quase ordenado) s&#227;o raros.</p><p>Se eu s&#243; precisar ordenar vetores decrescentes, esse &#233; t&#227;o ruim quanto o original, por exemplo.</p><p>Mas isso n&#227;o &#233; nem sobre o que eu quero falar. E finalmente chegamos no tema central desse post.</p><h3>Complexidade de Algoritmo</h3><p>Complexidade &#233; esse comportamento do algoritmo que buscamos analisar no t&#243;pico anterior.</p><p>Como ele se comporta no melhor caso, no pior, e principalmente no caso m&#233;dio.</p><p>O caso m&#233;dio &#8212; ou seja, mais prov&#225;vel &#8212; &#233; um vetor completamente bagun&#231;ado e ca&#243;tico. E nesse caso, a complexidade do algoritmo &#233; maior que N e menor que N&#178;.</p><p>A ideia &#233; que analisando o caso m&#233;dio e voc&#234; possa decidir qual o melhor algoritmo. E para isso voc&#234; precisa analisar o <strong>funcionamento interno</strong> do algoritmo. Ou foi o que me disseram em sala de aula.</p><p>E aqui nasce a ideia desse artigo:</p><blockquote><p>Ser&#225; poss&#237;vel descobrir melhor e pior caso de um algoritmo sem saber como ele funciona?</p><p>E se eu usar o pr&#243;prio algoritmo para descobrir seu comportamento na pr&#225;tica?</p><p>E se eu tirar a m&#233;dia de todas as permuta&#231;&#245;es poss&#237;veis de um vetor?</p></blockquote><h3>Desafios</h3><p>Perguntei ao meu professor se seria poss&#237;vel executar o algoritmo de ordena&#231;&#227;o para todos os vetores poss&#237;veis e ver aquele que deu mais trabalho ao computador, aquele que demorou mais tempo para ordenar.</p><p>Ele disse que eram muitas possibilidades de vetores e que esse trabalho seria invi&#225;vel de realizar de forma pr&#225;tica e seguiu a aula, mas essa d&#250;vida me seguiu at&#233; em casa e c&#225; estamos.</p><p>De fato, o custo de testar todas as possibilidades de um vetor &#233; proibitiva. O que eu quero fazer &#233; ordenar todas as permuta&#231;&#245;es poss&#237;veis de um vetor.</p><p>Se eu tenho o vetor com os elementos 1 e 2. Ou seja, [1, 2] que &#233; a forma mais usual de representar vetores. Ent&#227;o ele tem duas permuta&#231;&#245;es. [1, 2] e [2, 1].</p><p>Um vetor com 3 elementos teria 6 permuta&#231;&#245;es. 4 elementos, 24 permuta&#231;&#245;es. O n&#250;mero de permuta&#231;&#245;es que precisamos testar &#233; exatamente N!(fatorial de N) isso &#233; bem pior do que N&#178;. Muito, MUITO PIOR.</p><p>5! = 120</p><p>6! = 720</p><p>7! = 5040</p><p>8! = 40 mil</p><p>E por ai vai. Cresce, e cresce cada vez mais r&#225;pido. Problemas onde o custo em c&#225;lculos e tempo aumenta exponencialmente s&#227;o uma pedra no sapato mesmo para supercomputadores, como expliquei <a href="https://substack.com/@danielloureno1/p-181350395">nesse artigo</a>.</p><p>Ao mesmo tempo, vetores pequenos (N &lt; 100) s&#227;o bem r&#225;pidos de se ordenar e o tempo necess&#225;rio &#233; bem pequeno. Pequeno o suficiente para ter muito ru&#237;do.</p><p>O processador &#233; uma m&#225;quina bem r&#225;pida, mas ele s&#243; consegue fazer uma coisa por vez. Imagine que voc&#234; tivesse que parar de andar para piscar, para respirar, para pensar. Isso faria voc&#234; demorar mais para completar seu trajeto. Isso tamb&#233;m se aplica para o processador.</p><p>Nos dias de hoje os processadores tem de 2 a 16 n&#250;cleos. Esses n&#250;cleos, para todos os efeitos, s&#227;o como um processador pr&#243;prio capaz de executar programas. Mas o n&#250;mero de programas que rodam num desktop moderno est&#225; na casa das centenas.</p><p>Voc&#234; mesmo j&#225; deve ter aberto mais de 20 programas (ou abas do navegador) ao mesmo tempo alguma vez<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a>. Para dar a impress&#227;o de que tudo isso est&#225; rodando ao mesmo tempo os processadores aplicam uma t&#233;cnica chamada concorr&#234;ncia.</p><p>Paralelismo faz dois n&#250;cleos executarem dois programas diferentes ao mesmo tempo. Concorr&#234;ncia &#233; quando um n&#250;cleo executa dois programas diferentes &#8220;ao mesmo tempo&#8221;.</p><p>O que ele faz &#233; intercalar qual programa ele est&#225; executando &#224; uma frequ&#234;ncia alt&#237;ssima ao custo de demorar mais. Demorar&#225; o tempo de execu&#231;&#227;o de cada programa isoladamente mais um atraso de trocar entre eles constantemente, para ser preciso. Se o aumento do tempo n&#227;o &#233; perceptivo, &#233; porque era uma tarefa muito r&#225;pida de completar.</p><p>E o processador est&#225; sempre parando de executar seus programas para executar pequenas tarefas da forma mais impercept&#237;vel poss&#237;vel. Estamos falando de mil&#233;simos de mil&#233;simos de mil&#233;simos de segundos. Mas que fazem diferen&#231;a para o que estamos tentando medir: a ordena&#231;&#227;o de vetores pequenos.</p><p>Vetores pequenos sofrem de ru&#237;do do processador<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a>. Vetores grandes fazem o teste em todas as permuta&#231;&#245;es muito demorado. Qual a solu&#231;&#227;o?</p><p>O melhor a se fazer n&#227;o &#233; medir o tempo, mas o n&#250;mero de opera&#231;&#245;es que o algoritmo executa para ordenar os vetores. Assim eliminamos o ru&#237;do e podemos testar ordenar vetores pequenos. Por&#233;m, isso cria outro problema.</p><p>Se eu quero manter o algoritmo como uma caixa preta e test&#225;-lo sem saber como funciona, n&#227;o posso usar esse m&#233;todo.</p><p>Pois contar o n&#250;mero de passos envolve:</p><ul><li><p>Ler o c&#243;digo do algoritmo de ordena&#231;&#227;o</p></li><li><p>Entender quais passos s&#227;o relevantes em quest&#227;o l&#243;gica e de custo</p></li><li><p>Adicionar um contador que aumenta junto com esses passos (alterar o c&#243;digo)</p></li></ul><p>Seria a melhor forma de entender, se n&#227;o fosse pela restri&#231;&#227;o que quero explorar.</p><p>Ent&#227;o s&#243; resta um &#250;nico caminho para mim: Medir o tempo tentando eliminar o ru&#237;do, mas isso tem um custo.</p><p>A t&#233;cnica a ser usada aqui &#233; uma m&#233;dia simples. O programa, em teoria, executaria sempre no mesmo tempo em um processador completamente livre e ocioso, mas o que temos &#233; o tempo de execu&#231;&#227;o mais um ru&#237;do vari&#225;vel. A m&#233;dia ser&#225; o tempo de execu&#231;&#227;o do algoritmo mais um ru&#237;do pequeno.</p><p>Mais do que chegar ao tempo absoluto de execu&#231;&#227;o para o algoritmo de ordena&#231;&#227;o, queremos a diferen&#231;a em propor&#231;&#227;o entre o tempo de execu&#231;&#227;o em duas permuta&#231;&#245;es diferentes. E para isso a m&#233;dia &#233; suficiente.</p><p>Voc&#234; deve saber muito bem que n&#227;o existe almo&#231;o gr&#225;tis. A m&#233;dia significa refazer o teste m&#250;ltiplas vezes, <em>o que significa demorar m&#250;ltiplas vezes</em>.</p><p>Cada vez mais, a cada desafio superado, vejo que meu professor tinha raz&#227;o desde o in&#237;cio. E vejo que minha &#8220;pregui&#231;a&#8221; teve um valor. Esse experimento me fez pensar nos desafios envolvidos e solu&#231;&#245;es engenhosas ou gambiarrentas.</p><h3>Normaliza&#231;&#227;o</h3><p>Uma &#250;ltima coisa a se fazer &#233; normalizar os resultados. Normalizar significa mudar a escala dos dados para facilitar a leitura e interpreta&#231;&#227;o. Na pr&#225;tica significa dividir todos os tempos pelo menor dos tempos.</p><p>Assim o &#8220;tempo&#8221; do melhor resultado, que no caso do Bubble Sort &#233; o vetor j&#225; ordenado, ser&#225; 1. Os outros resultados ser&#227;o m&#250;ltiplos desse tempo.</p><p>Isso &#233; melhor pois me &#233; mais &#250;til saber que determinado vetor leva 1,5 vezes o tempo de ordenar o vetor mais f&#225;cil do que saber que esse vetor leva 684 nanossegundos enquanto o vetor mais f&#225;cil leva 456 nanossegundos.</p><h3>Conclus&#227;o</h3><p>Nesse experimento consolidei meus conhecimentos sobre vetores, busca e ordena&#231;&#227;o. Aprendi sobre paralelismo e concorr&#234;ncia. Pratiquei escrita de c&#243;digo para rodar os algoritmos citados. Resolvi problemas que apareciam no caminho. Pensei em executar testes mais robustos usando mais tempo. Tudo isso e mais um pouco.</p><p>No fim n&#227;o cheguei a uma conclus&#227;o ou resultados dignos de nota. Se tivesse que fazer alguma observa&#231;&#227;o, diria que na pr&#225;tica os resultados pareceram mais aleat&#243;rios do que o desej&#225;vel, mas com certos padr&#245;es. </p><p>O texto ficou mais longo do que eu gostaria, mas gostei do resultado final. Se voc&#234; leu at&#233; aqui deve ter interesse pelo tema. Voc&#234; &#233; da &#225;rea de TI ou um curioso de internet? Me manda uma mensagem aqui nos coment&#225;rios.</p><p>Sinceramente s&#243; queria expor meu racioc&#237;nio e publicar o quanto antes, apesar de ter faltado falar de algumas coisas.</p><p>Acontece que perdi muito tempo montando os testes e rodando eles. E no fim n&#227;o nem pude mostrar nada sobre eles.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!e0DZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7497881-e972-46fc-8ead-7d4f5692aa64_700x1050.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!e0DZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7497881-e972-46fc-8ead-7d4f5692aa64_700x1050.png 424w, https://substackcdn.com/image/fetch/$s_!e0DZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7497881-e972-46fc-8ead-7d4f5692aa64_700x1050.png 848w, https://substackcdn.com/image/fetch/$s_!e0DZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7497881-e972-46fc-8ead-7d4f5692aa64_700x1050.png 1272w, https://substackcdn.com/image/fetch/$s_!e0DZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7497881-e972-46fc-8ead-7d4f5692aa64_700x1050.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!e0DZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7497881-e972-46fc-8ead-7d4f5692aa64_700x1050.png" width="700" height="1050" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f7497881-e972-46fc-8ead-7d4f5692aa64_700x1050.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1050,&quot;width&quot;:700,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1471887,&quot;alt&quot;:&quot;Ozen Dev IA&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://danielloureno1.substack.com/i/182112701?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7497881-e972-46fc-8ead-7d4f5692aa64_700x1050.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Ozen Dev IA" title="Ozen Dev IA" srcset="https://substackcdn.com/image/fetch/$s_!e0DZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7497881-e972-46fc-8ead-7d4f5692aa64_700x1050.png 424w, https://substackcdn.com/image/fetch/$s_!e0DZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7497881-e972-46fc-8ead-7d4f5692aa64_700x1050.png 848w, https://substackcdn.com/image/fetch/$s_!e0DZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7497881-e972-46fc-8ead-7d4f5692aa64_700x1050.png 1272w, https://substackcdn.com/image/fetch/$s_!e0DZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7497881-e972-46fc-8ead-7d4f5692aa64_700x1050.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Literalmente eu nesse fim de ano</figcaption></figure></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://danielloureno1.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Obrigado por ler at&#233; o fim. Te vejo semana que vem?</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>Geralmente uma aplicativo ou programa complexo tem mais de um processo executando ao mesmo tempo. Voc&#234; pode fazer o teste abrindo o gerenciador de tarefas.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>N&#227;o h&#225; muito a ser feito, j&#225; que isso &#233; controlado pelo Sistema Operacional.</p></div></div>]]></content:encoded></item><item><title><![CDATA[Como aprendi inglês]]></title><description><![CDATA[Aprender uma nova l&#237;ngua &#233; algo que n&#227;o acontece frequentemente nem da noite para o dia, mas &#233; resultado de anos de aperfei&#231;oamento cont&#237;nuo.]]></description><link>https://danielloureno1.substack.com/p/como-aprendi-ingles</link><guid isPermaLink="false">https://danielloureno1.substack.com/p/como-aprendi-ingles</guid><dc:creator><![CDATA[Daniel Lourenço]]></dc:creator><pubDate>Mon, 22 Dec 2025 11:39:11 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!R9Vo!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F261dd700-ea10-4145-aa78-6533dc23f0e8_395x613.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Aprender uma nova l&#237;ngua &#233; algo que n&#227;o acontece frequentemente nem da noite para o dia, mas &#233; resultado de anos de aperfei&#231;oamento cont&#237;nuo.</p><p>Eu diria que aprendi ingl&#234;s no in&#237;cio da pandemia no Brasil. Fazia o ensino fundamental em uma escola municipal qualquer e praticamente fiquei sem aulas no ano de 2020. </p><p>Esse foi um per&#237;odo da minha vida que guardo com muito carinho, pois foi um momento onde aprendi sobre meus pr&#243;prios gostos: animes e mang&#225;s no geral, e dei meus primeiros passos na programa&#231;&#227;o.</p><p>Embora no caso da programa&#231;&#227;o j&#225; houvesse conte&#250;do o suficiente em portugu&#234;s para me satisfazer, n&#227;o era o caso com mang&#225;s. Fui pulando de obra em obra. Assistia o anime inteiro, partia para o mang&#225;, que geralmente &#233; a obra original a ser adaptada. Lia as tradu&#231;&#245;es feitas por f&#227;s na internet e cheguei a entrar em algumas delas para acompanhar os lan&#231;amentos.</p><p>N&#227;o me incomodava esperar uma semana ou um m&#234;s inteiro at&#233; que um novo cap&#237;tulo fosse postado porque eu tinha um mundo inteiro de hist&#243;rias para ler. Eram dias e semanas que passavam voando enquanto eu mergulhava em tantos universos. </p><p>Eu lia desde obras populares como Yakusoku no Neverland, , One Punch Man, Solo Leveling (antes de virar modinha), at&#233; hist&#243;rias mais desconhecidas como Rooftop Sword Master, Tales of Demons and Gods e outras hist&#243;rias de gosto question&#225;vel que n&#227;o valem a pena citar. Foi por conta dessas &#250;ltimas que decidi ajudar uma scan na tradu&#231;&#227;o de uma hist&#243;ria que estava esperando. </p><p>Depois de passar por um rigoroso teste(cont&#233;m ironia) para testar minha capacidade de usar o google tradutor &#8212; n&#227;o existia ChatGPT naquela &#233;poca &#8212; entrei pro time e comecei a traduzir o pr&#243;ximo cap&#237;tulo como se n&#227;o houvesse amanh&#227;.</p><p>Foi o momento de maior foco da minha vida. Lembro de ter aberto o cron&#244;metro, o material para traduzir, uma call no discord com um s&#234;nior do grupo e ficar mergulhado naquilo pelas pr&#243;ximas 6 ou 8 horas seguidas. Lembro que o ingl&#234;s n&#227;o tinha sido um problema no meu teste. N&#227;o lembro dos textos em si, mas lembro que o feedback que recebi foi sobre erros de concord&#226;ncia no meu texto final. Espero que voc&#234; releve isso, eu tinha 14 anos e estava alguns meses sem pisar sequer numa aula online.</p><p>Nem que eu demorasse alguns bons minutos de pesquisa, eu sempre conseguia descobrir o significado das falas e narra&#231;&#245;es do texto original. Isso serviu para deixar de lado a fluidez da leitura para pensar em mim como um decifrador de um texto estrangeiro.</p><p>Passar 8 horas preso em um texto menor que esse que voc&#234; est&#225; lendo agora n&#227;o me desmotivou ou decepcionou. Sa&#237; daquela call orgulhoso de todas as vezes que empaquei e dei um jeito de seguir adiante. Eu n&#227;o estava preocupado em aprender ingl&#234;s, eu n&#227;o estava preocupado em impressionar ningu&#233;m. Eu n&#227;o queria nem mesmo saber como a hist&#243;ria continuava mais a esse ponto. Eu queria provar pra mim mesmo que eu conseguia decifrar aquele texto estranho.</p><p>Saindo um pouco do tema principal:</p><blockquote><p>Quando foi a &#250;ltima vez que voc&#234; fez uma atividade somente pelo prazer de fazer?</p></blockquote><p>J&#225; li em algum lugar recentemente que n&#227;o &#233; ideal aprender outro idioma a partir de tradu&#231;&#227;o como principal m&#233;todo de estudo. Isso deve vir daquela neura das pessoas de se preocuparem em estar ou n&#227;o traduzindo o que escutam para a lingua nativa antes de entender. Imagino que isso faz algum sentido, mas traduzir mentalmente nunca foi uma preocupa&#231;&#227;o minha, mesmo depois dessa fase ou talvez por causa dela.</p><p>Eu s&#243; queria terminar aquele texto o mais r&#225;pido poss&#237;vel e partir para o pr&#243;ximo. Continuei lendo cada vez mais hist&#243;rias. Nesse ponto j&#225; acessava o saudoso Mang&#225; Livre todos os dias procurando novos t&#237;tulos e novos cap&#237;tulos para ler e maratonava hist&#243;rias mais longas (n&#227;o, eu n&#227;o li One Piece).</p><p>At&#233; aqui eu lia somente em portugu&#234;s e traduzia com alguma dificuldade mang&#225;s e cap&#237;tulos de light novels<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a>, mas eu queria dar um passo al&#233;m. </p><p>N&#227;o queria passar horas lutando com o Google Tradutor para entender cada cap&#237;tulo. N&#227;o queria esperar tradu&#231;&#245;es que estavam meses &#8212; &#224;s vezes anos &#8212; atrasada para ler as minhas hist&#243;rias favoritas. E pra isso eu precisava aprender ingl&#234;s. N&#227;o precisava ser fluente ou perfeito &#8212; apenas o suficiente para aproveitar a leitura.</p><p>At&#233; cogitei aprender japon&#234;s ao inv&#233;s de ingl&#234;s, mas desisti pelos seguintes motivos:</p><ol><li><p>Como todo ocidental, e principalmente brasileiros, japon&#234;s parecia extremamente dif&#237;cil de se aprender para mim<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a>.</p></li><li><p>Eu tinha uma mentalidade imediatista e queria aprender algo o mais r&#225;pido poss&#237;vel.</p></li><li><p>N&#227;o h&#225; no Jap&#227;o a cultura da pirataria como no Brasil &#8212; e no resto do mundo, de forma geral &#8212; ent&#227;o era bem dif&#237;cil achar mang&#225;s direto em japon&#234;s na internet.</p></li></ol><p>Resumindo: Mesmo para ler quadrinhos japoneses, aprender ingl&#234;s me ajudaria mais que japon&#234;s. Isso deve valer para v&#225;rias outras &#225;reas tamb&#233;m.</p><p>Pesquisando como eu poderia aprender ingl&#234;s da melhor forma poss&#237;vel, encontrei no YouTube BR o canal do Mairo Vergara, onde ele ensinava ingl&#234;s, mas mais importante de tudo, era a sua playlist ensinando &#8220;<a href="https://youtube.com/playlist?list=PLl_7J18zHKKCQq2LeeqIK1wMBbwHfvwhS&amp;si=Ywdnswuv48jOsOb5">O M&#233;todo Vergara para Aprender Ingl&#234;s</a>&#8221;.</p><p>Era a primeira autoridade que conheci no assunto de aprender idiomas e o que ele dizia fazia bastante sentido<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-3" href="#footnote-3" target="_self">3</a>. </p><p>N&#243;s, humanos, temos a capacidade natural de aprender a nossa l&#237;ngua materna. Claro que temos uma facilidade natural na inf&#226;ncia para aprender qualquer coisa, mas existe uma habilidade inata para comunica&#231;&#227;o que nos acompanha at&#233; a vida adulta.</p><p>Se te jogassem na R&#250;ssia por um ano, voc&#234; voltaria de l&#225; falando russo razoavelmente bem. N&#227;o &#233; uma quest&#227;o de talento, facilidade ou qualquer outra coisa, &#233; o ambiente e o m&#233;todo. Principalmente o m&#233;todo.</p><p>O m&#233;todo &#233; o mais importante na hora de aprender um idioma novo. Voc&#234; pode se perder em livros e mais livros explicando o porque dos adjetivos de cor virem depois dos adjetivos de tamanho. </p><p>Isso n&#227;o te prepara para entender que o verbo Ser/Estar vem antes do sujeito em perguntas. Isso n&#227;o te prepara para conjugar uma infinidade de verbos irregulares. Que se chamam assim por um motivo: Porque a l&#237;ngua n&#227;o foi criada em laborat&#243;rio, mas &#233; fruto de um processo vivo. &#201; um protocolo de comunica&#231;&#227;o acordado de forma t&#225;cita por uma comunidade e que n&#227;o precisa ser consistente ou l&#243;gico o tempo todo.</p><p>O segredo &#233; usar da maior habilidade da ra&#231;a humana: Reconhecimento de padr&#245;es.</p><p>Sabe quando voc&#234; olha para uma tomada com tr&#234;s furos e v&#234; um rosto? Ou quando percebe que quase sempre que aquele time de futebol perde, um primo seu tava assistindo junto com voc&#234; e coisas do tipo?</p><p>Tudo isso faz parte do reconhecimento de padr&#245;es, que tamb&#233;m se aplica para idiomas. </p><p>M3SM0 QU3 3U 3SCR3V4 3SS4 FR4S3 TR0C4ND0 4S L3TR4S P0R N&#218;M3ROS, V0C3 41ND4 &#201; C4P4Z D3 L3R C0M UM4 V3L0C1D4D3 R4Z0&#193;V3L.</p><p>Porque voc&#234; n&#227;o est&#225; decodificando e decifrando em tempo real. Voc&#234; est&#225; confiando e delegando o processamento do que est&#225; escrito para um circuito cerebral de reconhecimento de padr&#245;es visuais. Da mesma forma existe um circuito para padr&#245;es sonoros e para padr&#245;es lingu&#237;sticos.</p><p>Quando algu&#233;m diz do seu lado &#8220;Ado ado ado, cada um no seu quadrado.&#8221;, algo que voc&#234; provavelmente j&#225; ouviu v&#225;rias vezes. Voc&#234; provavelmente j&#225; estava desde o segundo &#8220;ado&#8221; completando eles e esperando o resto da frase ou alguma varia&#231;&#227;o. Esse &#233; um caso de padr&#227;o sonoro <strong>e lingu&#237;stico.</strong></p><p>Aprender uma l&#237;ngua significa aprender todos os padr&#245;es comuns em todas as situa&#231;&#245;es que voc&#234; vai precisar dela. E isso s&#243; acontece de uma maneira: costume.</p><p>Voc&#234; precisa se acostumar com a l&#237;ngua, respirar a l&#237;ngua. E por fim, <s>ser a l&#237;ngua,</s> usar a l&#237;ngua.</p><p>Agora falando em termos menos neurol&#243;gicos e filos&#243;ficos. Voc&#234; s&#243; aprende o significado de uma palavra ou express&#227;o vendo ela sendo usada em v&#225;rios contextos em v&#225;rios momentos diferentes. Voc&#234; s&#243; aprende uma estrutura gramatical depois de ver ela sendo usada centenas de vezes. E antes que voc&#234; seja capaz de reproduzir isso com naturalidade, voc&#234; vai precisar passar por isso v&#225;rias outras vezes.</p><p>E voc&#234; s&#243; vai conseguir fazer isso depois de milhares de horas de imers&#227;o no idioma. E &#233; claro que voc&#234; n&#227;o se joga no mar no dia 1.</p><h2>O m&#233;todo</h2><p>O m&#233;todo se trata, em linhas gerais, de ficar no limiar do desconhecido. </p><p>Um texto em que voc&#234; sabe a maioria das palavras, mas n&#227;o tudo. Um &#225;udio que voc&#234; entende quase por inteiro, mas n&#227;o todo. Existem v&#225;rias lacunas, espa&#231;os de barulho, termos e express&#245;es desconhecidas. </p><p>A partir desse material voc&#234; aumenta seu vocabul&#225;rio usando o Anki, ou outro programa de repeti&#231;&#227;o espa&#231;ada, para revisar as novas palavras que voc&#234; aprendeu.</p><p>Voc&#234; encontra uma frase que entende por inteiro, com exce&#231;&#227;o de uma palavra ou termo. Pesquisa em dicion&#225;rios at&#233; entender a frase. Guarda ela no Anki e repete o processo.</p><p>A ideia &#233; fazer isso com materiais feitos por nativos para nativos. N&#227;o queremos aprender padr&#245;es que s&#243; aparecem em livros did&#225;ticos e n&#227;o no filme que voc&#234; quer ser capaz de assistir, que s&#243; aparecem em discuss&#245;es acad&#234;micas mas n&#227;o em conversas que voc&#234; quer ter no dia a dia.</p><p>N&#227;o foi o Mairo que inventou isso. </p><p>Ele pegou de outros poliglotas e pessoas que estudaram o processo de aprendizado de idiomas, como Stephen Krashen, Steve Kaufmann, Khatzumoto do All Japanese All The Time(AJATT)<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-4" href="#footnote-4" target="_self">4</a> tudo que funcionava para ele e criou um algoritmo que pudesse executar todo dia sem pensar, como um oper&#225;rio em uma f&#225;brica. Assim ele n&#227;o teria que se preocupar em estar na dire&#231;&#227;o errada, n&#227;o teria que se preocupar se est&#225; fazendo o suficiente. Ele s&#243; precisava seguir o m&#233;todo. E com a confian&#231;a de ver os resultados bem na sua frente, seguir motivado para continuar executando o algoritmo, dia ap&#243;s dia de forma incans&#225;vel, por longos per&#237;odos.</p><p>O segredo &#233; esse. Volume + frequ&#234;ncia.</p><p>Em passos, o algoritmo seria:</p><ol><li><p>Achar 10 palavras desconhecidas, n&#227;o importa onde</p></li><li><p>Achar frases que voc&#234; entenda que usem essas palavras</p></li><li><p>Jogar no Anki</p></li><li><p>Revisar o Anki todos os dias</p></li><li><p>Volta no dia seguinte</p></li></ol><p>De resto &#233; imergir, usar o ingl&#234;s no dia a dia. Ouvir v&#237;deos sobre assuntos que te interessam. Escutar os &#225;udios dos textos que voc&#234; j&#225; estudou. Qualquer coisa.</p><p>Aprender palavras dentro de frases te faz assimilar inconscientemente os padr&#245;es de gram&#225;tica da l&#237;ngua, padr&#245;es de pensamento e de escolha de palavras dos nativos.</p><p>Repita esse processo de forma constante por um ano. Revise centenas de frases diariamente. Adicione algumas milhares dessas no seu baralho do Anki e eu duvido que voc&#234; n&#227;o vai conseguir usar o idioma para aquilo que voc&#234; queria no come&#231;o.</p><h2>A bola de neve</h2><p>Isso n&#227;o &#233; exclusivo de m&#233;todo algum, mas uma constata&#231;&#227;o da realidade: Quando voc&#234; chega em determinado n&#237;vel onde &#233; capaz de aproveitar de conte&#250;dos 100% em ingl&#234;s, mesmo n&#227;o entendendo tudo, seu aprendizado decola.</p><p>Quando voc&#234; finalmente consegue acompanhar conte&#250;dos em ingl&#234;s sem estudar previamente e consome eles &#8212; n&#227;o para estudar e aprender, mas simplesmente para se entreter &#8212; voc&#234; aumenta naturalmente seu tempo de exposi&#231;&#227;o aos padr&#245;es da l&#237;ngua. Internaliza esses padr&#245;es em uma velocidade ainda maior que no come&#231;o e, mais importante de tudo, se diverte no processo.</p><p>Eu me diverti aprendendo ingl&#234;s, antes mesmo de poder us&#225;-lo. Pois era o que me permitia ler conte&#250;dos que estava desesperado para consumir. Pois era o que me dava um assunto em comum com amigos online. Pois era o que me facilitava outras coisas na minha vida, como navegar na internet em geral.</p><div><hr></div><p>Nesse post eu queria contar uma hist&#243;ria minha sobre como, n&#227;o s&#243; aprendi ingl&#234;s, mas descobri a import&#226;ncia de aprender a aprender. Pode ter ficado pessoal demais, ou se nexo demais para dar uma li&#231;&#227;o, mas foi meu relato.</p><p>Quero saber seu relato. </p><p>Voc&#234; sabe ingl&#234;s? Se sim, como voc&#234; acha melhor de aprender um novo idioma? Como foi a sua jornada nessa &#225;rea?</p><p>Se voc&#234; chegou aqui, talvez se interesse por aprendizado de idiomas ou gostou desse relato pessoal. </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://danielloureno1.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Assine minha newsletter e receba textos semelhantes no futuro.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>Light novels s&#227;o uma esp&#233;cie de romance com linguagem simplificada, sobretudo os ideogramas utilizados s&#227;o menos raros que os usados em livros para adultos, mas ainda mais dif&#237;ceis que mang&#225;s em quest&#227;o lingu&#237;stica.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>&#201; totalmente poss&#237;vel aprender japon&#234;s com o mesmo m&#233;todo que vou mostrar para aprender ingl&#234;s. S&#243; existe alguns passos diferentes por conta do sistema de escrita diferente do ocidental.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-3" href="#footnote-anchor-3" class="footnote-number" contenteditable="false" target="_self">3</a><div class="footnote-content"><p>O que digo daqui para frente n&#227;o &#233; o que ele diz, exatamente, mas o que aprendi sobre o conte&#250;do dele. Voc&#234; ainda pode aprender muitas outras coisas indo direto no canal dele.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-4" href="#footnote-anchor-4" class="footnote-number" contenteditable="false" target="_self">4</a><div class="footnote-content"><p>Vale a pena conferir o canal do <a href="https://www.youtube.com/@mattvsjapan">Matt vs Japan</a> ou <a href="https://www.youtube.com/live/q0Q3GUjo9rg?si=XVrM6Vg2AB6Dz6bo">essa</a> conversa com ele.</p></div></div>]]></content:encoded></item><item><title><![CDATA[O Limite da Computação]]></title><description><![CDATA[O desenvolvimento tecnol&#243;gico n&#227;o &#233; perp&#233;tuo sem uma revolu&#231;&#227;o de arquitetura.]]></description><link>https://danielloureno1.substack.com/p/o-limite-da-computacao</link><guid isPermaLink="false">https://danielloureno1.substack.com/p/o-limite-da-computacao</guid><dc:creator><![CDATA[Daniel Lourenço]]></dc:creator><pubDate>Sun, 14 Dec 2025 14:01:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!0mql!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46d9fa75-1958-47af-b602-6f08fce46675_144x144.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Pensei em escrever esse texto por causa da explos&#227;o das LLMs (sei que voc&#234; n&#227;o aguenta mais falar disso, mas tenha calma) e por uma reflex&#227;o aleat&#243;ria sobre o boom populacional da humanidade nos &#250;ltimos s&#233;culos devido &#224; urbaniza&#231;&#227;o, ind&#250;stria e revolu&#231;&#227;o verde.</p><p>O p&#226;nico em torno da IA nos &#250;ltimos 3-4 anos se deve, claro, ao grande salto tecnol&#243;gico, onde um modelo te&#243;rico recebeu uma atualiza&#231;&#227;o de performance que o permitiu ser executado de forma pr&#225;tica e em tempo real. Por&#233;m, esse p&#226;nico se deve, tamb&#233;m, a uma incompreens&#227;o sobre como computadores e tecnologia em geral evoluem.</p><p>Tudo isso faz parte de uma argumenta&#231;&#227;o maior que ainda n&#227;o terminei, mas o objetivo agora &#233; de expor da maneira mais did&#225;tica poss&#237;vel como um computador funciona e construir um experimento mental que ajude a entender os limites da computa&#231;&#227;o da forma como entendemos hoje.</p><p>Um computador &#233; uma calculadora por defini&#231;&#227;o. Tudo que ele &#233; capaz de fazer &#233; executar comandos que envolvem a altera&#231;&#227;o de n&#250;meros em sua mem&#243;ria, que chamamos de bits, por serem a menor unidade de informa&#231;&#227;o que podemos manipular.</p><p>Desde o ENIAC at&#233; o meu computador ao lado da minha mesa houve v&#225;rios avan&#231;os f&#237;sicos, qu&#237;micos e t&#233;cnicos na forma como computadores s&#227;o constru&#237;dos, mas a sua arquitetura geral continua mais ou menos da mesma forma. O que ocorreu foram melhorias de performance para ser mais r&#225;pido e eficiente, ou seja, usar menos energia e menos tempo para fazer o <em><strong>mesmo</strong></em> processamento.</p><p>Voc&#234; provavelmente j&#225; ouviu falar do qu&#227;o pequenos s&#227;o os transistores dos processadores de hoje em dia e de como estamos pr&#243;ximos do limite f&#237;sico de quantos deles podemos colocar no mesmo espa&#231;o. Apesar disso, ainda h&#225; muito espa&#231;o para melhora, mas essa melhora de efici&#234;ncia n&#227;o levar&#225; a grandes saltos como o visto pelo campo das IAs.</p><p>Para dizer a verdade, os computadores modernos ainda est&#227;o longe dos limites impostos pelas leis da f&#237;sica. Os limites atuais se devem puramente a limites nas t&#233;cnicas humanas para a constru&#231;&#227;o deles.</p><p>Vamos imaginar um computador te&#243;rico que use toda sua massa para fazer computa&#231;&#245;es. Meu objetivo &#233; te mostrar que mesmo o melhor computador que nunca ser&#225; fabricado na pr&#225;tica n&#227;o resolveria todos os problemas da humanidade, longe disso. Sem uma revolu&#231;&#227;o na arquitetura atual, mais processamento e mais velocidade s&#227;o pouco impactantes.</p><p>O <a href="https://en.wikipedia.org/wiki/Bremermann's_limit">Limite de Bremermann</a> diz que um sistema computacional fechado, ou seja, uma caixa preta que n&#227;o depende de mais nada al&#233;m de si mesmo para computar, n&#227;o pode ultrapassar a quantidade de energia que ele tem armazenado em sua massa dividido pela quantidade m&#237;nima de energia necess&#225;ria para realizar uma &#250;nica computa&#231;&#227;o. A energia do sistema &#233; dada por E = mc&#178; (grande Einstein).</p><p>Fazendo todas as contas chegamos ao n&#250;mero m&#225;ximo de 1.3563925 &#215; 10<sup>50 </sup>opera&#231;&#245;es por segundo por quilograma. Da mesma ordem de grandeza do n&#250;mero de &#225;tomos da Terra &#8212; muito maior que o n&#250;mero de gr&#227;os de areia ou estrelas vis&#237;veis. Grande o suficiente para ter dificuldade em encontrar um exemplo temporal que humanos entendam.</p><p>Isso significa que esse sistema hipot&#233;tico poderia contar os milissegundos que se passaram desde o Big Bang antes que voc&#234; pudesse decidir assinar, ou n&#227;o, minha newsletter.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://danielloureno1.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://danielloureno1.substack.com/subscribe?"><span>Subscribe now</span></a></p><p>Agora que temos o computador mais r&#225;pido permitido pelas leis da f&#237;sica na arquitetura atual podemos ver o qu&#227;o r&#225;pido ele &#233; em coisas mais complicadas do que contar.</p><h2>For&#231;a Bruta</h2><p>No exemplo anterior a tarefa era somar 1 num n&#250;mero na mem&#243;ria do computador, mas para as atividades que usamos computadores s&#227;o necess&#225;rias opera&#231;&#245;es mais complexas.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a></p><p>Numa pesquisa r&#225;pida vi que uma infer&#234;ncia do GPT-4 requer 560 trilh&#245;es de opera&#231;&#245;es com ponto flutuante (n&#250;meros fracion&#225;rios). O nosso computador hipot&#233;tico conseguiria computar mensagens das mais longas instantaneamente. Pode levar um tempo diferente de 0 (na ordem de 10&#8315;&#179;&#8309; segundos), mas menor que a precis&#227;o de qualquer rel&#243;gio que a humanidade tenha inventado at&#233; agora.</p><p>Partindo para tarefas mais dif&#237;ceis temos criptografia. F&#225;cil de usar, dif&#237;cil de quebrar com for&#231;a bruta. Absolutamente todos os algoritmos de criptografia t&#234;m sua confian&#231;a baseada nessa dificuldade. Algoritmos como:</p><ul><li><p>AES-128</p></li><li><p>ECC-256</p></li><li><p>RSA-2048 (demoraria um pouco)</p></li></ul><p>Seriam quebrados em fra&#231;&#245;es de segundos. Porque, na pr&#225;tica, um segundo &#233; suficiente para esgotar o espa&#231;o efetivo de busca desses algoritmos. J&#225; algoritmos como:</p><ul><li><p>AES-256</p></li><li><p>SHA-256</p></li><li><p>bcrypt (dependendo da quantidade de caracteres)</p></li></ul><p>Est&#227;o seguros. Levando 10&#178;&#8311; segundos para quebrar o SHA-256, por exemplo<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a>. Para quebrar essas criptografias nosso computador precisaria crescer at&#233; escalas continentais se quis&#233;ssemos terminar no tempo de vida humano.</p><p>&#201; nesse momento que come&#231;amos a sentir os limites da for&#231;a bruta e da velocidade do melhor computador poss&#237;vel no nosso universo. Nem mesmo ele &#233; o bastante para lidar com certos problemas.</p><p>Chegamos nos problemas n&#227;o determin&#237;sticos de tempo polinomial (NP), que incluem classes de problemas cuja melhor solu&#231;&#227;o conhecida cresce de forma exponencial. Aqui entram coisas como o <a href="https://en.wikipedia.org/wiki/Travelling_salesman_problem">Caixeiro Viajante</a>.</p><p>Mas nem s&#243; de hardware vive a humanidade, n&#227;o &#233; mesmo?</p><p>Agora que vimos os limites da for&#231;a bruta e da velocidade da computa&#231;&#227;o, vamos aos limites da arquitetura. No fim das contas, tecnologia &#233; t&#233;cnica. Al&#233;m das t&#233;cnicas de constru&#231;&#227;o de computadores, a humanidade tamb&#233;m desenvolveu t&#233;cnicas para acelerar a computa&#231;&#227;o em certas situa&#231;&#245;es para transformar problemas exponenciais em problemas resolv&#237;veis em tempo constante, e isso &#233; a chave para entendermos que o futuro da tecnologia est&#225; em uma revolu&#231;&#227;o na arquitetura atual dos computadores.</p><h2>Busca Bin&#225;ria</h2><p>O exemplo mais fresco em minha mem&#243;ria &#233; a busca em bases de dados. T&#233;cnicas como busca bin&#225;ria cortam o tempo de encontrar uma informa&#231;&#227;o na mem&#243;ria, causando uma economia proporcional &#224; quantidade de informa&#231;&#245;es.</p><p>A maior utilidade da computa&#231;&#227;o no dia a dia &#233; o armazenamento e processamento desses dados para fins comerciais. Espero que entenda que atividades como atualizar, consultar e cadastrar novos dados requerem manipular a mem&#243;ria do computador. E como o volume de dados s&#243; cresce, precisamos fazer isso o mais r&#225;pido poss&#237;vel.</p><p>Exemplo: Tenho uma lista com as informa&#231;&#245;es de todos os meus clientes ordenada pelo valor da renda que me trazem mensalmente. Consigo rapidamente, por meio de uma busca bin&#225;ria, achar um cliente espec&#237;fico entre milh&#245;es buscando por esse n&#250;mero que chamamos de chave de busca. Eu consulto o meio da minha lista e vejo que o n&#250;mero no meio &#233; maior que a minha chave, ent&#227;o procuro somente na primeira metade da lista. Repito o processo para a lista menor que obtive.</p><p>Traduzindo: Em uma lista com N elementos podemos encontrar um elemento desejado sem ter que comparar com cada elemento individualmente mas com log N elementos, ao custo de manter a lista ordenada de forma crescente (custo t&#237;pico O(N log N)).</p><p>Caso tenha alguma familiaridade com logaritmos, voc&#234; sabe que quanto maior a lista, maior ser&#225; a economia. Por&#233;m existe um limite econ&#244;mico para quanta mem&#243;ria temos para armazenamento. E a mem&#243;ria de trabalho (a famosa RAM) &#233; ainda mais escassa. Raramente &#233; poss&#237;vel em bases de dados grandes colocar toda a lista na RAM para usar a busca bin&#225;ria.</p><p>Ent&#227;o chegamos em &#193;rvores B para achar com velocidade os dados que precisamos em equipamentos mais lentos como HDs e SSDs. O gargalo aqui n&#227;o &#233; a compara&#231;&#227;o, mas o n&#250;mero de acessos ao armazenamento persistente.</p><p>Vale notar que, nesse caso, estamos usando uma t&#233;cnica para burlar limites impostos pela pr&#243;pria arquitetura dos computadores, n&#227;o limites te&#243;ricos. Ou seja, com RAM infinita busca bin&#225;ria sempre seria melhor, mas como ela &#233; menor que o armazenamento persistente, precisamos de outras t&#233;cnicas para expandir nossos limites pr&#225;ticos.</p><h2>Conclus&#227;o</h2><p>Eu poderia continuar esse texto falando sobre como criptografias funcionam e porque elas s&#227;o resistentes &#224; for&#231;a bruta, mas n&#227;o &#233; algo que eu tenha dom&#237;nio ou possa escrever sobre com uma tarde de pesquisa.</p><p>Eu poderia continuar esse texto explicando o limite f&#237;sico e te&#243;rico de armazenamento em um espa&#231;o com massa finita, e aplicar ao computador hipot&#233;tico para mostrar que para uma quantidade de dados pr&#243;xima da que a humanidade lida hoje em dia, mesmo o nosso computador perfeito teria que lidar com o deslocamento dos dados na mem&#243;ria interna e mostrar os gargalos insuper&#225;veis, independentes da arquitetura. </p><p>Por&#233;m esse texto tem que sair antes que eu perca meu interesse nesse assunto. E pesquisar tudo isso e manter o texto coeso demoraria algumas semanas.</p><p>Para alguns esse texto pode ter ficado t&#233;cnico demais. Para outros pode ter ficado vago demais. No mais espero que isso possa abrir espa&#231;o para discuss&#227;o sobre o que compete &#224; computa&#231;&#227;o e que ela &#233; s&#243; mais uma tecnologia, n&#227;o a cura para todos os nossos problemas.</p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>A opera&#231;&#227;o mais simples para um computador n&#227;o &#233; realmente somar, mas mudar um bit de 0 para 1 ou vice-versa. Omiti isso do texto principal pois o objetivo dos c&#225;lculos n&#227;o &#233; ser preciso, mas dar no&#231;&#227;o da ordem de grandeza que estamos lidando.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>Veja esse v&#237;deo mostrando o qu&#227;o dif&#237;cil &#233; quebrar o SHA-256. <a href="https://youtu.be/S9JGmA5_unY?si=T1oGRZ-rLCGIIbyM">LINK</a></p></div></div>]]></content:encoded></item><item><title><![CDATA[O culto à ciência]]></title><description><![CDATA[A nova religi&#227;o da modernidade]]></description><link>https://danielloureno1.substack.com/p/o-culto-a-ciencia</link><guid isPermaLink="false">https://danielloureno1.substack.com/p/o-culto-a-ciencia</guid><dc:creator><![CDATA[Daniel Lourenço]]></dc:creator><pubDate>Sat, 25 Oct 2025 12:17:36 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!R9Vo!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F261dd700-ea10-4145-aa78-6533dc23f0e8_395x613.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A ci&#234;ncia &#233; o que temos de melhor quando se trata de descrever fen&#244;menos naturais. </p><p>Da mesma forma que sociedades da antiguidade usavam as religi&#245;es como forma de explicar o que elas n&#227;o entendiam, n&#243;s usamos a ci&#234;ncia.</p><p>Se a defini&#231;&#227;o de ci&#234;ncia come&#231;ou como um tipo de conhecimento que constr&#243;i teorias que podem ser falseadas e provadas falsas. Hoje ela adotou contornos mais amplos.</p><blockquote><p>&#8220;ci&#234;ncia (no sentido ampliado) &#233; a pr&#225;tica que nos fornece as afirma&#231;&#245;es mais confi&#225;veis (i.e., epistemicamente justificadas) que podem ser feitas, em um determinado momento, sobre um objeto de estudos abarcado por uma comunidade de disciplinas de conhecimento (i.e., sobre a natureza, n&#243;s mesmos como seres humanos, nossas sociedades, nossas constru&#231;&#245;es f&#237;sicas, e nossas constru&#231;&#245;es mentais)&#8221; <a href="https://philpapers.org/archive/DEMDCE-2.pdf">(Hansson, 2013)</a></p></blockquote><p>Os termos &#8220;ci&#234;ncia&#8221; e &#8220;cient&#237;fico&#8221; ganharam conota&#231;&#245;es positivas independentemente do contexto de forma parecida com o termo &#8220;democracia&#8221; at&#233; o ponto onde movimentos se apropriarem do termo &#8220;cient&#237;fico&#8221; para propagarem ideias duvidosas.</p><p>Hoje, h&#225; in&#250;meros debates e discuss&#245;es sobre o que &#233;, de fato, ci&#234;ncia, e o que &#233; pseudoci&#234;ncia.</p><p>N&#227;o fiz uma men&#231;&#227;o ao termo &#8220;democracia&#8221; &#224; toa. Um sin&#244;nimo de &#8220;cient&#237;fico&#8221; muito utilizado para afirmar que alguma informa&#231;&#227;o &#233; confi&#225;vel &#233; &#8220;&#233; o consenso acad&#234;mico&#8221; ou &#8220;&#233; o consenso na comunidade cient&#237;fica&#8221;, uma esp&#233;cie de apelo a maioria. Como se a concord&#226;ncia de grande parte de um grupo fosse mais importante que o rigor t&#233;cnico, estat&#237;stico e l&#243;gico com o qual a pesquisa foi feita.</p><p>Note a sutileza: <strong>n&#227;o estou atacando a ci&#234;ncia</strong>, mas as pessoas que se iludem e usam a ci&#234;ncia de forma torpe e em objetos de estudo que n&#227;o lhe dizem respeito.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://danielloureno1.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://danielloureno1.substack.com/subscribe?"><span>Subscribe now</span></a></p><p>Esse texto nasce de uma indigna&#231;&#227;o pessoal minha causada pela dificuldade em expor  opini&#245;es sobre verdade, bem e beleza objetivas por minha parte na vida privada assim como por personalidades na internet.</p><p>Da mesma forma que sociedades antigas, e mesmo as recentes, que usavam a religi&#227;o para justificar suas pr&#243;prias cren&#231;as sobre o que devia ser feito, a maioria das pessoas, se n&#227;o todas, usam a ci&#234;ncia como uma mera ferramenta para justificar as pr&#243;prias cren&#231;as, n&#227;o como uma forma de chegar a verdade. Verdade essa que foi relativizada e taxada como forma de oprimir povos e culturas.</p><p>Quando negamos a exist&#234;ncia de uma verdade absoluta, n&#227;o nos libertamos das cren&#231;as &#8212; apenas as trocamos. Passamos a venerar as que criamos n&#243;s mesmos: o progresso, a t&#233;cnica, o consenso. Mas toda cren&#231;a humana, desprovida de transcend&#234;ncia, tende a se curvar diante do poder e n&#227;o diante da verdade.</p><p>A verdadeira religi&#227;o, ao contr&#225;rio, n&#227;o nasce do medo ou da conveni&#234;ncia, mas do reconhecimento de que h&#225; um Deus grandioso demais para caber em nossos conceitos falhos de bem e de verdade. Ele n&#227;o se molda &#224;s nossas ideias &#8212; n&#243;s &#233; que somos chamados a nos ajustar a Ele.</p><p>A ci&#234;ncia, quando praticada com humildade, pode ser uma express&#227;o dessa busca: uma tentativa de compreender o mundo que esse mesmo Deus criou. Mas quando a transformamos em instrumento de justifica&#231;&#227;o moral ou pol&#237;tica, ela deixa de revelar a realidade e passa a escond&#234;-la sob a ilus&#227;o do controle humano.</p><p>Talvez o desafio do nosso tempo seja justamente esse: redescobrir a coragem de buscar a verdade, mesmo quando ela n&#227;o se encaixa nas cren&#231;as que nos confortam.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://danielloureno1.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://danielloureno1.substack.com/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[Desenvolvimento de Software]]></title><description><![CDATA[&#201; bem comum na apresenta&#231;&#227;o de um programador ou aspirante falar que gosta de resolver problemas complexos.]]></description><link>https://danielloureno1.substack.com/p/desenvolvimento-de-software</link><guid isPermaLink="false">https://danielloureno1.substack.com/p/desenvolvimento-de-software</guid><dc:creator><![CDATA[Daniel Lourenço]]></dc:creator><pubDate>Fri, 17 Oct 2025 21:17:42 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!R9Vo!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F261dd700-ea10-4145-aa78-6533dc23f0e8_395x613.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>&#201; bem comum na apresenta&#231;&#227;o de um programador ou aspirante falar que gosta de resolver problemas complexos.</p><p>Imagino que na maioria dos casos seja dito da boca pra fora, visto que isso &#233; um nonsense total, com a inten&#231;&#227;o de mostrar o m&#237;nimo de proatividade e que voc&#234; n&#227;o vai fugir de desafios t&#233;cnicos. Afinal, isso &#233; o m&#237;nimo que se espera de um desenvolvedor de software.</p><p>Ent&#227;o o que acontece &#233; a tentativa de aplicar a problemas reais, ferramentas do interesse da pessoa. Uma esp&#233;cie de amor pela t&#233;cnica mais que pela melhor resposta para aquela situa&#231;&#227;o. </p><p>N&#227;o &#233; &#224; toa que tudo que um programador mais deseja &#233; escrever c&#243;digo.</p><p>Ou ser&#225; que n&#227;o?</p><p>Desde a populariza&#231;&#227;o de modelos de linguagem capazes de gerar c&#243;digo junto com o aumento massivo de pessoas entrando na &#225;rea &#8212; pessoas essas com o perfil errado e nenhum interesse real nos problemas e viv&#234;ncia na &#225;rea, interessados somente na promessa de dinheiro f&#225;cil &#8212; uma nova gera&#231;&#227;o nasceu, uma gera&#231;&#227;o que n&#227;o gosta de escrever c&#243;digo e delega o processo de criar uma solu&#231;&#227;o, fazer engenharia em ess&#234;ncia.</p><p><strong>E eu sou um deles.</strong></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://danielloureno1.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Assine para receber conte&#250;dos futuros sobre engenharia da computa&#231;&#227;o!</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>Corriqueiramente o que me acontece &#233;: </p><ol><li><p>Tenho uma ideia de projeto.</p></li><li><p>Fa&#231;o um prot&#243;tipo com r&#225;pido com IA.</p></li><li><p>Dou um passo para tr&#225;s e analiso as decis&#245;es da IA para resolver o problema.</p></li><li><p>Concluo que analisar o resultado e tocar o projeto com minhas pr&#243;prias pernas demoraria mais que o meu entusiasmo.</p></li><li><p>Continuo com a IA.</p></li></ol><p>N&#227;o existe mais um preciosismo pela t&#233;cnica, pela tecnologia, pelo conhecimento aprofundado. Sei que existem raz&#245;es econ&#244;micas  que justificam essa vis&#227;o mais pr&#225;tica de constru&#231;&#227;o de c&#243;digo: </p><ul><li><p>Feito &#233; melhor que perfeito</p></li><li><p>C&#243;digo melhor n&#227;o necessariamente d&#225; mais dinheiro</p></li><li><p>Prazos</p></li><li><p>Hype por tecnologias novas</p></li></ul><p>Mas nada disso tira da minha cabe&#231;a essa reflex&#227;o.</p><p>Entrei na &#225;rea e comecei a estudar em 2020 pensando que minha motiva&#231;&#227;o era minha curiosidade para saber como um computador funcionava, como a internet funcionava.</p><p>Hoje vejo que programa&#231;&#227;o sempre foi uma ferramenta &#250;til para as coisas que eu realmente gostava, explorar ideias, matar minha curiosidade, fazer simula&#231;&#245;es.</p><p>&#201; louco. No passado pensava que o mais legal era o processo de codificar. Hoje, sempre que eu puder testar algo que me veio a mente sem ver nenhuma linha de c&#243;digo, eu farei.</p><p>Eu tentei analisar o crescente aumento no uso de IA por outro &#226;ngulo. Acha que viajei de mais ou s&#243; estou passando pano para mim mesmo?</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://danielloureno1.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Assine para ler mais no futuro sobre a &#225;rea de programa&#231;&#227;o e intelig&#234;ncia artificial!!</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item></channel></rss>