<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Desenvolvimento Solo | FoxTechWorld</title><link>https://foxtechworld.github.io/tags/desenvolvimento-solo/</link><description>Conteúdo recente em Desenvolvimento Solo no FoxTechWorld.</description><language>pt-BR</language><copyright>KitsuneSemCalda (CC BY 4.0)</copyright><lastBuildDate>Sat, 15 Aug 2026 00:00:00 -0300</lastBuildDate><generator>Hugo</generator><atom:link href="https://foxtechworld.github.io/tags/desenvolvimento-solo/" rel="self" type="application/rss+xml"/><item><title>Programação assistida por IA com o método Ralph Wiggum</title><link>https://foxtechworld.github.io/programacao-assistida-por-ia-metodo-ralph-wiggum/</link><guid isPermaLink="true">https://foxtechworld.github.io/programacao-assistida-por-ia-metodo-ralph-wiggum/</guid><pubDate>Mon, 02 Feb 2026 02:13:05 +0000</pubDate><description>Conheça o método Ralph Wiggum para programação assistida por IA, baseado em tarefas pequenas, repetição e memória persistente.</description><category>Construção Independente</category><category>LLM</category><category>Vibe Coding</category><category>Desenvolvimento Solo</category><content:encoded><![CDATA[<h2 id="introdução">Introdução</h2>
<p>No mundo moderno, não existe nada pior do que ficar defasado — e pior ainda é ficar travado por causa de <em><strong>opinião sem embasamento</strong></em>. Obviamente, eu também dou opiniões, pelo menos o suficiente para produzir posts como:</p>
<ul>
<li><a href="/opiniao-nao-tenha-criancas-sem-antes-pensar-nisso/">Antes de ter filhos: reflexões sobre educação e responsabilidade</a></li>
<li><a href="/opiniao-brasil-a-grande-varzea/">Brasil, polarização política e tribalismo</a></li>
</ul>
<p>E alguns outros que ainda pretendo postar.</p>
<p>Uma coisa em que tenho pensado é o hype da IA e o novo modelo de desenvolvimento baseado no método <strong>Ralph Wiggum</strong>.</p>
<p><figure><img src="https://static.simpsonswiki.com/images/thumb/1/14/Ralph_Wiggum.png/345px-Ralph_Wiggum.png" loading="eager" fetchpriority="high" decoding="async" alt="Ralph Wiggum   Wikisimpsons, the Simpsons Wiki">
</figure>
</p>
<p>Para contextualizar: eu assistia a alguns vídeos no FreeTube — o melhor frontend para YouTube que conheço — quando reencontrei um vídeo sobre esse modelo de desenvolvimento. Como já havia instalado o Omarchy, do DHH, e testado o OpenCode, que possui ferramentas gratuitas, decidi experimentar o método no meu projeto de OSDev, o <a href="https://github.com/KitsuneBSD/FKernel">FKernel</a>.</p>
<p>O vídeo em questão foi:</p>
<div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
      <iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/rv756w-DHhk?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"></iframe>
    </div>

<h2 id="o-que-é-o-método-ralph-wiggum">O que é o método Ralph Wiggum?</h2>
<p>Basicamente, é assumir que LLM é uma porra e combinar força bruta, memória longa e pequenas tarefas para obter um resultado melhor. As memórias são mantidas pelo agente na forma de tarefas em JSON e de um prompt.</p>
<p>Depois, colocamos um loop que roda continuamente, lendo o prompt e atualizando as tarefas.</p>
<p>Assim, um problema longo é dividido em tarefas curtas, muito mais suportáveis de executar e revisar.</p>
<blockquote>
<p>Dividir e conquistar é a meta da programação</p>
</blockquote>
<h2 id="e-o-que-eu-pretendo-com-isso">E o que eu pretendo com isso?</h2>
<p>O modelo do FKernel é essencialmente lindo, mas o projeto é mantido por uma pessoa só: eu.</p>
<p>Em geral, a programação acumula muito débito técnico quando não sabemos como chegar ao resultado. Meu processo costuma ser saber o que quero fazer em A, mas não perceber de imediato que preciso integrá-lo a B.</p>
<p>Por isso, reescritas e refatorações tornam-se necessárias. Até uma nova funcionalidade maior que o projeto fica mais fácil de desenvolver no longo prazo quando é dividida corretamente.</p>
<p>Mesmo recursos ou práticas avançadas do FKernel.</p>
<h2 id="porém-é-um-projeto-bsd-3-clause">Porém é um projeto BSD-3-Clause</h2>
<p>Sendo um projeto aberto, é normal esperar contribuições. Ainda não recebi nenhuma, mas seria bom padronizar e automatizar o processo para desenvolvedores que queiram contribuir usando modelos gratuitos.</p>
<p>Particularmente neste kernel eu decidi fugir um pouco do mundo Unix Total e estou usando <strong>Lua</strong> como a única linguagem de script dentro do kernel.</p>
<p>Vantagens e desvantagens à parte, os scripts de gerenciamento ficam no diretório <code>/Meta</code> e podem ser divididos em pequenas bibliotecas reutilizáveis em <code>/Meta/Lib</code>.</p>
<p>Obviamente não dependendo de LuaRocks para gerenciar libs.</p>
<p>Não pretendo explicar muito além de dizer que é uma prática irrecomendável, porém facilita o pipeline de qualquer pessoa que quiser contribuir.</p>
<p>Baixar → usar o mínimo de dependências externas → gerar o binário.</p>
<h2 id="funciona">Funciona?</h2>
<p>Não é exatamente o Claude Code, então não consegui replicar perfeitamente o comportamento esperado. Os logs também ainda não ajudam muito.</p>
<p>Ou seja, ainda é preciso muito trabalho para que tudo funcione da forma esperada.</p>
<p>Acredito que o processo e o resultado serão proveitosos no dia a dia quando a ferramenta chegar a um ponto agradável de uso.</p>
<p>Isso será especialmente útil em tarefas grandes e repetitivas de refatoração ou implementação.</p>
<p><figure><img src="https://i.imgur.com/g0miax1.png" loading="lazy" decoding="async" alt="wiggum funcionando 2026/02/03">
</figure>
</p>
<h2 id="o-futuro-é-pica">O futuro é pica</h2>
<p><figure><img src="https://i.pinimg.com/736x/4c/ce/65/4cce6525d3c302e9bac2496991a7a321.jpg" loading="lazy" decoding="async" alt="O futuro é pica">
</figure>
</p>
<p>Com tudo isso dito, espero um futuro melhor no desenvolvimento do kernel. Tarefas muito custosas podem não terminar mais rápido, mas exigem menos intervenção manual: rodou, esqueceu e deixou o agente se ajustar.</p>
<p>Além disso, a divisão em tarefas menores facilita o monitoramento contínuo do progresso.</p>
]]></content:encoded></item><item><title>SaaS: como escolher a ferramenta certa para cada etapa</title><link>https://foxtechworld.github.io/saas-a-ferramenta-certa-na-hora-certa/</link><guid isPermaLink="true">https://foxtechworld.github.io/saas-a-ferramenta-certa-na-hora-certa/</guid><pubDate>Tue, 23 Sep 2025 14:08:26 -0300</pubDate><description>Critérios práticos para escolher linguagens e ferramentas em um SaaS sem cair em modismos, reescritas prematuras ou dependência excessiva.</description><category>Construção Independente</category><category>Desenvolvimento Solo</category><category>SaaS</category><category>Ferramentas</category><content:encoded><![CDATA[<p>Bem a melhor ferramenta é aquela que resolve seu problema.</p>
<p>Isso é invariável em todo o mundo da programação.</p>
<p>No mundo do SaaS, sendo um desenvolvedor solo, você não deve confiar apenas em si mesmo.</p>
<p>Adicione Testes, testes, mais testes, enfie testes em tudo que puder e use softwares maduros.</p>
<p>Mas, ao mesmo tempo não deixe seu software parado no tempo.</p>
<h2 id="as-duas-grandes-divisões">As duas grandes divisões</h2>
<p>Dentro do mundo de software existem duas grandes divisões <a href="https://roadmap.sh/frontend"><strong><em>frontend</em></strong></a> e <a href="https://roadmap.sh/backend"><strong><em>backend</em></strong></a></p>
<p>E uma parte menor que é <a href="https://roadmap.sh/DevOps"><strong><em>DevOps</em></strong></a>.</p>
<p>Este post, em específico, é sobre frontend e backend.</p>
<p>Assuma que que DevOps você pode contratar outros SaaS em vez de implementar você mesmo.</p>
<h3 id="frontend">Frontend</h3>
<p>Para o <strong><em>Frontend</em></strong> precisamos atingir o máximo de plataformas sozinho com uma interface moderna possa atingir:</p>
<ul>
<li><strong>Desktop</strong></li>
<li><strong>Web</strong></li>
<li><strong>Mobile</strong></li>
</ul>
<p>Além disso, é preferencial que seguirmos técnicas de design como:</p>
<ul>
<li><a href="https://www.alura.com.br/artigos/online-offline-first">Offline-First</a></li>
<li><a href="https://conteudodigitall.com.br/glossario/o-que-e-mobile-first-entenda-a-importancia/">Mobile-First</a></li>
</ul>
<p>Com isso, temos uma base boa para ter um software que não fica irritante com o tempo.</p>
<p>No geral, use <a href="https://flutter.dev/"><strong><em>Flutter</em></strong></a> para evitar ter que lidar com diversas plataformas manualmente.</p>
<h3 id="backend">Backend</h3>
<p>Para começar, precisamos entender do que é importante no backend de um SaaS.</p>
<p>Nada mais importante do que usar um <a href="https://blog.somostera.com/desenvolvimento-web/o-que-eframework">framework</a> maduro.</p>
<p>E no caso, pessoalmente falando, o melhor que temos é o <a href="https://rubyonrails.org/">Ruby On Rails</a> e veja que podemos migrar de <a href="https://www.ruby-lang.org/pt/"><strong><em>Ruby</em></strong></a> para <a href="https://www.jruby.org/"><strong><em>JRuby</em></strong></a> garantindo que a aplicação pode escalar se e somente se for necessário.</p>
<p>Adote testes como dogma literalmente, teste tudo, se tiver erro gere um teste, se tiver um bug teste, se tiver uma vulnerabilidade teste também.</p>
<p>Coloque:</p>
<ul>
<li><a href="https://github.com/rack/rack-attack"><strong><em>Rack Attack</em></strong></a></li>
<li><a href="https://github.com/presidentbeef/brakeman"><strong><em>Brakeman</em></strong></a></li>
<li><a href="https://github.com/teamcapybara/capybara"><strong><em>Capybara</em></strong></a></li>
<li><a href="https://github.com/flyerhzm/bullet"><strong><em>Bullet</em></strong></a></li>
<li><a href="https://github.com/MiniProfiler/rack-mini-profiler"><strong><em>Rack Mini Profiler</em></strong></a></li>
</ul>
<p>Veja que a ideia principal é que as libs do rails são maduras e testadas facilmente acopladas e no geral é muito melhor do que depender de si mesmo que só na cabeça vai querer inventar procedimentos de segurança que vai fazer pagar fortunas em indenizações.</p>
<p>Vide <a href="https://canaltech.com.br/seguranca/sapphos-tinder-lesbico-do-brasil-tem-falha-de-seguranca-grave-e-e-tirado-do-ar/">Noticia sobre o Saphoos</a>.</p>
<h3 id="devops">DevOps</h3>
<p>Dentro de seu <a href="https://www.portalinsights.com.br/perguntas-frequentes/o-que-e-startup-SaaS"><strong><em>Software as Service</em></strong></a>.</p>
<p>Você quer evitar ao máximo problemas de responsabilidade fiscal.</p>
<p>Então a coisa mais inteligente a se fazer é se mover de <a href="https://blog.engeman.com.br/diferencas-entre-capex-e-opex">capex (investimento na própria infra) para opex (contrato de serviços externos)</a>.</p>
<p>Use serviços como <a href="https://www.papertrail.com/solution/aws-logging/">paper-trail</a>, use a <a href="https://aws.amazon.com/pt/">amazon-web-service</a> &hellip;</p>
<p>O software continua sendo sua responsabilidade mas, problemas internos de servidores gerenciados por provedores não recaem diretamente sobre você, reduzindo riscos e permitindo focar no desenvolvimento.</p>
<p>Contrate <a href="https://www.malwarebytes.com/pt-br/cybersecurity/basics/what-is-ethical-hacking">Hackers Ético</a> e faça testes de segurança, corrija brechas periodicamente.</p>
<h2 id="conclusão">Conclusão</h2>
<p>No geral, a combinação ideal seria usar um <strong><em>backend</em></strong> em rails e um <strong><em>frontend</em></strong> em flutter.</p>
<p>Para ter diversas plataformas e um backend sólido, caso precise de algo customizado, use um microsserviço da forma que achar melhor contanto que haja contratos fortes e testes.</p>
<p>Jamais esqueça os testes.</p>
]]></content:encoded></item></channel></rss>