<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog</id>
    <title>Blog da Codaqui</title>
    <updated>2026-03-30T00:00:00.000Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <link rel="alternate" href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog"/>
    <subtitle>Tutoriais, projetos e novidades da comunidade Codaqui</subtitle>
    <icon>https://raw.githack.com/codaqui/institucional/gh-pages-develop/img/favicon.png</icon>
    <rights>© 2026 Associação Codaqui</rights>
    <entry>
        <title type="html"><![CDATA[Curso de Educação Financeira com Valnaire Nascimento]]></title>
        <id>https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2026/03/30/curso-educacao-financeira</id>
        <link href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2026/03/30/curso-educacao-financeira"/>
        <updated>2026-03-30T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Curso de Educação Financeira]]></summary>
        <content type="html"><![CDATA[<p><img decoding="async" loading="lazy" alt="Curso de Educação Financeira" src="https://raw.githack.com/codaqui/institucional/gh-pages-develop/assets/images/gemini_banner-93ae3811fd4bdac77cdce16fd1f0d599.png" width="2752" height="1536" class="img_ev3q"></p>
<p>A Codaqui tem o prazer de anunciar um curso especial sobre <strong>Educação Financeira</strong>, ministrado por <strong>Valnaire Nascimento</strong>, Mestre em Economia e especialista em finanças. Prepare-se para ser bem-vindo a um novo nível de consciência financeira.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="sobre-o-curso">Sobre o Curso<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2026/03/30/curso-educacao-financeira#sobre-o-curso" class="hash-link" aria-label="Link direto para Sobre o Curso" title="Link direto para Sobre o Curso" translate="no">​</a></h2>
<p>A verdade é que ninguém nunca nos ensinou a lidar com dinheiro da forma correta. Aprendemos a trabalhar e a pagar contas, mas não a construir riqueza. Este curso foi desenhado para mudar essa realidade, pois a mudança ocorre como o primeiro passo.</p>
<p>O treinamento abordará desde a desconstrução de crenças limitantes até estratégias práticas de organização financeira, investimento e planejamento para o futuro.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="-cronograma">📅 Cronograma<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2026/03/30/curso-educacao-financeira#-cronograma" class="hash-link" aria-label="Link direto para 📅 Cronograma" title="Link direto para 📅 Cronograma" translate="no">​</a></h3>
<p>O curso acontecerá em cinco encontros conduzidos por <strong>Valnaire Nascimento</strong>:</p>















































<table><thead><tr><th>Aula</th><th>Data</th><th>Temas</th><th>Material</th><th>Atividade</th></tr></thead><tbody><tr><td><strong>Aula 1</strong></td><td><strong>13 abr</strong></td><td>Dinheiro é comportamento (Módulo 1) · Crenças influenciam decisões (Módulo 1)</td><td>Apresentação de slides · vídeos</td><td>Diagnóstico e tipo de gasto</td></tr><tr><td><strong>Aula 2</strong></td><td><strong>20 abr</strong></td><td>Controle receitas e despesas (Módulo 2) · Defina metas e orçamento (Módulo 3)</td><td>Apresentação de slides · planilhas</td><td>Ensinar a criar orçamento</td></tr><tr><td><strong>Aula 3</strong></td><td><strong>27 abr</strong></td><td>Gerencie juros e crédito (Módulo 4) · Invista com consistência (Módulo 5)</td><td>Apresentação de slides · melhores investimentos</td><td>Verificar perfil do investidor</td></tr><tr><td><strong>Aula 4</strong></td><td><strong>03 mai</strong></td><td>Construa renda passiva (Módulo 6) · Planejamento de longo prazo (Módulo 7)</td><td>Apresentação de slides</td><td>Não informado</td></tr><tr><td><strong>Aula 5</strong></td><td><strong>11 mai</strong></td><td>Planejamento de longo prazo (Módulo 7)</td><td>Apresentação de slides</td><td>Verificar planos de previdência no mercado</td></tr></tbody></table>
<blockquote>
<p>A participação acontece conforme a programação divulgada pela Codaqui. Para acompanhar inscrições e atualizações, consulte nossos canais oficiais.</p>
</blockquote>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="sobre-a-instrutora">Sobre a Instrutora<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2026/03/30/curso-educacao-financeira#sobre-a-instrutora" class="hash-link" aria-label="Link direto para Sobre a Instrutora" title="Link direto para Sobre a Instrutora" translate="no">​</a></h2>
<p><strong>Valnaire Nascimento</strong> é Mestre em Economia e Economista, formada pela Universidade Federal da Bahia (UFBA). Com graduação também em Ciências Contábeis, possui uma formação sólida e multidisciplinar que integra conhecimentos econômicos, financeiros e contábeis.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="experiência-profissional">Experiência Profissional<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2026/03/30/curso-educacao-financeira#experi%C3%AAncia-profissional" class="hash-link" aria-label="Link direto para Experiência Profissional" title="Link direto para Experiência Profissional" translate="no">​</a></h3>
<p>Com um perfil analítico e orientado a resultados, Valnaire conta com vasta experiência profissional nas áreas financeira, análise de crédito e contabilidade. Já ocupou posições de destaque como:</p>
<ul>
<li class=""><strong>Coordenadora de Contabilidade</strong> na Fundação Cultural do Estado da Bahia (Funceb)</li>
<li class=""><strong>Analista Financeiro</strong> no IANDBEAS e na Bravo Caminhões e Ônibus</li>
<li class=""><strong>Assessor Financeiro</strong> no Teatro Castro Alves</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="filosofia-de-trabalho">Filosofia de Trabalho<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2026/03/30/curso-educacao-financeira#filosofia-de-trabalho" class="hash-link" aria-label="Link direto para Filosofia de Trabalho" title="Link direto para Filosofia de Trabalho" translate="no">​</a></h3>
<blockquote>
<p>"Porque, no final, não é o quanto você ganha que define sua vida financeira... é o que você faz com o que ganha."</p>
</blockquote>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="o-que-você-vai-aprender">O Que Você Vai Aprender<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2026/03/30/curso-educacao-financeira#o-que-voc%C3%AA-vai-aprender" class="hash-link" aria-label="Link direto para O Que Você Vai Aprender" title="Link direto para O Que Você Vai Aprender" translate="no">​</a></h2>
<ul>
<li class=""><strong>Módulo 1 - Mentalidade Financeira:</strong> Compreenda como comportamento e crenças influenciam decisões financeiras no dia a dia.</li>
<li class=""><strong>Módulo 2 - Organização Financeira:</strong> Aprenda a controlar receitas e despesas para ter mais clareza sobre sua realidade financeira.</li>
<li class=""><strong>Módulo 3 - Planejamento e Orçamento:</strong> Defina metas, prioridades e um orçamento aplicável à sua rotina.</li>
<li class=""><strong>Módulo 4 - Juros e Crédito:</strong> Entenda como gerenciar crédito com responsabilidade e tomar decisões mais conscientes.</li>
<li class=""><strong>Módulo 5 - Investimentos com Consistência:</strong> Conheça fundamentos para investir com regularidade e de acordo com seu perfil.</li>
<li class=""><strong>Módulo 6 - Renda Passiva:</strong> Explore caminhos para construir novas fontes de renda no longo prazo.</li>
<li class=""><strong>Módulo 7 - Planejamento de Longo Prazo:</strong> Estruture objetivos futuros com mais segurança, incluindo a análise de alternativas de previdência.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="para-quem-é-este-curso">Para Quem é Este Curso?<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2026/03/30/curso-educacao-financeira#para-quem-%C3%A9-este-curso" class="hash-link" aria-label="Link direto para Para Quem é Este Curso?" title="Link direto para Para Quem é Este Curso?" translate="no">​</a></h2>
<p>Este curso é ideal para:</p>
<ul>
<li class="">Pessoas que desejam parar de ser reféns do próprio salário e aprender a poupar;</li>
<li class="">Profissionais que buscam organizar suas finanças, sair das dívidas e começar a investir;</li>
<li class="">Qualquer pessoa interessada em alcançar a independência financeira.</li>
</ul>
<p>A <strong>Codaqui</strong> é para todos que desejam aprender e crescer.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="como-participar">Como Participar?<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2026/03/30/curso-educacao-financeira#como-participar" class="hash-link" aria-label="Link direto para Como Participar?" title="Link direto para Como Participar?" translate="no">​</a></h2>
<p>As inscrições estarão abertas em breve! <a class="" href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/participe/estudar">Acesse o formulário de inscrição</a> ou <a class="" href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/bio">confira nossos links oficiais</a>.</p>
<p>💼 <strong>LinkedIn da instrutora:</strong> <a href="https://www.linkedin.com/in/valnairenascimento" target="_blank" rel="noopener noreferrer" class="">linkedin.com/in/valnairenascimento</a></p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="reflexão-inicial">Reflexão Inicial<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2026/03/30/curso-educacao-financeira#reflex%C3%A3o-inicial" class="hash-link" aria-label="Link direto para Reflexão Inicial" title="Link direto para Reflexão Inicial" translate="no">​</a></h2>
<ul>
<li class=""><strong>Quais crenças limitantes sobre dinheiro você tem repetido para si mesmo?</strong></li>
<li class=""><strong>Você sabe exatamente para onde seu dinheiro está indo todos os meses?</strong></li>
<li class=""><strong>Seu dinheiro está trabalhando para você ou você está trabalhando apenas para pagar contas?</strong></li>
</ul>
<p>Traga essas reflexões e prepare-se para transformar a sua realidade financeira!</p>]]></content>
        <author>
            <name>Enderson Menezes</name>
            <uri>https://github.com/endersonmenezes</uri>
        </author>
        <category label="curso" term="curso"/>
        <category label="comunidade" term="comunidade"/>
        <category label="finanças" term="finanças"/>
        <category label="investimentos" term="investimentos"/>
        <category label="educação" term="educação"/>
        <category label="institucional" term="institucional"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Curso de Lógica de Programação com Python com Paulinea]]></title>
        <id>https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2026/03/30/curso-introducao-python</id>
        <link href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2026/03/30/curso-introducao-python"/>
        <updated>2026-03-30T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Curso de Lógica de Programação]]></summary>
        <content type="html"><![CDATA[<p><img decoding="async" loading="lazy" alt="Curso de Lógica de Programação" src="https://raw.githack.com/codaqui/institucional/gh-pages-develop/assets/images/gemini_banner-c80eb9757d34e865b0213bc1621a1855.png" width="2752" height="1536" class="img_ev3q"></p>
<p>A Associação Codaqui tem o prazer de anunciar um curso especial sobre <strong>Lógica de Programação e Python</strong>, ministrado por <strong>Paulinea</strong>, uma futura desenvolvedora apaixonada por gerar impacto social através da educação tecnológica.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="sobre-o-curso">Sobre o Curso<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2026/03/30/curso-introducao-python#sobre-o-curso" class="hash-link" aria-label="Link direto para Sobre o Curso" title="Link direto para Sobre o Curso" translate="no">​</a></h2>
<p>Este material tem foco em uma abordagem simples e direta, com exemplos comentados para facilitar a compreensão. Todas as atividades práticas serão realizadas por meio de um compilador online gratuito chamado Programiz — sem precisar instalar nada no computador.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="-cronograma">📅 Cronograma<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2026/03/30/curso-introducao-python#-cronograma" class="hash-link" aria-label="Link direto para 📅 Cronograma" title="Link direto para 📅 Cronograma" translate="no">​</a></h3>
<p>As aulas acontecerão às <strong>segundas e quartas-feiras, sempre às 20h30</strong>:</p>
<ul>
<li class=""><strong>20/04/2026</strong> (Segunda-feira)</li>
<li class=""><strong>22/04/2026</strong> (Quarta-feira)</li>
<li class=""><strong>27/04/2026</strong> (Segunda-feira)</li>
<li class=""><strong>29/04/2026</strong> (Quarta-feira)</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="sobre-a-instrutora">Sobre a Instrutora<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2026/03/30/curso-introducao-python#sobre-a-instrutora" class="hash-link" aria-label="Link direto para Sobre a Instrutora" title="Link direto para Sobre a Instrutora" translate="no">​</a></h2>
<p><strong>Paulinea</strong> está finalizando sua graduação em Análise e Desenvolvimento de Sistemas (ADS) pela PUCPR. Ela conheceu a Codaqui através do Carreira TI e se interessou fortemente pela proposta do projeto, pois estava em busca de realizar ações sociais na área de tecnologia.</p>
<p>Seu grande ponto forte é o ensino de <strong>Lógica de Programação e Python para iniciantes</strong>, com o objetivo de desmistificar a escrita de código e criar uma base sólida de aprendizado.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="o-que-você-vai-aprender">O Que Você Vai Aprender<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2026/03/30/curso-introducao-python#o-que-voc%C3%AA-vai-aprender" class="hash-link" aria-label="Link direto para O Que Você Vai Aprender" title="Link direto para O Que Você Vai Aprender" translate="no">​</a></h2>
<ul>
<li class=""><strong>Fundamentos da Lógica</strong>: Algoritmos, código binário e diferença entre linguagens de alto e baixo nível.</li>
<li class=""><strong>Primeiros Passos no Python</strong>: Variáveis e tipos de dados (Strings, Inteiros, Flutuantes, Booleana).</li>
<li class=""><strong>Entrada e Saída</strong>: Funções <code>input()</code> e <code>print()</code>.</li>
<li class=""><strong>Operadores</strong>: Relacionais, aritméticos e lógicos (<code>AND</code>, <code>OR</code>, <code>NOT</code>).</li>
<li class=""><strong>Estruturas Condicionais</strong>: <code>if</code>, <code>elif</code> e <code>else</code>.</li>
<li class=""><strong>Laços de Repetição</strong>: <code>for</code> com <code>range()</code> e <code>while</code>.</li>
<li class=""><strong>Tratamento de Exceções</strong>: Blocos <code>try</code> e <code>except</code>.</li>
<li class=""><strong>Funções</strong>: Definição com <code>def</code>, parâmetros e <code>return</code>.</li>
<li class=""><strong>Listas e Matrizes</strong>: Índices, métodos <code>append()</code>, <code>pop()</code>, <code>remove()</code> e <code>sort()</code>.</li>
<li class=""><strong>Projeto Final</strong>: Construção completa de um <strong>Jogo da Velha</strong> funcional.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="para-quem-é-este-curso">Para Quem é Este Curso?<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2026/03/30/curso-introducao-python#para-quem-%C3%A9-este-curso" class="hash-link" aria-label="Link direto para Para Quem é Este Curso?" title="Link direto para Para Quem é Este Curso?" translate="no">​</a></h2>
<p>Esse curso é direcionado a pessoas que estão iniciando na programação — perfeito para quem nunca escreveu uma linha de código e quer descobrir como os softwares funcionam.</p>
<p>A <strong>Codaqui</strong> é para todos que desejam aprender e crescer, independentemente da idade ou experiência prévia.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="como-participar">Como Participar?<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2026/03/30/curso-introducao-python#como-participar" class="hash-link" aria-label="Link direto para Como Participar?" title="Link direto para Como Participar?" translate="no">​</a></h2>
<p>As inscrições estarão abertas em breve! <a class="" href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/participe/estudar">Acesse o formulário de inscrição</a> ou <a class="" href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/bio">confira nossos links oficiais</a>.</p>
<ul>
<li class="">📷 <strong>Instagram:</strong> <a href="http://instagram.com/paulinea.gp" target="_blank" rel="noopener noreferrer" class="">instagram.com/paulinea.gp</a></li>
<li class="">💻 <strong>GitHub:</strong> <a href="http://github.com/paulineagp" target="_blank" rel="noopener noreferrer" class="">github.com/paulineagp</a></li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="reflexão-inicial">Reflexão Inicial<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2026/03/30/curso-introducao-python#reflex%C3%A3o-inicial" class="hash-link" aria-label="Link direto para Reflexão Inicial" title="Link direto para Reflexão Inicial" translate="no">​</a></h2>
<ul>
<li class=""><strong>Você consegue pensar na "receita" passo a passo para resolver um problema comum do seu dia a dia?</strong></li>
<li class=""><strong>Quais processos manuais e repetitivos da sua rotina poderiam ser automatizados por um software?</strong></li>
<li class=""><strong>Se você pudesse construir qualquer sistema no computador hoje, o que ele faria?</strong></li>
</ul>
<p>Traga essas ideias para a nossa primeira aula e prepare-se para começar a falar a língua dos computadores!</p>]]></content>
        <author>
            <name>Enderson Menezes</name>
            <uri>https://github.com/endersonmenezes</uri>
        </author>
        <category label="curso" term="curso"/>
        <category label="comunidade" term="comunidade"/>
        <category label="programação" term="programação"/>
        <category label="python" term="python"/>
        <category label="iniciantes" term="iniciantes"/>
        <category label="institucional" term="institucional"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Curso de Gestão e Produtividade com Danilo Mesquita]]></title>
        <id>https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2026/01/29/curso-de-gestao-e-produtividade-com-danilo-mesquita</id>
        <link href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2026/01/29/curso-de-gestao-e-produtividade-com-danilo-mesquita"/>
        <updated>2026-01-29T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Curso de Gestão e Produtividade]]></summary>
        <content type="html"><![CDATA[<p><img decoding="async" loading="lazy" src="https://multificiente.com.br/wp-content/uploads/elementor/thumbs/xAutor-p7suykqun2ypikqu69cpu440xccgdx52ecl6562u5a.png.pagespeed.ic.86-124-n3N.webp" alt="Curso de Gestão e Produtividade" class="img_ev3q"></p>
<p>Em fevereiro de 2026, a Codaqui tem o prazer de anunciar um curso especial sobre <strong>Gestão e Produtividade</strong>, ministrado por <strong>Danilo Mesquita</strong>, empreendedor e especialista reconhecido na área.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="sobre-o-curso">Sobre o Curso<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2026/01/29/curso-de-gestao-e-produtividade-com-danilo-mesquita#sobre-o-curso" class="hash-link" aria-label="Link direto para Sobre o Curso" title="Link direto para Sobre o Curso" translate="no">​</a></h2>
<p>O curso será dividido em três encontros que abordarão desde os fundamentos da produtividade pessoal até técnicas avançadas de gestão do tempo e resultados:</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="-cronograma">📅 Cronograma<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2026/01/29/curso-de-gestao-e-produtividade-com-danilo-mesquita#-cronograma" class="hash-link" aria-label="Link direto para 📅 Cronograma" title="Link direto para 📅 Cronograma" translate="no">​</a></h3>
<ul>
<li class=""><strong><del>10/02</del></strong> | 18/02 - Aula de Introdução</li>
<li class=""><strong><del>24/02 e 26/02</del></strong> | 24/02 &amp; 02/03 - Aulas de Aprofundamento</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="sobre-o-instrutor">Sobre o Instrutor<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2026/01/29/curso-de-gestao-e-produtividade-com-danilo-mesquita#sobre-o-instrutor" class="hash-link" aria-label="Link direto para Sobre o Instrutor" title="Link direto para Sobre o Instrutor" translate="no">​</a></h2>
<p><strong>Danilo Mesquita</strong> é empreendedor à frente do <a href="https://multificiente.com.br/" target="_blank" rel="noopener noreferrer" class="">Multificiente</a>, plataforma dedicada a ajudar pessoas e empresas a alcançarem alta performance através da produtividade e colaboração.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="experiência-profissional">Experiência Profissional<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2026/01/29/curso-de-gestao-e-produtividade-com-danilo-mesquita#experi%C3%AAncia-profissional" class="hash-link" aria-label="Link direto para Experiência Profissional" title="Link direto para Experiência Profissional" translate="no">​</a></h3>
<p>Com mais de <strong>25 anos de experiência em TI</strong>, Danilo construiu uma carreira sólida passando por diversas posições estratégicas, desde técnico de suporte até cargos de diretoria. Atualmente, ocupa os cargos de:</p>
<ul>
<li class=""><strong>Diretor de Operações</strong> na VEXPRO Business IT</li>
<li class=""><strong>Diretor de Produtos e Soluções</strong> no Grupo SPRO</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="especialização-em-produtividade">Especialização em Produtividade<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2026/01/29/curso-de-gestao-e-produtividade-com-danilo-mesquita#especializa%C3%A7%C3%A3o-em-produtividade" class="hash-link" aria-label="Link direto para Especialização em Produtividade" title="Link direto para Especialização em Produtividade" translate="no">​</a></h3>
<p>Desde 2013, Danilo dedica-se ao estudo e prática dos temas de <strong>produtividade e colaboração</strong>. Já realizou:</p>
<ul>
<li class="">Diversas palestras sobre o tema em várias cidades do Brasil</li>
<li class="">Participação em grandes eventos da Microsoft Brasil</li>
<li class="">Treinamentos em mais de 15 estados brasileiros para empresas de grande porte</li>
<li class="">Promoção de conceitos de produtividade corporativa e colaboração com ferramentas Microsoft Office 365</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="formação-acadêmica">Formação Acadêmica<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2026/01/29/curso-de-gestao-e-produtividade-com-danilo-mesquita#forma%C3%A7%C3%A3o-acad%C3%AAmica" class="hash-link" aria-label="Link direto para Formação Acadêmica" title="Link direto para Formação Acadêmica" translate="no">​</a></h3>
<ul>
<li class=""><strong>Administração de Empresas</strong> - UniCEUB</li>
<li class=""><strong>Gestão de Produtos</strong> - FGV</li>
<li class=""><strong>Gestão Estratégica de Empresas</strong> - UNINTER (em andamento)</li>
<li class="">Certificações em Microsoft, VMware, ITIL e Agile SCRUM</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="filosofia-de-trabalho">Filosofia de Trabalho<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2026/01/29/curso-de-gestao-e-produtividade-com-danilo-mesquita#filosofia-de-trabalho" class="hash-link" aria-label="Link direto para Filosofia de Trabalho" title="Link direto para Filosofia de Trabalho" translate="no">​</a></h3>
<blockquote>
<p>"No que diz respeito ao empenho, ao compromisso, ao esforço, à dedicação, não existe meio termo. Ou você faz uma coisa bem feita ou não faz."<br>
— Ayrton Senna</p>
</blockquote>
<p>Danilo acredita que <strong>ser Multificiente é mais do que ser multitarefa</strong>: é saber unir eficiência e eficácia para alcançar resultados incríveis em pouco tempo. Sua abordagem integra conceitos de alta performance profissional com práticas esportivas, demonstrando que atitude de excelência permeia todas as áreas da vida.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="o-que-você-vai-aprender">O Que Você Vai Aprender<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2026/01/29/curso-de-gestao-e-produtividade-com-danilo-mesquita#o-que-voc%C3%AA-vai-aprender" class="hash-link" aria-label="Link direto para O Que Você Vai Aprender" title="Link direto para O Que Você Vai Aprender" translate="no">​</a></h2>
<p>Vamos atualizar em breve os tópicos específicos que serão abordados no curso. Fique atento!</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="para-quem-é-este-curso">Para Quem é Este Curso?<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2026/01/29/curso-de-gestao-e-produtividade-com-danilo-mesquita#para-quem-%C3%A9-este-curso" class="hash-link" aria-label="Link direto para Para Quem é Este Curso?" title="Link direto para Para Quem é Este Curso?" translate="no">​</a></h2>
<p>Este curso é ideal para:</p>
<ul>
<li class="">Profissionais que desejam melhorar sua gestão do tempo e aumentar a produtividade;</li>
<li class="">Líderes e gestores que buscam otimizar processos e resultados em suas equipes;</li>
<li class="">Adolescentes e adultos interessados em desenvolver habilidades de organização pessoal e profissional!</li>
</ul>
<p>A <strong>Codaqui</strong> é para todos que desejam aprender e crescer, independentemente da idade ou experiência prévia.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="como-participar">Como Participar?<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2026/01/29/curso-de-gestao-e-produtividade-com-danilo-mesquita#como-participar" class="hash-link" aria-label="Link direto para Como Participar?" title="Link direto para Como Participar?" translate="no">​</a></h2>
<p>As inscrições já estão abertas! Acesse o formulário de inscrição:</p>
<ul>
<li class=""><a class="" href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/participe/estudar">#Quero Estudar! - Formulário de Inscrição</a></li>
<li class=""><a class="" href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/bio">Nossos links oficiais</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="mais-informações-sobre-o-danilo">Mais Informações sobre o Danilo<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2026/01/29/curso-de-gestao-e-produtividade-com-danilo-mesquita#mais-informa%C3%A7%C3%B5es-sobre-o-danilo" class="hash-link" aria-label="Link direto para Mais Informações sobre o Danilo" title="Link direto para Mais Informações sobre o Danilo" translate="no">​</a></h2>
<p>Para conhecer mais sobre o trabalho do Danilo Mesquita:</p>
<ul>
<li class="">🌐 <strong>Site:</strong> <a href="https://multificiente.com.br/" target="_blank" rel="noopener noreferrer" class="">multificiente.com.br</a></li>
<li class="">📱 <strong>Instagram:</strong> <a href="https://www.instagram.com/danilo_mesquita/" target="_blank" rel="noopener noreferrer" class="">@danilo_mesquita</a></li>
<li class="">💼 <strong>LinkedIn:</strong> <a href="https://www.linkedin.com/in/dmesquita/" target="_blank" rel="noopener noreferrer" class="">linkedin.com/in/dmesquita</a></li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="reflexão-inicial">Reflexão Inicial<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2026/01/29/curso-de-gestao-e-produtividade-com-danilo-mesquita#reflex%C3%A3o-inicial" class="hash-link" aria-label="Link direto para Reflexão Inicial" title="Link direto para Reflexão Inicial" translate="no">​</a></h2>
<p>Antes mesmo de começar o curso, te convidamos a refletir:</p>
<ul>
<li class=""><strong>Quanto tempo você desperdiça por dia com distrações?</strong></li>
<li class=""><strong>Você consegue priorizar suas tarefas de forma eficiente?</strong></li>
<li class=""><strong>Quais são os maiores obstáculos para sua produtividade?</strong></li>
</ul>
<p>Traga essas reflexões para a primeira aula e prepare-se para transformar sua relação com o tempo e os resultados!</p>
<hr>
<p><em>Mais do que o dinheiro, o tempo é um bem inestimável. Cuide dele!</em></p>]]></content>
        <author>
            <name>Enderson Menezes</name>
            <uri>https://github.com/endersonmenezes</uri>
        </author>
        <category label="Institucional" term="Institucional"/>
        <category label="curso" term="curso"/>
        <category label="comunidade" term="comunidade"/>
        <category label="produtividade" term="produtividade"/>
        <category label="gestão" term="gestão"/>
        <category label="educação" term="educação"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Prestação de Contas do DevPR Conf 2025]]></title>
        <id>https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/10/23/prestacao-de-contas-do-devpr-conf-2025</id>
        <link href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/10/23/prestacao-de-contas-do-devpr-conf-2025"/>
        <updated>2025-10-23T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Espero que estejam bem. Gostaríamos de compartilhar algumas atualizações importantes sobre o nosso recente evento. Primeiramente, estamos felizes em informar que concluímos o evento com sucesso, estamos com saldo positivo.]]></summary>
        <content type="html"><![CDATA[<p>Espero que estejam bem. Gostaríamos de compartilhar algumas atualizações importantes sobre o nosso recente evento. Primeiramente, estamos felizes em informar que concluímos o evento com sucesso, estamos com saldo positivo.</p>
<p>Vale ressaltar que foi nosso primeiro ano usando completamente a ferramenta, então apesar de estarmos positivos financeiramente, encontramos alguns saldos a mais na conta e estamos tentando organizar para ter uma equivalência de 100% do saldo da nossa conta na Stone com a plataforma Open Collective.</p>
<p>Se você tiver qualquer dúvida ou precisar de mais informações, não hesite em participar das nossas reuniões semanais. Estamos sempre disponíveis para ajudar e esclarecer qualquer questão.</p>
<p>Agradecemos a todos pelo apoio contínuo e pela participação no evento. Continuaremos trabalhando para melhorar e trazer mais transparência e eficiência para nossos processos.</p>
<p><a href="https://opencollective.com/dashboard/codaqui/updates/zzaxon79-3jy8gpl3-kojpbrkd-emwl5v04" target="_blank" rel="noopener noreferrer" class="">Dados no Open Collective</a></p>]]></content>
        <author>
            <name>Enderson Menezes</name>
            <uri>https://github.com/endersonmenezes</uri>
        </author>
        <category label="Institucional" term="Institucional"/>
        <category label="historia" term="historia"/>
        <category label="comunidade" term="comunidade"/>
        <category label="devparaná" term="devparaná"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Cloudflare Tunnel: economizando IPv4 ao expor serviços em VMs]]></title>
        <id>https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/08/22/cloudflare-tunnel-economizando-ipv4-ao-expor-servicos-em-vms</id>
        <link href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/08/22/cloudflare-tunnel-economizando-ipv4-ao-expor-servicos-em-vms"/>
        <updated>2025-08-22T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Este tutorial mostra, passo a passo e com exemplos práticos, como expor serviços que rodam em uma máquina virtual (VM) sem precisar de um IPv4 público dedicado, usando o Cloudflare Tunnel (cloudflared) no plano gratuito. O objetivo é um laboratório reprodutível um "piping server"), configurar o túnel e publicar um hostname gerenciado pelo Cloudflare.]]></summary>
        <content type="html"><![CDATA[<p>Este tutorial mostra, passo a passo e com exemplos práticos, como expor serviços que rodam em uma máquina virtual (VM) sem precisar de um IPv4 público dedicado, usando o Cloudflare Tunnel (cloudflared) no plano gratuito. O objetivo é um laboratório reprodutível: criar uma VM, instalar sua aplicação (ex.: um "piping server"), configurar o túnel e publicar um hostname gerenciado pelo Cloudflare.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="o-que-você-vai-aprender">O que você vai aprender<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/08/22/cloudflare-tunnel-economizando-ipv4-ao-expor-servicos-em-vms#o-que-voc%C3%AA-vai-aprender" class="hash-link" aria-label="Link direto para O que você vai aprender" title="Link direto para O que você vai aprender" translate="no">​</a></h2>
<ul>
<li class="">Por que usar uma VM para projetos e laboratórios rápidos</li>
<li class="">Como criar uma VM (visão geral) — foco no Azure (passos essenciais)</li>
<li class="">Criar conta no Cloudflare e preparar o domínio</li>
<li class="">Configurar Zero Trust / Access de forma básica</li>
<li class="">Instalar e configurar o Cloudflare Tunnel (cloudflared) na VM</li>
<li class="">Expor um serviço (ex.: piping server) através do túnel e testar</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="motivador">Motivador<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/08/22/cloudflare-tunnel-economizando-ipv4-ao-expor-servicos-em-vms#motivador" class="hash-link" aria-label="Link direto para Motivador" title="Link direto para Motivador" translate="no">​</a></h2>
<p>Projetos caseiros muitas vezes precisam ser acessíveis pela internet. Tradicionalmente isso exige um IPv4 público, que pode ter custo elevado ou ser limitado pelo provedor. O Cloudflare Tunnel permite que você exponha serviços locais por meio de um túnel seguro até a rede Cloudflare, sem precisar de IP público. No plano gratuito é possível reduzir custos e manter controle sobre DNS, políticas e roteamento.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="checklist-rápido-pré-requisitos">Checklist rápido (pré-requisitos)<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/08/22/cloudflare-tunnel-economizando-ipv4-ao-expor-servicos-em-vms#checklist-r%C3%A1pido-pr%C3%A9-requisitos" class="hash-link" aria-label="Link direto para Checklist rápido (pré-requisitos)" title="Link direto para Checklist rápido (pré-requisitos)" translate="no">​</a></h2>
<ul>
<li class="">Conta em um provedor de nuvem (ex.: Azure) com permissão para criar uma VM.</li>
<li class="">Conta gratuita no Cloudflare e domínio gerenciável no Cloudflare (DNS).</li>
<li class="">Acesso SSH à VM.
<ul>
<li class="">Recomenda-se usar o painel do Provider apenas para instalar o Cloudflared, e depois usar o Browser SSH do Cloudflare.</li>
</ul>
</li>
<li class="">Ferramentas básicas: curl, sudo, systemd</li>
</ul>
<p>Se alguma etapa não for possível (ex.: você não tem domínio), há alternativas: testar localmente com <code>cloudflared tunnel run</code> e usar um subdomínio temporário do Cloudflare durante o login interativo.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="1--breve-explicação-máquinas-virtuais-e-por-que-usá-las">1 — Breve explicação: máquinas virtuais e por que usá-las<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/08/22/cloudflare-tunnel-economizando-ipv4-ao-expor-servicos-em-vms#1--breve-explica%C3%A7%C3%A3o-m%C3%A1quinas-virtuais-e-por-que-us%C3%A1-las" class="hash-link" aria-label="Link direto para 1 — Breve explicação: máquinas virtuais e por que usá-las" title="Link direto para 1 — Breve explicação: máquinas virtuais e por que usá-las" translate="no">​</a></h2>
<p>Máquinas virtuais são instâncias isoladas que rodem um sistema operacional completo. Mesmo com arquiteturas modernas (containers, serverless), VMs ainda são úteis para:</p>
<ul>
<li class="">Ambientes persistentes para serviços de background</li>
<li class="">Testes de rede e configurações de baixo nível</li>
<li class="">Executar binários e ferramentas que exigem ambiente full-OS</li>
</ul>
<p>Para este tutorial usamos uma VM como host do serviço (piping server) e do agente <code>cloudflared</code> que estabelece o túnel.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="2--criando-a-vm-visão-geral--azure">2 — Criando a VM (visão geral — Azure)<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/08/22/cloudflare-tunnel-economizando-ipv4-ao-expor-servicos-em-vms#2--criando-a-vm-vis%C3%A3o-geral--azure" class="hash-link" aria-label="Link direto para 2 — Criando a VM (visão geral — Azure)" title="Link direto para 2 — Criando a VM (visão geral — Azure)" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="20---pré-requisitos">2.0 - Pré-requisitos<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/08/22/cloudflare-tunnel-economizando-ipv4-ao-expor-servicos-em-vms#20---pr%C3%A9-requisitos" class="hash-link" aria-label="Link direto para 2.0 - Pré-requisitos" title="Link direto para 2.0 - Pré-requisitos" translate="no">​</a></h3>
<p>Instalação do Azure CLI e login na conta Azure.</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">az login</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="21---criar-grupo-de-recurso">2.1 - Criar grupo de recurso<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/08/22/cloudflare-tunnel-economizando-ipv4-ao-expor-servicos-em-vms#21---criar-grupo-de-recurso" class="hash-link" aria-label="Link direto para 2.1 - Criar grupo de recurso" title="Link direto para 2.1 - Criar grupo de recurso" translate="no">​</a></h3>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">az group create </span><span class="token parameter variable" style="color:#36acaa">--name</span><span class="token plain"> tutorial-codaqui </span><span class="token parameter variable" style="color:#36acaa">--location</span><span class="token plain"> eastus</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="22---criar-a-vm-sem-ipv4">2.2 - Criar a VM sem IPv4<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/08/22/cloudflare-tunnel-economizando-ipv4-ao-expor-servicos-em-vms#22---criar-a-vm-sem-ipv4" class="hash-link" aria-label="Link direto para 2.2 - Criar a VM sem IPv4" title="Link direto para 2.2 - Criar a VM sem IPv4" translate="no">​</a></h3>
<p>Para um fluxo mais controlado (e reprodutível) use um ARM template com um arquivo de parâmetros JSON — esse é o esquema esperado para o arquivo de parâmetros. Salve o JSON abaixo como <code>vm-parameters.json</code> e tenha o template ARM (<code>vm-template.json</code>) ao lado.</p>
<p>Exemplo do comando de deploy:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">az deployment group create </span><span class="token punctuation" style="color:#393A34">\</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   --resource-group tutorial-codaqui </span><span class="token punctuation" style="color:#393A34">\</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   --template-file vm-template.json </span><span class="token punctuation" style="color:#393A34">\</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token parameter variable" style="color:#36acaa">--parameters</span><span class="token plain"> @vm-parameters.json</span><br></span></code></pre></div></div>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Exemplo de vm-template.json</summary><div><div class="collapsibleContent_i85q">
<!-- -->
    ```json
    {
        "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
        "contentVersion": "1.0.0.0",
        "parameters": {
            "location": {
                "type": "string"
            },
            "networkInterfaceName": {
                "type": "string"
            },
            "networkSecurityGroupName": {
                "type": "string"
            },
            "networkSecurityGroupRules": {
                "type": "array"
            },
            "subnetName": {
                "type": "string"
            },
            "virtualNetworkName": {
                "type": "string"
            },
            "addressPrefixes": {
                "type": "array"
            },
            "subnets": {
                "type": "array"
            },
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">        "virtualMachineName": {</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            "type": "string"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        },</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        "virtualMachineComputerName": {</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            "type": "string"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        },</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        "virtualMachineRG": {</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            "type": "string"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        },</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        "osDiskType": {</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            "type": "string"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        },</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        "osDiskSizeGiB": {</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            "type": "int"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        },</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        "osDiskDeleteOption": {</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            "type": "string"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        },</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        "virtualMachineSize": {</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            "type": "string"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        },</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        "nicDeleteOption": {</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            "type": "string"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        },</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        "adminUsername": {</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            "type": "string"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        },</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        "adminPassword": {</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            "type": "secureString"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        }</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    },</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    "variables": {</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        "nsgId": "[resourceId(resourceGroup().name, 'Microsoft.Network/networkSecurityGroups', parameters('networkSecurityGroupName'))]",</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        "vnetName": "[parameters('virtualNetworkName')]",</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        "vnetId": "[resourceId(resourceGroup().name,'Microsoft.Network/virtualNetworks', parameters('virtualNetworkName'))]",</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        "subnetRef": "[concat(variables('vnetId'), '/subnets/', parameters('subnetName'))]"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    },</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    "resources": [</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        {</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            "name": "[parameters('networkInterfaceName')]",</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            "type": "Microsoft.Network/networkInterfaces",</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            "apiVersion": "2022-11-01",</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            "location": "[parameters('location')]",</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            "dependsOn": [</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                "[concat('Microsoft.Network/networkSecurityGroups/', parameters('networkSecurityGroupName'))]",</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                "[concat('Microsoft.Network/virtualNetworks/', parameters('virtualNetworkName'))]"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            ],</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            "properties": {</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                "ipConfigurations": [</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                    {</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                        "name": "ipconfig1",</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                        "properties": {</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                            "subnet": {</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                                "id": "[variables('subnetRef')]"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                            },</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                            "privateIPAllocationMethod": "Dynamic"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                        }</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                    }</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                ],</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                "networkSecurityGroup": {</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                    "id": "[variables('nsgId')]"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                }</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            }</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        },</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        {</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            "name": "[parameters('networkSecurityGroupName')]",</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            "type": "Microsoft.Network/networkSecurityGroups",</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            "apiVersion": "2020-05-01",</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            "location": "[parameters('location')]",</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            "properties": {</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                "securityRules": "[parameters('networkSecurityGroupRules')]"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            }</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        },</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        {</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            "name": "[parameters('virtualNetworkName')]",</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            "type": "Microsoft.Network/virtualNetworks",</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            "apiVersion": "2024-01-01",</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            "location": "[parameters('location')]",</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            "properties": {</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                "addressSpace": {</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                    "addressPrefixes": "[parameters('addressPrefixes')]"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                },</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                "subnets": "[parameters('subnets')]"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            }</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        },</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        {</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            "name": "[parameters('virtualMachineName')]",</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            "type": "Microsoft.Compute/virtualMachines",</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            "apiVersion": "2024-03-01",</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            "location": "[parameters('location')]",</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            "dependsOn": [</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                "[concat('Microsoft.Network/networkInterfaces/', parameters('networkInterfaceName'))]"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            ],</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            "properties": {</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                "hardwareProfile": {</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                    "vmSize": "[parameters('virtualMachineSize')]"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                },</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                "storageProfile": {</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                    "osDisk": {</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                        "createOption": "fromImage",</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                        "managedDisk": {</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                            "storageAccountType": "[parameters('osDiskType')]"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                        },</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                        "diskSizeGB": "[parameters('osDiskSizeGiB')]",</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                        "deleteOption": "[parameters('osDiskDeleteOption')]"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                    },</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                    "imageReference": {</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                        "publisher": "Canonical",</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                        "offer": "0001-com-ubuntu-server-jammy",</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                        "sku": "22_04-lts-gen2",</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                        "version": "latest"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                    }</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                },</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                "networkProfile": {</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                    "networkInterfaces": [</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                        {</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                            "id": "[resourceId('Microsoft.Network/networkInterfaces', parameters('networkInterfaceName'))]",</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                            "properties": {</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                                "deleteOption": "[parameters('nicDeleteOption')]"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                            }</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                        }</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                    ]</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                },</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                "securityProfile": {},</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                "osProfile": {</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                    "computerName": "[parameters('virtualMachineComputerName')]",</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                    "adminUsername": "[parameters('adminUsername')]",</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                    "adminPassword": "[parameters('adminPassword')]"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                }</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            }</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        }</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    ],</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    "outputs": {</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        "adminUsername": {</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            "type": "string",</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            "value": "[parameters('adminUsername')]"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        }</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    }</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">}</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">```</span><br></span></code></pre></div></div>
</div></div></details>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Exemplo de `vm-parameters.json` (schema/valores)</summary><div><div class="collapsibleContent_i85q">
<!-- -->
    ```json
    {
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "location": { "value": "eastus" },
        "networkInterfaceName": { "value": "tutorial-codaqui329" },
        "networkSecurityGroupName": { "value": "tutorial-codaqui-nsg" },
        "networkSecurityGroupRules": { "value": [] },
        "subnetName": { "value": "default" },
        "virtualNetworkName": { "value": "tutorial-codaqui-vnet" },
        "addressPrefixes": { "value": ["10.1.0.0/16"] },
        "subnets": { "value": [{ "name": "default", "properties": { "addressPrefix": "10.1.1.0/24" } }] },
        "virtualMachineName": { "value": "tutorial-codaqui" },
        "virtualMachineComputerName": { "value": "tutorial-codaqu" },
        "virtualMachineRG": { "value": "teste" },
        "osDiskType": { "value": "Premium_LRS" },
        "osDiskSizeGiB": { "value": 64 },
        "osDiskDeleteOption": { "value": "Delete" },
        "virtualMachineSize": { "value": "Standard_B1s" },
        "nicDeleteOption": { "value": "Detach" },
        "adminUsername": { "value": "codaqui" },
        "adminPassword": { "value": "CoDAqui123!" }
    }
    }
    ```
</div></div></details>
<p>Observações:</p>
<ul>
<li class="">O template cria uma VM Ubuntu Linux (gratuita) com autenticação por senha.</li>
<li class="">Use uma senha forte (exemplo: <code>CoDAqui123!</code>) ou altere no arquivo de parâmetros.</li>
<li class="">Sem IP público, use o Azure Serial Console ou Azure Bastion para acessar a VM após o deploy.</li>
<li class="">O Cloudflare Tunnel fará o roteamento, eliminando a necessidade de IP público fixo.</li>
</ul>
<p>Depois do deploy, você pode conectar via console do Azure Portal (Serial Console) usando o usuário <code>codaqui</code> e a senha definida.</p>
<p>Observação: a VM precisa de saída para internet para que o <code>cloudflared</code> consiga estabelecer o túnel.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="3--criar-conta-no-cloudflare-e-configurar-dns">3 — Criar conta no Cloudflare e configurar DNS<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/08/22/cloudflare-tunnel-economizando-ipv4-ao-expor-servicos-em-vms#3--criar-conta-no-cloudflare-e-configurar-dns" class="hash-link" aria-label="Link direto para 3 — Criar conta no Cloudflare e configurar DNS" title="Link direto para 3 — Criar conta no Cloudflare e configurar DNS" translate="no">​</a></h2>
<ol>
<li class="">Crie uma conta gratuita em <a href="https://dash.cloudflare.com/" target="_blank" rel="noopener noreferrer" class="">https://dash.cloudflare.com</a></li>
<li class="">Adicione seu domínio e aponte NS para o Cloudflare</li>
<li class="">No painel DNS, adicione um registro CNAME ou A para o subdomínio que você quer usar; mais adiante vamos mapear esse hostname para o túnel (Cloudflare criará o registro correto quando usarmos <code>cloudflared tunnel route dns</code>).</li>
</ol>
<p>Dica: no plano gratuito você já tem acesso ao serviço de DNS e a funcionalidades básicas de Zero Trust (Access). Não é necessário contratar plano pago para este fluxo básico.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="4--noções-básicas-de-zero-trust-opcional-nessa-etapa">4 — Noções básicas de Zero Trust (opcional nessa etapa)<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/08/22/cloudflare-tunnel-economizando-ipv4-ao-expor-servicos-em-vms#4--no%C3%A7%C3%B5es-b%C3%A1sicas-de-zero-trust-opcional-nessa-etapa" class="hash-link" aria-label="Link direto para 4 — Noções básicas de Zero Trust (opcional nessa etapa)" title="Link direto para 4 — Noções básicas de Zero Trust (opcional nessa etapa)" translate="no">​</a></h2>
<p>O Zero Trust no Cloudflare (Access) permite proteger o acesso ao host com políticas (e.g., SSO, lista de usuários). Para um laboratório você pode:</p>
<ul>
<li class="">Criar uma aplicação em Access e exigir autenticação via GitHub/Google</li>
<li class="">Usar políticas por endereço IP ou por identidade</li>
</ul>
<p>Essas configurações ficam no painel "Zero Trust" (antigo Access) e podem ser aplicadas ao hostname que vamos criar.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="5--instalar-e-configurar-o-cloudflare-tunnel-na-vm">5 — Instalar e configurar o Cloudflare Tunnel na VM<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/08/22/cloudflare-tunnel-economizando-ipv4-ao-expor-servicos-em-vms#5--instalar-e-configurar-o-cloudflare-tunnel-na-vm" class="hash-link" aria-label="Link direto para 5 — Instalar e configurar o Cloudflare Tunnel na VM" title="Link direto para 5 — Instalar e configurar o Cloudflare Tunnel na VM" translate="no">​</a></h2>
<p>Passos principais:</p>
<ol>
<li class="">Instalar <code>cloudflared</code></li>
<li class="">Logar o <code>cloudflared</code> na conta Cloudflare (gera um arquivo de credenciais)</li>
<li class="">Criar o túnel e mapear um hostname</li>
<li class="">Criar arquivo de configuração e rodar como serviço</li>
</ol>
<p>Exemplo (Ubuntu/Debian):</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># baixar o binário mais recente</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> </span><span class="token parameter variable" style="color:#36acaa">-L</span><span class="token plain"> </span><span class="token parameter variable" style="color:#36acaa">-o</span><span class="token plain"> cloudflared </span><span class="token punctuation" style="color:#393A34">\</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">chmod</span><span class="token plain"> +x cloudflared</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">sudo</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">mv</span><span class="token plain"> cloudflared /usr/local/bin/</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># fazer login (abre uma URL para autenticação no Cloudflare)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">cloudflared tunnel login</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># criar o túnel (gera um UUID)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">cloudflared tunnel create lab-tunnel</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># vincular um hostname DNS gerenciado pelo Cloudflare ao túnel</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">cloudflared tunnel route dns lab-tunnel app.example.com</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># criar config em /etc/cloudflared/config.yml</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">sudo</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">mkdir</span><span class="token plain"> </span><span class="token parameter variable" style="color:#36acaa">-p</span><span class="token plain"> /etc/cloudflared</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">sudo</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">tee</span><span class="token plain"> /etc/cloudflared/config.yml </span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"> /dev/null </span><span class="token operator" style="color:#393A34">&lt;&lt;</span><span class="token string" style="color:#e3116c">'YAML'</span><br></span><span class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">tunnel: &lt;TUNNEL-UUID&gt;</span><br></span><span class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">credentials-file: /etc/cloudflared/&lt;TUNNEL-UUID&gt;.json</span><br></span><span class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">ingress:</span><br></span><span class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">   - hostname: app.example.com</span><br></span><span class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">      service: http://localhost:8080</span><br></span><span class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">   - service: http_status:404</span><br></span><span class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">YAML</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># instalar como serviço systemd (opcional: cloudflared oferece comando helper)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">sudo</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">tee</span><span class="token plain"> /etc/systemd/system/cloudflared.service </span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"> /dev/null </span><span class="token operator" style="color:#393A34">&lt;&lt;</span><span class="token string" style="color:#e3116c">'UNIT'</span><br></span><span class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">[Unit]</span><br></span><span class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">Description=Cloudflare Tunnel</span><br></span><span class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">After=network.target</span><br></span><span class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c"></span><br></span><span class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">[Service]</span><br></span><span class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">Type=simple</span><br></span><span class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">User=root</span><br></span><span class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">ExecStart=/usr/local/bin/cloudflared --config /etc/cloudflared/config.yml run</span><br></span><span class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">Restart=on-failure</span><br></span><span class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c"></span><br></span><span class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">[Install]</span><br></span><span class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">WantedBy=multi-user.target</span><br></span><span class="token-line" style="color:#393A34"><span class="token string" style="color:#e3116c">UNIT</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">sudo</span><span class="token plain"> systemctl daemon-reload</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">sudo</span><span class="token plain"> systemctl </span><span class="token builtin class-name">enable</span><span class="token plain"> </span><span class="token parameter variable" style="color:#36acaa">--now</span><span class="token plain"> cloudflared</span><br></span></code></pre></div></div>
<p>Notas:</p>
<ul>
<li class="">Substitua <code>&lt;TUNNEL-UUID&gt;</code> e <code>app.example.com</code> pelos valores reais retornados pelos comandos.</li>
<li class="">Se <code>cloudflared tunnel login</code> não puder abrir um navegador na VM, execute o login em uma máquina local e copie o arquivo de credenciais para a VM, ou use um Service Token/Account para automação.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="6--exemplo-deploy-de-um-piping-server-local-e-exposição-via-tunnel">6 — Exemplo: Deploy de um "Piping Server" local e exposição via Tunnel<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/08/22/cloudflare-tunnel-economizando-ipv4-ao-expor-servicos-em-vms#6--exemplo-deploy-de-um-piping-server-local-e-exposi%C3%A7%C3%A3o-via-tunnel" class="hash-link" aria-label="Link direto para 6 — Exemplo: Deploy de um &quot;Piping Server&quot; local e exposição via Tunnel" title="Link direto para 6 — Exemplo: Deploy de um &quot;Piping Server&quot; local e exposição via Tunnel" translate="no">​</a></h2>
<p>Para o exemplo vamos supor que exista um serviço HTTP simples rodando na porta 8080 (poderia ser o piping server ou qualquer app). Se você quiser testar rápido:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># exemplo rápido com Python (na VM)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">python3 </span><span class="token parameter variable" style="color:#36acaa">-m</span><span class="token plain"> http.server </span><span class="token number" style="color:#36acaa">8080</span><span class="token plain"> </span><span class="token parameter variable" style="color:#36acaa">--bind</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">127.0</span><span class="token plain">.0.1</span><br></span></code></pre></div></div>
<p>Com o túnel configurado e o DNS apontado, a URL <a href="https://app.example.com/" target="_blank" rel="noopener noreferrer" class="">https://app.example.com</a> ficará disponível publicamente e será roteada para a aplicação local.</p>
<p>Teste:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> </span><span class="token parameter variable" style="color:#36acaa">-I</span><span class="token plain"> https://app.example.com</span><br></span></code></pre></div></div>
<p>Você deve receber uma resposta HTTP 200 (ou o cabeçalho do servidor simples).</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="7--segurança-e-boas-práticas">7 — Segurança e boas práticas<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/08/22/cloudflare-tunnel-economizando-ipv4-ao-expor-servicos-em-vms#7--seguran%C3%A7a-e-boas-pr%C3%A1ticas" class="hash-link" aria-label="Link direto para 7 — Segurança e boas práticas" title="Link direto para 7 — Segurança e boas práticas" translate="no">​</a></h2>
<ul>
<li class="">Use <code>cloudflared tunnel route dns</code> para que o Cloudflare gerencie o DNS do hostname</li>
<li class="">Restrinja o acesso com Zero Trust/Access quando expor serviços administrativos</li>
<li class="">Mantenha <code>cloudflared</code> atualizado</li>
<li class="">Automatize o deploy do tunnel com scripts/secrets quando usar em produção</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="8--limitações-e-casos-de-uso">8 — Limitações e casos de uso<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/08/22/cloudflare-tunnel-economizando-ipv4-ao-expor-servicos-em-vms#8--limita%C3%A7%C3%B5es-e-casos-de-uso" class="hash-link" aria-label="Link direto para 8 — Limitações e casos de uso" title="Link direto para 8 — Limitações e casos de uso" translate="no">​</a></h2>
<ul>
<li class="">Cloudflare Tunnel não substitui redes privadas complexas ou balanceamento interno avançado</li>
<li class="">Para serviços com alto throughput verifique limites do plano e latência</li>
<li class="">Economiza custo de IP público e simplifica roteamento para pequenos serviços e laboratórios</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="conclusão">Conclusão<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/08/22/cloudflare-tunnel-economizando-ipv4-ao-expor-servicos-em-vms#conclus%C3%A3o" class="hash-link" aria-label="Link direto para Conclusão" title="Link direto para Conclusão" translate="no">​</a></h2>
<p>O Cloudflare Tunnel é uma solução prática para expor serviços rodando em VMs sem a necessidade de um IPv4 público dedicado. Para laboratórios e projetos pessoais ele reduz custo e adiciona camadas úteis de segurança e gestão via Cloudflare.</p>
<p>Se quiser, no próximo artigo podemos:</p>
<ul>
<li class="">Automatizar criação do túnel via CI/CD</li>
<li class="">Integrar autenticação SSO (Zero Trust) ao hostname</li>
<li class="">Expor múltiplos serviços com path-based routing</li>
</ul>
<hr>
<p>Se preferir que eu atualize também um passo a passo completo com prints, arquivos de configuração e exemplos de systemd mais avançados, me diga que eu adiciono na sequência.</p>]]></content>
        <author>
            <name>Enderson Menezes</name>
            <uri>https://github.com/endersonmenezes</uri>
        </author>
        <category label="Tutoriais" term="Tutoriais"/>
        <category label="cloudflare" term="cloudflare"/>
        <category label="networking" term="networking"/>
        <category label="ipv4" term="ipv4"/>
        <category label="virtual-machine" term="virtual-machine"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[O que é o GIT?]]></title>
        <id>https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/08/18/o-que-e-o-git</id>
        <link href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/08/18/o-que-e-o-git"/>
        <updated>2025-08-18T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Git é um sistema de controle de versão distribuído acessível pela linha de comando (CLI), que permite criar, rastrear e colaborar em um ou vários repositórios diretamente no terminal. Com ele, é possível registrar alterações, criar branches, fazer merges e manter o histórico do código com segurança.]]></summary>
        <content type="html"><![CDATA[<p>Git é um sistema de controle de versão distribuído acessível pela linha de comando (CLI), que permite criar, rastrear e colaborar em um ou vários repositórios diretamente no terminal. Com ele, é possível registrar alterações, criar branches, fazer merges e manter o histórico do código com segurança.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="como-instalar-o-git">Como instalar o GIT?<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/08/18/o-que-e-o-git#como-instalar-o-git" class="hash-link" aria-label="Link direto para Como instalar o GIT?" title="Link direto para Como instalar o GIT?" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="-pré-requisitos">📋 <strong>Pré-requisitos</strong><a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/08/18/o-que-e-o-git#-pr%C3%A9-requisitos" class="hash-link" aria-label="Link direto para -pré-requisitos" title="Link direto para -pré-requisitos" translate="no">​</a></h3>
<ul>
<li class="">Acesso ao terminal/linha de comando</li>
<li class="">Privilégios de administrador (sudo)</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="-linux">🐧 <strong>Linux</strong><a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/08/18/o-que-e-o-git#-linux" class="hash-link" aria-label="Link direto para -linux" title="Link direto para -linux" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="distribuições-baseadas-no-debian-ubuntu-mint-etc"><strong>Distribuições baseadas no Debian (Ubuntu, Mint, etc.)</strong><a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/08/18/o-que-e-o-git#distribui%C3%A7%C3%B5es-baseadas-no-debian-ubuntu-mint-etc" class="hash-link" aria-label="Link direto para distribuições-baseadas-no-debian-ubuntu-mint-etc" title="Link direto para distribuições-baseadas-no-debian-ubuntu-mint-etc" translate="no">​</a></h4>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">sudo apt update &amp;&amp; sudo apt install git</span><br></span></code></pre></div></div>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="distribuições-fedorarhelcentos"><strong>Distribuições Fedora/RHEL/CentOS</strong><a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/08/18/o-que-e-o-git#distribui%C3%A7%C3%B5es-fedorarhelcentos" class="hash-link" aria-label="Link direto para distribuições-fedorarhelcentos" title="Link direto para distribuições-fedorarhelcentos" translate="no">​</a></h4>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">sudo dnf install git</span><br></span></code></pre></div></div>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="arch-linux"><strong>Arch Linux</strong><a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/08/18/o-que-e-o-git#arch-linux" class="hash-link" aria-label="Link direto para arch-linux" title="Link direto para arch-linux" translate="no">​</a></h4>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">sudo pacman -S git</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="-macos">🍎 <strong>macOS</strong><a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/08/18/o-que-e-o-git#-macos" class="hash-link" aria-label="Link direto para -macos" title="Link direto para -macos" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="usando-homebrew-recomendado"><strong>Usando Homebrew (Recomendado)</strong><a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/08/18/o-que-e-o-git#usando-homebrew-recomendado" class="hash-link" aria-label="Link direto para usando-homebrew-recomendado" title="Link direto para usando-homebrew-recomendado" translate="no">​</a></h4>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">brew install git</span><br></span></code></pre></div></div>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="usando-macports"><strong>Usando MacPorts</strong><a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/08/18/o-que-e-o-git#usando-macports" class="hash-link" aria-label="Link direto para usando-macports" title="Link direto para usando-macports" translate="no">​</a></h4>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">sudo port install git</span><br></span></code></pre></div></div>
<blockquote>
<p><strong>💡 Curiosidade:</strong> O Homebrew também pode ser usado no Linux como alternativa aos gerenciadores nativos!</p>
</blockquote>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="-windows">🪟 <strong>Windows</strong><a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/08/18/o-que-e-o-git#-windows" class="hash-link" aria-label="Link direto para -windows" title="Link direto para -windows" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="opção-1-windows-subsystem-for-linux-wsl"><strong>Opção 1: Windows Subsystem for Linux (WSL)</strong><a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/08/18/o-que-e-o-git#op%C3%A7%C3%A3o-1-windows-subsystem-for-linux-wsl" class="hash-link" aria-label="Link direto para opção-1-windows-subsystem-for-linux-wsl" title="Link direto para opção-1-windows-subsystem-for-linux-wsl" translate="no">​</a></h4>
<ol>
<li class="">
<p><strong>Instalar WSL:</strong></p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">wsl --install -d Debian</span><br></span></code></pre></div></div>
</li>
<li class="">
<p><strong>Configurar WSL 2 como padrão:</strong></p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">wsl --set-default-version 2</span><br></span></code></pre></div></div>
</li>
<li class="">
<p><strong>Instalar Git no Debian:</strong></p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">sudo apt update &amp;&amp; sudo apt install git</span><br></span></code></pre></div></div>
<p><strong>Veja o tópico acima de como instalar no Debian.</strong></p>
</li>
</ol>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="opção-2-instalação-nativa"><strong>Opção 2: Instalação Nativa</strong><a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/08/18/o-que-e-o-git#op%C3%A7%C3%A3o-2-instala%C3%A7%C3%A3o-nativa" class="hash-link" aria-label="Link direto para opção-2-instalação-nativa" title="Link direto para opção-2-instalação-nativa" translate="no">​</a></h4>
<p><strong>Download automático via PowerShell:</strong></p>
<div class="language-powershell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-powershell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">winget install --id Git.Git -e --source winget</span><br></span></code></pre></div></div>
<p>Caso não funcione, você pode baixar o instalador diretamente do site oficial: <a href="https://git-scm.com/download/win" target="_blank" rel="noopener noreferrer" class="">git-scm.com</a>. e instalar manualmente a versão GUI.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="️-configuração-inicial">⚙️ <strong>Configuração Inicial</strong><a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/08/18/o-que-e-o-git#%EF%B8%8F-configura%C3%A7%C3%A3o-inicial" class="hash-link" aria-label="Link direto para ️-configuração-inicial" title="Link direto para ️-configuração-inicial" translate="no">​</a></h3>
<p><strong>Configurar identidade:</strong></p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">git config --global user.name "Seu Nome"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">git config --global user.email "seuemail@exemplo.com"</span><br></span></code></pre></div></div>
<p><strong>No VSCode</strong></p>
<p>1️⃣ <strong>Clonar um repositório para testar o funcionamento(metodo fácil):</strong></p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain"># Institucional da codaqui por exemplo</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">git clone https://github.com/codaqui/institucional.git</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-clonando-um-repositório-no-vscode">🚀 Clonando um Repositório no VSCode<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/08/18/o-que-e-o-git#-clonando-um-reposit%C3%B3rio-no-vscode" class="hash-link" aria-label="Link direto para 🚀 Clonando um Repositório no VSCode" title="Link direto para 🚀 Clonando um Repositório no VSCode" translate="no">​</a></h2>
<p>2️⃣ <strong>No seu VSCode, clique no ícone de controle de código-fonte</strong></p>
<img decoding="async" loading="lazy" width="72" height="63" alt="image" src="https://github.com/user-attachments/assets/fd5c2a4f-409a-4298-a62e-0ed359244679" class="img_ev3q">
<hr>
<p>3️⃣ <strong>Clique em <em>CLONE REPOSITORY</em></strong></p>
<img decoding="async" loading="lazy" width="264" height="34" alt="image" src="https://github.com/user-attachments/assets/32475ffe-7c3e-4cda-8a3d-1204bba19c9c" class="img_ev3q">
<hr>
<p>4️⃣ <strong>Na parte inferior da barra de pesquisa, selecione <em>CLONE FROM GITHUB</em></strong></p>
<img decoding="async" loading="lazy" width="627" height="74" alt="image" src="https://github.com/user-attachments/assets/f2cd252d-d99d-4806-a26c-3a10f510e8fa" class="img_ev3q">
<hr>
<p>5️⃣ <strong>Será exibida a seguinte mensagem:</strong></p>
<img decoding="async" loading="lazy" width="570" height="203" alt="image" src="https://github.com/user-attachments/assets/3d3a4d6d-e8b2-4c88-9cde-5c3a5bc90ab4" class="img_ev3q">
<hr>
<p>6️⃣ <strong>Clique em ✅ <em>Allow</em></strong></p>
<hr>
<p>7️⃣ <strong>Faça login no GitHub</strong> 🔑</p>]]></content>
        <author>
            <name>Elias Miranda</name>
            <uri>https://github.com/artumosgoc</uri>
        </author>
        <category label="Tutoriais" term="Tutoriais"/>
        <category label="github" term="github"/>
        <category label="linux" term="linux"/>
        <category label="queroajudar" term="queroajudar"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[O que é SFML]]></title>
        <id>https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/05/04/o-que-e-sfml</id>
        <link href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/05/04/o-que-e-sfml"/>
        <updated>2025-05-04T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[O SFML(Simple and Fast Multimedia Library) é uma biblioteca de desenvolvimento multimídia escrita em C++ que fornece uma interface simples para lidar com gráficos 2D, 3D, áudio, entrada do usuário (teclado, mouse, joystick), rede e janelas. Ele é amplamente utilizado para criar jogos, simuladores e outras aplicações gráficas devido à sua facilidade de uso, desempenho eficiente e suporte multiplataforma.]]></summary>
        <content type="html"><![CDATA[<p>O SFML(Simple and Fast Multimedia Library) é uma biblioteca de desenvolvimento multimídia escrita em C++ que fornece uma interface simples para lidar com gráficos 2D, 3D, áudio, entrada do usuário (teclado, mouse, joystick), rede e janelas. Ele é amplamente utilizado para criar jogos, simuladores e outras aplicações gráficas devido à sua facilidade de uso, desempenho eficiente e suporte multiplataforma.</p>
<p>Se esta seção ainda não foi preenchida, você pode expandi-la explicando os principais recursos do SFML, como:</p>
<ul>
<li class=""><strong>Renderização gráfica</strong>: Criação de formas, sprites, texto e outros elementos visuais.</li>
<li class=""><strong>Manipulação de áudio</strong>: Reprodução de sons e músicas.</li>
<li class=""><strong>Gerenciamento de janelas</strong>: Criação e controle de janelas de aplicação.</li>
<li class=""><strong>Entrada do usuário</strong>: Detecção de eventos de teclado, mouse e outros dispositivos.</li>
<li class=""><strong>Rede</strong>: Comunicação via TCP e UDP.</li>
</ul>
<p>Neste projeto, optei por criar um exemplo simples — um cubo 3D — com o objetivo de apresentar de forma prática o que é possível construir utilizando este framework. A ideia é fornecer uma base visual e acessível para quem está começando, demonstrando como estruturas tridimensionais básicas podem ser renderizadas com facilidade.</p>
<p>Este cubo serve como ponto de partida para explorações mais avançadas, como animações, interações, iluminação e composição de cenas mais complexas. A imagem abaixo ilustra o resultado da implementação e evidenciam parte do potencial que essa ferramenta oferece para o desenvolvimento gráfico.</p>
<p><img decoding="async" loading="lazy" src="https://i.postimg.cc/0Qc8Z3cg/2025-05-05-18-34-10.gif" alt="Gif do Resultado, um cubo tridimensional" class="img_ev3q"></p>
<h1>Configuração do Ambiente para Desenvolvimento com SFML</h1>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="instalação-do-sfml">Instalação do SFML<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/05/04/o-que-e-sfml#instala%C3%A7%C3%A3o-do-sfml" class="hash-link" aria-label="Link direto para Instalação do SFML" title="Link direto para Instalação do SFML" translate="no">​</a></h2>
<p>Para iniciar o processo, precisamos instalar o framework <strong>SFML</strong>. A instalação varia de acordo com o sistema operacional. No caso, estou utilizando <strong>Debian 12</strong> (image-6.1.0-34-amd64). Para instalar o SFML, execute o seguinte comando no terminal(é para funcionar em distros baseadas no debian):</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">sudo</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">apt-get</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">install</span><span class="token plain"> libsfml-dev</span><br></span></code></pre></div></div>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="windows-usando-vcpkg">Windows usando vcpkg.<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/05/04/o-que-e-sfml#windows-usando-vcpkg" class="hash-link" aria-label="Link direto para Windows usando vcpkg." title="Link direto para Windows usando vcpkg." translate="no">​</a></h4>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">vcpkg</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">install</span><span class="token plain"> sfml</span><br></span></code></pre></div></div>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="arch-usando-pacman">Arch usando pacman.<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/05/04/o-que-e-sfml#arch-usando-pacman" class="hash-link" aria-label="Link direto para Arch usando pacman." title="Link direto para Arch usando pacman." translate="no">​</a></h4>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">sudo</span><span class="token plain"> pacman </span><span class="token parameter variable" style="color:#36acaa">-S</span><span class="token plain"> sfml</span><br></span></code></pre></div></div>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="fedora-usando-dnf">Fedora usando dnf.<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/05/04/o-que-e-sfml#fedora-usando-dnf" class="hash-link" aria-label="Link direto para Fedora usando dnf." title="Link direto para Fedora usando dnf." translate="no">​</a></h4>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">sudo</span><span class="token plain"> dnf </span><span class="token function" style="color:#d73a49">install</span><span class="token plain"> SFML-devel</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="instalação-do-gccg">Instalação do GCC/G++<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/05/04/o-que-e-sfml#instala%C3%A7%C3%A3o-do-gccg" class="hash-link" aria-label="Link direto para Instalação do GCC/G++" title="Link direto para Instalação do GCC/G++" translate="no">​</a></h2>
<p>Após instalar o SFML, é necessário garantir que o compilador <strong>GCC/G++</strong> esteja instalado. Para isso, utilize o comando:</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="debiandistros-baseadas-no-debian">Debian(distros baseadas no debian)<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/05/04/o-que-e-sfml#debiandistros-baseadas-no-debian" class="hash-link" aria-label="Link direto para Debian(distros baseadas no debian)" title="Link direto para Debian(distros baseadas no debian)" translate="no">​</a></h4>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">sudo</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">apt</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">install</span><span class="token plain"> build-essential</span><br></span></code></pre></div></div>
<p>No Windows, você pode instalar o GCC/G++ utilizando o <strong>MinGW</strong> ou <strong>MSYS2</strong>:</p>
<ol>
<li class="">
<p><strong>MinGW</strong>(recomendo):</p>
<ul>
<li class="">Baixe o instalador do MinGW no site oficial: <a href="http://www.mingw.org/" target="_blank" rel="noopener noreferrer" class="">MinGW</a>.</li>
<li class="">Durante a instalação, selecione os pacotes para o compilador GCC/G++.</li>
</ul>
</li>
<li class="">
<p><strong>MSYS2</strong>:</p>
<ul>
<li class="">Baixe e instale o MSYS2: <a href="https://www.msys2.org/" target="_blank" rel="noopener noreferrer" class="">MSYS2</a>.</li>
<li class="">No terminal do MSYS2, execute o comando:
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">pacman </span><span class="token parameter variable" style="color:#36acaa">-S</span><span class="token plain"> mingw-w64-x86_64-gcc</span><br></span></code></pre></div></div>
</li>
</ul>
</li>
</ol>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="arch-linux">Arch Linux<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/05/04/o-que-e-sfml#arch-linux" class="hash-link" aria-label="Link direto para Arch Linux" title="Link direto para Arch Linux" translate="no">​</a></h4>
<p>No Arch Linux, use o gerenciador de pacotes <code>pacman</code> para instalar o GCC/G++:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">sudo</span><span class="token plain"> pacman </span><span class="token parameter variable" style="color:#36acaa">-S</span><span class="token plain"> base-devel</span><br></span></code></pre></div></div>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="fedora">Fedora<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/05/04/o-que-e-sfml#fedora" class="hash-link" aria-label="Link direto para Fedora" title="Link direto para Fedora" translate="no">​</a></h4>
<p>No Fedora, use o gerenciador de pacotes <code>dnf</code> para instalar o GCC/G++:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">sudo</span><span class="token plain"> dnf groupinstall </span><span class="token string" style="color:#e3116c">"Development Tools"</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">sudo</span><span class="token plain"> dnf </span><span class="token function" style="color:#d73a49">install</span><span class="token plain"> gcc-c++</span><br></span></code></pre></div></div>
<h1>Criando o projeto</h1>
<ol>
<li class="">
<p>Crie um diretório para o projeto:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">mkdir</span><span class="token plain"> meu_projeto_sfml</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token builtin class-name">cd</span><span class="token plain"> meu_projeto_sfml</span><br></span></code></pre></div></div>
</li>
<li class="">
<p>Crie um arquivo de código-fonte principal, <code>main.cpp</code>:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">nano</span><span class="token plain"> main.cpp</span><br></span></code></pre></div></div>
</li>
<li class="">
<p>Escreva o seguinte código básico no arquivo <code>main.cpp</code> para testar a integração com o SFML:</p>
<div class="language-cpp codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-cpp codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token macro property directive-hash" style="color:#36acaa">#</span><span class="token macro property directive keyword" style="color:#00009f">include</span><span class="token macro property" style="color:#36acaa"> </span><span class="token macro property string" style="color:#e3116c">"WIN.h"</span><span class="token macro property" style="color:#36acaa"> </span><span class="token macro property comment" style="color:#999988;font-style:italic">// Inclui o arquivo de cabeçalho da classe WIN</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">int</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">main</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token comment" style="color:#999988;font-style:italic">// Cria um objeto de janela com (largura, altura, título, cor de fundo e taxa de quadros especificados)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   WIN </span><span class="token function" style="color:#d73a49">window</span><span class="token punctuation" style="color:#393A34">(</span><span class="token number" style="color:#36acaa">800</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">600</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"Cubo"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> sf</span><span class="token double-colon punctuation" style="color:#393A34">::</span><span class="token plain">Color</span><span class="token double-colon punctuation" style="color:#393A34">::</span><span class="token plain">Black</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">160</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token comment" style="color:#999988;font-style:italic">// Executa o loop principal da janela</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   window</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">run</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token keyword" style="color:#00009f">return</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">0</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// Encerra o programa</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">// fontes materiais:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">// https://www.sfml-dev.org/tutorials/2.5/window-window.php</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">// https://www.sfml-dev.org/tutorials/2.5/graphics-shape.php</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">// https://www.sfml-dev.org/tutorials/2.5/graphics-vertex-array.php#vertex-array</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">// calculos matematicos:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">// https://pt.wikipedia.org/wiki/Matriz_de_rota%C3%A7%C3%A3o</span><br></span></code></pre></div></div>
</li>
<li class="">
<p>Crie um arquivo de código-fonte principal, <code>CUBE.cpp</code>:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">nano</span><span class="token plain"> CUBE.cpp</span><br></span></code></pre></div></div>
</li>
<li class="">
<p>Escreva o seguinte código básico no arquivo <code>CUBE.cpp</code> para testar a integração com o SFML:</p>
<div class="language-cpp codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-cpp codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token macro property directive-hash" style="color:#36acaa">#</span><span class="token macro property directive keyword" style="color:#00009f">include</span><span class="token macro property" style="color:#36acaa"> </span><span class="token macro property string" style="color:#e3116c">"CUBE.h"</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token macro property directive-hash" style="color:#36acaa">#</span><span class="token macro property directive keyword" style="color:#00009f">include</span><span class="token macro property" style="color:#36acaa"> </span><span class="token macro property string" style="color:#e3116c">&lt;cmath&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">// Construtor</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">// Inicializa o cubo com um tamanho especificado e define sua cor padrão como branca</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token class-name">Cube</span><span class="token double-colon punctuation" style="color:#393A34">::</span><span class="token function" style="color:#d73a49">Cube</span><span class="token punctuation" style="color:#393A34">(</span><span class="token keyword" style="color:#00009f">float</span><span class="token plain"> size</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">color</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">Color</span><span class="token double-colon punctuation" style="color:#393A34">::</span><span class="token plain">White</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token comment" style="color:#999988;font-style:italic">// Define os vértices do cubo</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token comment" style="color:#999988;font-style:italic">// Calcula metade do tamanho para posicionar os vértices em torno da origem</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token keyword" style="color:#00009f">float</span><span class="token plain"> halfSize </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> size </span><span class="token operator" style="color:#393A34">/</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">2.0f</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   vertices </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token function" style="color:#d73a49">Vector3f</span><span class="token punctuation" style="color:#393A34">(</span><span class="token operator" style="color:#393A34">-</span><span class="token plain">halfSize</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">-</span><span class="token plain">halfSize</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">-</span><span class="token plain">halfSize</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// Vértice 0</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token function" style="color:#d73a49">Vector3f</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">halfSize</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">-</span><span class="token plain">halfSize</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">-</span><span class="token plain">halfSize</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain">  </span><span class="token comment" style="color:#999988;font-style:italic">// Vértice 1</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token function" style="color:#d73a49">Vector3f</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">halfSize</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> halfSize</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">-</span><span class="token plain">halfSize</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain">   </span><span class="token comment" style="color:#999988;font-style:italic">// Vértice 2</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token function" style="color:#d73a49">Vector3f</span><span class="token punctuation" style="color:#393A34">(</span><span class="token operator" style="color:#393A34">-</span><span class="token plain">halfSize</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> halfSize</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">-</span><span class="token plain">halfSize</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain">  </span><span class="token comment" style="color:#999988;font-style:italic">// Vértice 3</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token function" style="color:#d73a49">Vector3f</span><span class="token punctuation" style="color:#393A34">(</span><span class="token operator" style="color:#393A34">-</span><span class="token plain">halfSize</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">-</span><span class="token plain">halfSize</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> halfSize</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain">  </span><span class="token comment" style="color:#999988;font-style:italic">// Vértice 4</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token function" style="color:#d73a49">Vector3f</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">halfSize</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">-</span><span class="token plain">halfSize</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> halfSize</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain">   </span><span class="token comment" style="color:#999988;font-style:italic">// Vértice 5</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token function" style="color:#d73a49">Vector3f</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">halfSize</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> halfSize</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> halfSize</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain">    </span><span class="token comment" style="color:#999988;font-style:italic">// Vértice 6</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token function" style="color:#d73a49">Vector3f</span><span class="token punctuation" style="color:#393A34">(</span><span class="token operator" style="color:#393A34">-</span><span class="token plain">halfSize</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> halfSize</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> halfSize</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain">   </span><span class="token comment" style="color:#999988;font-style:italic">// Vértice 7</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token comment" style="color:#999988;font-style:italic">// Define as faces do cubo (índices dos vértices)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token comment" style="color:#999988;font-style:italic">// Cada face é representada por 4 índices que apontam para os vértices</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   faces </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">{</span><span class="token number" style="color:#36acaa">0</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">1</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">2</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">3</span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// Frente</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">{</span><span class="token number" style="color:#36acaa">4</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">5</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">6</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">7</span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// Trás</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">{</span><span class="token number" style="color:#36acaa">0</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">4</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">7</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">3</span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// Esquerda</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">{</span><span class="token number" style="color:#36acaa">1</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">5</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">6</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">2</span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// Direita</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">{</span><span class="token number" style="color:#36acaa">0</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">1</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">5</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">4</span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// Topo</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">{</span><span class="token number" style="color:#36acaa">3</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">2</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">6</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">7</span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// Fundo</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">// Atualiza a rotação do cubo</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">// Aplica rotações nos eixos X, Y e Z para todos os vértices do cubo</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">void</span><span class="token plain"> </span><span class="token class-name">Cube</span><span class="token double-colon punctuation" style="color:#393A34">::</span><span class="token function" style="color:#d73a49">rotate</span><span class="token punctuation" style="color:#393A34">(</span><span class="token keyword" style="color:#00009f">float</span><span class="token plain"> angleX</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">float</span><span class="token plain"> angleY</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">float</span><span class="token plain"> angleZ</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token comment" style="color:#999988;font-style:italic">// Calcula os cossenos e senos dos ângulos para otimizar os cálculos</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token keyword" style="color:#00009f">float</span><span class="token plain"> cosX </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">cos</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">angleX</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> sinX </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">sin</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">angleX</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token keyword" style="color:#00009f">float</span><span class="token plain"> cosY </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">cos</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">angleY</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> sinY </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">sin</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">angleY</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token keyword" style="color:#00009f">float</span><span class="token plain"> cosZ </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">cos</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">angleZ</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> sinZ </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">sin</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">angleZ</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token comment" style="color:#999988;font-style:italic">// Itera sobre todos os vértices para aplicar as rotações</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token keyword" style="color:#00009f">for</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token keyword" style="color:#00009f">auto</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">&amp;</span><span class="token plain">vertex </span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> vertices</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token comment" style="color:#999988;font-style:italic">// Rotação em torno do eixo X</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token keyword" style="color:#00009f">float</span><span class="token plain"> y </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> vertex</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">y </span><span class="token operator" style="color:#393A34">*</span><span class="token plain"> cosX </span><span class="token operator" style="color:#393A34">-</span><span class="token plain"> vertex</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">z </span><span class="token operator" style="color:#393A34">*</span><span class="token plain"> sinX</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token keyword" style="color:#00009f">float</span><span class="token plain"> z </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> vertex</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">y </span><span class="token operator" style="color:#393A34">*</span><span class="token plain"> sinX </span><span class="token operator" style="color:#393A34">+</span><span class="token plain"> vertex</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">z </span><span class="token operator" style="color:#393A34">*</span><span class="token plain"> cosX</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      vertex</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">y </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> y</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      vertex</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">z </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> z</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token comment" style="color:#999988;font-style:italic">// Rotação em torno do eixo Y</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token keyword" style="color:#00009f">float</span><span class="token plain"> x </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> vertex</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">x </span><span class="token operator" style="color:#393A34">*</span><span class="token plain"> cosY </span><span class="token operator" style="color:#393A34">+</span><span class="token plain"> vertex</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">z </span><span class="token operator" style="color:#393A34">*</span><span class="token plain"> sinY</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      z </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">-</span><span class="token plain">vertex</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">x </span><span class="token operator" style="color:#393A34">*</span><span class="token plain"> sinY </span><span class="token operator" style="color:#393A34">+</span><span class="token plain"> vertex</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">z </span><span class="token operator" style="color:#393A34">*</span><span class="token plain"> cosY</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      vertex</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">x </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> x</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      vertex</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">z </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> z</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token comment" style="color:#999988;font-style:italic">// Rotação em torno do eixo Z</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      x </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> vertex</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">x </span><span class="token operator" style="color:#393A34">*</span><span class="token plain"> cosZ </span><span class="token operator" style="color:#393A34">-</span><span class="token plain"> vertex</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">y </span><span class="token operator" style="color:#393A34">*</span><span class="token plain"> sinZ</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      y </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> vertex</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">x </span><span class="token operator" style="color:#393A34">*</span><span class="token plain"> sinZ </span><span class="token operator" style="color:#393A34">+</span><span class="token plain"> vertex</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">y </span><span class="token operator" style="color:#393A34">*</span><span class="token plain"> cosZ</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      vertex</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">x </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> x</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      vertex</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">y </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> y</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">// Desenha o cubo na janela</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">// Renderiza as faces do cubo na tela</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">void</span><span class="token plain"> </span><span class="token class-name">Cube</span><span class="token double-colon punctuation" style="color:#393A34">::</span><span class="token function" style="color:#d73a49">draw</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">RenderWindow </span><span class="token operator" style="color:#393A34">&amp;</span><span class="token plain">window</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token comment" style="color:#999988;font-style:italic">// Obtenha o tamanho da janela para centralizar o cubo</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   Vector2u windowSize </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> window</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">getSize</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token keyword" style="color:#00009f">float</span><span class="token plain"> centerX </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> windowSize</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">x </span><span class="token operator" style="color:#393A34">/</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">2.0f</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// Coordenada X do centro da janela</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token keyword" style="color:#00009f">float</span><span class="token plain"> centerY </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> windowSize</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">y </span><span class="token operator" style="color:#393A34">/</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">2.0f</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// Coordenada Y do centro da janela</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token comment" style="color:#999988;font-style:italic">// Define as cores para cada face do cubo</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   std</span><span class="token double-colon punctuation" style="color:#393A34">::</span><span class="token plain">array</span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain">Color</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">6</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"> faceColors </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      Color</span><span class="token double-colon punctuation" style="color:#393A34">::</span><span class="token plain">Red</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain">    </span><span class="token comment" style="color:#999988;font-style:italic">// Frente</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      Color</span><span class="token double-colon punctuation" style="color:#393A34">::</span><span class="token plain">Green</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain">  </span><span class="token comment" style="color:#999988;font-style:italic">// Trás</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      Color</span><span class="token double-colon punctuation" style="color:#393A34">::</span><span class="token plain">Blue</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain">   </span><span class="token comment" style="color:#999988;font-style:italic">// Esquerda</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      Color</span><span class="token double-colon punctuation" style="color:#393A34">::</span><span class="token plain">Yellow</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// Direita</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      Color</span><span class="token double-colon punctuation" style="color:#393A34">::</span><span class="token plain">Cyan</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain">   </span><span class="token comment" style="color:#999988;font-style:italic">// Topo</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      Color</span><span class="token double-colon punctuation" style="color:#393A34">::</span><span class="token plain">Magenta </span><span class="token comment" style="color:#999988;font-style:italic">// Fundo</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token comment" style="color:#999988;font-style:italic">// Itera sobre as faces do cubo</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token keyword" style="color:#00009f">for</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">size_t i </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">0</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"> i </span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain"> faces</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">size</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"> i</span><span class="token operator" style="color:#393A34">++</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      ConvexShape polygon</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// Cria um polígono convexo para representar a face</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      polygon</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">setPointCount</span><span class="token punctuation" style="color:#393A34">(</span><span class="token number" style="color:#36acaa">4</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// Cada face tem 4 vértices</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      polygon</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">setFillColor</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">faceColors</span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain">i</span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// Define a cor da face</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token comment" style="color:#999988;font-style:italic">// Define os pontos do polígono com base nos vértices da face</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token keyword" style="color:#00009f">for</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token keyword" style="color:#00009f">int</span><span class="token plain"> j </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">0</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"> j </span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">4</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"> j</span><span class="token operator" style="color:#393A34">++</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            Vector3f vertex </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> vertices</span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain">faces</span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain">i</span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain">j</span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// Obtém o vértice correspondente</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            polygon</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">setPoint</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">j</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">Vector2f</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">vertex</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">x </span><span class="token operator" style="color:#393A34">+</span><span class="token plain"> centerX</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> vertex</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">y </span><span class="token operator" style="color:#393A34">+</span><span class="token plain"> centerY</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// Ajusta para o centro da tela</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token comment" style="color:#999988;font-style:italic">// Desenha o polígono na janela</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      window</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">draw</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">polygon</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></span></code></pre></div></div>
</li>
<li class="">
<p>Crie um arquivo de código-fonte principal, <code>CUBE.h</code>:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">nano</span><span class="token plain"> CUBE.h</span><br></span></code></pre></div></div>
</li>
<li class="">
<p>Escreva o seguinte código básico no arquivo <code>CUBE.h</code> para testar a integração com o SFML:</p>
<div class="language-cpp codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-cpp codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token macro property directive-hash" style="color:#36acaa">#</span><span class="token macro property directive keyword" style="color:#00009f">ifndef</span><span class="token macro property" style="color:#36acaa"> </span><span class="token macro property expression" style="color:#36acaa">CUBE_H</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token macro property directive-hash" style="color:#36acaa">#</span><span class="token macro property directive keyword" style="color:#00009f">define</span><span class="token macro property" style="color:#36acaa"> </span><span class="token macro property macro-name" style="color:#36acaa">CUBE_H</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token macro property directive-hash" style="color:#36acaa">#</span><span class="token macro property directive keyword" style="color:#00009f">include</span><span class="token macro property" style="color:#36acaa"> </span><span class="token macro property string" style="color:#e3116c">&lt;SFML/Graphics.hpp&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token macro property directive-hash" style="color:#36acaa">#</span><span class="token macro property directive keyword" style="color:#00009f">include</span><span class="token macro property" style="color:#36acaa"> </span><span class="token macro property string" style="color:#e3116c">&lt;array&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">using</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">namespace</span><span class="token plain"> sf</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">// Definição da classe Cube</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">class</span><span class="token plain"> </span><span class="token class-name">Cube</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">private</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token comment" style="color:#999988;font-style:italic">// Vértices do cubo (8 vértices para um cubo 3D)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   std</span><span class="token double-colon punctuation" style="color:#393A34">::</span><span class="token plain">array</span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain">Vector3f</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">8</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"> vertices</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token comment" style="color:#999988;font-style:italic">// Faces do cubo (6 faces, cada uma definida por 4 índices de vértices)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   std</span><span class="token double-colon punctuation" style="color:#393A34">::</span><span class="token plain">array</span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain">std</span><span class="token double-colon punctuation" style="color:#393A34">::</span><span class="token plain">array</span><span class="token operator" style="color:#393A34">&lt;</span><span class="token keyword" style="color:#00009f">int</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">4</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">6</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"> faces</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token comment" style="color:#999988;font-style:italic">// Cor do cubo</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   Color color</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token comment" style="color:#999988;font-style:italic">// Matriz de projeção para simular a projeção 3D para 2D</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token keyword" style="color:#00009f">float</span><span class="token plain"> projectionMatrix</span><span class="token punctuation" style="color:#393A34">[</span><span class="token number" style="color:#36acaa">4</span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">[</span><span class="token number" style="color:#36acaa">4</span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token comment" style="color:#999988;font-style:italic">// Função privada que atualiza a projeção dos vértices do cubo para coordenadas 2D</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token keyword" style="color:#00009f">void</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">projectVertices</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">public</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token comment" style="color:#999988;font-style:italic">// Construtor da classe Cube, que inicializa o cubo com um tamanho específico</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token function" style="color:#d73a49">Cube</span><span class="token punctuation" style="color:#393A34">(</span><span class="token keyword" style="color:#00009f">float</span><span class="token plain"> size</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token comment" style="color:#999988;font-style:italic">// Função pública que atualiza a rotação do cubo em torno dos eixos X, Y e Z</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token keyword" style="color:#00009f">void</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">rotate</span><span class="token punctuation" style="color:#393A34">(</span><span class="token keyword" style="color:#00009f">float</span><span class="token plain"> angleX</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">float</span><span class="token plain"> angleY</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">float</span><span class="token plain"> angleZ</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token comment" style="color:#999988;font-style:italic">// Função pública que desenha o cubo na janela fornecida</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token keyword" style="color:#00009f">void</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">draw</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">RenderWindow </span><span class="token operator" style="color:#393A34">&amp;</span><span class="token plain">window</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token macro property directive-hash" style="color:#36acaa">#</span><span class="token macro property directive keyword" style="color:#00009f">endif</span><span class="token macro property" style="color:#36acaa"> </span><span class="token macro property comment" style="color:#999988;font-style:italic">// CUBE_H</span><br></span></code></pre></div></div>
</li>
<li class="">
<p>Crie um arquivo de código-fonte principal, <code>WIN.cpp</code>:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">nano</span><span class="token plain"> WIN.cpp</span><br></span></code></pre></div></div>
</li>
<li class="">
<p>Escreva o seguinte código básico no arquivo <code>WIN.cpp</code> para testar a integração com o SFML:</p>
<div class="language-cpp codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-cpp codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token macro property directive-hash" style="color:#36acaa">#</span><span class="token macro property directive keyword" style="color:#00009f">include</span><span class="token macro property" style="color:#36acaa"> </span><span class="token macro property string" style="color:#e3116c">"WIN.h"</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">// Construtor</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">// O construtor da classe WIN inicializa os atributos da janela, como largura, altura, título, cor de fundo e limite de quadros por segundo.</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">// Além disso, inicializa o cubo com um tamanho fixo de 300 e cria a janela SFML.</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token class-name">WIN</span><span class="token double-colon punctuation" style="color:#393A34">::</span><span class="token function" style="color:#d73a49">WIN</span><span class="token punctuation" style="color:#393A34">(</span><span class="token keyword" style="color:#00009f">int</span><span class="token plain"> width</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">int</span><span class="token plain"> height</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">const</span><span class="token plain"> std</span><span class="token double-colon punctuation" style="color:#393A34">::</span><span class="token plain">string </span><span class="token operator" style="color:#393A34">&amp;</span><span class="token plain">title</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> Color backgroundColor</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">int</span><span class="token plain"> frameRateLimit</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">cube</span><span class="token punctuation" style="color:#393A34">(</span><span class="token number" style="color:#36acaa">300</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// Inicializa o cubo com tamanho 300</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token keyword" style="color:#00009f">this</span><span class="token operator" style="color:#393A34">-&gt;</span><span class="token plain">width </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> width</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// Define a largura da janela</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token keyword" style="color:#00009f">this</span><span class="token operator" style="color:#393A34">-&gt;</span><span class="token plain">height </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> height</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// Define a altura da janela</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token keyword" style="color:#00009f">this</span><span class="token operator" style="color:#393A34">-&gt;</span><span class="token plain">title </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> title</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// Define o título da janela</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token keyword" style="color:#00009f">this</span><span class="token operator" style="color:#393A34">-&gt;</span><span class="token plain">backgroundColor </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> backgroundColor</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// Define a cor de fundo da janela</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token keyword" style="color:#00009f">this</span><span class="token operator" style="color:#393A34">-&gt;</span><span class="token plain">frameRateLimit </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> frameRateLimit</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// Define o limite de quadros por segundo</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token comment" style="color:#999988;font-style:italic">// Cria a janela SFML com as configurações especificadas</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   window</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">create</span><span class="token punctuation" style="color:#393A34">(</span><span class="token function" style="color:#d73a49">VideoMode</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">width</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> height</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> title</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> Style</span><span class="token double-colon punctuation" style="color:#393A34">::</span><span class="token plain">Titlebar </span><span class="token operator" style="color:#393A34">|</span><span class="token plain"> Style</span><span class="token double-colon punctuation" style="color:#393A34">::</span><span class="token plain">Close</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">// Destrutor</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">// O destrutor da classe WIN é declarado, mas não possui implementação específica no momento.</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token class-name">WIN</span><span class="token double-colon punctuation" style="color:#393A34">::</span><span class="token operator" style="color:#393A34">~</span><span class="token function" style="color:#d73a49">WIN</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token comment" style="color:#999988;font-style:italic">// Implementação do destrutor (vazia por enquanto)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">// Inicializa a janela</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">// Configura o limite de quadros por segundo e limpa a janela com a cor de fundo especificada.</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">void</span><span class="token plain"> </span><span class="token class-name">WIN</span><span class="token double-colon punctuation" style="color:#393A34">::</span><span class="token function" style="color:#d73a49">initWindow</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   window</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">setFramerateLimit</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">frameRateLimit</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// Define o limite de quadros por segundo</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   window</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">clear</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">backgroundColor</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// Limpa a janela com a cor de fundo</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">// Loop principal da janela</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">// O método run é responsável por executar o loop principal da aplicação.</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">// Ele inicializa a janela, lida com eventos, atualiza o estado e renderiza o conteúdo.</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">void</span><span class="token plain"> </span><span class="token class-name">WIN</span><span class="token double-colon punctuation" style="color:#393A34">::</span><span class="token function" style="color:#d73a49">run</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token function" style="color:#d73a49">initWindow</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// Inicializa a janela</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token comment" style="color:#999988;font-style:italic">// Loop principal da aplicação</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token keyword" style="color:#00009f">while</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">window</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">isOpen</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token function" style="color:#d73a49">handleEvents</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// Lida com os eventos da janela</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token function" style="color:#d73a49">update</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain">       </span><span class="token comment" style="color:#999988;font-style:italic">// Atualiza o estado da aplicação</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token function" style="color:#d73a49">render</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain">       </span><span class="token comment" style="color:#999988;font-style:italic">// Renderiza o conteúdo na janela</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">// Lida com eventos</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">// Este método processa os eventos da janela, como o fechamento da mesma.</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">void</span><span class="token plain"> </span><span class="token class-name">WIN</span><span class="token double-colon punctuation" style="color:#393A34">::</span><span class="token function" style="color:#d73a49">handleEvents</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   Event event</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// Objeto para armazenar eventos</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token keyword" style="color:#00009f">while</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">window</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">pollEvent</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">event</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// Verifica se há eventos na fila</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token keyword" style="color:#00009f">if</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">event</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">type </span><span class="token operator" style="color:#393A34">==</span><span class="token plain"> Event</span><span class="token double-colon punctuation" style="color:#393A34">::</span><span class="token plain">Closed</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// Se o evento for de fechamento</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            window</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">close</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// Fecha a janela</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">// Atualiza a janela</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">// Atualiza o estado do cubo, aplicando uma rotação contínua.</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">void</span><span class="token plain"> </span><span class="token class-name">WIN</span><span class="token double-colon punctuation" style="color:#393A34">::</span><span class="token function" style="color:#d73a49">update</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   cube</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">rotate</span><span class="token punctuation" style="color:#393A34">(</span><span class="token number" style="color:#36acaa">0.01f</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">0.01f</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">0.01f</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// Rotaciona o cubo em torno dos eixos X, Y e Z</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">// Renderiza a janela</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">// Limpa a janela, desenha o cubo e exibe o conteúdo renderizado.</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">void</span><span class="token plain"> </span><span class="token class-name">WIN</span><span class="token double-colon punctuation" style="color:#393A34">::</span><span class="token function" style="color:#d73a49">render</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   window</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">clear</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">backgroundColor</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// Limpa a janela com a cor de fundo</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   cube</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">draw</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">window</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain">             </span><span class="token comment" style="color:#999988;font-style:italic">// Desenha o cubo na janela</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   window</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">display</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain">              </span><span class="token comment" style="color:#999988;font-style:italic">// Exibe o conteúdo renderizado na janela</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></span></code></pre></div></div>
</li>
<li class="">
<p>Crie um arquivo de código-fonte principal, <code>WIN.h</code>:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">nano</span><span class="token plain"> WIN.h</span><br></span></code></pre></div></div>
</li>
<li class="">
<p>Escreva o seguinte código básico no arquivo <code>WIN.h</code> para testar a integração com o SFML:</p>
<div class="language-cpp codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-cpp codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token macro property directive-hash" style="color:#36acaa">#</span><span class="token macro property directive keyword" style="color:#00009f">ifndef</span><span class="token macro property" style="color:#36acaa"> </span><span class="token macro property expression" style="color:#36acaa">WIN_H</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token macro property directive-hash" style="color:#36acaa">#</span><span class="token macro property directive keyword" style="color:#00009f">define</span><span class="token macro property" style="color:#36acaa"> </span><span class="token macro property macro-name" style="color:#36acaa">WIN_H</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token macro property directive-hash" style="color:#36acaa">#</span><span class="token macro property directive keyword" style="color:#00009f">include</span><span class="token macro property" style="color:#36acaa"> </span><span class="token macro property string" style="color:#e3116c">&lt;SFML/Graphics.hpp&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token macro property directive-hash" style="color:#36acaa">#</span><span class="token macro property directive keyword" style="color:#00009f">include</span><span class="token macro property" style="color:#36acaa"> </span><span class="token macro property string" style="color:#e3116c">"CUBE.h"</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">using</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">namespace</span><span class="token plain"> sf</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">// Classe que representa a janela principal do programa</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">class</span><span class="token plain"> </span><span class="token class-name">WIN</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">private</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token comment" style="color:#999988;font-style:italic">// Propriedades da janela</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   RenderWindow window</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// Objeto da janela SFML</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token keyword" style="color:#00009f">int</span><span class="token plain"> width</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> height</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// Largura e altura da janela</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   std</span><span class="token double-colon punctuation" style="color:#393A34">::</span><span class="token plain">string title</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// Título da janela</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   Color backgroundColor</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// Cor de fundo da janela</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token keyword" style="color:#00009f">int</span><span class="token plain"> frameRateLimit</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// Limite de taxa de quadros por segundo</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token comment" style="color:#999988;font-style:italic">// Objeto do cubo</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   Cube cube</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// Instância da classe Cube</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">public</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token comment" style="color:#999988;font-style:italic">// Construtor</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token function" style="color:#d73a49">WIN</span><span class="token punctuation" style="color:#393A34">(</span><span class="token keyword" style="color:#00009f">int</span><span class="token plain"> width</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">int</span><span class="token plain"> height</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">const</span><span class="token plain"> std</span><span class="token double-colon punctuation" style="color:#393A34">::</span><span class="token plain">string </span><span class="token operator" style="color:#393A34">&amp;</span><span class="token plain">title</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> Color backgroundColor</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">int</span><span class="token plain"> frameRateLimit</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token comment" style="color:#999988;font-style:italic">// Inicializa os atributos da classe com os valores fornecidos</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token comment" style="color:#999988;font-style:italic">// Destrutor</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token operator" style="color:#393A34">~</span><span class="token function" style="color:#d73a49">WIN</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token comment" style="color:#999988;font-style:italic">// Libera recursos, se necessário</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token comment" style="color:#999988;font-style:italic">// Inicializa a janela</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token keyword" style="color:#00009f">void</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">initWindow</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token comment" style="color:#999988;font-style:italic">// Configura a janela com os parâmetros fornecidos</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token comment" style="color:#999988;font-style:italic">// Executa o loop principal da janela</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token keyword" style="color:#00009f">void</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">run</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token comment" style="color:#999988;font-style:italic">// Mantém a janela aberta e gerencia o ciclo de eventos, atualização e renderização</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token comment" style="color:#999988;font-style:italic">// Lida com os eventos da janela</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token keyword" style="color:#00009f">void</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">handleEvents</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token comment" style="color:#999988;font-style:italic">// Processa eventos como entrada do teclado, mouse, etc.</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token comment" style="color:#999988;font-style:italic">// Atualiza o estado da janela</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token keyword" style="color:#00009f">void</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">update</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token comment" style="color:#999988;font-style:italic">// Atualiza os elementos da janela, como o cubo</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token comment" style="color:#999988;font-style:italic">// Renderiza o conteúdo na janela</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token keyword" style="color:#00009f">void</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">render</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">   </span><span class="token comment" style="color:#999988;font-style:italic">// Desenha os elementos na tela</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token macro property directive-hash" style="color:#36acaa">#</span><span class="token macro property directive keyword" style="color:#00009f">endif</span><span class="token macro property" style="color:#36acaa"> </span><span class="token macro property comment" style="color:#999988;font-style:italic">// WIN_H</span><br></span></code></pre></div></div>
</li>
<li class="">
<p>Compile o código usando o <code>g++</code>:</p>
</li>
</ol>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">g++ *.cpp </span><span class="token parameter variable" style="color:#36acaa">-o</span><span class="token plain"> meu_projeto -lsfml-graphics -lsfml-window -lsfml-system</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">./meu_projeto</span><br></span></code></pre></div></div>
<p>Caso seja <strong>Windows</strong></p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">g++ *.cpp </span><span class="token parameter variable" style="color:#36acaa">-o</span><span class="token plain"> meu_projeto -I</span><span class="token string" style="color:#e3116c">"path</span><span class="token string entity" style="color:#36acaa">\t</span><span class="token string" style="color:#e3116c">o</span><span class="token string entity" style="color:#36acaa">\v</span><span class="token string" style="color:#e3116c">cpkg\installed</span><span class="token string entity" style="color:#36acaa">\x64</span><span class="token string" style="color:#e3116c">-windows\include"</span><span class="token plain"> -L</span><span class="token string" style="color:#e3116c">"path</span><span class="token string entity" style="color:#36acaa">\t</span><span class="token string" style="color:#e3116c">o</span><span class="token string entity" style="color:#36acaa">\v</span><span class="token string" style="color:#e3116c">cpkg\installed</span><span class="token string entity" style="color:#36acaa">\x64</span><span class="token string" style="color:#e3116c">-windows\lib"</span><span class="token plain"> -lsfml-graphics -lsfml-window -lsfml-system</span><br></span></code></pre></div></div>
<p><code>path\to\...</code> substitua pelo caminho correto.</p>]]></content>
        <author>
            <name>Elias Miranda</name>
            <uri>https://github.com/artumosgoc</uri>
        </author>
        <category label="Tutoriais" term="Tutoriais"/>
        <category label="github" term="github"/>
        <category label="programação" term="programação"/>
        <category label="queroajudar" term="queroajudar"/>
        <category label="C++" term="C++"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[O Papel de uma SRE em Sistemas Financeiros Críticos]]></title>
        <id>https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/04/02/o-papel-de-uma-sre-em-sistemas-financeiros-criticos</id>
        <link href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/04/02/o-papel-de-uma-sre-em-sistemas-financeiros-criticos"/>
        <updated>2025-04-02T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[awesome]]></summary>
        <content type="html"><![CDATA[<p><img decoding="async" loading="lazy" alt="awesome" src="https://raw.githack.com/codaqui/institucional/gh-pages-develop/assets/images/post-610ddb25f3a005dd5acf983bce2e0787.jpeg" width="2048" height="1536" class="img_ev3q"></p>
<p>No dia 22 de março, tive a oportunidade de palestrar no <strong>AWSOME WOMEN COMMUNITY SUMMIT BRASIL</strong>, abordando um tema desafiador e essencial: <strong>o papel de uma Site Reliability Engineer (SRE) em sistemas financeiros críticos</strong>. Durante a apresentação, compartilhei experiências do meu dia a dia na Stone Pagamentos, explorando desde os bastidores (backstage) até as práticas que tornam a gestão de incidentes em ambientes críticos mais segura e eficiente.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="contexto-do-evento">Contexto do Evento<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/04/02/o-papel-de-uma-sre-em-sistemas-financeiros-criticos#contexto-do-evento" class="hash-link" aria-label="Link direto para Contexto do Evento" title="Link direto para Contexto do Evento" translate="no">​</a></h2>
<p>O <strong>AWSOME WOMEN COMMUNITY SUMMIT BRASIL</strong> foi idealizado para inspirar e empoderar mulheres na área de tecnologia. Reunindo profissionais de diversas áreas, o encontro proporcionou um espaço para o intercâmbio de conhecimentos e a discussão de temas que, muitas vezes, ficam à margem do discurso tradicional. Em um setor onde a confiabilidade dos sistemas é vital, a presença de mulheres líderes em engenharia e tecnologia reforça a importância da diversidade e da colaboração.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="preparação-e-seleção-de-conteúdo">Preparação e Seleção de Conteúdo<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/04/02/o-papel-de-uma-sre-em-sistemas-financeiros-criticos#prepara%C3%A7%C3%A3o-e-sele%C3%A7%C3%A3o-de-conte%C3%BAdo" class="hash-link" aria-label="Link direto para Preparação e Seleção de Conteúdo" title="Link direto para Preparação e Seleção de Conteúdo" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="escolha-dos-tópicos">Escolha dos Tópicos<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/04/02/o-papel-de-uma-sre-em-sistemas-financeiros-criticos#escolha-dos-t%C3%B3picos" class="hash-link" aria-label="Link direto para Escolha dos Tópicos" title="Link direto para Escolha dos Tópicos" translate="no">​</a></h3>
<p>Ao preparar a palestra, dediquei tempo para alinhar o conteúdo com os desafios enfrentados em sistemas financeiros críticos. Alguns dos principais pontos abordados foram:</p>
<ul>
<li class=""><strong>Backstage como Case:</strong> Compartilhei um case real da Stone Pagamentos, detalhando os processos e aprendizados dos bastidores na gestão de incidentes.</li>
<li class=""><strong>Cultura Blameless:</strong> Expliquei como a ausência de culpa (blameless culture) é fundamental para incentivar a transparência e a melhoria contínua após incidentes críticos.</li>
<li class=""><strong>Cenários Críticos de Incidentes:</strong> Demonstrei como identificar, analisar e responder a incidentes em sistemas financeiros, onde cada segundo conta.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="adequando-a-linguagem">Adequando a Linguagem<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/04/02/o-papel-de-uma-sre-em-sistemas-financeiros-criticos#adequando-a-linguagem" class="hash-link" aria-label="Link direto para Adequando a Linguagem" title="Link direto para Adequando a Linguagem" translate="no">​</a></h3>
<p>Considerando o público predominantemente feminino, procurei transmitir os conceitos técnicos de forma acessível, enfatizando a importância da colaboração e da resiliência, e mostrando que desafios complexos podem ser vencidos com trabalho em equipe e uma postura de aprendizado constante.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="durante-a-palestra">Durante a Palestra<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/04/02/o-papel-de-uma-sre-em-sistemas-financeiros-criticos#durante-a-palestra" class="hash-link" aria-label="Link direto para Durante a Palestra" title="Link direto para Durante a Palestra" translate="no">​</a></h2>
<p>Ao subir ao palco, fui recebida com entusiasmo e atenção. A energia do público impulsionou uma troca dinâmica de experiências e questionamentos. Alguns momentos de destaque incluíram:</p>
<ul>
<li class=""><strong>Apresentação do Backstage:</strong> Detalhei o case da Stone Pagamentos, mostrando os bastidores dos processos de resolução de incidentes em sistemas de pagamento, onde a pressão por alta disponibilidade e segurança é constante.</li>
<li class=""><strong>Discussão sobre Cultura Blameless:</strong> Abordei como a prática de analisar erros sem buscar culpados fomenta um ambiente de inovação e aprendizagem, essencial para a evolução de processos críticos.</li>
<li class=""><strong>Análise de Cenários Críticos:</strong> Demonstrei, por meio de exemplos práticos, como preparar e responder a incidentes, destacando a importância de planos de contingência e comunicação eficaz.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="reflexões-e-lições-aprendidas">Reflexões e Lições Aprendidas<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/04/02/o-papel-de-uma-sre-em-sistemas-financeiros-criticos#reflex%C3%B5es-e-li%C3%A7%C3%B5es-aprendidas" class="hash-link" aria-label="Link direto para Reflexões e Lições Aprendidas" title="Link direto para Reflexões e Lições Aprendidas" translate="no">​</a></h2>
<p>A experiência foi enriquecedora em vários níveis:</p>
<ul>
<li class=""><strong>Empoderamento e Inclusão:</strong> Palestrar no <strong>AWSOME WOMEN COMMUNITY SUMMIT BRASIL</strong> reforçou a importância de encorajar a presença de mulheres em áreas tecnológicas e financeiras.</li>
<li class=""><strong>Resiliência e Inovação:</strong> Compartilhar os desafios e as soluções dos bastidores demonstrou que a resiliência, aliada a uma cultura blameless, é a chave para a inovação em ambientes críticos.</li>
<li class=""><strong>Aprendizado Coletivo:</strong> A troca de experiências não só fortaleceu a comunidade, mas também ampliou a visão sobre como transformar incidentes em oportunidades de melhoria contínua.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="conclusão">Conclusão<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2025/04/02/o-papel-de-uma-sre-em-sistemas-financeiros-criticos#conclus%C3%A3o" class="hash-link" aria-label="Link direto para Conclusão" title="Link direto para Conclusão" translate="no">​</a></h2>
<p>Palestrar sobre o papel de uma SRE em sistemas financeiros críticos no <strong>AWSOME WOMEN COMMUNITY SUMMIT BRASIL</strong> foi uma experiência transformadora e inspiradora. Ao compartilhar os bastidores, a cultura blameless e os desafios dos cenários críticos, pude demonstrar que, mesmo sob pressão, a união e a busca por soluções colaborativas podem garantir a excelência operacional. Espero que este relato inspire outras mulheres a se aprofundarem no universo da engenharia de confiabilidade e a liderarem mudanças significativas em seus ambientes profissionais.</p>
<hr>]]></content>
        <author>
            <name>Ana Carolyne</name>
            <uri>https://github.com/anacarolyne</uri>
        </author>
        <category label="Institucional" term="Institucional"/>
        <category label="história" term="história"/>
        <category label="comunidade" term="comunidade"/>
        <category label="Palestra" term="Palestra"/>
        <category label="Diversidade e Inclusão" term="Diversidade e Inclusão"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Prestação de Contas do DevPR Conf 2024]]></title>
        <id>https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2024/09/17/prestacao-de-contas-do-devpr-conf-2024</id>
        <link href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2024/09/17/prestacao-de-contas-do-devpr-conf-2024"/>
        <updated>2024-09-17T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Espero que estejam bem. Gostaríamos de compartilhar algumas atualizações importantes sobre o nosso recente evento. Primeiramente, estamos felizes em informar que concluímos o evento com sucesso. Atualmente, estamos aprimorando a apresentação dos dados na planilha, mas já temos um esboço disponível para aqueles que estão ansiosos para conferir os resultados preliminares.]]></summary>
        <content type="html"><![CDATA[<p>Espero que estejam bem. Gostaríamos de compartilhar algumas atualizações importantes sobre o nosso recente evento. Primeiramente, estamos felizes em informar que concluímos o evento com sucesso. Atualmente, estamos aprimorando a apresentação dos dados na planilha, mas já temos um esboço disponível para aqueles que estão ansiosos para conferir os resultados preliminares.</p>
<p>Um ponto importante a destacar é que este foi o último ano em que trabalhamos com dinheiro “legado” envolvendo CPFs e CNPJs. Isso explica a confusão que ocorreu entre as transferências via Stone e as transferências diretas entre CPFs. A partir do próximo ano, esperamos que esse processo seja muito mais simplificado e transparente.</p>
<p>Se você tiver qualquer dúvida ou precisar de mais informações, não hesite em participar das nossas reuniões semanais. Estamos sempre disponíveis para ajudar e esclarecer qualquer questão.</p>
<p>Além disso, ainda estamos aguardando o pagamento de dois patrocinadores que não foi recebido em nossa conta. Assim que esses pagamentos forem efetuados e essa pendência for resolvida, atualizaremos o saldo da Open Collective conforme o acordado.</p>
<p>Agradecemos a todos pelo apoio contínuo e pela participação no evento. Continuaremos trabalhando para melhorar e trazer mais transparência e eficiência para nossos processos.</p>
<p><a href="https://opencollective.com/codaqui/updates/prestacao-de-contas-da-devpr-conf-2024" target="_blank" rel="noopener noreferrer" class="">Dados no Open Collective</a></p>]]></content>
        <author>
            <name>Enderson Menezes</name>
            <uri>https://github.com/endersonmenezes</uri>
        </author>
        <category label="Institucional" term="Institucional"/>
        <category label="história" term="história"/>
        <category label="comunidade" term="comunidade"/>
        <category label="devparaná" term="devparaná"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[O que é endereçamento de memória?]]></title>
        <id>https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2024/08/07/o-que-e-enderecamento-de-memoria</id>
        <link href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2024/08/07/o-que-e-enderecamento-de-memoria"/>
        <updated>2024-08-07T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Em resumo, ele se refere ao processo de atribuir identificadores únicos, chamados de endereços, a locais específicos na memória de um computador. Esses endereços são utilizados para acessar e manipular dados armazenados na memória.]]></summary>
        <content type="html"><![CDATA[<p>Em resumo, ele se refere ao processo de atribuir identificadores únicos, chamados de endereços, a locais específicos na memória de um computador. Esses endereços são utilizados para acessar e manipular dados armazenados na memória.</p>
<ul>
<li class="">
<p>O limite do endereçamento de memória em uma linguagem de programação depende da arquitetura do computador e do sistema operacional em que o programa está sendo executado. Em sistemas de 32 bits, o endereçamento de memória é limitado a 4 gigabytes (2^32 bytes) de memória. Já em sistemas de 64 bits, o limite é muito maior, chegando a 18.4 milhões de terabytes (2^64 bytes) de memória.</p>
</li>
<li class="">
<p>É importante considerar o limite de endereçamento de memória ao desenvolver um programa, especialmente quando se trabalha com grandes conjuntos de dados ou algoritmos que exigem muita memória. Se o programa exceder o limite de endereçamento de memória, pode ocorrer um estouro de memória (memory overflow) e o programa pode falhar ou apresentar comportamento inesperado.</p>
</li>
<li class="">
<p>Para otimizar o uso da memória, é recomendado utilizar tipos de dados adequados para o tamanho dos valores que serão armazenados e liberar a memória alocada quando não for mais necessária, por meio de técnicas como a desalocação de memória (deallocating memory) ou o uso de coletor de lixo (garbage collector), dependendo da linguagem de programação utilizada.</p>
</li>
</ul>
<p>Links: <em>(mais aprofundado!!)</em></p>
<ul>
<li class=""><a href="https://www.geeksforgeeks.org/addressing-modes/" target="_blank" rel="noopener noreferrer" class="">Geeksforgeeks</a></li>
<li class=""><a href="https://www.tutorialspoint.com/computer_logical_organization/index.htm" target="_blank" rel="noopener noreferrer" class="">Tutorialspoint</a></li>
</ul>
<p>Vídeos:</p>
<ul>
<li class=""><a href="https://www.youtube.com/watch?v=F-i9qPOIsoA" target="_blank" rel="noopener noreferrer" class="">Memory addressing</a> <em>- Apenas Legendado!</em></li>
<li class=""><a href="https://www.youtube.com/watch?v=G4om0r-Kgi0" target="_blank" rel="noopener noreferrer" class="">Endereçamento de memória</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="imagem-de-exemplo-endereçamento-e-seu-funcionamento">Imagem de exemplo, endereçamento e seu funcionamento.<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2024/08/07/o-que-e-enderecamento-de-memoria#imagem-de-exemplo-endere%C3%A7amento-e-seu-funcionamento" class="hash-link" aria-label="Link direto para Imagem de exemplo, endereçamento e seu funcionamento." title="Link direto para Imagem de exemplo, endereçamento e seu funcionamento." translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" src="https://github.com/codaqui/institucional/assets/63540372/311fdd5f-ca81-4fc4-91f8-f859d81a5d14" alt="image" class="img_ev3q"></p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">0x**** são endereços de memoria, 0x representa que estão em hexadecimal.</span><br></span></code></pre></div></div>
<p>Dentro dos endereços é possível notar a presença de 8 dígitos, no quais correspondem a 0, isso é exatamente o exemplo de tamanho de variável, nesse caso uma variável de 8 bits ou 1 byte.</p>
<p>Essa variável de 8 bits possui '2^8 = (256)' possibilidades de combinações de valores.</p>
<ul>
<li class="">
<p>Os valores vão:</p>
<blockquote>
<p>0 a 255
-128 a 127</p>
</blockquote>
</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="o-que-acontece-caso-exceda-esses-8-bits-memory-overflow">O que acontece caso exceda esses 8 bits (memory overflow)?<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2024/08/07/o-que-e-enderecamento-de-memoria#o-que-acontece-caso-exceda-esses-8-bits-memory-overflow" class="hash-link" aria-label="Link direto para O que acontece caso exceda esses 8 bits (memory overflow)?" title="Link direto para O que acontece caso exceda esses 8 bits (memory overflow)?" translate="no">​</a></h2>
<p>Simples, o valor estoura o limite de possibilidade, o que vai mudar é a percepção que cada linguagem, podem retornar erros ou simplesmente zerar a variável, pois ela só conta os 8 bits.</p>
<ul>
<li class="">
<p>Se ocorrer um "memory overflow" em uma variável de 8 bits, o valor excedente será truncado ou envolto (wraparound) para o intervalo válido. Por exemplo, se você tentar armazenar o valor 300 em uma variável de 8 bits, o valor será truncado para 44, pois 300 - 256 = 44. Isso ocorre porque 300 está fora do intervalo válido de 0 a 255.</p>
</li>
<li class="">
<p>É importante ter cuidado com "memory overflows", pois eles podem levar a resultados inesperados e erros difíceis de depurar. É recomendado usar tipos de dados apropriados para o intervalo de valores que você espera armazenar, ou implementar verificações e tratamentos adequados para evitar "memory overflows".</p>
</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="de-maneira-matemática-segue-esse-fluxograma">De maneira matemática, segue esse fluxograma!<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2024/08/07/o-que-e-enderecamento-de-memoria#de-maneira-matem%C3%A1tica-segue-esse-fluxograma" class="hash-link" aria-label="Link direto para De maneira matemática, segue esse fluxograma!" title="Link direto para De maneira matemática, segue esse fluxograma!" translate="no">​</a></h2>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="imagem-demonstração-matemática-binária">Imagem demonstração matemática binária!<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2024/08/07/o-que-e-enderecamento-de-memoria#imagem-demonstra%C3%A7%C3%A3o-matem%C3%A1tica-bin%C3%A1ria" class="hash-link" aria-label="Link direto para Imagem demonstração matemática binária!" title="Link direto para Imagem demonstração matemática binária!" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" src="https://github.com/codaqui/institucional/assets/63540372/2a1acd63-26e4-4ecd-987d-15205deb34f4" alt="image" class="img_ev3q"></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="extra">Extra<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2024/08/07/o-que-e-enderecamento-de-memoria#extra" class="hash-link" aria-label="Link direto para Extra" title="Link direto para Extra" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="como-um-hacker-pode-usar-memory-overflow-como-possível-brecha">Como um hacker pode usar memory overflow como possível brecha!!<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2024/08/07/o-que-e-enderecamento-de-memoria#como-um-hacker-pode-usar-memory-overflow-como-poss%C3%ADvel-brecha" class="hash-link" aria-label="Link direto para Como um hacker pode usar memory overflow como possível brecha!!" title="Link direto para Como um hacker pode usar memory overflow como possível brecha!!" translate="no">​</a></h3>
<p>Um hacker pode explorar uma vulnerabilidade de memory overflow para obter acesso não autorizado a um sistema ou executar código malicioso. Aqui estão algumas maneiras pelas quais isso pode ser feito:</p>
<ol>
<li class="">
<p><strong>Estouro de <a href="https://tecnoblog.net/responde/o-que-e-buffer/" target="_blank" rel="noopener noreferrer" class="">buffer</a></strong>: Um hacker pode enviar dados além dos limites de um buffer na memória, sobrescrevendo áreas adjacentes de memória. Isso pode levar à execução de código arbitrário ou à corrupção de dados sensíveis.</p>
</li>
<li class="">
<p><strong>Injeção de código</strong>: Ao explorar um estouro de memória, um hacker pode injetar código malicioso na área de memória comprometida. Isso pode permitir que o hacker execute comandos remotos, obtenha acesso privilegiado ou execute ataques de negação de serviço.</p>
</li>
<li class="">
<p><strong>Escalada de privilégios</strong>: Ao explorar uma vulnerabilidade de memory overflow, um hacker pode modificar os valores de variáveis de controle, como ponteiros de função ou permissões de acesso, para obter privilégios elevados no sistema comprometido.</p>
</li>
<li class="">
<p><strong>Desvio de fluxo</strong>: Ao corromper o fluxo de execução de um programa por meio de um estouro de memória, um hacker pode redirecionar o fluxo para áreas de código malicioso. Isso pode permitir que o hacker execute ações não autorizadas ou contorne mecanismos de segurança.</p>
</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="curta-e-compartilhe">Curta e Compartilhe!<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2024/08/07/o-que-e-enderecamento-de-memoria#curta-e-compartilhe" class="hash-link" aria-label="Link direto para Curta e Compartilhe!" title="Link direto para Curta e Compartilhe!" translate="no">​</a></h2>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">Se você chegou até aqui, peço que compartilhe com quem gosta desse tipo de conteúdo, para aumentar o engajamento e por também ser algo que é pouco falado! Meu muito obrigado!</span><br></span></code></pre></div></div>]]></content>
        <author>
            <name>Elias Miranda</name>
            <uri>https://github.com/artumosgoc</uri>
        </author>
        <category label="Curiosidade" term="Curiosidade"/>
        <category label="github" term="github"/>
        <category label="programação" term="programação"/>
        <category label="memoryoverflow" term="memoryoverflow"/>
        <category label="truncamentodedados" term="truncamentodedados"/>
        <category label="queroajudar" term="queroajudar"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[DevParaná e Codaqui: Unidos pela Comunidade]]></title>
        <id>https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2024/07/22/devparana-e-codaqui-unidos-pela-comunidade</id>
        <link href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2024/07/22/devparana-e-codaqui-unidos-pela-comunidade"/>
        <updated>2024-07-22T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Agora, em 2024, estamos entusiasmados em anunciar que a DevParaná e a Codaqui estão oficialmente unidas sob a mesma associação. Esta união fortalece os interesses da comunidade e nossa missão é o conhecimento acessível, para que você sinta o poder dele na sua vida pessoal e profissional.]]></summary>
        <content type="html"><![CDATA[<p>Agora, em 2024, estamos entusiasmados em anunciar que a DevParaná e a Codaqui estão oficialmente unidas sob a mesma associação. Esta união fortalece os interesses da comunidade e nossa missão é o conhecimento acessível, para que você sinta o poder dele na sua vida pessoal e profissional.</p>
<p><img decoding="async" loading="lazy" alt="DevPRConf 2024" src="https://raw.githack.com/codaqui/institucional/gh-pages-develop/assets/images/devconf2024-bfbacedf1d474be1ebcb49bc15ab238a.png" width="710" height="271" class="img_ev3q"></p>
<p>Com mais de 8 anos de história, temos um histórico com mais de 250 eventos organizados e 7 conferências anuais, sempre apoiando e fortalecendo as comunidades e grupos existentes.</p>
<p>Nossa influência não se limita a fronteiras, alcançando inúmeras cidades e até mesmo países como Paraguai e Chile. Em 2021, estabelecemos uma parceria com a Codaqui, uma comunidade voltada para o público jovem. Em 2023, concluímos nossos primeiros grandes eventos em conjunto.</p>
<p>A edição desse ano será gratuita e os <a href="https://devpr24.eventbrite.com/" target="_blank" rel="noopener noreferrer" class="">ingressos foram disponibilizados ao público desde o dia 14 de julho</a>. Como estamos trazendo pessoas referências da nossa área e isso tem um custo, <a href="https://apoia.se/devpr" target="_blank" rel="noopener noreferrer" class="">precisamos de um apoio mínimo da comunidade</a> para cobrir os gastos.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="palestrantes">Palestrantes<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2024/07/22/devparana-e-codaqui-unidos-pela-comunidade#palestrantes" class="hash-link" aria-label="Link direto para Palestrantes" title="Link direto para Palestrantes" translate="no">​</a></h2>
<ul>
<li class=""><a href="https://www.linkedin.com/in/jonatasdp" target="_blank" rel="noopener noreferrer" class="">Jônatas Davi</a></li>
<li class=""><a href="https://www.linkedin.com/in/laysrodrigues147/" target="_blank" rel="noopener noreferrer" class="">Lays Rodrigues</a></li>
<li class=""><a href="https://www.linkedin.com/in/oguscaetano" target="_blank" rel="noopener noreferrer" class="">Gustavo Caetano</a></li>
<li class=""><a href="https://linkedin.com/in/profburnes" target="_blank" rel="noopener noreferrer" class="">Prof. Anderson Burnes</a></li>
<li class=""><a href="https://github.com/munifgebara" target="_blank" rel="noopener noreferrer" class="">Munif Gebara</a></li>
<li class=""><a href="https://www.linkedin.com/in/leonardo-elias-6376b824" target="_blank" rel="noopener noreferrer" class="">Leonardo Elias</a></li>
<li class=""><a href="https://www.linkedin.com/in/isabella-cruz-de-oliveira-b761b7233" target="_blank" rel="noopener noreferrer" class="">Isabella Cruz de Oliveira</a></li>
<li class=""><a href="http://linkedin.com/in/marcopollivier" target="_blank" rel="noopener noreferrer" class="">Marco Ollivier</a></li>
<li class=""><a href="https://www.linkedin.com/in/rmgkelly" target="_blank" rel="noopener noreferrer" class="">Kelly Garcia</a></li>
<li class=""><a href="https://www.linkedin.com/in/ferfabricio" target="_blank" rel="noopener noreferrer" class="">Fernando Fabrício</a></li>
<li class=""><a href="https://www.linkedin.com/in/vianamjr" target="_blank" rel="noopener noreferrer" class="">Marcondes Viana</a></li>
</ul>
<p>Para conferir mais informações <a href="https://devpr.org/" target="_blank" rel="noopener noreferrer" class="">acesse o site do evento</a>.</p>]]></content>
        <author>
            <name>Thainara Furforo</name>
            <uri>https://github.com/thaifurforo</uri>
        </author>
        <author>
            <name>Enderson Menezes</name>
            <uri>https://github.com/endersonmenezes</uri>
        </author>
        <category label="Institucional" term="Institucional"/>
        <category label="história" term="história"/>
        <category label="comunidade" term="comunidade"/>
        <category label="devparaná" term="devparaná"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Coleta de Apoio da Codaqui agora na Open Collective]]></title>
        <id>https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2024/07/19/coleta-de-apoio-da-codaqui-agora-na-open-collective</id>
        <link href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2024/07/19/coleta-de-apoio-da-codaqui-agora-na-open-collective"/>
        <updated>2024-07-19T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Recentemente, a Codaqui tomou uma decisão significativa: migrar sua coleta de apoio para o Open Collective. Neste post, vamos explorar os motivos por trás dessa mudança e como ela beneficiará nossa comunidade.]]></summary>
        <content type="html"><![CDATA[<p>Recentemente, a Codaqui tomou uma decisão significativa: migrar sua coleta de apoio para o Open Collective. Neste post, vamos explorar os motivos por trás dessa mudança e como ela beneficiará nossa comunidade.</p>
<p><img decoding="async" loading="lazy" src="https://www.conferencesthatwork.com/wp-content/uploads/2017/04/Screenshot-2017-04-29-17.00.53-640x382.png" alt="Open Collective Logo" class="img_ev3q"></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="transparência-e-sustentabilidade">Transparência e Sustentabilidade<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2024/07/19/coleta-de-apoio-da-codaqui-agora-na-open-collective#transpar%C3%AAncia-e-sustentabilidade" class="hash-link" aria-label="Link direto para Transparência e Sustentabilidade" title="Link direto para Transparência e Sustentabilidade" translate="no">​</a></h2>
<p>O Open Collective oferece uma plataforma robusta e transparente para gerenciar apoios financeiros. Com recursos como relatórios detalhados de gastos, rastreamento de doações e visibilidade completa das finanças, podemos garantir maior transparência para nossos apoiadores.</p>
<p>Além disso, o Open Collective permite que os projetos sejam mais sustentáveis a longo prazo, facilitando a arrecadação contínua de fundos e a prestação de contas.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="maior-alcance">Maior Alcance<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2024/07/19/coleta-de-apoio-da-codaqui-agora-na-open-collective#maior-alcance" class="hash-link" aria-label="Link direto para Maior Alcance" title="Link direto para Maior Alcance" translate="no">​</a></h2>
<p>Ao fazer parte do ecossistema do Open Collective, a Codaqui terá acesso a uma rede mais ampla de projetos e apoiadores. Isso nos ajudará a expandir nossa base de apoio e colaborar com outras comunidades.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="o-que-muda-para-os-apoiadores">O que muda para os apoiadores?<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2024/07/19/coleta-de-apoio-da-codaqui-agora-na-open-collective#o-que-muda-para-os-apoiadores" class="hash-link" aria-label="Link direto para O que muda para os apoiadores?" title="Link direto para O que muda para os apoiadores?" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="processo-simplificado">Processo Simplificado<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2024/07/19/coleta-de-apoio-da-codaqui-agora-na-open-collective#processo-simplificado" class="hash-link" aria-label="Link direto para Processo Simplificado" title="Link direto para Processo Simplificado" translate="no">​</a></h3>
<p>Os apoiadores agora podem contribuir diretamente através da página da Codaqui no Open Collective. O processo é simples e transparente, permitindo que todos acompanhem como seus recursos estão sendo utilizados.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="novas-funcionalidades">Novas Funcionalidades<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2024/07/19/coleta-de-apoio-da-codaqui-agora-na-open-collective#novas-funcionalidades" class="hash-link" aria-label="Link direto para Novas Funcionalidades" title="Link direto para Novas Funcionalidades" translate="no">​</a></h3>
<p>Com a migração, teremos acesso a recursos adicionais, como metas de financiamento por projeto e globais, recompensas para apoiadores e integração com outras ferramentas.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="conclusão">Conclusão<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2024/07/19/coleta-de-apoio-da-codaqui-agora-na-open-collective#conclus%C3%A3o" class="hash-link" aria-label="Link direto para Conclusão" title="Link direto para Conclusão" translate="no">​</a></h2>
<p>A mudança para o Open Collective é um passo importante para a Codaqui. Estamos animados com as possibilidades que essa plataforma oferece e esperamos continuar crescendo e fortalecendo nossa comunidade.</p>
<p>Acesse nosso perfil no <a href="https://opencollective.com/codaqui" target="_blank" rel="noopener noreferrer" class="">Open Collective</a> e faça parte dessa jornada!</p>
<p>Espero que este post ajude a esclarecer os detalhes da transição. Se precisar de mais informações ou tiver outras dúvidas, estou à disposição! 😊🚀</p>]]></content>
        <author>
            <name>Enderson Menezes</name>
            <uri>https://github.com/endersonmenezes</uri>
        </author>
        <category label="Institucional" term="Institucional"/>
        <category label="apoio" term="apoio"/>
        <category label="queroajudar" term="queroajudar"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[CHOWN: O que é?]]></title>
        <id>https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2024/03/13/chown-o-que-e</id>
        <link href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2024/03/13/chown-o-que-e"/>
        <updated>2024-03-13T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[O comando chown altera a propriedade do usuário de um arquivo, diretório ou link no Linux. Cada arquivo está associado a um usuário ou grupo proprietário. É fundamental configurar as permissões de arquivos e pastas corretamente.]]></summary>
        <content type="html"><![CDATA[<p>O comando <code>chown</code> altera a propriedade do usuário de um arquivo, diretório ou link no Linux. Cada arquivo está associado a um usuário ou grupo proprietário. É fundamental configurar as permissões de arquivos e pastas corretamente.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="requisitos-de-uso">Requisitos de uso<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2024/03/13/chown-o-que-e#requisitos-de-uso" class="hash-link" aria-label="Link direto para Requisitos de uso" title="Link direto para Requisitos de uso" translate="no">​</a></h2>
<ul>
<li class="">Linux ou UNIX</li>
<li class="">Usar o terminal/linha de comando</li>
<li class="">Usar comando com privilégios para mudar o proprietário</li>
</ul>
<blockquote>
<p>Comando para dar privilégio:</p>
</blockquote>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">sudo </span><br></span></code></pre></div></div>
<blockquote>
<p>Rodar terminal no root do sistema:</p>
</blockquote>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">sudo su</span><br></span></code></pre></div></div>
<h1></h1>
<h1>Linux Chown Syntax</h1>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">chown [Opção] [Usuário][:Grupo] [Arquivos/Diretórios] </span><br></span></code></pre></div></div>
<ul>
<li class="">[Opção] – O comando pode ser usado com ou sem opções adicionais.</li>
<li class="">[Usuário] – O nome de usuário ou o ID de usuário numérico do novo proprietário de um arquivo.</li>
<li class="">[:] – Use dois pontos ao alterar um grupo de um arquivo.</li>
<li class="">[Grupo] – Alterar a propriedade do grupo de um arquivo é opcional.</li>
<li class="">Arquivos/Diretórios – Alvo</li>
</ul>
<blockquote>
<p>Não necessariamente precisa de um grupo, veremos mais a baixo!!</p>
</blockquote>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="como-alterar-o-proprietário-de-um-arquivo-no-dia-a-dia">Como alterar o proprietário de um arquivo no dia a dia?<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2024/03/13/chown-o-que-e#como-alterar-o-propriet%C3%A1rio-de-um-arquivo-no-dia-a-dia" class="hash-link" aria-label="Link direto para Como alterar o proprietário de um arquivo no dia a dia?" title="Link direto para Como alterar o proprietário de um arquivo no dia a dia?" translate="no">​</a></h2>
<blockquote>
<p>Terminal em root</p>
</blockquote>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">chown Usuário0 Pasta/Arquivo</span><br></span></code></pre></div></div>
<blockquote>
<p>Terminal sem root</p>
</blockquote>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">sudo chown Usuário0 Pasta/Arquivo</span><br></span></code></pre></div></div>
<ul>
<li class="">
<p>Usuário0 – Nome do seu usuário.</p>
</li>
<li class="">
<p>Pasta/Arquivo – Diretório ou Arquivo.</p>
</li>
<li class="">
<p>Também é possível utilizar o UID(User ID) do seu usuário .</p>
</li>
</ul>
<blockquote>
<p>Supondo que essa pasta esteja com propriedade do Usuário1, assim você usar o comando acima, a propriedade dessa pasta passa para o Usuário0.</p>
</blockquote>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="como-alterar-o-grupo-de-um-arquivo">Como alterar o grupo de um arquivo?<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2024/03/13/chown-o-que-e#como-alterar-o-grupo-de-um-arquivo" class="hash-link" aria-label="Link direto para Como alterar o grupo de um arquivo?" title="Link direto para Como alterar o grupo de um arquivo?" translate="no">​</a></h2>
<p>Terminal em root</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">chown :Grupo0 Pasta/Arquivo</span><br></span></code></pre></div></div>
<p>Terminal sem root</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">sudo chown :Grupo0 Pasta/Arquivo</span><br></span></code></pre></div></div>
<ul>
<li class="">Grupo0 – Nome do seu grupo.</li>
<li class="">Pasta/Arquivo – Diretório ou Arquivo.</li>
</ul>
<h1>Imagens</h1>
<p>Usando usuário:</p>
<p><img decoding="async" loading="lazy" src="https://github.com/codaqui/institucional/assets/63540372/62bce262-a411-4745-a018-fda0f498ef2e" alt="image" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" src="https://github.com/codaqui/institucional/assets/63540372/d4f5cbf7-17a8-4150-8061-2ac772a7f61e" alt="image" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" src="https://github.com/codaqui/institucional/assets/63540372/d4738a92-75ad-4c8e-8682-5316da4bf40c" alt="image" class="img_ev3q"></p>
<p>Usando UID:</p>
<p><img decoding="async" loading="lazy" src="https://github.com/codaqui/institucional/assets/63540372/62bce262-a411-4745-a018-fda0f498ef2e" alt="image" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" src="https://github.com/codaqui/institucional/assets/63540372/3b2ddd96-0245-48d7-a015-752e71d9bf1c" alt="image" class="img_ev3q"></p>
<p><img decoding="async" loading="lazy" src="https://github.com/codaqui/institucional/assets/63540372/d4738a92-75ad-4c8e-8682-5316da4bf40c" alt="image" class="img_ev3q"></p>
<p>Mostrar permissões do diretório atual:</p>
<p><img decoding="async" loading="lazy" src="https://github.com/codaqui/institucional/assets/63540372/ac364ece-a253-4c2e-91d1-9147161da7b1" alt="image" class="img_ev3q"></p>
<p>Pegar UID</p>
<p><img decoding="async" loading="lazy" src="https://github.com/codaqui/institucional/assets/63540372/abd41bd3-7f2e-40b1-8163-f145a10c21ef" alt="image" class="img_ev3q"></p>
<h1>Extra</h1>
<ul>
<li class="">Ver seus grupos usando <a href="https://phoenixnap-com.translate.goog/kb/chgrp-command?_x_tr_sl=en&amp;_x_tr_tl=pt&amp;_x_tr_hl=pt-BR&amp;_x_tr_pto=wapp" target="_blank" rel="noopener noreferrer" class="">chgrp</a></li>
<li class="">Pegar seu UID</li>
</ul>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">sudo id -u USUARIO</span><br></span></code></pre></div></div>]]></content>
        <author>
            <name>Elias Miranda</name>
            <uri>https://github.com/artumosgoc</uri>
        </author>
        <category label="Tutoriais" term="Tutoriais"/>
        <category label="github" term="github"/>
        <category label="linux" term="linux"/>
        <category label="queroajudar" term="queroajudar"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Codaqui Apoia Campeonato de Skate em Marialva!]]></title>
        <id>https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2023/10/23/codaqui-apoia-campeonato-de-skate-em-marialva</id>
        <link href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2023/10/23/codaqui-apoia-campeonato-de-skate-em-marialva"/>
        <updated>2023-10-23T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Olá! Como fundador da Codaqui, nossa comunidade de aprendizado de programação, é com enorme entusiasmo que compartilho nossa participação no próximo Campeonato de Skate de Marialva!]]></summary>
        <content type="html"><![CDATA[<p>Olá! Como fundador da Codaqui, nossa comunidade de aprendizado de programação, é com enorme entusiasmo que compartilho nossa participação no próximo Campeonato de Skate de Marialva!</p>
<p><img decoding="async" loading="lazy" alt="Imagem com informações do campeonato de Skate em Marialva" src="https://raw.githack.com/codaqui/institucional/gh-pages-develop/assets/images/banner-f776ae72723b7af1d4ff6fed196aa958.png" width="844" height="1490" class="img_ev3q"></p>
<p>A Codaqui, nascida em Maringá e integrada ao GitHub, é mais do que uma simples escola de programação – ela é uma próspera comunidade de aprendizado contínuo. 🌐🎓 Proporcionamos uma plataforma onde todos os interessados, independentemente do seu nível de experiência, podem aprender e contribuir. Em cada uma das nossas páginas, você encontrará um ícone que levará diretamente à edição dessa página, estimulando a todos a crescerem juntos na busca pelo conhecimento. 📚💡</p>
<p>Nosso objetivo principal é apoiar aqueles jovens que desejam no futuro criação de produtos tecnológicos, mas que, por várias razões, não tiveram acesso à educação tecnológica. Nós somos a ponte entre suas aspirações e a realização de seus sonhos. 💻🌈</p>
<p>Convidamos todos a explorar o mundo da tecnologia conosco, enquanto também celebramos e apoiamos o espírito do esporte em nossa comunidade. 🤗🎈 <strong>O próximo Campeonato de Skate de Marialva, que ocorrerá dia 05 de Novembro de 2023, às 15 horas, na Pista de Skate de Marialva</strong>, é uma excelente oportunidade para apoiarmos o esporte que tantos adoram e, ao mesmo tempo, convidarmos as pessoas a mergulharem na área de tecnologia com a Codaqui. 🛹🎖️🏆</p>
<p>Acreditamos que a educação e o esporte podem caminhar juntos, e são ferramentas capacitadoras para a juventude. Especialmente quando a educação está enraizada na tecnologia e a comunidade se une para apoiar eventos esportivos como este. 🎓🛹💼</p>
<p>Venha participar conosco! Desfrute do melhor do skate na Pista de Skate de Marialva e aproveite para descobrir o universo do desenvolvimento de software com a Codaqui. Educação e esporte, juntos, podem criar um futuro cheio de possibilidades! Venha fazer parte disso! 🎉🚀</p>]]></content>
        <author>
            <name>Enderson Menezes</name>
            <uri>https://github.com/endersonmenezes</uri>
        </author>
        <category label="Institucional" term="Institucional"/>
        <category label="apoio" term="apoio"/>
        <category label="queroajudar" term="queroajudar"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Sucesso na inovação do DevPR 2023]]></title>
        <id>https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2023/03/11/sucesso-na-inovacao-do-devpr-2023</id>
        <link href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2023/03/11/sucesso-na-inovacao-do-devpr-2023"/>
        <updated>2023-03-11T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[image]]></summary>
        <content type="html"><![CDATA[<p><img decoding="async" loading="lazy" src="https://user-images.githubusercontent.com/11020807/230798337-a0dd2a79-9d41-468f-a903-3df27fc9d50a.jpeg" alt="image" class="img_ev3q"></p>
<p>O inédito Espaço Starter cumpriu a missão de introduzir o universo da programação para crianças e adolescentes.</p>
<p>A conferência anual DevPR, evento de atualização, network, compartilhamento de experiências e troca de conteúdo para programadores e tecnólogos chegou com tudo em 2023 na cidade de Maringá.</p>
<p>Sediada na Unicesumar, a grande inovação da edição foi o espaço Starter com um cronograma incrível de atividades lúdicas e dinâmicas de introdução à programação direcionado a crianças e adolescentes, parentes diretos dos inscritos na DevPR 2023.</p>
<p>A ideia surgiu com a organização da Codaqui e seus voluntários, em destaque Enderson Menezes e Ana Elisa Tubino. A Codaqui é uma escola de programação sem fins lucrativos disposta a democratizar o ensino sobre tecnologia e programação a jovens carentes.</p>
<p>O projeto da Codaqui com a DevPR para introduzir crianças e adolescentes ao universo da programação ganhou força e aconteceu!</p>
<p><img decoding="async" loading="lazy" src="https://user-images.githubusercontent.com/11020807/230798345-e3edc730-1f2b-4d0b-8b67-55da0c01f9bf.jpeg" alt="image" class="img_ev3q"></p>
<p>O espaço Starter contou com uma equipe de voluntários preparados para receber toda essa galerinha com um cronograma de workshops e atividades lúdicas para três turmas divididas por idade.</p>
<p>A manhã começou agitada para a Turma Hopper, nomeada em homenagem à analista de sistemas criadora da linguagem de programação de alto nível, Grace Hopper. As crianças de 6 à 12 anos compreenderam a ideia de comando e algoritmo do computador através de uma atividade lúdica, competitiva e prática do Labirinto.</p>
<p><img decoding="async" loading="lazy" src="https://user-images.githubusercontent.com/11020807/230798351-99905fe9-09d6-4b4c-ad72-3112b67b8f27.jpeg" alt="image" class="img_ev3q"></p>
<p>No período da tarde, as crianças puderam aplicar o conhecimento adquirido com o Desafio Scratch, no qual utilizaram a linguagem de programação Scratch para a criação de animações e jogos, com regras e comandos no laboratório de informática da universidade. Depois, as crianças participaram da atividade Programando Carrinhos Autônomos, na qual simularam o funcionamento do programa Arduino no computador e presenciaram o funcionamento dos carrinhos.</p>
<p><img decoding="async" loading="lazy" src="https://user-images.githubusercontent.com/11020807/230798355-8eabfef6-3432-4eb2-bbde-cb4ff40f8c6d.jpeg" alt="image" class="img_ev3q"></p>
<p>A Turma Turing, em tributo à Alan Turing, cientista da computação e idealizador dos conceitos de algoritmo e computador, composta por jovens de 13 a 16 anos, iniciou o cronograma com o workshop Caça aos Números com a construção de um algoritmo simples.</p>
<p>Mais tarde, na oficina de Jornada Criativa, cada participante teve a oportunidade de desenvolver seu primeiro site em linguagem HTML. A finalização da oficina contou como a eleição do site favorito pelos jovens.</p>
<p>Na Turma Lovelace, crianças de 10 a 15 anos conheceram a história da matemática Ada Lovelace, quem escreveu o primeiro algoritmo processado por uma máquina em 1842, depois, seguiram o cronograma com as atividades do Labirinto e Programando Carrinhos Autônomos e o Desafio Scratch.</p>
<p>Ao longo da tarde, os participantes contaram com um coffee break, com salgadinhos, bolo, refrigerante e suco, para repor as energias e continuarem com a criatividade a mil.</p>
<p>Para finalizar o dia de introdução à programação, as crianças e adolescentes das três turmas continuaram no ritmo de aprendizagem com mais conforto no ambiente Inspira com o filme de animação, lúdico e humorístico, Decodificando Emojis, seguido pelo desvendamento do famoso programa online Akinator com a apresentação de Mistérios da Internet.</p>
<p><img decoding="async" loading="lazy" src="https://user-images.githubusercontent.com/11020807/230798362-bf98faaf-9376-4863-8a19-0093645b1e4b.jpeg" alt="image" class="img_ev3q"></p>
<p>Além das crianças e adolescentes dependentes diretos dos inscritos na conferência DevPR, o espaço Starter, organizado pela Codaqui, recebeu alunos do projeto comunitário Estrela Mãe de Paiçandu, Paraná.
O espaço Starters foi sucesso total!</p>
<p>Ao fechamento do DevPR, algumas crianças ainda subiram ao palco principal da conferência para compartilhar a experiência incrível e inédita que tiveram e sonhos, como “eu quero ser programador”.
Para sempre se lembrarem do projeto, os aspirantes mirins foram presenteados com o pato para debugar e um certificado online.</p>]]></content>
        <author>
            <name>Amanda Tambara</name>
            <uri>https://amandatambara.com</uri>
        </author>
        <category label="Institucional" term="Institucional"/>
        <category label="eventos" term="eventos"/>
        <category label="comunidade" term="comunidade"/>
        <category label="devparaná" term="devparaná"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Codaqui e seu Boletim de Segurança!]]></title>
        <id>https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2023/03/01/codaqui-e-seu-boletim-de-seguranca</id>
        <link href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2023/03/01/codaqui-e-seu-boletim-de-seguranca"/>
        <updated>2023-03-01T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Oi! Eu sou o Elias, aluno da Codaqui, o meu objetivo aqui é ensinar como eu criei um sistema de envio de e-mails, sem ter um servidor de e-mail e utilizando o GitHub para me alertar do boletim de segurança.]]></summary>
        <content type="html"><![CDATA[<p>Oi! Eu sou o Elias, aluno da Codaqui, o meu objetivo aqui é ensinar como eu criei um sistema de envio de e-mails, sem ter um servidor de e-mail e utilizando o GitHub para me alertar do boletim de segurança.</p>
<p>Gostaria de já fazer um agradecimento pela ajuda do Fundador da Codaqui, Enderson Menezes, que esteve me auxiliando no processo de criação desse projeto.</p>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Vamos lá!</div><div class="admonitionContent_BuS1"><p><strong>Sem imagens</strong></p><p><strong>1° Passo</strong></p><ol>
<li class="">Vá no seu perfil e procure por <code>Repositories</code>.</li>
<li class="">Crie um novo repositório no github clicando em <code>New</code>, com nome de sua preferência.</li>
</ol><p><strong>2° Passo</strong></p><ol>
<li class="">Dentro desse repositório crie dois arquivos <code>.sh</code>, clicando em <code>Add File</code>, <code>Create new file</code>.</li>
<li class="">Chamados de <code>number.sh</code> e <code>script.sh</code>.</li>
<li class="">Ele são responsáveis por decodificar os dados.</li>
</ol><ul>
<li class="">Cógido dos arquivos <code>.sh</code>:
<a href="https://raw.githubusercontent.com/codaqui/boletim-diario-seguranca/main/script.sh" target="_blank" rel="noopener noreferrer" class="">script.sh</a>.
<a href="https://raw.githubusercontent.com/codaqui/boletim-diario-seguranca/main/number.sh" target="_blank" rel="noopener noreferrer" class="">number.sh</a>.</li>
</ul><p><strong>3° Passo</strong></p><ol>
<li class="">Crie também uma pasta chamada de <code>.github</code>, no repositório</li>
<li class="">Depois aperte <code>/</code>, ele entenderá que você quer gerar uma pasta.</li>
<li class="">Por fim dentro dessa pasta crie um arquivo chamado <code>boletim.md</code>.</li>
</ol><ul>
<li class="">Código do <code>boletim.md</code>:
<a href="https://raw.githubusercontent.com/codaqui/boletim-diario-seguranca/main/.github/boletim.md" target="_blank" rel="noopener noreferrer" class="">boletim.md</a>.</li>
</ul><p><strong>4º Passo</strong></p><ol>
<li class="">No mesmo diretório do arquivo <code>boletim.md</code>, crie outra pasta chamada de workflows.</li>
<li class="">Dentro do workflows crie um arquivo chamado de <code>boletim-diario.yml</code>.</li>
</ol><ul>
<li class="">Código do <code>boletim-diario.yml</code>:</li>
</ul><p><a href="https://raw.githubusercontent.com/codaqui/boletim-diario-seguranca/main/.github/workflows/boletim-diario.yml" target="_blank" rel="noopener noreferrer" class="">boletim-diario.yml</a></p><p><strong>5° Passo</strong></p><p>OBS: Tudo já está normal, mas e necessário editar algumas parte do <code>boletim-diario.yml</code>.</p></div></div>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">    - Procure por essas partes do códigos e faça oque é pedido abaixo!</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      1° altere isso:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      ```yml</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      on: </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          schedule:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            - cron: '0 13 * * *'</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      ```</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      para isso:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      ```yml</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      on: push</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      ```</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      depois altere:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      ```bash</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      chmod +X ./number.sh</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      bash ./number.sh</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      var=$( cat numero_final.txt )</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      gh issue close $var</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      ```</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      para isso:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      ```bash</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      #chmod +X ./number.sh</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      #bash ./number.sh</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      #var=$( cat numero_final.txt )</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      #gh issue close $var</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      ```</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      2° quando terminar salve as modificações e espere o Actions validar o código, logo após a criação da primeira `Issue`, modifique o código novamente e volte como estava antes.</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    - Para receber no E-mail leia nossa [README.md](https://github.com/codaqui/boletim-diario-seguranca/#readme), isso também é valido na sua aplicação.</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">=== "Com imagens"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    **1° Passo**</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    - *Criar um repositório no Github!*</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    ![step1](https://user-images.githubusercontent.com/63540372/220663763-e904004d-2093-4b09-9430-3e509843b4af.gif)</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    **2° Passo**</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    - *Criar scripts responsáveis por decodificar os dados.*</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    ![step2](https://user-images.githubusercontent.com/63540372/220674190-36a2b387-5cc8-4814-bda0-e773bc25c8bc.gif)</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    - Código usado para criação dos scripts: [script.sh](https://raw.githubusercontent.com/codaqui/boletim-diario-seguranca/main/script.sh) / [number.sh](https://raw.githubusercontent.com/codaqui/boletim-diario-seguranca/main/number.sh)!</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    **3º Passo**</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    - *Criar pasta .github e arquivo md(Corpo para gerar ISSUES).*</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    ![step3](https://user-images.githubusercontent.com/63540372/220686276-87e4a0d7-15b0-4161-9660-2e23b1190d59.gif)</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    - Aperte / depois de escrever .github para gerar uma pasta.</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    - Código usado para criar o [boletim.md](https://raw.githubusercontent.com/codaqui/boletim-diario-seguranca/main/.github/boletim.md).</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    **4° Passo**</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    - *Criar pasta workflows e arquivo yml(Responsável por iniciar as tarefas).*</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    ![step4](https://user-images.githubusercontent.com/63540372/220690915-99ea2900-9cc1-43de-becf-64a4d69128fa.gif)</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    - Código usado para criar [boletim-diario.yml](https://raw.githubusercontent.com/codaqui/boletim-diario-seguranca/main/.github/workflows/boletim-diario.yml)</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    **5° Passo**</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    - *Para teste e funcionamento de tudo altere o arquivo yml como no gif abaixo*</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    ![step5](https://user-images.githubusercontent.com/63540372/220696236-9cc17481-ea8b-4f3b-9710-df73612b1bad.gif)</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    altere:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    ```yml</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    on: </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        schedule:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          - cron: '0 13 * * *'</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    ```</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    para</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    ```yml</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    on: push</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    ```</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    E também altere:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    ```bash</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    chmod +X ./number.sh</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    bash ./number.sh</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    var=$( cat numero_final.txt )</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    gh issue close $var</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    ```</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    para</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    ```bash</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    #chmod +X ./number.sh</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    #bash ./number.sh</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    #var=$( cat numero_final.txt )</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    #gh issue close $var</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    ```</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    - Depois de salvar espere o Actions validar o código e gerar uma nova `Issue`.</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    - Em seguida altere novamente o código como o anterior do 4° passo.</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    - Pronto Está tudo funcionando!</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    - Para receber no E-mail leia nossa [README.md](https://github.com/codaqui/boletim-diario-seguranca/#readme), isso também é valido na sua aplicação.</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">         </span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="observações-importantes">Observações Importantes<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2023/03/01/codaqui-e-seu-boletim-de-seguranca#observa%C3%A7%C3%B5es-importantes" class="hash-link" aria-label="Link direto para Observações Importantes" title="Link direto para Observações Importantes" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-observação">1° Observação<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2023/03/01/codaqui-e-seu-boletim-de-seguranca#1-observa%C3%A7%C3%A3o" class="hash-link" aria-label="Link direto para 1° Observação" title="Link direto para 1° Observação" translate="no">​</a></h4>
<ul>
<li class="">O código pode ser totalmente moldado por sua preferencia, só é preciso alterar o <code>script.sh</code> na linha abaixo</li>
</ul>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">xmllint </span><span class="token parameter variable" style="color:#36acaa">--html</span><span class="token plain"> </span><span class="token parameter variable" style="color:#36acaa">--xpath</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"/html/body/div[1]/main/section[2]/div/div/div/div/div/div[2]"</span><span class="token plain"> boletim1.txt </span><span class="token operator file-descriptor important" style="color:#393A34">1</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"> boletim2.txt </span><span class="token operator file-descriptor important" style="color:#393A34">2</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"> /dev/null</span><br></span></code></pre></div></div>
<ul>
<li class="">Especificamente tudo entre <code>""</code>, para isso você deve entender a estrutura da página, no qual será pego as informações.</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-observação">2° Observação<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2023/03/01/codaqui-e-seu-boletim-de-seguranca#2-observa%C3%A7%C3%A3o" class="hash-link" aria-label="Link direto para 2° Observação" title="Link direto para 2° Observação" translate="no">​</a></h4>
<ul>
<li class="">O horário está marcado para o Actions disparar a <code>Issue</code> as 13h, 0GMT, 10h no horário de Brasilia!</li>
<li class="">Você pode alterar o horário mudando o código mostrado abaixo:</li>
</ul>
<div class="language-yml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">schedule</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">     </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> </span><span class="token key atrule" style="color:#00a4db">cron</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'0 13 * * *'</span><br></span></code></pre></div></div>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-observação">3° Observação<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2023/03/01/codaqui-e-seu-boletim-de-seguranca#3-observa%C3%A7%C3%A3o" class="hash-link" aria-label="Link direto para 3° Observação" title="Link direto para 3° Observação" translate="no">​</a></h4>
<ul>
<li class="">Quais quer problemas futuros com o sistema criado podem ser variados, devem ser analisados.</li>
<li class="">Possiveis casos previstos:</li>
</ul>
<ol>
<li class="">JasonEtco/create-an-issue@v2 atualiza a maneira de gerenciar o aquivo <code>.md</code> na pasta <code>.github</code>.</li>
<li class="">A parte do bash realiza a tarefa sem atualizar o arquivo gerado no processo criando um erro, nesse caso você só da um <code>push</code> mostrado no ultimo passo mostrado acima.</li>
</ol>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="4º-observação">4º Observação<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2023/03/01/codaqui-e-seu-boletim-de-seguranca#4%C2%BA-observa%C3%A7%C3%A3o" class="hash-link" aria-label="Link direto para 4º Observação" title="Link direto para 4º Observação" translate="no">​</a></h4>
<ul>
<li class="">Os nomes de arquivos e variáveis podem ser alteras, mas caso procure fazer isso, verifique se tudos os nomes modificados estão certos para funcionar.</li>
</ul>]]></content>
        <author>
            <name>Elias Miranda</name>
            <uri>https://github.com/artumosgoc</uri>
        </author>
        <category label="Projetos" term="Projetos"/>
        <category label="github" term="github"/>
        <category label="actions" term="actions"/>
        <category label="queroajudar" term="queroajudar"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[DevPR Starter - Codaqui]]></title>
        <id>https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2023/02/14/devpr-starter-codaqui</id>
        <link href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2023/02/14/devpr-starter-codaqui"/>
        <updated>2023-02-14T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Imagem de Divulgação do Evento]]></summary>
        <content type="html"><![CDATA[<p><img decoding="async" loading="lazy" src="https://user-images.githubusercontent.com/11020807/218813559-d83a7928-94e3-4361-b0c2-3a1924b0a9c1.jpg" alt="Imagem de Divulgação do Evento" class="img_ev3q"></p>
<p>Filho de peixe peixinho é! A Codaqui e a DevParaná anunciam o <strong>DevPR Starter</strong> – uma programação incrível exclusiva para dependentes, filhos, filhas, irmãos e irmãs, de 6 a 16 anos, dos participantes da Conferência DevPR 2023.</p>
<p>Durante o evento DevPR 2023, as crianças dependentes dos participantes terão a oportunidade de aprender programação de forma lúdica, com atividades divertidas e interativas, além de um lanche no período da tarde para recarregar as energias.</p>
<p>Temos uma equipe preparada e dedicada para atender as crianças e adolescentes e garantir um ambiente seguro de aprendizagem.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="como-vai-funcionar">Como vai funcionar?<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2023/02/14/devpr-starter-codaqui#como-vai-funcionar" class="hash-link" aria-label="Link direto para Como vai funcionar?" title="Link direto para Como vai funcionar?" translate="no">​</a></h2>
<p>Você que está participando do DevPR 2023 no Auditório poderá levar um dependente, e ele terá gratuitamente um evento e uma equipe disponível para ele.
Para inscrição do seu ou sua dependente, acesse o <a href="https://www.sympla.com.br/evento/devparana-conference-2023/1810983" target="_blank" rel="noopener noreferrer" class="">portal do Sympla</a> e inclua no carrinho o ingresso Starter (tipo A para 6 a 12 anos, ou tipo B para 13 a 16 anos).</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="programação">Programação<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2023/02/14/devpr-starter-codaqui#programa%C3%A7%C3%A3o" class="hash-link" aria-label="Link direto para Programação" title="Link direto para Programação" translate="no">​</a></h2>
<p>O Espaço Starter será divido em 4 ambientes, e você pode conferir todas as informações sobre palestrantes e atividades no <a href="https://devpr.org/" target="_blank" rel="noopener noreferrer" class="">site oficial do evento</a>.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="palco-inspira">Palco Inspira<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2023/02/14/devpr-starter-codaqui#palco-inspira" class="hash-link" aria-label="Link direto para Palco Inspira" title="Link direto para Palco Inspira" translate="no">​</a></h3>
<p>Será aberto para todos os participantes do evento, e terá uma programação de palestras voltado para pessoas iniciantes.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="sala-invertida">Sala Invertida<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2023/02/14/devpr-starter-codaqui#sala-invertida" class="hash-link" aria-label="Link direto para Sala Invertida" title="Link direto para Sala Invertida" translate="no">​</a></h3>
<p>Será destinado a Workshops e atividades práticas.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="sala-hopper">Sala Hopper<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2023/02/14/devpr-starter-codaqui#sala-hopper" class="hash-link" aria-label="Link direto para Sala Hopper" title="Link direto para Sala Hopper" translate="no">​</a></h3>
<p>Será exclusivo para crianças de <strong>6 a 12 anos</strong>.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="sala-turing-13-a-16-anos">Sala Turing (13 a 16 anos)<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2023/02/14/devpr-starter-codaqui#sala-turing-13-a-16-anos" class="hash-link" aria-label="Link direto para Sala Turing (13 a 16 anos)" title="Link direto para Sala Turing (13 a 16 anos)" translate="no">​</a></h3>
<p>Será exclusivo para jovens de <strong>13 a 16 anos</strong>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="dúvidas">Dúvidas?<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2023/02/14/devpr-starter-codaqui#d%C3%BAvidas" class="hash-link" aria-label="Link direto para Dúvidas?" title="Link direto para Dúvidas?" translate="no">​</a></h2>
<p>Entre em contato por <a href="mailto:contato@codaqui.dev" target="_blank" rel="noopener noreferrer" class="">comunidade@devpr.org</a> ou <a href="mailto:contato@codaqui.dev" target="_blank" rel="noopener noreferrer" class="">contato@codaqui.dev</a> acesse o <a href="https://devpr.org/" target="_blank" rel="noopener noreferrer" class="">site oficial do evento.</a></p>]]></content>
        <author>
            <name>Ana Elisa</name>
            <uri>https://github.com/anaelisalace</uri>
        </author>
        <author>
            <name>Enderson Menezes</name>
            <uri>https://github.com/endersonmenezes</uri>
        </author>
        <category label="Institucional" term="Institucional"/>
        <category label="eventos" term="eventos"/>
        <category label="comunidade" term="comunidade"/>
        <category label="devparaná" term="devparaná"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Codaqui na Conferência do DevPR 2023]]></title>
        <id>https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2023/01/05/codaqui-na-conferencia-do-devpr-2023</id>
        <link href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2023/01/05/codaqui-na-conferencia-do-devpr-2023"/>
        <updated>2023-01-05T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[A Codaqui, surgiu com seu primeiro nome de batismo DevParaná Kids, depois se tornou um grupo de Meetup dentro do Discord da Comunidade DevParaná com o titulo de “Kids Academy”, com o tempo formatando a ideia e consultando mais pessoas resolvemos “abrasileirar” a situação e somos a união de Codar com Aqui (Codaqui).]]></summary>
        <content type="html"><![CDATA[<p>A Codaqui, surgiu com seu primeiro nome de batismo DevParaná Kids, depois se tornou um grupo de Meetup dentro do Discord da Comunidade DevParaná com o titulo de “Kids Academy”, com o tempo formatando a ideia e consultando mais pessoas resolvemos “abrasileirar” a situação e somos a união de Codar com Aqui (Codaqui).</p>
<p>Mas quem é a comunidade DevParaná?</p>
<p>É uma comunidade formada por desenvolvedores e desenvolvedoras do Paraná, com origem na cidade de Maringá, auxilia a promoção de meetups durante todo o ano, tendo no Meetup.com uma comunidade de quase 5000 pessoas. Toda a organização da comunidade é voluntária, assim como dos grupos de encontros filiados, e todos esses eventos durante o ano são financiados com o valor do ingressos da Conf, por isso a Conferência Anual da DevPR é atualmente o único evento não gratuito que a Comunidade organiza.</p>
<p>&lt;span style:"text-align: center;"&gt;</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/YgcyTuGuLTw" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen=""></iframe>

<p>Vamos fazer parte da história e participar da Edição 2023? Clique na imagem abaixo e você será direcionado para a página de ingressos.</p>
<p><a href="https://www.sympla.com.br/devparana-conference-2023__1810983" target="_blank" rel="noopener noreferrer" class=""><img decoding="async" loading="lazy" alt="DevConf 2023 - Imagem de Divulgação" src="https://raw.githack.com/codaqui/institucional/gh-pages-develop/assets/images/banner-b081566ab4f4ea38a5ff1ff09322808d.png" width="848" height="477" class="img_ev3q"></a></p>
<p>A Comunidade do DevParaná é muito importante para região Norte do Paraná e tem grande relevância também nacional:</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/WUHRjwrm2ek?start=7" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen=""></iframe>
<p><a href="https://devpr.org/media-kit" target="_blank" rel="noopener noreferrer" class="">Apoie nossa comunidade! Seu patrocínio faz a diferença.</a></p>]]></content>
        <author>
            <name>Thainara Furforo</name>
            <uri>https://github.com/thaifurforo</uri>
        </author>
        <author>
            <name>Enderson Menezes</name>
            <uri>https://github.com/endersonmenezes</uri>
        </author>
        <category label="Institucional" term="Institucional"/>
        <category label="história" term="história"/>
        <category label="comunidade" term="comunidade"/>
        <category label="devparaná" term="devparaná"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Codaqui no Benfeitoria.com]]></title>
        <id>https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2022/11/18/codaqui-no-benfeitoriacom</id>
        <link href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2022/11/18/codaqui-no-benfeitoriacom"/>
        <updated>2022-11-18T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Com o objetivo de escalar o número de alunos e mentores envolvidos no projeto, estamos lançando a nossa campanha de arrecadação através da plataforma Benfeitoria.]]></summary>
        <content type="html"><![CDATA[<p>Com o objetivo de escalar o número de alunos e mentores envolvidos no projeto, estamos lançando a nossa campanha de arrecadação através da plataforma Benfeitoria.</p>
<p><a href="https://benfeitoria.com/pagamento/codaqui/contribuicao/valor?ctx=FixedContributeButton" target="_blank" rel="noopener noreferrer" class=""><img decoding="async" loading="lazy" alt="Clique para doar" src="https://raw.githack.com/codaqui/institucional/gh-pages-develop/assets/images/doar-e81f59ead00f004d1d7021e044bf8b93.png" width="1080" height="1080" class="img_ev3q"></a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="resumo">Resumo<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2022/11/18/codaqui-no-benfeitoriacom#resumo" class="hash-link" aria-label="Link direto para Resumo" title="Link direto para Resumo" translate="no">​</a></h2>
<p>A Codaqui é uma escola de tecnologia sem fins lucrativos, que visa alcançar jovens e adolescentes de forma acessível, com aulas e atividades completamente digitais, que podem ser acompanhadas através de computador, tablet ou aparelho celular. Desta forma, conseguimos atingir alunos de todos os lugares do Brasil e de maior vulnerabilidade social.</p>
<p>Os alunos percorrem o conteúdo de forma autônoma, e recebem mentoria semanal, aplicando o conteúdo aprendido. Dessa forma, atuamos para desenvolver competências de autonomia, organização e aprendizado de conteúdo prático de desenvolvimento de software.</p>
<p>Baseados em Maria Montessori, adotamos um elemento importante de valorização dos alunos através de uma bolsa de estudos. Esta bolsa é uma contrapartida por 100% de presença nos encontros e aulas ou, se houver falta, esta deve ser justificada pelo responsável. A adoção desse conceito reforça nossos valores de responsabilidade, autonomia e comprometimento do aluno, além do vínculo com sua família.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="metas">Metas<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2022/11/18/codaqui-no-benfeitoriacom#metas" class="hash-link" aria-label="Link direto para Metas" title="Link direto para Metas" translate="no">​</a></h2>
<p>Entenda nossas metas para 2023:</p>
<p><img decoding="async" loading="lazy" alt="Metas - Benfeitoria" src="https://raw.githack.com/codaqui/institucional/gh-pages-develop/assets/images/metas-322af3cbe9bf5246fa994c4970b6e2dc.png" width="800" height="768" class="img_ev3q"></p>
<p>Contamos com o seu apoio para conseguir alcançar as metas e impactar ainda mais jovens e adolescentes com nosso projeto, visando reduzir uma desigualdade social que só cresce, através da educação e do ensino de tecnologia, já que o mundo do trabalho se torna cada vez mais tecnológico, sem que as oportunidades de emprego e renda cheguem até a população de maior vulnerabilidade social.</p>
<p>Confira as contribuições e recompensas disponíveis na campanha:</p>


















































<table><thead><tr><th>Categoria</th><th>Valor da contribuição</th><th>Recompensas</th></tr></thead><tbody><tr><td>Trainee</td><td>R$ 10,00</td><td>E-mail de agradecimento + Inserção no site</td></tr><tr><td>Júnior</td><td>R$ 50,00 + frete</td><td>Anteriores + Adesivo</td></tr><tr><td>Pleno</td><td>R$ 100,00 + frete</td><td>Anteriores + Bloco de notas + Pôster virtual</td></tr><tr><td>Sênior</td><td>R$ 150,00 + frete</td><td>Anteriores + Cordão para crachá personalizado da Codaqui</td></tr><tr><td>Sênior + Pair Programming</td><td>R$ 250,00 + frete</td><td>Anteriores + Camiseta</td></tr><tr><td>Tech Lead</td><td>R$ 500,00 + frete</td><td>Anteriores + 1 Camiseta + Adote um aluno e acompanhe seus rendimentos, além de poder, sob mediação da equipe pedagógica, fornecer mentoria e acompanhamento durante o projeto</td></tr><tr><td>Company</td><td>R$ 1.000,00 + frete</td><td>Anteriores + Bate papo com a equipe para se envolver e ajudar de forma ativa no projeto</td></tr><tr><td>Gr3eat Place to Work</td><td>R$ 5.000,00 + frete</td><td>Anteriores + Possibilidade de acordo com autorização dos responsáveis de realizar uma entrevista com os participantes ao fim do projeto com foco em jovem aprendiz e estagiários</td></tr></tbody></table>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="como-apoiar">Como apoiar?<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2022/11/18/codaqui-no-benfeitoriacom#como-apoiar" class="hash-link" aria-label="Link direto para Como apoiar?" title="Link direto para Como apoiar?" translate="no">​</a></h2>
<p>Para apoiar nossa campanha e receber suas recompensas, acesse: <a href="https://benfeitoria.com/projeto/codaqui" target="_blank" rel="noopener noreferrer" class="">https://benfeitoria.com/projeto/codaqui</a>.</p>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Você sabia?</div><div class="admonitionContent_BuS1"><p>Você sabia que se cada pessoa que visitou esse site doasse R$10,00, nós já teriamos mudado a vida de muitos jovens?
<strong>Qualquer doação ajuda! COLABORE!</strong></p></div></div>
<p><strong>Aproveite essa oportunidade de apoiar um projeto que muda vidas, e ainda receber mimos!</strong>
<strong>Mas corra: é só até o dia 17/01/2023.</strong></p>]]></content>
        <author>
            <name>Thainara Furforo</name>
            <uri>https://github.com/thaifurforo</uri>
        </author>
        <author>
            <name>Enderson Menezes</name>
            <uri>https://github.com/endersonmenezes</uri>
        </author>
        <category label="Institucional" term="Institucional"/>
        <category label="financiamento coletivo" term="financiamento coletivo"/>
        <category label="quero ajudar" term="quero ajudar"/>
        <category label="doação" term="doação"/>
        <category label="ajuda" term="ajuda"/>
        <category label="financeira" term="financeira"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Hello world!]]></title>
        <id>https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2022/10/14/hello-world</id>
        <link href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2022/10/14/hello-world"/>
        <updated>2022-10-14T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Queremos levar o ensino tecnológico para onde ainda existem barreiras.]]></summary>
        <content type="html"><![CDATA[<p>Queremos levar o ensino tecnológico para onde ainda existem barreiras.</p>
<p>A Codaqui é uma escola de programação sem fins lucrativos que apoia jovens que desejam aprender a desenvolver produtos tecnológicos mas não possuem acesso a uma educação tecnológica por outros meios.</p>
<p>Para iniciar nossos trabalhos publicamente, depois de <em>quase 2 anos</em> nos organizando, gostaríamos de convidar toda comunidade para participar do Hacktoberfest com a Codaqui.</p>
<p>O Hacktoberfest é um evento anual que encoraja as pessoas a contribuir com projetos open source ao longo do mês de outubro.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="hacktoberfest-da-codaqui">Hacktoberfest da Codaqui<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2022/10/14/hello-world#hacktoberfest-da-codaqui" class="hash-link" aria-label="Link direto para Hacktoberfest da Codaqui" title="Link direto para Hacktoberfest da Codaqui" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" alt="Hacktoberfest" src="https://raw.githack.com/codaqui/institucional/gh-pages-develop/assets/images/Head-Hacktoberfest-76896e39a3a663c14f8f01020d55b8fa.png" width="2362" height="966" class="img_ev3q"></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="como-participar">Como participar<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2022/10/14/hello-world#como-participar" class="hash-link" aria-label="Link direto para Como participar" title="Link direto para Como participar" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="inscreva-se-no-evento-do-hacktoberfest">Inscreva-se no Evento do Hacktoberfest<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2022/10/14/hello-world#inscreva-se-no-evento-do-hacktoberfest" class="hash-link" aria-label="Link direto para Inscreva-se no Evento do Hacktoberfest" title="Link direto para Inscreva-se no Evento do Hacktoberfest" translate="no">​</a></h3>
<ul>
<li class="">Registre-se em qualquer momento entre o dia 26 de setembro e o dia 31 de outubro de 2022, pelo site <a href="https://hacktoberfest.com/" target="_blank" rel="noopener noreferrer" class="">hacktoberfest.com</a> utilizando sua conta do GitHub ou GitLab. Na Codaqui, nos utilizamos e recomendamos o uso do <a href="https://github.com/" target="_blank" rel="noopener noreferrer" class="">GitHub</a>.</li>
<li class="">Tenha 4 pull/merge requests aceitos em repositórios participantes do evento entre 1º de outubro e 31 de outubro de 2022 para completar o Hacktoberfest.</li>
<li class="">Os 40.000 primeiros participantes a completar o Hacktoberfest poderão escolher para receber um entre dois prêmios: uma árvore plantada em seu nome, ou uma camiseta do Hacktoberfest 2022.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="escolha-uma-forma-de-contribuir">Escolha uma forma de contribuir<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2022/10/14/hello-world#escolha-uma-forma-de-contribuir" class="hash-link" aria-label="Link direto para Escolha uma forma de contribuir" title="Link direto para Escolha uma forma de contribuir" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="como-colaborar-criando-um-novo-tópico-em-uma-trilha-existente">Como colaborar criando um novo tópico em uma trilha existente?<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2022/10/14/hello-world#como-colaborar-criando-um-novo-t%C3%B3pico-em-uma-trilha-existente" class="hash-link" aria-label="Link direto para Como colaborar criando um novo tópico em uma trilha existente?" title="Link direto para Como colaborar criando um novo tópico em uma trilha existente?" translate="no">​</a></h4>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Instruções</div><div class="admonitionContent_BuS1"><p><strong>Sem imagens</strong></p><ol>
<li class="">Acesse o site: <a href="https://www.codaqui.dev/" target="_blank" rel="noopener noreferrer" class="">codaqui.dev</a>.</li>
<li class="">Clique na aba “Participe”.</li>
<li class="">No menu à esquerda, clique em “Quero Apoiar”.</li>
<li class="">Clique no link em “acessar aqui” para acessar a página de discussões no GitHub.</li>
<li class="">Clique em New Discussion para criar uma discussão.</li>
<li class="">Selecione a Categoria "Trilhas de Ensino".</li>
<li class="">Preencha o título da sua sugestão, começando com [TRILHA EXISTENTE], seguido pelo nome da trilha para a qual deseja sugerir material. No campo "Write", preencha uma descrição detalhada do que deseja adicionar à trilha, incluindo textos e links sugeridos, seguindo os padrões atuais da trilha. Ao finalizar, clique no botão "Start discussion" para enviar.</li>
<li class="">Lembre-se de ler o <a href="https://www.codaqui.dev/conduta/" target="_blank" rel="noopener noreferrer" class="">Código de Conduta</a> antes de enviar sua sugestão.</li>
</ol><p><strong>Com imagens</strong></p><ol>
<li class="">Acesse o site: <a href="https://www.codaqui.dev/" target="_blank" rel="noopener noreferrer" class="">codaqui.dev</a>.</li>
<li class="">Clique na aba “Participe”.
<img decoding="async" loading="lazy" src="https://raw.githack.com/codaqui/institucional/gh-pages-develop/assets/images/Participe-a2100b61f53ed1fb4212cc07fd7dc622.gif" width="1222" height="632" class="img_ev3q"></li>
<li class="">No menu à esquerda, clique em “Quero Apoiar”.
<img decoding="async" loading="lazy" src="https://raw.githack.com/codaqui/institucional/gh-pages-develop/assets/images/Quero-apoiar-7092b50301a3f367712710b25941ce8f.gif" width="1222" height="632" class="img_ev3q"></li>
<li class="">Clique no link em “acessar aqui” para acessar a página de discussões no GitHub.
<img decoding="async" loading="lazy" src="https://raw.githack.com/codaqui/institucional/gh-pages-develop/assets/images/Acessar-aqui-c9a48f35485e6575b01902cedfd17076.gif" width="1222" height="632" class="img_ev3q"></li>
<li class="">Clique em New Discussion para criar uma discussão.
<img decoding="async" loading="lazy" src="https://raw.githack.com/codaqui/institucional/gh-pages-develop/assets/images/New-discussion-e8a5c3dc3e02793470d96a39b4c00e28.gif" width="1222" height="632" class="img_ev3q"></li>
<li class="">Selecione a Categoria "Trilhas de Ensino".
<img decoding="async" loading="lazy" src="https://raw.githack.com/codaqui/institucional/gh-pages-develop/assets/images/Categoria-Trilhas-2628198d8bf6ed2d9f638fc7e69c2bab.gif" width="1222" height="792" class="img_ev3q"></li>
<li class="">Preencha o título da sua sugestão, começando com [TRILHA EXISTENTE], seguido pelo nome da trilha para a qual deseja sugerir material. No campo "Write", preencha uma descrição detalhada do que deseja adicionar à trilha, incluindo textos e links sugeridos, seguindo os padrões atuais da trilha. Ao finalizar, clique no botão "Start discussion" para enviar.
<img decoding="async" loading="lazy" src="https://raw.githack.com/codaqui/institucional/gh-pages-develop/assets/images/Trilha-Existente-1b65c891b4909c1ce22650b4977e8912.gif" width="1222" height="792" class="img_ev3q"></li>
<li class="">Lembre-se de ler o <a href="https://www.codaqui.dev/conduta/" target="_blank" rel="noopener noreferrer" class="">Código de Conduta</a> antes de enviar sua sugestão.</li>
</ol></div></div>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="como-colaborar-criando-um-novo-exercício-em-um-certificado-existente">Como colaborar criando um novo exercício em um certificado existente?<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2022/10/14/hello-world#como-colaborar-criando-um-novo-exerc%C3%ADcio-em-um-certificado-existente" class="hash-link" aria-label="Link direto para Como colaborar criando um novo exercício em um certificado existente?" title="Link direto para Como colaborar criando um novo exercício em um certificado existente?" translate="no">​</a></h4>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Instruções</div><div class="admonitionContent_BuS1"><p><strong>Sem imagens</strong></p><ol>
<li class="">Acesse o site: <a href="https://www.codaqui.dev/" target="_blank" rel="noopener noreferrer" class="">codaqui.dev</a>.</li>
<li class="">Clique na aba “Participe”.</li>
<li class="">No menu à esquerda, clique em “Quero Apoiar”.</li>
<li class="">Clique no link em “acessar aqui” para acessar a página de discussões no GitHub.</li>
<li class="">Clique em New Discussion para criar uma discussão.</li>
<li class="">Selecione a Categoria "Certificados".</li>
<li class="">Preencha o título da sua sugestão, começando com [EXERCÍCIO], seguido pelo nome do certificado no qual deseja adicionar um exercício. No campo "Write", preencha com o enunciado do exercício que deseja adicionar ao certificado e sua resolução. Ao finalizar, clique no botão "Start discussion" para enviar.</li>
<li class="">Lembre-se de ler o <a href="https://www.codaqui.dev/conduta/" target="_blank" rel="noopener noreferrer" class="">Código de Conduta</a> antes de enviar sua sugestão.</li>
</ol><p><strong>Com imagens</strong></p><ol>
<li class="">Acesse o site: <a href="https://www.codaqui.dev/" target="_blank" rel="noopener noreferrer" class="">codaqui.dev</a>.</li>
<li class="">Clique na aba “Participe”.
<img decoding="async" loading="lazy" src="https://raw.githack.com/codaqui/institucional/gh-pages-develop/assets/images/Participe-a2100b61f53ed1fb4212cc07fd7dc622.gif" width="1222" height="632" class="img_ev3q"></li>
<li class="">No menu à esquerda, clique em “Quero Apoiar”.
<img decoding="async" loading="lazy" src="https://raw.githack.com/codaqui/institucional/gh-pages-develop/assets/images/Quero-apoiar-7092b50301a3f367712710b25941ce8f.gif" width="1222" height="632" class="img_ev3q"></li>
<li class="">Clique no link em “acessar aqui” para acessar a página de discussões no GitHub.
<img decoding="async" loading="lazy" src="https://raw.githack.com/codaqui/institucional/gh-pages-develop/assets/images/Acessar-aqui-c9a48f35485e6575b01902cedfd17076.gif" width="1222" height="632" class="img_ev3q"></li>
<li class="">Clique em New Discussion para criar uma discussão.
<img decoding="async" loading="lazy" src="https://raw.githack.com/codaqui/institucional/gh-pages-develop/assets/images/New-discussion-e8a5c3dc3e02793470d96a39b4c00e28.gif" width="1222" height="632" class="img_ev3q"></li>
<li class="">Selecione a Categoria "Certificados".
<img decoding="async" loading="lazy" src="https://raw.githack.com/codaqui/institucional/gh-pages-develop/assets/images/Categoria-Certificados-da628232b1df392459bc79cc6a922e88.gif" width="1222" height="792" class="img_ev3q"></li>
<li class="">Preencha o título da sua sugestão, começando com [EXERCÍCIO], seguido pelo nome do certificado no qual deseja adicionar um exercício. No campo "Write", preencha com o enunciado do exercício que deseja adicionar ao certificado e sua resolução. Ao finalizar, clique no botão "Start discussion" para enviar.
<img decoding="async" loading="lazy" src="https://raw.githack.com/codaqui/institucional/gh-pages-develop/assets/images/Exerc%C3%ADcio-Certificado-be0bd336c2d17be85fd7a448adf93232.gif" width="1222" height="792" class="img_ev3q"></li>
<li class="">Lembre-se de ler o <a href="https://www.codaqui.dev/conduta/" target="_blank" rel="noopener noreferrer" class="">Código de Conduta</a> antes de enviar sua sugestão.</li>
</ol></div></div>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="como-criar-uma-nova-trilha">Como criar uma nova trilha?<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2022/10/14/hello-world#como-criar-uma-nova-trilha" class="hash-link" aria-label="Link direto para Como criar uma nova trilha?" title="Link direto para Como criar uma nova trilha?" translate="no">​</a></h4>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Instruções</div><div class="admonitionContent_BuS1"><p><strong>Sem imagens</strong></p><ol>
<li class="">Acesse o site: <a href="https://www.codaqui.dev/" target="_blank" rel="noopener noreferrer" class="">codaqui.dev</a>.</li>
<li class="">Clique na aba “Participe”.</li>
<li class="">No menu à esquerda, clique em “Quero Apoiar”.</li>
<li class="">Clique no link em “acessar aqui” para acessar a página de discussões no GitHub.</li>
<li class="">Clique em New Discussion para criar uma discussão.</li>
<li class="">Selecione a Categoria "Trilhas de Ensino".</li>
<li class="">Preencha o título da sua sugestão, começando com [NOVA TRILHA], seguido pelo nome da trilha que deseja sugerir. No campo "Write", escreva mais sobre a trilha que deseja que seja adicionada à Codaqui, incluindo, se quiser, sugestões de materiais e textos. Ao finalizar, clique no botão "Start discussion" para enviar.</li>
<li class="">Lembre-se de ler o <a href="https://www.codaqui.dev/conduta/" target="_blank" rel="noopener noreferrer" class="">Código de Conduta</a> antes de enviar sua sugestão.</li>
</ol><p><strong>Com imagens</strong></p><ol>
<li class="">Acesse o site: <a href="https://www.codaqui.dev/" target="_blank" rel="noopener noreferrer" class="">codaqui.dev</a>.</li>
<li class="">Clique na aba “Participe”.
<img decoding="async" loading="lazy" src="https://raw.githack.com/codaqui/institucional/gh-pages-develop/assets/images/Participe-a2100b61f53ed1fb4212cc07fd7dc622.gif" width="1222" height="632" class="img_ev3q"></li>
<li class="">No menu à esquerda, clique em “Quero Apoiar”.
<img decoding="async" loading="lazy" src="https://raw.githack.com/codaqui/institucional/gh-pages-develop/assets/images/Quero-apoiar-7092b50301a3f367712710b25941ce8f.gif" width="1222" height="632" class="img_ev3q"></li>
<li class="">Clique no link em “acessar aqui” para acessar a página de discussões no GitHub.
<img decoding="async" loading="lazy" src="https://raw.githack.com/codaqui/institucional/gh-pages-develop/assets/images/Acessar-aqui-c9a48f35485e6575b01902cedfd17076.gif" width="1222" height="632" class="img_ev3q"></li>
<li class="">Clique em New Discussion para criar uma discussão.
<img decoding="async" loading="lazy" src="https://raw.githack.com/codaqui/institucional/gh-pages-develop/assets/images/New-discussion-e8a5c3dc3e02793470d96a39b4c00e28.gif" width="1222" height="632" class="img_ev3q"></li>
<li class="">Selecione a Categoria "Trilhas de Ensino".
<img decoding="async" loading="lazy" src="https://raw.githack.com/codaqui/institucional/gh-pages-develop/assets/images/Categoria-Trilhas-2628198d8bf6ed2d9f638fc7e69c2bab.gif" width="1222" height="792" class="img_ev3q"></li>
<li class="">Preencha o título da sua sugestão, começando com [NOVA TRILHA], seguido pelo nome da trilha que deseja sugerir. No campo "Write", escreva mais sobre a trilha que deseja que seja adicionada à Codaqui, incluindo, se quiser, sugestões de materiais e textos. Ao finalizar, clique no botão "Start discussion" para enviar.
<img decoding="async" loading="lazy" src="https://raw.githack.com/codaqui/institucional/gh-pages-develop/assets/images/Trilha-Existente-1b65c891b4909c1ce22650b4977e8912.gif" width="1222" height="792" class="img_ev3q"></li>
<li class="">Lembre-se de ler o <a href="https://www.codaqui.dev/conduta/" target="_blank" rel="noopener noreferrer" class="">Código de Conduta</a> antes de enviar sua sugestão.</li>
</ol></div></div>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="como-criar-um-novo-certificado">Como criar um novo certificado?<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2022/10/14/hello-world#como-criar-um-novo-certificado" class="hash-link" aria-label="Link direto para Como criar um novo certificado?" title="Link direto para Como criar um novo certificado?" translate="no">​</a></h4>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Instruções</div><div class="admonitionContent_BuS1"><p><strong>Sem imagens</strong></p><ol>
<li class="">Acesse o site: <a href="https://www.codaqui.dev/" target="_blank" rel="noopener noreferrer" class="">codaqui.dev</a>.</li>
<li class="">Clique na aba “Participe”.</li>
<li class="">No menu à esquerda, clique em “Quero Apoiar”.</li>
<li class="">Clique no link em “acessar aqui” para acessar a página de discussões no GitHub.</li>
<li class="">Clique em New Discussion para criar uma discussão.</li>
<li class="">Selecione a Categoria "Certificados".</li>
<li class="">Preencha o título da sua sugestão, começando com [NOVO CERTIFICADO], seguido pelo título do certificado que deseja sugerir. No campo "Write", escreva mais sobre o certificado que deseja que seja adicionado à Codaqui, incluindo, se quiser, sugestões de textos e exercícios (com solução) para o certificado. Ao finalizar, clique no botão "Start discussion" para enviar.</li>
<li class="">Lembre-se de ler o <a href="https://www.codaqui.dev/conduta/" target="_blank" rel="noopener noreferrer" class="">Código de Conduta</a> antes de enviar sua sugestão.</li>
</ol><p><strong>Com imagens</strong></p><ol>
<li class="">Acesse o site: <a href="https://www.codaqui.dev/" target="_blank" rel="noopener noreferrer" class="">codaqui.dev</a>.</li>
<li class="">Clique na aba “Participe”.
<img decoding="async" loading="lazy" src="https://raw.githack.com/codaqui/institucional/gh-pages-develop/assets/images/Participe-a2100b61f53ed1fb4212cc07fd7dc622.gif" width="1222" height="632" class="img_ev3q"></li>
<li class="">No menu à esquerda, clique em “Quero Apoiar”.
<img decoding="async" loading="lazy" src="https://raw.githack.com/codaqui/institucional/gh-pages-develop/assets/images/Quero-apoiar-7092b50301a3f367712710b25941ce8f.gif" width="1222" height="632" class="img_ev3q"></li>
<li class="">Clique no link em “acessar aqui” para acessar a página de discussões no GitHub.
<img decoding="async" loading="lazy" src="https://raw.githack.com/codaqui/institucional/gh-pages-develop/assets/images/Acessar-aqui-c9a48f35485e6575b01902cedfd17076.gif" width="1222" height="632" class="img_ev3q"></li>
<li class="">Clique em New Discussion para criar uma discussão.
<img decoding="async" loading="lazy" src="https://raw.githack.com/codaqui/institucional/gh-pages-develop/assets/images/New-discussion-e8a5c3dc3e02793470d96a39b4c00e28.gif" width="1222" height="632" class="img_ev3q"></li>
<li class="">Selecione a Categoria "Certificados".
<img decoding="async" loading="lazy" src="https://raw.githack.com/codaqui/institucional/gh-pages-develop/assets/images/Categoria-Certificados-da628232b1df392459bc79cc6a922e88.gif" width="1222" height="792" class="img_ev3q"></li>
<li class="">Preencha o título da sua sugestão, começando com [NOVO CERTIFICADO], seguido pelo título do certificado que deseja sugerir. No campo "Write", escreva mais sobre o certificado que deseja que seja adicionado à Codaqui, incluindo, se quiser, sugestões de textos e exercícios (com solução) para o certificado. Ao finalizar, clique no botão "Start discussion" para enviar.
<img decoding="async" loading="lazy" src="https://raw.githack.com/codaqui/institucional/gh-pages-develop/assets/images/Novo-Certificado-3c507989c901244cfac08acd2a7530c1.gif" width="1222" height="792" class="img_ev3q"></li>
<li class="">Lembre-se de ler o <a href="https://www.codaqui.dev/conduta/" target="_blank" rel="noopener noreferrer" class="">Código de Conduta</a> antes de enviar sua sugestão.</li>
</ol></div></div>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="como-auxiliar-verificando-se-os-conteúdos-das-trilhas-permanecem-online">Como auxiliar verificando se os conteúdos das trilhas permanecem online?<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2022/10/14/hello-world#como-auxiliar-verificando-se-os-conte%C3%BAdos-das-trilhas-permanecem-online" class="hash-link" aria-label="Link direto para Como auxiliar verificando se os conteúdos das trilhas permanecem online?" title="Link direto para Como auxiliar verificando se os conteúdos das trilhas permanecem online?" translate="no">​</a></h4>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Instruções</div><div class="admonitionContent_BuS1"><p><strong>Sem imagens</strong></p><ol>
<li class="">Acesse o site: <a href="https://www.codaqui.dev/" target="_blank" rel="noopener noreferrer" class="">codaqui.dev</a></li>
<li class="">Clique em “Trilhas” no menu superior:</li>
<li class="">Escolha a trilha que gostaria de verificar no menu à esquerda:</li>
<li class="">Acesse os links apresentados na trilha e verifique se estão todos funcionando e disponíveis. Caso identifique algum link com problemas, crie uma discussão informando o problema identificado, <a href="https://github.com/codaqui/institucional/discussions/categories/trilhas-de-ensino" target="_blank" rel="noopener noreferrer" class="">clicando aqui</a>.</li>
</ol><p><strong>Com imagens</strong></p><ol>
<li class="">Acesse o site: <a href="https://www.codaqui.dev/" target="_blank" rel="noopener noreferrer" class="">codaqui.dev</a></li>
<li class="">Clique em “Trilhas” no menu superior:
<img decoding="async" loading="lazy" src="https://raw.githack.com/codaqui/institucional/gh-pages-develop/assets/images/Trilhas-Site-01-44caa66d7f74fb5c2dd199595586d725.gif" width="1222" height="792" class="img_ev3q"></li>
<li class="">Escolha a trilha que gostaria de verificar no menu à esquerda:
<img decoding="async" loading="lazy" src="https://raw.githack.com/codaqui/institucional/gh-pages-develop/assets/images/Trilhas-Site-02-d0d32a59a5ebf2b7591599d278a4668b.gif" width="1222" height="792" class="img_ev3q"></li>
<li class="">Acesse os links apresentados na trilha e verifique se estão todos funcionando e disponíveis. Caso identifique algum link com problemas, crie uma discussão informando o problema identificado, <a href="https://github.com/codaqui/institucional/discussions/categories/trilhas-de-ensino" target="_blank" rel="noopener noreferrer" class="">clicando aqui</a>.</li>
</ol></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="regras-e-conduta">Regras e Conduta<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2022/10/14/hello-world#regras-e-conduta" class="hash-link" aria-label="Link direto para Regras e Conduta" title="Link direto para Regras e Conduta" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="regras-do-hacktoberfest">Regras do Hacktoberfest<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2022/10/14/hello-world#regras-do-hacktoberfest" class="hash-link" aria-label="Link direto para Regras do Hacktoberfest" title="Link direto para Regras do Hacktoberfest" translate="no">​</a></h4>
<ul>
<li class="">Seus Pull Requests (PR) e Merge Requests (MR) devem ser feitos dentro das datas limite do Hacktoberfest: entre 1º de outubro e 31 de outubro de 2022 (em qualquer fuso horário).</li>
<li class="">Seus PR/MRs devem ser feitos em repositórios públicos e não arquivados.
Repositórios que não estejam de acordo com os valores do Hacktoberfest serão excluídos da qualificação e os PR/MRs feitos nestes repositórios não contarão.</li>
<li class="">Seus PR/MRs não devem ser SPAM. PR/MRs que forem marcados com uma label contendo a palavra “spam” pelos mantenedores não serão contados.
<ul>
<li class="">O Hacktoberfest usa o Node.js 16 RegEx engine com /\bspam\b/i para procurar labels de spam.</li>
<li class="">PR/MRs que também tenham o “hacktoberfest-accepted” label não poderão ser marcados como SPAM através de label.</li>
<li class="">PR/MRs que tiverem sido mergiados e não tiverem uma label contendo a palavra “invalid” não poderão ser marcados como SPAM através de label.</li>
</ul>
</li>
<li class="">PR/MRs que o sistema do Hacktoberfest detectar como SPAM também não serão contados.</li>
<li class="">Qualquer usuário com dois ou mais PR/MRs de SPAM será desqualificado.</li>
<li class="">Seus PR/MRs devem ser feitos em um repositório tagueado com o tópico “hacktoberfest”, ou com o label “hacktoberfest-accepted”.</li>
<li class="">Suas PR/MRs não podem ser marcadas com o label “invalid”. PRs/MRs que forem marcados com o label “invalid” não serão contadas, a não ser que eles também estejam marcados com o label “hacktoberfest-accepted”.
<ul>
<li class="">O Hacktoberfest usa o Node.js 16 RegEx engine com /\binvalid\b/i para procurar labels de invalid.</li>
</ul>
</li>
<li class="">Suas PR/MRs devem ser mergeadas, ter o label “hacktoberfest-accepted” ou ter uma revisão com aprovação geral.
<ul>
<li class="">Suas PR/MRs não serão consideradas aceitas se forem apenas um rascunho.</li>
<li class="">Se sua PR/MR estiver sendo aceita para o Hacktoberfest por uma revisão com aprovação geral, ela também não pode estar encerrada.</li>
</ul>
</li>
<li class="">Assim que suas PR/MRs passarem por todas as checagens acima, será aceita para o Hacktoberfest após um período de 7 dias para revisão.
<ul>
<li class="">O Hacktoberfest continuamente avalia todas as checagens. Se o PR/MR falhar em qualquer uma das checagens durante esse período, o prazo de 7 dias será reiniciado.</li>
<li class="">Após os 7 dias para revisão completos, sua PR/MR será automaticamente aceita no Hacktoberfest, assumindo que ainda passe por todas as checagens. Uma vez aceita para o Hacktoberfest, eles pararão de checá-la.</li>
</ul>
</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="regras-da-codaqui">Regras da Codaqui<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2022/10/14/hello-world#regras-da-codaqui" class="hash-link" aria-label="Link direto para Regras da Codaqui" title="Link direto para Regras da Codaqui" translate="no">​</a></h4>
<ul>
<li class="">Ao abrir uma Discussão, conforme orientado no “Como participar”, ela será transformada em um Pull Request e passará pela avaliação da Codaqui para que seja mergeado ou não.</li>
<li class="">Atente-se a todas as instruções e regras de conduta da Codaqui ao fazer sua contribuição.</li>
<li class="">Caso sua contribuição seja válida dentro de todas as regras do Hacktoberfest e da Codaqui, sua pontuação será recebida no prazo de 7 dias úteis a partir da checagem em que ela for considerada válida pela primeira vez, conforme já explicado nas regras do Hacktoberfest.</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="teamplay">Teamplay<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2022/10/14/hello-world#teamplay" class="hash-link" aria-label="Link direto para Teamplay" title="Link direto para Teamplay" translate="no">​</a></h4>
<ul>
<li class="">Respeite a primeira pessoa que sinalizou um problema, ela terá prioridade na resolução deste problema, e perderá a mesma se mantiver inativa por mais de 36 horas.</li>
<li class="">Seja respeitoso com os demais ao enviar sugestões e participar de discussões. Todos estão participando com o mesmo objetivo de contribuir.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="repositórios">Repositórios<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2022/10/14/hello-world#reposit%C3%B3rios" class="hash-link" aria-label="Link direto para Repositórios" title="Link direto para Repositórios" translate="no">​</a></h3>
<p>Os repositórios da Codaqui que poderão receber PR/MRs durante o período do Hacktoberfest são:</p>
<ul>
<li class=""><a href="https://github.com/codaqui/institucional" target="_blank" rel="noopener noreferrer" class="">Institucional</a></li>
<li class=""><a href="https://github.com/codaqui/certificado-python" target="_blank" rel="noopener noreferrer" class="">Certificado Python</a></li>
<li class=""><a href="https://github.com/codaqui/certificado-javascript" target="_blank" rel="noopener noreferrer" class="">Certificado Javascript</a></li>
</ul>
<p><em>Caso alguma nova trilha ou certificado seja criada por algum outro membro, o mesmo será adicionado aqui no prazo de 24 horas.</em></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="fluxo">Fluxo<a href="https://raw.githack.com/codaqui/institucional/gh-pages-develop/blog/2022/10/14/hello-world#fluxo" class="hash-link" aria-label="Link direto para Fluxo" title="Link direto para Fluxo" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" src="https://raw.githack.com/codaqui/institucional/gh-pages-develop/assets/images/Fluxo-Hacktoberfest-19ba274dd23e0b3e6baf0531550666b8.png" width="2404" height="1876" class="img_ev3q"></p>]]></content>
        <author>
            <name>Enderson Menezes</name>
            <uri>https://github.com/endersonmenezes</uri>
        </author>
        <author>
            <name>Thainara Furforo</name>
            <uri>https://github.com/thaifurforo</uri>
        </author>
        <category label="Institucional" term="Institucional"/>
        <category label="hello" term="hello"/>
        <category label="world" term="world"/>
        <category label="hacktoberfest" term="hacktoberfest"/>
        <category label="queroajudar" term="queroajudar"/>
    </entry>
</feed>