<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Rafael Nunes</title>
    <description>The latest articles on Forem by Rafael Nunes (@rafinhadev).</description>
    <link>https://forem.com/rafinhadev</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F975661%2F28b4b807-1ac7-42b8-bed4-92a80a0d614a.png</url>
      <title>Forem: Rafael Nunes</title>
      <link>https://forem.com/rafinhadev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/rafinhadev"/>
    <language>en</language>
    <item>
      <title>Sopa de pedras está me tornando um programador melhor</title>
      <dc:creator>Rafael Nunes</dc:creator>
      <pubDate>Sun, 11 Feb 2024 01:48:27 +0000</pubDate>
      <link>https://forem.com/rafinhadev/sopa-de-pedras-esta-me-tornando-um-programador-melhor-54g8</link>
      <guid>https://forem.com/rafinhadev/sopa-de-pedras-esta-me-tornando-um-programador-melhor-54g8</guid>
      <description>&lt;h2&gt;
  
  
  Sopa de pedras
&lt;/h2&gt;

&lt;p&gt;Por muito tempo tentei fazer sopas das mais variadas formas, pesquisando sobre diversos tipos de elementos que melhorariam a sopa e tirariam o melhor proveito. De fato um conhecimento curioso.&lt;br&gt;
Ultimamente, não tenho tantos ingredientes o quanto gostaria, o que me fez lembrar da história de 2 soldados voltando para casa após uma longa guerra. Ao chegar em sua cidade, acreditavam que os aldeões lhe dariam uma refeição, mas encontraram portas e janelas fechadas. Durante longos anos de conflitos, os aldeões não tinham muitos recursos e estocavam o que podiam.&lt;br&gt;
Então, os soldados acenderam uma fogueira e ferveram a água na panela, colocando cuidadosamente algumas pedras dentro. Abismados, os aldeões se aproximaram para ver o que eles preparavam "Essa é uma sopa de pedras" os soldados disseram. &lt;br&gt;
"Isso é tudo o que colocaram nela?" perguntaram os aldeões. &lt;br&gt;
"Exatamente, embora algumas pessoas digam que com algumas cenouras ela ficar melhor". Um dos aldeões foi em seu estoque e buscou uma cesta de cenouras.&lt;br&gt;
"É só isso?" &lt;br&gt;
"Bom, com algumas batatas ela daria mais sustância" disseram os soldados. &lt;br&gt;
Durante a hora que se seguiu eles listaram mais alguns ingredientes que melhorariam a sopa, acabaram obtendo uma grande panela fumegante. Eles então se sentaram e se puseram a comer a primeira refeição reforçada de ambos em meses. &lt;/p&gt;

&lt;h2&gt;
  
  
  Ser um catalisador da mudança
&lt;/h2&gt;

&lt;p&gt;Apesar de enganados, o ponto é que os soldados reuniram a vila, se tornaram um catalisador de mudança e conseguiram transformar o não em um sim. Um resultado que todos saíram ganhando.&lt;/p&gt;

&lt;p&gt;Pense em quantas vezes pediu alguma coisa e recebeu olhares vagos em troca. Solicitações sem resposta ou propostas que nunca vieram sem você saber o motivo. &lt;br&gt;
Ao pedir algo as pessoas faram orçamento, as coisas irão precisar ser aprovadas e terá de vencer a fadiga.&lt;br&gt;
Neste momento, é hora de usar as pedras e começar a cozinhar, planejar o que se pode pedir e se desenvolver, deixe que se adimirem com o resultado. Mostre um vislumbre do futuro e fará com que colaborem.&lt;/p&gt;

&lt;p&gt;Muitas das vezes minha sopa não tem ingredientes suficientes, eu poderia sentar e me lamentar, de fato fiz isso por muito tempo. Até que comecei a vislumbrar resultados que gostaria, porém, não conseguiria obter facilmente.&lt;/p&gt;

&lt;p&gt;As pessoas costumam seguir planos pré-definidos pelos outros muito facilmente quando vêm as possibilidades no futuro. Criar planos bem definidos, métodos, é uma maneira prática de conseguir fazer com que os outros colaborem ao ter um fim definido. &lt;br&gt;
O conhecimento é a estrada que pavimenta o caminho da riqueza, quando se sabe qual caminho tomar.&lt;/p&gt;

&lt;p&gt;Se a sopa for o seu código, poderia olhar para o HTML, CSS e JavaScript e pensar. &lt;br&gt;
"Bom, isso é muito básico, são apenas pedras" ou &lt;br&gt;
"Está na hora de fazer uma sopa de pedras".&lt;br&gt;
Se você se deixar abater pelas tecnologias que não sabe, é provável que ficará abatido por toda sua jornada como desenvolvedor.&lt;/p&gt;

&lt;p&gt;Apenas como exercício, pense em Henry Ford, mesmo não entendendo de carros, você deve saber quem ele foi. Aos 15 anos ele abandonou os estudos e se tornou mecânico. Durante sua vida ele poderia  ter se lamentado da instrução que não teve e a qual foi questionado ao longo de sua vida à medida que crescia profissionalmente. &lt;br&gt;
A verdade é que, mesmo que ele não tenha usado todo seu tempo para adquirir uma instrução geral, ele tinha conhecimento específico, planos bem definidos, os quais levaram ao cumprimento de seus objetivos, se tornando um agente catalisador. &lt;br&gt;
Você será tão instruído quanto qualquer pessoa que reunir para participar de seus planos. Um homem capaz de reunir pessoas instruídas é por si tão instruído quanto qualquer uma delas.&lt;/p&gt;

&lt;h2&gt;
  
  
  A teoria da janela quebrada
&lt;/h2&gt;

&lt;p&gt;A teoria da janela quebrada surgiu quando pesquisadores observavam o comportamento de prédios do interior e tentaram descobrir por que alguns são limpos e bem cuidados enquanto outros são deteriorados.&lt;br&gt;
Basicamente, os prédios com janelas quebradas davam aos moradores a sensação de abandono, então as pessoas começavam a acumular lixo na área externa, começam a surgir pichações, danos estruturais e em um tempo relativamente curto o prédio acumula problemas demais para se querer consertar.&lt;/p&gt;

&lt;h2&gt;
  
  
  Criaturas que não nascem pra morrer
&lt;/h2&gt;

&lt;p&gt;Não deixe a entropia dominar seu código, conserte as janelas quebradas os quanto antes. O código será como uma criatura, se for criado com intenção de durar, é preciso colocar as ideias em prática e não deixar a criatura morrer. A psicologia envolvida no processo é uma peça importante do momento em que ela poderá chegar ao fim. &lt;br&gt;
Existem projetos que apesar da grande adversidade para os manter funcionando, eles são concertados, enquanto bons projetos podem ser descartados por ter uma janela quebrada. Será que um carro perde seu valor ao quebrar a janela? Pense assim todas as vezes que detectar um problema na sua aplicação, se quiser que ela sobreviva tempo suficiente para contar história.&lt;br&gt;
Por fim, a entropia envolvida nos projetos, sejam eles profissionais ou pessoais, pode ser comparada a sopa de sapos. &lt;br&gt;
Os sapos pulam fora da água quente se você os colocar em água fervente, mas se os colocar em água fria, fervendo com eles dentro, muitos irão perder o momento de sair de água e serão cozidos.&lt;/p&gt;

&lt;p&gt;Não faça sopa de sapos. &lt;br&gt;
Faça sopa de pedras.&lt;/p&gt;

&lt;p&gt;A janela quebrada e os sapos estarão por toda parte. A tendência é que eles aumentem. Não deixe o caos se estabelecer e dominar, pratique constantemente colocar seus planos em ação, a maioria nem tem um plano.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>programming</category>
      <category>learning</category>
    </item>
    <item>
      <title>Seu aplicativo web pode ser monetizado</title>
      <dc:creator>Rafael Nunes</dc:creator>
      <pubDate>Wed, 31 Jan 2024 16:13:06 +0000</pubDate>
      <link>https://forem.com/rafinhadev/seu-aplicativo-web-pode-ser-monetizado-5eg8</link>
      <guid>https://forem.com/rafinhadev/seu-aplicativo-web-pode-ser-monetizado-5eg8</guid>
      <description>&lt;p&gt;Ultimamente tenho me contorcido na cama imaginando maneiras de monetizar aplicativos web Gratuitos.&lt;br&gt;
Em teoria a resposta é bem simples, basta gerar tráfego. A questão é: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;De onde viria esse tráfego? &lt;/li&gt;
&lt;li&gt;Quando as pessoas estivessem usando minha aplicação grátis o que eu ganharia com isso?&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Por quê monetizar?
&lt;/h2&gt;

&lt;p&gt;Monetizar aplicativos é uma ótima maneira de viver de internet, e provavelmente entender do negócio é mais importante do que codar.&lt;/p&gt;

&lt;p&gt;A tecnologia servirá como um braço para resolver problemas reais, mesmo que esses problemas sejam simples demais, alguém precisa de soluções simples. Problemas pequenos ainda são problemas, os mesmos demandam tempo, e através de um serviço web, é prático que se encontre algumas soluções por ai.&lt;/p&gt;

&lt;p&gt;Pense em uma to-do list, alguém criou a primeira e então a segunda veio, hoje existem milhares de to-do list na internet com os mais variados tipos de diferenciais, uma delas poderia ser a sua, por que não?&lt;br&gt;
Essa é uma pergunta que você terá que responder sozinho, por que não?&lt;/p&gt;

&lt;h2&gt;
  
  
  Mentalidade
&lt;/h2&gt;

&lt;p&gt;Uma mente pessimista não precisará pensar em muitos porquês, provavelmente pensará em um ou dois. O desafio aqui é ser otimista. Esse estado de espirito lhe levará a criar uma lista de porquês. Talvez você até faça uma "porquê-list" 😂&lt;br&gt;
Estimule o pensamento crítico, mas não perca o espirito que é necessário para a criação. &lt;/p&gt;

&lt;p&gt;Programar em um ambiente controlado é muito confortável, pode ser dolorido o processo de aprendizagem mas as dores de ter uma aplicação funcionando são potencialmente maiores. Os aprendizados dessa jornada serão grandiosos.&lt;br&gt;
Se você só segue o plano estruturado e bem definido de um professor, como se fosse uma escola em que uma provinha cai tudo o que você aprendeu. Tenho más notícias, é provável que você encontre problemas que jamais imaginaria encontrar.&lt;/p&gt;

&lt;p&gt;E agora? Irá desistir? &lt;br&gt;
Não seria surpresa dizer que a maioria fica pelo caminho. Quando pensar em parar reflita: &lt;br&gt;
O fracasso só se destina a quem desistiu. &lt;br&gt;
Se aceitar males como uma derrota temporária, se levantará mais vezes do que pode cair, talvez em alguma dessas vezes poderá descobrir que a oportunidade vem fantasiada de fracasso, e que tem um péssimo senso de humor. &lt;br&gt;
Empreender levará tempo, e assim como uma empresa demora para conseguir se estruturar não espere resultados imediatos. Embora existem casos que acontecem, não se julgue como a exceção.&lt;/p&gt;

&lt;p&gt;Faça o seguinte exercício. Imagine situações em que poderia uma aplicação simples resolver um problema. Quer um exemplo? &lt;/p&gt;

&lt;h2&gt;
  
  
  Monetizando
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F54dtyl1anbfvrdugnstn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F54dtyl1anbfvrdugnstn.png" alt="Site convert case" width="800" height="433"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Este é o convert case. Tecnicamente o que ele faz é só transformar texto. &lt;br&gt;
Ao clique de um botão o transforme em uppercase, taxado, somente a primeira letra maiúscula, todas minusculas... &lt;br&gt;
O programador colocou bastante opções para quem deseja usar. &lt;/p&gt;

&lt;p&gt;Esta aplicação é monetizada. Além da parte de doações também tem propagandas do google ads em sua página. &lt;br&gt;
O google ads por si só já é um tema gigantesco, mas basicamente o google se torna dono do seu site, pois para ser aprovado você precisa estar em acordo com sua enorme lista de conteúdo e politicas da empresa.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Seu site obrigatoriamente terá que ter algum conteúdo para ser monetizado pelo google ads, mesmo que esse conteúdo seja escrevendo as funcionalidades que ele oferece. &lt;/li&gt;
&lt;li&gt;Ele não poderá mais estar em faze de testes e seu domínio têm que já ter sido registrado a alguns meses.&lt;/li&gt;
&lt;li&gt;Por mais que ele seja uma aplicação será julgado como conteúdo.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Embora as politicas de conteúdo para exibir anúncio sejam bem chatas. É possível que consiga aprovação mesmo tendo pouco conteúdo escrito por página. Esse é o caso do convert case. &lt;br&gt;
O usei como exemplo pois foi o exemplo mais ilustrativo que conseguir pensar em que fosse somente a aplicação na página.&lt;/p&gt;

&lt;h2&gt;
  
  
  Google Ads
&lt;/h2&gt;

&lt;p&gt;Pense comigo, se o convert case é uma aplicação tão simples e nós conseguiriamos construi-la com um simples javaScript, e algumas vezes até com css... &lt;br&gt;
Por que você ainda não tentou? &lt;br&gt;
Uma aplicação que poderá te render verdinhas, dólares, pingando na sua conta todos meses. TODOS OS MESES.&lt;/p&gt;

&lt;p&gt;Isso me faz refletir se entrar de pé na porta para fazer isso para os outros é realmente o que eu consideraria justo, sabendo que essa possibilidade existe jamais será possível tirar essa conclusão sem tentar incansavelmente.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F58xk9c0dp3snum2ytj0f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F58xk9c0dp3snum2ytj0f.png" alt="Analize do similar web sobre o site convert case" width="800" height="387"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.6 milhões de visitas seria um valor interessante de visitas. Se você ganhar um valor estimado de US$ 0,15 com 25 page views, sua RPM de página será igual a (US$ 0,15/25) * 1000, ou US$ 6. &lt;br&gt;
Mas mesmo que fosse somente 1 dólar por cada 1000 já seriam 26 mil dólares.&lt;br&gt;
Os dados de visualizações foram tirados do site similar web, dia 31/01/2024.&lt;/p&gt;

&lt;p&gt;Não entenda errado, não significa que você ganhará isso. Mas imagine 200 dólares a mais todos os meses. Faria diferença para você?&lt;/p&gt;

&lt;p&gt;Ter um aplicativo tão acessado exigirá algum planejamento. Como por exemplo: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;estar dentro das políticas do programa &lt;/li&gt;
&lt;li&gt;não ser uma página sem saída &lt;/li&gt;
&lt;li&gt;ter divulgação através das redes sociais&lt;/li&gt;
&lt;li&gt;Ter um texto que o SO poderá ajudar.&lt;/li&gt;
&lt;li&gt;Navegabilidade&lt;/li&gt;
&lt;li&gt;Acessibilidade e responsividade&lt;/li&gt;
&lt;li&gt;Um texto com boas palavras chaves e SEO poderá te ajudar na rede de pesquisa.&lt;/li&gt;
&lt;li&gt;Autoridade de domínio e do site. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://support.google.com/publisherpolicies/answer/11112688#zippy=%2Cdicas-para-entender-a-pol%C3%ADtica"&gt;Políticas de conteúdo&lt;/a&gt;&lt;br&gt;
&lt;a href="https://support.google.com/adsense/answer/48182?hl=pt-BR"&gt;Políticas do google ads&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Não deixe de ler as políticas coso monetizar dessa forma seja do seu interesse.&lt;/p&gt;

&lt;p&gt;Nas próximas postagem no blog, irei tratar de Autoridade. &lt;br&gt;
Como saber a autoridade de um site. E posteriormente sobre palavras chave. Como escolher um mercado para criar meu app?&lt;br&gt;
Todos temas baseados nas minhas pesquisas que tem se tornado parte da minha rotina para tentar monetizar as aplicações que venho a criar.&lt;/p&gt;

&lt;h2&gt;
  
  
  Exemplo prático.
&lt;/h2&gt;

&lt;p&gt;Semana passada eu criei meu Primeiro aplicativo web funcional que resolve um pequeno problema. Gerar links para Whatsapp. &lt;/p&gt;

&lt;p&gt;Bom, ele funciona, tem um layout questionável, várias melhorias para ser implementadas mas está em pé. &lt;br&gt;
Podem conferir aqui: &lt;br&gt;
&lt;a href="https://github.com/rafinha-dev/Gerador-de-links-whatsapp"&gt;Gerador de links para WhatsApp&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Na ausência de conhecimentos específicos eu não criei um dos requisitos mais importântes para se monetizar no Google Ads, a navegabilidade. &lt;br&gt;
Portanto será necessário replanejar a distribuição da funcionalidade, introduzir conteúdo ao corpo do site e deixa-lo como um projeto funcional aos olhos do google. &lt;br&gt;
Também será nessesário fazer a compra do domínio para sua publicação, pensar em sua hospedagem fora do github e diversos outros fatores que irei compartilhar com vocês a medida que pesquiso e coloco em prática.&lt;/p&gt;

&lt;p&gt;Convido também aqueles que tem interesse em fazer um apoio mútuo participar do processo, afinal são uma diversidade de habilidades demandadas. &lt;br&gt;
Sou um programador front-end, disposto a me aventurar em outras áreas para que esse e demais projetos fiquem no ar. Meu propósito é resolver problemas de pessoas reais com tecnologia, e não guardar react no bolso.&lt;/p&gt;

&lt;p&gt;Tem interesse de participar do processo? Críticas ou dúvidas?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/in/rafinhadev/"&gt;linkedin&lt;/a&gt;&lt;br&gt;
&lt;a href="https://dev.to/rafinhadev"&gt;Me acompanhe no blog&lt;/a&gt;&lt;/p&gt;

</description>
      <category>googleads</category>
      <category>webdev</category>
      <category>frontend</category>
      <category>startup</category>
    </item>
    <item>
      <title>Um Convite para Redescobrir a Paixão pela Programação</title>
      <dc:creator>Rafael Nunes</dc:creator>
      <pubDate>Tue, 23 Jan 2024 03:20:10 +0000</pubDate>
      <link>https://forem.com/rafinhadev/um-convite-para-redescobrir-a-paixao-pela-programacao-3ogf</link>
      <guid>https://forem.com/rafinhadev/um-convite-para-redescobrir-a-paixao-pela-programacao-3ogf</guid>
      <description>&lt;p&gt;Esse é um relato da minha última semana, onde concebi um layout do figma até a tela final. &lt;br&gt;
Foram meses longe da programação, fazendo só alguma coisa aqui e ali. Para que as coisas tomassem rumos diferentes, decidi sentar todos os dias para fazer algo do início ao fim. Iniciar a formação de planos e hábitos no que mais gosto de fazer.&lt;/p&gt;

&lt;p&gt;Tudo começa no desejo, um desejo ardente que me impulsionou a colocar tudo para fora. Minha vontade era ir direto ao código, a parte mais delicinha. &lt;br&gt;
Porém, eu já sabia que fazer coisas sem nenhum planejamento seria como cavar várias covas rasas no deserto e que no fim eu acumularia frustração. &lt;br&gt;
Quando esse desejo se tornou tão irresistível que me fez agir, eu abri o figma e comecei a colocar tudo do jeito que eu imaginava (dentro das minhas limitações técnicas de não designer). Aqui está o link do figma: &lt;br&gt;
&lt;a href="https://www.figma.com/file/KpzPZPMQYjJVQG5B517eLW/Untitled?type=design&amp;amp;node-id=0-1&amp;amp;mode=design&amp;amp;t=43y1CnCCnYDAxKhP-0"&gt;Figma&lt;/a&gt;&lt;br&gt;
Sei que os designers vão se contorcer de dor ao ver meu layout, porém foi uma pequena conquista ao longo de 2 dias que me fez conseguir imaginar a concepção da estrutura do html necessária. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhnypp2s86b2a1ndrn47r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhnypp2s86b2a1ndrn47r.png" alt="desktop" width="470" height="300"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F57pd5z5uxm8f5q0a3r5q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F57pd5z5uxm8f5q0a3r5q.png" alt="Mobile" width="373" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Com as duas estruturas uma ao lado da outra consegui planejar fixamente imaginando se usaria flex ou grid para organizar o conteúdo. &lt;br&gt;
Observe que para alguém em processo de retomada e se esqueceu de muita coisa no código, quanto esforços custariam a tentativa e erro até conseguir uma estrutura legal no html e css? Provavelmente essas seriam as covas rasas que eu cavaria no deserto sem achar água.&lt;/p&gt;

&lt;p&gt;Rapidamente falando um pensamento furtivo. Antes de formar esse plano eu me lembrei de quantas pessoas menos capacitadas tecnicamente construíram soluções que eu não fiz. E mais, foram recompensadas por isso mesmo que fosse uma coisa super simples demais. Este projeto é uma declaração de "Eu posso, sou capaz de fazê-lo e farei sem hesitar." É algo que me reconecta com meu propósito, solucionar problemas com tecnologia.&lt;/p&gt;

&lt;p&gt;Planejar, embora eu reconheça minha conquista com esse projeto, também preciso reconhecer meu fracasso. Planejei bem a estrutura do código, mas não planejei bem em como eu conseguiria monetizar esse trabalho. Afinal é um problema simples, mas existem pessoas na internet que ganham dinheiro com essa mesma solução! Então por que não a minha? &lt;br&gt;
E a resposta é, porque eu não planejei corretamente o modelo de monetização. Acreditei sem ler os termos que poderia me registrar no google ads e ser monetizado, não pensei na quantidade de pessoas que usariam a ferramenta recorrentemente e falhei em planejar algo que atendesse aos requisitos do google ads, que já é um assunto tão extenso que vale uma postagem só para isso. Por fim, deixei um campo para aqueles que desejam entrar em contato para automatizar seu whatsapp com chatbot, e um campo para doação caso essa ferramenta ajude alguém que deseja contribuir de alguma forma.&lt;/p&gt;

&lt;p&gt;Motivado, agir foi a parte mais fácil até o 6, dia onde ví que algumas coisas atrasadas estavam demorando demais. No total, foram 8 dias para desenvolver a ferramenta, considerando o tempo que fiquei trabalhando nela não foi integral. &lt;br&gt;
O tempo para pensar em lógica, métodos e funções novamente e codar, postar essa ferramenta, criar postagens e tentar alcançar a comunidade de alguma forma para que alguém veja e diga. "Ei, esse código pode ser melhorado em tal parte" feedbacks justos.&lt;br&gt;
Houve inúmeros pormenores no processo de ação de codar como:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A implementação de acessibilidade com a tecla tab&lt;/li&gt;
&lt;li&gt;O botão de submit do  que ao usar um  e um  para outra função, descobri que mesmo sem ser type submit funciona como se fosse, e isso dava conflito no meu javascript.&lt;/li&gt;
&lt;li&gt;Colocar um icone de compartilhamento com link do site, pegando um método nativo do navegador navigator.share() para celular (até então não deu certo, mas vou pesquisar até conseguir fazer funcionar e fazer uma postagem sobre isso.)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Por fim, no sétimo dia, por mais curioso que eu seja,já estava saturado de procurar soluções para colocar como "qual seria o melhor anúncio de ferramentas para automação de whatsapp", &lt;br&gt;
"como implementar e onde as propagandas do google ads..." Questões em relação a hospedagem paga pois vou comprar um domínio para colocar essa ferramenta melhor posicionada nas buscas. Embora isso seja outra coisa que a princípio também não pensei, nomes e títulos para ranquear melhor. Por sí só é um enorme trabalho a parte.&lt;/p&gt;

&lt;p&gt;Da para ver que por mais que seja trabalhoso transpor um layout, um projeto independente tende a ser bem mais trabalhoso, pois se escolher o método tradicional de front-end com código, é muito trabalho a se fazer, e pretendo compartilhar aqui essas dificuldades e soluções, me conectar com vocês pelo conhecimento que poderá ser agregado.&lt;/p&gt;

&lt;p&gt;Por fim a aplicação saiu! Por enquanto no github pages, mas embreve em uma hospedagem própria sem restrições de código de rastreamento. Confiram  ela no github: &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xr3BLOl6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://rafinha-dev.github.io/Gerador-de-links-whatsapp/" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xr3BLOl6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://rafinha-dev.github.io/Gerador-de-links-whatsapp/" alt="Gerador de links para whatsApp" width="" height=""&gt;&lt;/a&gt;&lt;br&gt;
Aqui uma prévia do que ela faz: &lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz6cqji32xgquwrtwj3tm.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz6cqji32xgquwrtwj3tm.gif" alt="gif da funcionalidade" width="575" height="504"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Acredito que a formação de planos imperfeitos ou com problemas não devem ser motivo para desistência. Quando eu comecei, sabia que iria errar, mas também sabia que estes planos são caminhos para criar planos melhores. Se você está passando por um período difícil, saiba que é possível reacender essa chama. Seja curioso, celebre suas conquistas, compartilhe seu conhecimento, conecte-se com outros e lembre-se sempre do seu propósito.&lt;br&gt;
Acredito fortemente que me tornarei um desenvolvedor independente, e com essa determinação, planos, hábitos, movido pelo desejo não aceitarei o contrário pois sei que sou capaz e não irei me convencer do contrário. Se você também tem uma determinação, torne-se consciente de suas metas, não evite falhar, pois só fracassa aqueles que desistem.&lt;br&gt;
Veja o resultado, com uma semana consegui colocar um plano imperfeito em prática. &lt;br&gt;
Escolha pequenos problemas, pequenas soluções é provável que consiga completar uma tarefa de uma semana do que ter motivação para completar uma de dois meses.&lt;br&gt;
Visite meu github : &lt;a href="https://github.com/rafinha-dev?tab=repositories"&gt;Gihub&lt;/a&gt;&lt;br&gt;
Visite também meu linkedin: &lt;a href="https://www.linkedin.com/in/rafinhadev/"&gt;Linkedin&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>html</category>
      <category>css</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Como criar boas imagens com Stable Diffusion</title>
      <dc:creator>Rafael Nunes</dc:creator>
      <pubDate>Tue, 20 Dec 2022 02:08:10 +0000</pubDate>
      <link>https://forem.com/rafinhadev/como-criar-boas-imagens-com-stable-diffusion-1kej</link>
      <guid>https://forem.com/rafinhadev/como-criar-boas-imagens-com-stable-diffusion-1kej</guid>
      <description>&lt;p&gt;Para esse tutorial eu vou resumir a um categoria de criação desse aplicativo, a criação usando prompts para gerar imagens.&lt;br&gt;
O promp é uma área que você coloca as palavras preferencialmente em inglês para uma imagem ser gerada. Sendo dividido entre promt e promt negativo. Se no prompt você coloca as coisas que você quer que apareça, no prompt negativo você coloca as coisas que você não quer!&lt;/p&gt;

&lt;p&gt;Isso já ilustra bem o que você deve fazer, mas é bem complexo esse funcionamento e eu vou resumir em alguns tópicos para não gerar confusão. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ATENÇÃO!!&lt;br&gt;
Esse post contem nudez artística gerada por inteligência artificial (um desenho) , se você se sente ofendido por esse categoria de conteúdo não recomendo que leia esse post.&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prioridade&lt;/li&gt;
&lt;li&gt;Especificidade&lt;/li&gt;
&lt;li&gt;Resolução&lt;/li&gt;
&lt;li&gt;Configurações básicas&lt;/li&gt;
&lt;li&gt;Influências&lt;/li&gt;
&lt;li&gt;criando imagens semelhantes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Prioridade
&lt;/h2&gt;

&lt;p&gt;A ordem de prioridade de um promt é feita da primeira palavra para última, se eu digitar:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;a cyberpunk girl with white hair
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;"a cyberpunk" terá mais prioridade do que o resto da frase. "girl" terá mais prioridade do que o resto da frase, mas menos prioridade do que "a cyberpunk". Isso significa que se eu colocar:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;a girl cyberpunk with white hair
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Provavelmente terei resultados diferentes, isso mesmo, resultados. &lt;br&gt;
O programa por padrão conta com uma certa aleatoriedade que se você não controla, toda vez que apertar o botão uma surpresa vai aparecer com a mesma frase. &lt;br&gt;
E isso é ótimo, pois assim da margem para fazer várias experimentações com o mesmo promp.&lt;/p&gt;
&lt;h2&gt;
  
  
  Especificações
&lt;/h2&gt;

&lt;p&gt;As especificações de um prompt podem ser divididas em 2 categorias. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;( parênteses ) &lt;/li&gt;
&lt;li&gt;{ colchetes } &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Enquanto os parênteses vão dar mais relevância em algo da fraze os colchetes vão fazer com que sejam menos relevantes. &lt;br&gt;
A regra inicial ainda vale, mas isso pode mudar a forma com que o computador enxerga essas partes que você vai dar mais relevância.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;a cyberpunk girl with (white hair)

a cyberpunk girl with ((white hair))

a (cyberpunk) girl with ((((white hair))))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Na última eu dei tanta ênfase no cabelo branco que provavelmente alguns pontos do resto podem até ter passado despercebido na imagem gerada, isso pode destorcer o contexto e fazer com que as coisas fiquem diferentes do que você esperava. O oposto Também pode acontecer com as chaves, use-as com sabedoria. &lt;br&gt;
Nos meus testes quando eu usava mais de 3 o contexto da frase começava a ficar deixado de lado pelo algoritmo. Então, você precisará achar um ponto que lhe agradar melhor e o mais importante; TESTAR BASTANTE!&lt;br&gt;
Quanto mais específico e menos conhecido o que você colocar no prompt, mais chances você tem de não chegar no resultado esperado.&lt;/p&gt;
&lt;h2&gt;
  
  
  Resolução
&lt;/h2&gt;

&lt;p&gt;Bem brevemente! Será possível você editar o tamanho da imagem antes que ela seja gerada. O tamanho que você definir, será de extrema importância para o resultado. Menos que 512 x 512 pixels ela fica com resultado bem ruim ou bem distorcido. Já 512 x 768 para meus testes é ótimo para gerar imagens de corpo todo. E com a resolução 1360 x 768 é excelente para gerar imagens que pegam paisagens. &lt;/p&gt;

&lt;p&gt;A princípio eu pensei nesses tamanhos por ter relação direta com a tela que eu colocaria isso, simplesmente para ajustar e usar como plano de fundo, ou para postar em alguma rede social. Entretanto se você trocar a resolução, irá trocar o resultado. &lt;br&gt;
No Stable Diffusion especificimente não dá pra aumentar a resolução depois da imagem criada, já ví outros que fezem mas eram pagos. Provavelmente existe algum software livre que seja capaz de aumentar a resolução se é o resultado que você deseja buscar, recomendo fazer uma busca por essa funcionalidade pois trocar o tamanho da imagem gerada retornará outra.&lt;/p&gt;
&lt;h2&gt;
  
  
  Configurações básicas
&lt;/h2&gt;

&lt;p&gt;Com certeza você encontrará tutoriais bem mais detalhados sobre configurações. Entretanto existem algumas coisas que podem ser importantes configurar especialmente se você está usando a versão do Google Colab. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pByY5B0X--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xoseei8ngi6lw3rc8wkj.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pByY5B0X--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xoseei8ngi6lw3rc8wkj.gif" alt="Settings stable diffusion" width="880" height="427"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Upscaling
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;R-ESRGUN 4X+&lt;br&gt;&lt;br&gt;
irá trazer traços mais realistas&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;R-ESRGUN 4X+ Anime 6b &lt;br&gt;
Irá trazer traços mais desenhados.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Face Restoration
&lt;/h3&gt;

&lt;p&gt;A opção &lt;code&gt;code former&lt;/code&gt; é bem interessante para trazer bons resultados para um rosto. &lt;br&gt;
E na linha que vai de 0 a 1, me recomendaram preencher com 6, onde quanto maior o número mais precisos ficariam os traços do rosto. Experimente...&lt;/p&gt;
&lt;h3&gt;
  
  
  Stable Diffusion
&lt;/h3&gt;

&lt;p&gt;O checkbox&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;[x] Emphasis: use (text) to make a model pay more atention to text and [text] to make it more pay less atention&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Se não marcado irá fazer com que o que você coloque no prompt fique mais preciso, porém fica bem mais complicado de entender esse caminho. Por via das dúvidas deixe marcado.&lt;/p&gt;
&lt;h2&gt;
  
  
  Influências
&lt;/h2&gt;

&lt;p&gt;Para conseguir fazer prompts melhores é bom que você analise o prompt de outras pessoas &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://rentry.org/artists_sd-v1-4"&gt;https://rentry.org/artists_sd-v1-4&lt;/a&gt; você irá encontrar vários estilos para colocar no seu prompt e seguir um resultado interessante e aproximado.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://lexica.art/"&gt;https://lexica.art/&lt;/a&gt; você encontrará prompts dos quais poderá testar no seu e ver os resultados que consegue &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Os dois são ótimos para começar, e você pode testar usando o rentry da seguinte forma:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;a real (cyberpunk woman) with a white hair, Agnes Cecile

a real (cyberpunk woman) with a white hair, (Agnes Cecile)

a real (cyberpunk woman) with a white hair, ((Agnes Cecile))

a real (cyberpunk woman) with a white hair, ((Agnes Cecile)), Casey Baugh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Repare que eu já até adicionei o nome de um segundo artista para colocar o nome de arte e isso fica sensacional&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Primeira forma&lt;/th&gt;
&lt;th&gt;Segunda forma&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--T92r_7iy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/813jej6px9rzanyon4rb.png" alt="Image description" width="512" height="768"&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---f7XdDge--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7s3aah82zvwj5l0gcoez.png" alt="Image description" width="512" height="768"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Criando imagens semelhantes.
&lt;/h2&gt;

&lt;p&gt;Criar imagens semelhantes como o exemplo acima vai demandar um tipo de refinamento que controla um pouco essa aleatoriedade. &lt;br&gt;
O Seed é a informação que permite que toda vez que você aperte o botão com o mesmo prompt gere uma imagem nova.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BvFCdSF0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/thi6wr1o1s2tbd4rwlfy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BvFCdSF0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/thi6wr1o1s2tbd4rwlfy.gif" alt="capturando o seed" width="880" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;É possível capturar esse seed da imagem que você gerou clicando no sinal verde quando ela é carregada, ao clicar no dado ela volta a ficar aleatória. &lt;br&gt;
E também é possível pegar de uma imagem salva que você não tenha alterado a descrição. &lt;/p&gt;

&lt;p&gt;&lt;code&gt;00041-3430797675-a real (cyberpunk woman) with a white hair, Agnes Cecile.png&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;O primeiro bloco representa o número da foto, você pode usar esse valor para pesquisa-la na sua galeria caso goste dela ou tenha como referência.&lt;/li&gt;
&lt;li&gt;O segundo valor é o Seed, esse que você preenche no campo Seed, para deixar a aleatoriedade gigantesca que o programa tem mais próxima do que você quer. Se deixar o padrão -1, cada imagem iá ser gerada com um Seed diferente, e vocẽ não irá conseguir controlar só com pequenas alterações no prompt. &lt;/li&gt;
&lt;li&gt;Depois vem a descrição do prompt. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Agora você já sabe como fazer para gerar uma imagem semelhante. Existem algumas coisas que é bom relembrar que podem afetar essa igualdade. Tamanho da resolução, versão do programa, configurações, o sampler e os steps. &lt;br&gt;
Os steps são a quantidade de passos que o programa vai ter para montar sua imagem. &lt;br&gt;
Para rostos tenho conseguido bons resultados em torno de 20 a 35 steps, e para objetos extremamente detalhados próximo do máximo de 150, porém as descrições ficam muito específicas.&lt;/p&gt;

&lt;p&gt;Segue imagens que eu adorei compor.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;00101-3430797675-a real (cyberpunk woman) with a white hair and (((((big mamma))))), Agnes Cecile.png&lt;/th&gt;
&lt;th&gt;00182-3430797675-a real ((cyberpunk girl)) with a (white hair) and (beautiful (large tits) naked), Agnes Cecile, Casey Baugh.png&lt;/th&gt;
&lt;th&gt;00192-3430797675-a real (cyberpunk woman) with a white hair and (beautiful large tits naked), Agnes Cecile, Charlie Bowater, (Casey Baugh).png&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YzjrYnxH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/81iyhf4trmldlhncsglj.png" alt="oculos bacana" width="512" height="768"&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7zH5lA_l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/58q9vmotouv8id2sz869.png" alt=" mulher cyberpunk " width="512" height="768"&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--y7uEUDXI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dtl3qfa5z6kq28ytkqsq.png" alt="Mulher cyberpunk description" width="512" height="768"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Por último você irá poder testar bastante para atingir diversos tipos de personagens e alcançar seus resultados.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>fotos</category>
      <category>tutorial</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Como usar o Stable diffusion</title>
      <dc:creator>Rafael Nunes</dc:creator>
      <pubDate>Sun, 18 Dec 2022 16:23:07 +0000</pubDate>
      <link>https://forem.com/rafinhadev/como-usar-o-stable-diffusion-2ocb</link>
      <guid>https://forem.com/rafinhadev/como-usar-o-stable-diffusion-2ocb</guid>
      <description>&lt;h2&gt;
  
  
  O passo a passo de como criar artes digitais.
&lt;/h2&gt;

&lt;p&gt;O Stabble Difusion é o queridinho do momento criado pela OpenAI. Existe a mais diversa gama de possibilidades de artes que você pode criar, inclusive treinar o algoritmo para criar artes personalizadas ao seu gosto.&lt;br&gt;&lt;br&gt;
O tutorial de como gerar cada foto ficará para o próximo post, já que para usar ele é necessário aprender a como acessa-lo não é muito fácil de se fazer, dispensando a instalação vou mostrar uma forma de como usar.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hugging face
&lt;/h2&gt;

&lt;p&gt;Se você está curioso para testar esse programa entre aqui :&lt;br&gt;&lt;br&gt;
&lt;a href="https://huggingface.co/spaces/stabilityai/stable-diffusion"&gt;Huggingface&lt;/a&gt;&lt;br&gt;&lt;br&gt;
Pronto, com a versão demo você pode satisfazer seus desejos pandoricos de apertar o botão de gerar a foto, mas se você quer ir mais fundo como eu, vou mostrar como eu usei o google colab para rodar esse programa. O principal motivo de não baixar localmente é a quantidade de recursos que gerar essas fotos consomem, infelizmente não tenho hardware suficiente para aguentar essa missão, não cheguei a consultar nenhuma documentação porque algumas pessoas chegaram a falar de 4GB para GPU e eu não tenho nem 1GB, mas tenho uma solução que me permite usar um hardware simples para ela.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cadastrese no huggingface&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--33YiU8nI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/osvumfsuwpkjpwr4imqe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--33YiU8nI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/osvumfsuwpkjpwr4imqe.png" alt="Cadastre-se" width="880" height="338"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Abra na pagina inicial e feito o cadastro você receberá um e-mail de confirmação, confirme e faça o login na sua conta.&lt;br&gt;&lt;br&gt;
Posteriormente vamos criar o token de acesso.&lt;/p&gt;

&lt;h2&gt;
  
  
  Google collab
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Usando o google drive e o google colab  &lt;a href="https://colab.research.google.com/github/M-art-ucci/localization-pt-for-A1111-webui/blob/main/Instala%C3%A7%C3%A3o_do_Stable_Diffusion_em_Portugu%C3%AAs.ipynb#scrollTo=Y9EBc437WDOs"&gt;Google Colab link&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--iXzPVHTW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zxnpbft1kkokwwvt8en6.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--iXzPVHTW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zxnpbft1kkokwwvt8en6.gif" alt="Google Colab" width="880" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Serão 5 passos de inicialização e na primeira etapa será preciso vincular a sua conta do google, lá é onde serão armazenados os dados no seu google drive. Dentro do seu drive será criado uma pasta chamada SD onde estarão os dados do programa e posteriormente poderão ser guardadas as fotos. Recomendo que você abra seu drive e verifique se essa pasta foi criaada para dar continuidade.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Aperte play nas demais etapas e espere carregar, algumas podem demorar alguns instantes até a etapa Download de Modelo/Carregar.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Quando chegar na etapa Download de Modelo/Carregar vai ser preciso colocar o token de acesso na parte escrita &lt;em&gt;token:&lt;/em&gt;&lt;br&gt;&lt;br&gt;
Esse token é pegado lá no hugging face acessando a area Settings no lado esquerdo e selecionando a area token para criar um token novo. Assim como mostra o giff.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rk0vnRsZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/94njlba0w4n20b9icmtk.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rk0vnRsZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/94njlba0w4n20b9icmtk.gif" alt="Acessando o token do huggingface" width="880" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Eu tive problemas nessa parte pois o promp vai te pedir autorização e te retornar um link para aceitar os termos no qual você deve acessar. Eu abri o link e li todo o documento dele mas não tinha nada para aceitar.&lt;br&gt;&lt;br&gt;
Porém eu &lt;strong&gt;recarreguei a pagina&lt;/strong&gt; e recomecei o processo passo a passo e me parece ter sido aceito automaticamente, nesse momento usei a versão 1.5 no colab e nesse tutorial o link se refere a essa versão, você pode ou não ter esse problema com o link que o prompt te retornar!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; Agora é só fazer a inicialização .&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FMcNPInz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/axsatmcmdh97avdse7jn.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FMcNPInz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/axsatmcmdh97avdse7jn.gif" alt="Inicializando o Stable Diffusion no Google Colab" width="880" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Nessa ultima etapa assim como na etapa de vincular o token, pode demorar um tempo. O prompt te retornará dois links, a url local e a url pública.&lt;br&gt;&lt;br&gt;
Com a url pública você pode fazer o acesso e se quiser pode rodar até no celular.&lt;/p&gt;

&lt;h3&gt;
  
  
  Onde aprendi a usar o Stablle Diffusion
&lt;/h3&gt;

&lt;p&gt;O que me motivou a escrever esse artigo foi o canal do &lt;a href="https://www.youtube.com/@m_art_ucci"&gt;Martucci&lt;/a&gt; no youtube, e se você quiser ver o tutorial dele para fazer a instalação do programa em português segue o link:&lt;br&gt;&lt;br&gt;
&lt;a href="https://www.youtube.com/watch?v=JQVvl6VZSXg"&gt;Tutorial no youtube&lt;/a&gt;&lt;br&gt;&lt;br&gt;
No canal dele você encontrará um conteúdo incrivel sobre stabble difusion. E se quiser encontrar a comunidade no discord:&lt;br&gt;&lt;br&gt;
&lt;a href="https://discord.com/invite/9ZFdQH5YP6"&gt;Convite do discord&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Abraço galerinha.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>googlecolab</category>
      <category>tutorial</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Atomic commits</title>
      <dc:creator>Rafael Nunes</dc:creator>
      <pubDate>Mon, 12 Dec 2022 22:04:39 +0000</pubDate>
      <link>https://forem.com/rafinhadev/atomic-commits-2dcj</link>
      <guid>https://forem.com/rafinhadev/atomic-commits-2dcj</guid>
      <description>&lt;p&gt;Sabe quando você vê uma pessoa que está pesada e sobrecarregada ? &lt;br&gt;
Provavelmente você já presenciou algum amigo que acumulou problemas até o ponto que não aguentava mais e colocou tudo pra fora de uma vez. &lt;br&gt;
Veio tudo com uma avalanche , e provavelmente isso causou mais problemas .&lt;br&gt;
E depois desse ponto alguns chegam a se apegar ao problema que essa avalanche criou , ao ponto que o problema se tornou maior do que a situação , até que ! As pessoas desistem. Tentam começar de novo , algumas até seguem os mesmos passos e se enrroscam no mesmo raciocínio como um círculo sem começo nem fim.&lt;/p&gt;

&lt;p&gt;Eu já tive esse carma, e hoje felizmente já consigo me ver livre dele.&lt;br&gt;
Eu estou aqui pra falar de código , e como atomic commits mudou a minha forma de pensar, e ao poucos fui tirando esse peso.&lt;/p&gt;
&lt;h2&gt;
  
  
  Projetos
&lt;/h2&gt;

&lt;p&gt;Meu GitHub era definitivamente uma enorme montanha de código sem vida , algo com início , meio e sem fim.&lt;br&gt;
De um commit pro outro não era um tijolo , era a casa inteira. Ainda tenho muito disso nele e parte da soluçao foi dar foco ao que eu estava fazendo, e com dar foco eu comecei a olhar mais de perto. &lt;br&gt;
Com isso fui fazendo commits menores , de forma que eu pudesse olhar pra traz e pensar , será que essa soluçao aqui foi a melhor ? E ao invez olhar um problema grande , eu comecei a enchergar pequenos problemas e com isso as coisas começaram a andar, a sensaçao de "isso é muito difícil " começou a diminuir.&lt;/p&gt;
&lt;h2&gt;
  
  
  Boas práticas
&lt;/h2&gt;

&lt;p&gt;Atomic commits é uma boa prática do git pra marcar no seu código alguns  "snapshots " , ou versões dele a medida que a linha do tempo aumenta. &lt;br&gt;
Imagine você , desenvolvendo uma soluçao até que em alguma parte um bug começa a imendar no outro, e você já não sabe mais o que fazer . Quando você olha pro seu codigo, nem consegue enchergar direito os tijolos mais, alguém já pode até ter mechido e as coisas ficam acumuladas , problemas acumulados vindos todos de uma vez. O contl-z você já apertou inúmeras vezes e ao invez de melhorar parece que piora.&lt;/p&gt;

&lt;p&gt;Com atomic commits é só você voltar pra última versão em que tudo funcionava . BOMM , o planeta explodiu e você vai lá ver o que aconteceu antes dele explodir.&lt;/p&gt;
&lt;h2&gt;
  
  
  git
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git add .
git commit -m "Aqui meu código funciona"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Pronto , pra voltar pro último commit:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git reset --hard 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;E inspecione por que o planeta explodiu .&lt;br&gt;
E caso a última versão tenha passado algo que você não viu e que ir mais a fundo :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git log --oneline 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Pegue os caracteres iniciais desse commit e coloque :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git checkout 90ajf784

//Caracteres do commit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;E aqui está uma outra versão mais antiga a sua escolha. Caso você queira partir desse ponto você vai precisar criar uma nova branch pois uma versão mais antiga que o último commit modificada daria conflito com o próximo commit a frente . &lt;br&gt;
Seria possível fazer algo como ; &lt;/p&gt;

&lt;p&gt;&lt;code&gt;git branch hot-fix&lt;/code&gt;&lt;br&gt;
 do ponto que você voltou, e fazer um checkout na branch que você acabou de criar . &lt;/p&gt;

&lt;p&gt;&lt;code&gt;git checkout hot-fix&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;O mais importante desse processo é que ele te permite ver onde você errou e criar uma nova estratégia .&lt;/p&gt;

&lt;p&gt;Eu gostei tanto disso que trouxe pra minha vida . Um processo passo a passo "baby steps " , sequências de pequenas conquistas merecem comemoraçoes. &lt;br&gt;
Talvez você não tenha grandes soluçoes pra grandes problemas , mas tenha soluçoes pra problemas pequenos .&lt;br&gt;
E se ser programador é ser um solucionador de problemas :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git add .
git commit -m 'passo 1 ' 

git add . 
git commit -m 'passo 2' 

git add . 
git commit -m 'passo 3'

git checkout master

git merge hot-fix 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Agora você tem um conflito de merge , mas se você está interessado em git vou deixar pra você a soluçao .&lt;/p&gt;

&lt;h2&gt;
  
  
  Solucionar problemas
&lt;/h2&gt;

&lt;p&gt;Definitivamente atomic commits trás uma nova versão de modo de pensar , eu me deparei com esse pensamento quando vi pessoas que tinham menos conhecimentos que os meus solucionando problemas maiores que eu conseguia. Até  que percebi que eu estava apegado às problemas que eu criei, revirando soluçoes de programadores que fizeram coisas simples mas resolveram problemas, só tenho a agradecer a comunidade por deixar o código aberto. As vezes vejo os códigos como criaturinhas que alguém criou, pronta pra fazer alguma coisa .&lt;/p&gt;

&lt;p&gt;O que acha implementar atômic commits no código ? &lt;br&gt;
E quem sabe criar hábitos atômicos na sua vida ?&lt;/p&gt;

</description>
      <category>git</category>
      <category>habit</category>
      <category>javascript</category>
      <category>programming</category>
    </item>
    <item>
      <title>O que faz um dev front-end</title>
      <dc:creator>Rafael Nunes</dc:creator>
      <pubDate>Sun, 11 Dec 2022 01:53:38 +0000</pubDate>
      <link>https://forem.com/rafinhadev/o-que-faz-um-dev-front-end-1g9j</link>
      <guid>https://forem.com/rafinhadev/o-que-faz-um-dev-front-end-1g9j</guid>
      <description>&lt;h1&gt;
  
  
  O que o mercado pede
&lt;/h1&gt;

&lt;p&gt;Pra responder essa pergunta é importante que se tenha uma perspectiva de momento de mercado ou até da empresa que se está levando em consideração. Cada vez mais as soft skils tem sido um diferencial para se definir a contratação de um novo desenvolvedor.&lt;br&gt;
Nesse momento especifico está tendo uma recessão no mercado de tecnologia pós pandemia, um trade-off bem grande , e com certeza as empresas vão cobrar desenvolvedores mais experiêntes para exercer a função de front-end.&lt;br&gt;
Em tempos anteriores ser um full stack por exemplo era mais fácil que hoje com web master, porem hoje cada stack em sí já tem uma quantidade muito grande de conteúdo sosinha e é preciso ter um foco para se tornar um expecialista.&lt;/p&gt;

&lt;h2&gt;
  
  
  A função do front-end
&lt;/h2&gt;

&lt;p&gt;Basicamente, o desenvolvedor front-end transforma um layout feito por um designer UI, wireframe feito em um figma da vida em um projeto para navegadores. &lt;br&gt;
O figma é uma aplicação que fornece medidas dos objetos, paleta de cores do wirefreame facilitando bastante a vida do desenvolvedor. É possível transformar imagens em projetos para navegadores também, dando um pouco mais de trabalho para o desenvolvedor front-end como por exemplo descobrir o tipo da fonte, o tamanho das letras, as cores, tamanho dos objetos ... Mas não é uma tarefa impossivel.&lt;/p&gt;

&lt;p&gt;Pode a principio parecer simpres transformar algo feito por um designer em uma interface para navegadores. Porém hoje existem uma série de competências que devem ser adiquiridas pelo desenvolvedor. &lt;br&gt;
Implementação de acessibilidade, Tecnicas de clean code, regras de conventional commits no código, responsividade , testes unitarios, desempenho da interface , Pixel perfect  são algumas das competências que geralmente são usadas por desenvolvedores front-end. Tudo isso para transformar um designe em código, dando  vida ao projeto e o deixando de pé. &lt;br&gt;
È no front-end que se define se a cor de um objeto muda quando você passa o mouse em cima, que se faz uma mensagem de erro quando você erra o login no formulario de uma rede social entre outras coisas. &lt;/p&gt;

&lt;p&gt;O desenvolvedor acaba por adiquirir algumas outras habilidades como por exemplo fazer uma integração de API a uma página com javaScript consumindo dados, fazer um crud, uso de um fire base para integrar banco de dados a uma pagina por exemplo. &lt;br&gt;
Na propria interface pode ter o uso de javaScript quando você clica em um botão, não necessariamente isso é uma coisa de back-end, a maioria das pessoas acaba acreditando que a linguagem de programação só é usada por quem desenvolve a API em si, o que não é verdade.&lt;/p&gt;

&lt;p&gt;A exemplo disso temos frame works javaScript como React.js , Vue.js que são feitos para navegadores e usados por desenvolvedores front-end, sendo tecnologias mais atuais usadas no mercado.&lt;br&gt;
Cada vez mais se cobra além de java script o type-script para uma tipagem mais forte na linguagem e diminuir o tempo  de manutanção por exemplo, o uso de Sass, um framework UI como tailwind.&lt;br&gt;
Tecnologias como o botstrap tem caido seu uso depois das funcionalidades de flex-box e grid do css. Cada vez mais exitem atualizações no css para se fazer o basico com ele e evitar o uso de muito código, deixando as paginas cada vez mais leves, um ponto de evolução que nem os proprios navegadores acompanham as linguagens na medida das atualizações, um profissional front-end tem que sempre estar se atualizando em relação as novas features da tecnologia se interando com a comunidade, lendo documentações e testando.&lt;/p&gt;

&lt;p&gt;Ocasionalmente você pode ver um desenvolvedor front-end também rodando aplicações com docker e hospedando elas na AWS ou digital ocean, cada vez mais usando uma comunicação com servidores. Muitas empresas acabam por ver essa soft-skill mais como uma hard skill ao longo da carreira. Ou ao invez de ir pra essa ponta da tecnologia o wireframe ser feito pelo dev. &lt;br&gt;
Existiram uma serie de habilidades que podem ser uteis para um dev front-end e tornar o trabalho diferenciado da maioria. &lt;/p&gt;

&lt;p&gt;Você gosta da Area de front-end ? Já conhecia o trabalho de um dev ? &lt;/p&gt;

</description>
      <category>java</category>
    </item>
    <item>
      <title>Uma maneira de ganhar dinheiro programando</title>
      <dc:creator>Rafael Nunes</dc:creator>
      <pubDate>Fri, 09 Dec 2022 03:04:24 +0000</pubDate>
      <link>https://forem.com/rafinhadev/uma-maneira-de-ganhar-dinheiro-programando-2f0h</link>
      <guid>https://forem.com/rafinhadev/uma-maneira-de-ganhar-dinheiro-programando-2f0h</guid>
      <description>&lt;p&gt;Provavelmente esse é um artigo que um guru da programação escreveria, eu sou um programador iniciante que está mais preocupado com a seguinte questão ; Centralizar a minha renda em um só empregador.&lt;/p&gt;

&lt;p&gt;Apesar de não ter conseguido a minha vaga de programador junior ainda, é algo que já me preocupa. Deixar o controle financeiro do que recebo e não recebo nas maos do meu chefe, e acredito que você também está preocupado com isso e é por isso que está aqui.&lt;br&gt;
Se você está alinhado com a ideia de enrriquecimento é sobre isso que vou falar,  a prestação de servicos vou deixar para um outro momento, aqui vou descrever a construção de ativos.&lt;/p&gt;

&lt;h2&gt;
  
  
  1- criar templates
&lt;/h2&gt;

&lt;p&gt;Quando se presta serviços de construção de sites, se você é desenvolvedor talvez você até faça esse site do zero, mas a maioria das pessoas não faz, o que elas fazem é pegar um template pronto em wordpress ou envato da vida e partir de um ponto de colocar conteúdo nele. Chega a ser enjoativo a quantidade de conteúdo no youtube e no instagram que te bombardeiam pra falar desse wordpress. E é ai que está o pulo do gato, essas pessoas falando de wordpress em algum momento podem estar falando de um template que você criou e colocou nessa plataforma para que os outros usem, sem sombras de dúvidas esse é um branding muito grande se for um template com um certo número de uso, ou melhor de compras...&lt;br&gt;
Imagine que nesse mar de templates você tenha um que custa 50 reais, é um esforço bem grande criar um bom template e sem dúvidas esse seria um preço muito baixo se ele fosse vendido só uma vez, mas suponhamos que ele não seja um template de muito sucesso porem seja um bom trabalho que venda um pouco, cerca de 100 vendas no ano, isso significa que já são 5 mil reais por um produto que você fez só uma vez e agora com uma pequena manutenção você pode continuar vendendo ele.&lt;/p&gt;

&lt;h2&gt;
  
  
  pensando fora da caixa
&lt;/h2&gt;

&lt;p&gt;Mas talvez você não queira aprender php pra criar seu próprio template em uma plataforma grande, talvez existam outras que façam templates com node e js. &lt;br&gt;
Caso você conheça alguma deixe aqui nos comentários por que eu não conheço, e gostaria de conhecer.&lt;/p&gt;

&lt;p&gt;Você também poderia entrar em um site de freelas como o freelancer.com e publicar o seu template como um produto, ou ter um site para verder uma versão mais premium ou completa do template que você criou com a tecnologia que você escolheu e seguir o mesmo modelo de vender um template mais barato mas vender muitas vezes enquanto você dorme.&lt;/p&gt;

&lt;p&gt;Criar um template não é algo exatamente fácil, provavelmente você criará muitos sites até chegar no template que seja interessante para ser vendido em uma escala maior. Mas sem sombra de dúvidas assim que você pegar o jeito poderá contruir vários templates que se materializam como infoprodutos. Esses que poderão ser escalados sem que necessariamente você aumente seus esforços para que alguém use ele. &lt;br&gt;
Talvez a medida que você faça algumas vendas, possa criar alguma campanha de marketing para fortalecer a sua marca pessoal ou o seu produto. &lt;/p&gt;

&lt;p&gt;Você já pensou em criar algum template ?&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>career</category>
    </item>
    <item>
      <title>Como fazer um projeto sem travar</title>
      <dc:creator>Rafael Nunes</dc:creator>
      <pubDate>Fri, 09 Dec 2022 03:00:01 +0000</pubDate>
      <link>https://forem.com/rafinhadev/como-fazer-um-projeto-sem-travar-1ja5</link>
      <guid>https://forem.com/rafinhadev/como-fazer-um-projeto-sem-travar-1ja5</guid>
      <description>&lt;h1&gt;
  
  
  doers
&lt;/h1&gt;

&lt;p&gt;*É melhor algo feito, do que algo perfeito ! *&lt;/p&gt;

&lt;p&gt;Essa é uma fraze de uma pessoa bem "doer", mas é verdade, é preferível que faça algo pequeno mas faça, do que tentar dar um grande salto e depois parar.&lt;/p&gt;

&lt;p&gt;Pensando nas dificuldades que se encontra na hora de codar, eu fiz aqui um passo a passo para ser seguido pra que seu projeto ganhe vida, e essa é só uma forma que você pode adotar para faze-lo do inicio ao fim sem travar.&lt;/p&gt;

&lt;h2&gt;
  
  
  Analize do projeto.
&lt;/h2&gt;

&lt;p&gt;Quando fizer a analize tente entender e anote suas dúvidas. Se preciso as anote para que na hora de codar não fique quebrando cabeça com o que você pode ou não fazer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tirar as dúvidas&lt;/strong&gt; com o designer, caso tenha um.&lt;/p&gt;

&lt;p&gt;Se necessário &lt;strong&gt;quebre o projeto em componentes&lt;/strong&gt;,&lt;br&gt;
Coisas que possam ser reaproveitadas pois são repetidas, talvez você economize boas linhas de código fazendo essas partes em uma folha de css global por exemplo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Desenhe  estrutura basica&lt;/strong&gt; que o projeto vai ter como planejamento.&lt;br&gt;
Pensar em blocos é mais fácil&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--i9P2uKNF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gpldhbsnmfcmf232lf88.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--i9P2uKNF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gpldhbsnmfcmf232lf88.png" alt="Planejamento de uma pagina" width="703" height="293"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Perceba como um objeto pode ter várias partes, assim já tendo a vizualização planejada do que você deve fazer para codar fica bem mais fácil.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Criar a estrutura base&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Criar a estrutura de pastas&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MJuXpgkK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/soe9co9k68w9pvhgfe7l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MJuXpgkK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/soe9co9k68w9pvhgfe7l.png" alt="estrutura base" width="203" height="375"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Observe que tudo que não for o index ou readme, fica na pasta src com suas respectivas pastas onde serão usadas no projeto. &lt;br&gt;
A estrutura de pastas é muito importante para que você não se perca no meio.&lt;/p&gt;

&lt;h2&gt;
  
  
  Criar o HTML
&lt;/h2&gt;

&lt;p&gt;Nessa parte já se começa a codificar &lt;/p&gt;

&lt;p&gt;Não tem problema em criar ele  e depois mudar, talvez alguma div não se comportou como você planejou, talvez houve algo que você deixou passar , você não precisa ter um planejamento perfeito antes de começar, mas não deixe de planejar o que será feito.&lt;/p&gt;

&lt;h2&gt;
  
  
  Criar o CSS
&lt;/h2&gt;

&lt;p&gt;Criar arquivo de reset.css para zerar margens e paddings e outras coisas globais.&lt;br&gt;
Um pra animações, outro para estrutura dos elementos, um para objetos comuns.&lt;br&gt;
Dependerá do seu projeto e do seu tamanho , mas tenha folhas de codigo css separadas para cada tarefa, ao invez de fazer uma folha gigantesca.&lt;/p&gt;

&lt;p&gt;criar o arquivo  de &lt;code&gt;style.css&lt;/code&gt;, é mais intuitivo criar de cima para baixo de acordo com a ordem dos elementos que você irá fazer.&lt;/p&gt;

&lt;h2&gt;
  
  
  criar o JS
&lt;/h2&gt;

&lt;p&gt;Primeiro pensar na lógica do código para depois ir para ele&lt;br&gt;
Se você estiver seguindo alguem e tiver errado, tente entender a lógica, não tente arrumar e escutar a pessoa.&lt;/p&gt;

&lt;h2&gt;
  
  
  Finalizando MVP
&lt;/h2&gt;

&lt;p&gt;uma espécie de versão beta, pra dar vida ao projeto e depois ir fazendo melhorias.&lt;br&gt;
Refatorando e etc.&lt;br&gt;
Assim seu projeto ganha vida rapidamente e você já conseguirá ânimo para ir para o próximo ou melhora-lo.&lt;/p&gt;

</description>
      <category>html</category>
      <category>css</category>
      <category>javascript</category>
      <category>mvp</category>
    </item>
    <item>
      <title>Olá mundo</title>
      <dc:creator>Rafael Nunes</dc:creator>
      <pubDate>Tue, 06 Dec 2022 23:34:53 +0000</pubDate>
      <link>https://forem.com/rafinhadev/ola-mundo-44f3</link>
      <guid>https://forem.com/rafinhadev/ola-mundo-44f3</guid>
      <description>&lt;p&gt;Este é meu primeiro post, espero estar compartilhando aqui todos os dias algo novo. &lt;br&gt;
O blog em sí já é algo novo para min vou deixar aqui soluções de problemas , hacksinhos e dicas relacionadas ao front end inicialmente. &lt;/p&gt;

&lt;p&gt;Hoje vou mostrar como escrever olá mundo na tela com CSS, e quebrar a maldição de não ser um bom blogueiro .&lt;/p&gt;

&lt;p&gt;No html vou deixar somente uma tagsinha de span para fazer essa brincadeira :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;span&amp;gt;&amp;lt;/span&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A estrutura base do html é importante para que o navegador reconheça a tabela de caracteres, lingua e versão do html, mas para rodar na sua maquina local não tem problema colocar só o span. &lt;br&gt;
Agora vamos ao CSS:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;span::before{
  content:"Olá "
}
span::after{
  content:"mundo"
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Aqui nos temos pseudo elementos indicados por &lt;code&gt;::before ::after&lt;/code&gt; , um  significa antes e o outro depois, ou seja, da nossa tag spam. &lt;br&gt;
O content significa o conteudo, que nesse caso é um texto. Ao fazer a inserção do texto pelo css ele é inserido na folha de html e impresso no navegador, porêm não aparece no resultado das buscas dos navegadores, portanto não são semanticos, é bom ter isso em mente caso use essa tecnica para inserir texto 😉. &lt;/p&gt;

&lt;p&gt;Ai está nosso olá mundo, e a maldição de ser um mal blogueiro está quebrada rs.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>frontend</category>
      <category>css</category>
    </item>
  </channel>
</rss>
