<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Hitoshi Yamamoto on Medium]]></title>
        <description><![CDATA[Stories by Hitoshi Yamamoto on Medium]]></description>
        <link>https://medium.com/@hitoshyamamoto?source=rss-8deacb51dad7------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*EWe8ZhawueqWKpdwmYwlhw.jpeg</url>
            <title>Stories by Hitoshi Yamamoto on Medium</title>
            <link>https://medium.com/@hitoshyamamoto?source=rss-8deacb51dad7------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 31 May 2026 20:34:47 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@hitoshyamamoto/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Git na Prática — Um Guia Completo e Explicado para Iniciantes]]></title>
            <link>https://medium.com/@hitoshyamamoto/git-na-pr%C3%A1tica-um-guia-completo-e-explicado-para-iniciantes-7cdaf1914e1f?source=rss-8deacb51dad7------2</link>
            <guid isPermaLink="false">https://medium.com/p/7cdaf1914e1f</guid>
            <category><![CDATA[beginners-guide]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[terminal]]></category>
            <category><![CDATA[git]]></category>
            <category><![CDATA[distributed-systems]]></category>
            <dc:creator><![CDATA[Hitoshi Yamamoto]]></dc:creator>
            <pubDate>Wed, 14 Jan 2026 20:47:01 GMT</pubDate>
            <atom:updated>2026-01-14T21:17:03.752Z</atom:updated>
            <content:encoded><![CDATA[<h3>Git na Prática — Um Guia Completo e Explicado para Iniciantes</h3><p><em>Uma abordagem de passo a passo para dominar Git a partir dos primeiros comandos até fluxos de trabalho essenciais.</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*3WhZ24BMF5Z9E4vB.png" /></figure><h3>Introdução</h3><p>O Git é um <strong>sistema de controle de versão distribuído (DVCS)</strong> amplamente utilizado por desenvolvedores de software, equipes colaborativas (incluindo comunidade de desenvolvedores) e projetos de todos os tamanhos. Ele permite acompanhar o histórico de mudanças, recuperar versões anteriores, coordenar trabalho entre várias pessoas e manter um fluxo de desenvolvimento organizado, tudo isso de forma eficiente e confiável.</p><p>Este artigo não revisita a história do Git (que já foi explorada em outro artigo anterior) e, sim, o foco será a prática: <em>como usar Git de forma efetiva desde o primeiro comando até as atividades diárias de gerenciamento de código.</em></p><p>Outro detalhe importante, nesse artigo não será resumido por “apanhado” de pouquíssimos comandos. Vão ser abordadas diversos detalhes, observações e informações que complementam a base dos comandos git.</p><p>Vamos cobrir:</p><ul><li>Configuração inicial</li><li>Criar e gerenciar repositórios</li><li>Fluxo básico de trabalho (add, commit)</li><li>Trabalhando com branches</li><li>Sincronização com repositórios remotos</li><li>Boas práticas</li></ul><p>Antes de começarmos a usar comandos, é necessário instalar o Git no seu sistema operacional, pois todos os comandos que mostraremos dependem dessa instalação.</p><p>O Git está disponível para sistemas operacionais:</p><ul><li>Windows</li><li>macOS</li><li>Linux</li></ul><p>E pode ser obtido diretamente do site oficial em:<br><a href="https://git-scm.com/install/">https://git-scm.com/install/</a>.</p><ul><li>Em distribuições Linux, o Git normalmente é instalado pelos gerenciadores de pacotes nativos (por exemplo apt, dnf ou pacman);</li><li>Em macOS recomenda-se o uso do <em>Homebrew</em> ou do instalador oficial;</li><li>No Windows, basta baixar o instalador e seguir as etapas sugeridas pelo instalador gráfico.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1008/1*wmArHfNHXzU6LM_1buUReQ.png" /><figcaption>fonte: git — <a href="https://git-scm.com/install/">link</a></figcaption></figure><p>Após instalar o Git, você deve confirmar a instalação e identificar em qual ambiente o Git está disponível.</p><p>No Windows, por exemplo, dependendo da opção que você escolheu no instalador, o Git pode estar disponível em:</p><ul><li>Git Bash (instalador padrão do Git para Windows);</li><li>PowerShell;</li><li>CMD (Prompt de Comando).</li></ul><p>Cada um desses terminais funciona de maneira independente e o Git deve estar acessível no terminal em que você pretende trabalhar.</p><p>Para verificar se o Git está instalado no terminal que você está usando, execute:</p><pre>git --version</pre><p>Se o Git estiver instalado naquele ambiente, o comando retornará algo como:</p><pre>git version 2.42.0</pre><p>Caso contrário, pode indicar que:</p><ol><li>Ou Git não foi instalado para aquele terminal,</li><li>Ou caminho (PATH) não foi configurado corretamente,</li><li>Ou você está usando um ambiente diferente (por exemplo, WSL que possui sua própria instalação de Git).</li></ol><p><strong>Observação sobre o WSL:</strong><br> Se você estiver usando o <strong>Windows Subsystem for Linux (WSL)</strong>, a instalação do Git deve ser feita <strong>dentro da distribuição Linux</strong> (por exemplo, com sudo apt install git no Ubuntu). Após instalar no WSL, o comando git --version deve ser executado na janela do terminal do WSL e não no CMD ou PowerShell.</p><p>Somente quando o Git for reconhecido corretamente no terminal onde você deseja trabalhar poderemos prosseguir para: configurar o usuário, criar repositórios e começar a versionar código.</p><p>Para mais detalhes sobre instalação em cada plataforma, consulte a documentação oficial em:<br><a href="https://git-scm.com/book/en/v2/Getting-Started-Installing-Git"><em>https://git-scm.com/book/en/v2/Getting-Started-Installing-Git</em></a><em><br></em>Pois esse o conteúdo da página traz instruções completas e atualizadas.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*hM_JFBgsOF5q0luT.png" /><figcaption>fonte: GitKraken — <a href="https://www.gitkraken.com/learn/git/git-config">link</a></figcaption></figure><h3>1. Configuração Básica</h3><p>Antes de começar com comandos mais avançados, é importante configurar algumas informações básicas que Git usa para identificar você como autor de commits.</p><pre>git config --global user.name &quot;Seu Nome&quot;<br>git config --global user.email &quot;email@exemplo.com&quot;</pre><p>Exemplo prático:</p><pre>git config --global user.name &quot;john doe&quot;<br>git config --global user.email &quot;johndoe@mail.com&quot;</pre><p>Essas configurações são registradas localmente e reutilizadas em cada commit.</p><p>Se quiser verificar todas as suas configurações atuais:</p><pre>git config --list</pre><p>Caso tenha mais usuários cadastrados, aparecerá dessa forma baixo:</p><pre>user.name=Jane Doe<br>user.email=jane_doe@mail.com<br>user.name=John Doe<br>user.email=john.doe@mail.org<br>user.name=Antonio Nunes<br>user.email=antonio.nunes@aopa.net<br>core.repositoryformatversion=0<br>...</pre><p>Neste caso acima, há três pares de nome e e-mail listados, sugerindo que três configurações foram estabelecidas em níveis diferentes.</p><p><strong>Observação Técnica:</strong></p><p>Git busca configurações nesta ordem de prioridade:</p><ol><li><strong>--local</strong> (no repositório atual)</li><li><strong>--global</strong> (configurações do usuário)</li><li><strong>--system</strong> (configurações do sistema)</li></ol><p>Ou seja, se existe um user.name definido localmente, ele “vence” (ou ganha) de um user.name definido globalmente.</p><p>Se você quiser ver apenas as configurações do nível global ou apenas as do repositório, você pode usar:</p><pre>git config --global --list</pre><p>ou</p><pre>git config --local --list</pre><p>Isso mostra apenas os valores daquele escopo específico.</p><h4>Por que existem diferentes níveis de configuração no Git?</h4><p>O Git foi projetado para ser flexível e personalizável em diferentes contextos e cada nível de configuração reflete um <em>escopo diferente</em> de aplicação das preferências ou regras que você define.</p><h4>--system (Configuração System)</h4><ul><li><strong>Escopo:</strong> toda a máquina</li><li><strong>Aplicação:</strong> vale para <strong>todos os usuários e todos os repositórios</strong> naquele computador</li><li><strong>Quando usar:</strong> para definir padrões ou regras que devem ser comuns a qualquer pessoa que use Git naquela máquina (por exemplo, configurações de segurança ou políticas corporativas)</li><li><strong>Onde fica:</strong> normalmente em /etc/gitconfig no Linux ou em ProgramData/Git/config no Windows</li><li><strong>Exemplo prático:</strong> definir um editor de texto padrão para todos os usuários da máquina, ou uma política de formatação de mensagens de commit que deve ser aplicada em qualquer repositório da empresa.</li></ul><h4>--global (Configuração Global)</h4><ul><li><strong>Escopo:</strong> <strong>usuário atual</strong></li><li><strong>Aplicação:</strong> vale para <strong>todos os repositórios desse usuário especificamente</strong></li><li><strong>Quando usar:</strong> para definir suas preferências pessoais que você quer manter em qualquer projeto que você trabalhe naquela conta de usuário</li><li><strong>Onde fica:</strong> normalmente em ~/.gitconfig no Linux/macOS ou C:\Users\&lt;Usuário&gt;\.gitconfig no Windows</li><li><strong>Exemplo prático:</strong> seu nome e e-mail de autor (user.name, user.email), normalmente você quer usar sempre os mesmos, então esses valores são salvos no nível global.</li></ul><h4>--local (Configuração Local)</h4><ul><li><strong>Escopo:</strong> <strong>repositório específico</strong></li><li><strong>Aplicação:</strong> vale <strong>somente para esse repositório</strong></li><li><strong>Quando usar:</strong> quando você precisa que algo seja diferente apenas naquele repositório. Por exemplo, um nome de usuário diferente, regras de merge específicas ou comportamento especial</li><li><strong>Onde fica:</strong> em .git/config dentro da pasta do repositório</li><li><strong>Exemplo prático:</strong> alterar o e-mail de commits apenas naquele projeto para usar um domínio específico da empresa, sem alterar sua configuração global para outros projetos.</li></ul><h4>Como o Git escolhe qual configuração usar?</h4><p>O Git segue uma <strong>ordem de prioridade (cascata).</strong><br><strong><em>System ← Global ← Local</em></strong></p><p>Isso quer dizer que:</p><ul><li>Se um valor estiver definido no local, ele <em>sobrepõe</em> o mesmo valor definido no global ou system;</li><li>Se não houver valor no local, o Git verifica o global;</li><li>Se também não houver no global, ele usa o valor do system (se existir).</li></ul><p>Em outras palavras: <strong>quanto mais específico for o contexto, maior a prioridade.</strong></p><h4>Por que isso é útil?</h4><ul><li>Permite um mesmo Git funcionar de forma diferente dependendo do projeto, do usuário ou da máquina;</li><li>Evita conflitos de configuração entre múltiplos projetos ou regras corporativas de conformidade;</li><li>Oferece flexibilidade para manter padrões gerais (sistema), preferências pessoais (global) e ajustes finos por projeto (local), tudo ao mesmo tempo.</li></ul><p>Se precisar ou quiser entender com mais detalhes, visite esses recursos abaixo:<br>Git Config — <a href="https://git-scm.com/docs/git-config">link</a><br>Stack Overflow — <a href="https://stackoverflow.com/questions/60202175/what-is-the-difference-between-global-and-local-configuration-in-git">link</a></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/462/0*wAsktlM4_kQ6L_5c.png" /><figcaption>fonte: Learn Microsoft — <a href="https://learn.microsoft.com/pt-br/devops/develop/git/set-up-a-git-repository">link</a></figcaption></figure><h3>2. Iniciando um Repositório Git</h3><p>Um repositório Git é a estrutura que contém todo o histórico e metadados do seu projeto. Existem duas formas principais de obter um repositório:</p><h4>2.1 Inicializar um novo repositório</h4><p>Segue abaixo o comando para criar uma pasta com o nome do seu projeto e, em seguida, iniciar o projeto no Git.</p><pre>mkdir nome-do-projeto<br>cd nome-do-projeto<br>git init</pre><p>Caso você não conheça:<br>- mkdir: é um comando do terminal para criar diretório (make directory)<br>- cd: é um comando do terminal para mudar e acessar o diretório alvo (change directory)<br>- git init: é um comando que cria um repositório a partir do diretório que foi declarado. E dentro deste diretório é criado uma pasta oculta com o nome.git com todos os dados de controle de versão.</p><h4>2.2 Clonar um repositório existente</h4><p>Quando outra pessoa ou você mesmo já criou um repositório remoto. Por exemplo, ou num Github, ou num GitLab, ou num BitBucket.<br>Você pode copiar tudo localmente em seu computador/máquina/servidor:</p><p>Por exemplo:</p><pre>git clone https://exemplo.com/repositorio.git</pre><p>Esse comando acima realiza o download do projeto inteiro (incluindo histórico de commits e branches).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/778/0*OAHM32cYbcrOMgAG.png" /><figcaption>fonte: Git — <a href="https://git-scm.com">link</a></figcaption></figure><h3>3. Fluxo de Trabalho Básico</h3><p>O fluxo de trabalho com Git segue um padrão:</p><ol><li>Modificar arquivos no diretório de trabalho</li><li>Adicionar mudanças à área de preparação (staging area)</li><li>Commitar as mudanças para criar um ponto no histórico</li></ol><p>Antes de tudo, vamos entender o que são esses termos “staging” e “remote” que tem relação direta a <strong>Git Lifecycle</strong>. (<a href="https://www.w3schools.in/git/lifecycle">link</a>)</p><p>O Git Lifecycle define diferentes estágios para os arquivos dentro do gerenciamento de projetos do git. Essas definições de estágios representa as ações e mudanças realizadas como tracking, staging, commiting e pushing. São definidas 4 estágios, sendo eles:</p><ul><li><strong>Working Directory</strong> — Onde os arquivos são criados e modificados, mas ainda não foram monitorados ou reconhecido pelo Git;</li><li><strong>Staging Area</strong> — É um espaço temporário onde as mudanças são adicionadas antes das commits;</li><li><strong>Local Repository</strong> — É o repositório local onde é armazenado todas as mudanças e commits;</li><li><strong>Remote Repository</strong> — repositório compartilhado que está numa hospedado numa plataforma (por exemplo, Github, GitLab e BitBucket) onde são realizados os comandos push e pull entre os colaboradores do repositório.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*ykNjzQCvTCYGuCUW.jpg" /><figcaption>fonte: GeeksforGeeks — <a href="https://www.geeksforgeeks.org/git/git-life-cycle/">link</a></figcaption></figure><p>Cada estágio tem papéis importantes no decorrer do desenvolvimento do projeto:</p><ul><li>Working Directory (Untracked/Modified State)<br>É o estágio que contém todos os arquivos do projeto. Tem importante papel de saber como estão todos os arquivos do projeto:<br>- ou se foram modificados;<br>- ou se não foram rastreados.<br>Os comandos utilizados nesse estágio são:</li></ul><pre>git status # Lista quais arquivos foram modificados e quais foram rastreados<br>git diff # Verifica mudanças realizadas no diretório do projeto</pre><p>Por que é importante saber se foi rastreado ou não?<br>Nesse caso, pode ocorrer que no seu projeto tenha o arquivo “.gitignore” onde você lista quais arquivos, diretórios e formatos de arquivos que devem ser ignorados pelo git. Por exemplo:</p><pre># Ignorar ambientes virtuais<br>venv/<br>env/<br>venv_teste/<br><br># Logs na raiz do projeto<br>*.logs<br><br># Por questão de segurança, não enviar os dados e variáveis de ambiente<br>.env.dev<br>.env.prod<br>.env</pre><p>No exemplo acima, o arquivo “.gitignore” vai literalmente ignorar esses tipos de arquivos, diretórios e formatos de arquivo de serem rastreados pelo git.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1016/0*GNnL86ZUu1hNmD0l.gif" /><figcaption>fonte: Visual Studio Marketplace — <a href="https://marketplace.visualstudio.com/items?itemName=quentinguidee.gitignore-ultimate">link</a></figcaption></figure><ul><li>Staging Area (Staged State)<br>Nesse estágio, ele lida com quais arquivos vão entrar no commit, quais não vão entrar no commit e quais precisam ser removidas no commit caso você tenha adicionado acidentalmente.</li></ul><pre>git add nome_do_arquivo.py # adiciona especificamente esse arquivo<br>git add . # adiciona todos os arquivos para o commit<br>git reset remove_esse_arquivo_mesmo.py # caso tenha adicionado um arquivo indesejado, remove ele da lista para não estar no commit</pre><ul><li>Local Repository (Committed State)<br>Depois que é realizado as adições de arquivos no Staging Area, você precisará realizar o commit que representa um “snapshot” (captura de um momento específico) do projeto</li></ul><pre>git commit -m &quot;&lt;tipo&gt;[escopo específico]: &lt;descrição&gt;&quot;<br># por exemplo<br>git commit -m &quot;feat(balanceador): adicionado nova função de cálculo de dados de sensores&quot;<br><br>git log # Visualiza o histórico de commit</pre><p>Por questão de boas práticas, quando se trabalha numa equipe, sempre siga um padronização de commits, facilitando comunicação entre os desenvolvedores e mantenedores do projeto. Por exemplo, geralmente sigo por meio desse site de padronização: <a href="https://www.conventionalcommits.org/en/v1.0.0/">Conventional Commits</a>.</p><ul><li>Remote Repository (Pushed State)<br>Repositório remoto é a localização central (por exemplo, Github, GitLab e BitBucket) onde a equipe, o usuário, a comunidade ou a empresa possam colaborar referente ao projeto. Depois que o projeto passa pelo(s) commit(s) e, em seguida, é realizado o “ git push”, o repositorio remoto mais atualizado é acessado pelos membros que tenham acesso ao repositório na plataforma (como Github, GitLab e BitBucket).<br>Nessa etapa, principais comandos são:</li></ul><pre>git push origin nome-da-branch # Realiza o upload das commits realizadas localmente para o repositório remoto<br>git pull origin nome-da-branch # Realiza o fetch e merge do repositório remoto<br>git clone url-do-repositório # Copia o repositório remoto para o diretório local</pre><p>Segue abaixo o resumo dos comandos de acordo com o estágio do Git Lifecycle:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/987/1*gvCH_jaJKigUx2dyFP4bGQ.png" /><figcaption>fonte: w3school — <a href="https://www.w3schools.in/git/lifecycle">link</a></figcaption></figure><h4>3.1 Verificando o estado atual</h4><p>Voltando ao projeto, de forma direta, vamos a passo a passo. Primeiro, veja o estado dos seus arquivos:</p><pre>git status</pre><p>Esse comando mostra quais arquivos foram modificados, quais estão prontos para commit e quais não estão sendo rastreados.</p><h4>3.2 git add</h4><p>Adiciona arquivos à área de staging, preparando-os para commit:</p><pre>git add nome_do_arquivo.txt</pre><p>Ou se quiser adicionar todos os arquivos modificados de uma vez:</p><pre>git add .</pre><p>A área de staging funciona como um “pré-commit”, você escolhe o que será incluído no próximo <em>snapshot</em>.</p><h4>3.3 git commit</h4><p>Uma vez que os arquivos estejam no staging, crie um commit:</p><pre>git commit -m &quot;&lt;tipo&gt;(escopo específico): &lt;descrição&gt;&quot;<br># Por exemplo<br>git commit -m &quot;doc(sql): documentado e esclarecido as principais estruturas de queries de SQL utilizadas no projeto.&quot;</pre><p>Cada commit salva um conjunto de alterações permanente no histórico de versões.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*MUqRV8ozHRIisSwL.png" /><figcaption>fonte: StackOverflow — <a href="https://stackoverflow.com/questions/69725913/gitflow-how-to-maintain-previous-releases">link</a></figcaption></figure><h3>4. Navegando e Trabalhando com Branches</h3><p>Um dos maiores diferenciais do Git é o <strong>suporte robusto</strong> para branches aos quais são “linhas” de desenvolvimento independentes.</p><p>Como recomendação, principalmente se você estiver desenvolvendo um projeto com uma equipe, comunidade e/ou responsáveis de uma empresa, precisa seguir padrões de nomeação das branches também, facilitando a comunicação entre as equipes, recomendo a leitura neste artigo: <a href="https://conventional-branch.github.io/">Conventional Branch</a></p><h4>4.1 Criar e alternar entre branches</h4><p>Criar um novo branch:</p><pre>git branch nova-feature<br># Por exemplo<br>git branch feat/add-login-page<br>git branch hotfix/change-cryptographic-hash-function</pre><p>Alternar e acessar essa nova branch:</p><pre>git checkout nova-feature<br># Por exemplo<br>git checkout feat/add-login-page # Nesse momento você acessa a branch chamada &quot;feat/add-login-page&quot;<br>git checkout fix/header-ui # Nesse momento você acessa a branch chamada &quot;fix/header-ui&quot;</pre><p>Ou em um único comando criar e trocar no mesmo comando:</p><pre>git checkout -b nova-feature<br># Nesse caso, ele primeiro cria a branch &quot;nova-feature&quot; e, em seguida, acessa essa branch recém criada.<br><br># Por exemplo<br>git checkout -b feat/login-page-new-ui<br>git checkout -b chore/update-dependencies</pre><p>Branches permitem desenvolver funcionalidades de forma isolada sem impactar o ramo principal (main ou master).</p><p>Por esses motivos, é importante trabalhar com o projeto, entender como separar cada etapa de atualização (podendo ser adição de nova funcionalidade, correção de bug, …) e, por fim, separar e identificar cada branch com suas respectivas responsabilidades e funcionalidades.</p><h4>4.2 Juntar branches com merge</h4><p>Depois de trabalhar no branch declarado e estar tudo pronto, você pode mesclar mudanças de volta ao branch principal:</p><pre># Primeiro você volta na branch principal<br>git checkout main<br># Depois você declara qual a branch alvo para ser mesclado com a principal<br># Obs: Branch alvo são as branch onde você realizou:<br># Atualização, Correção, Documentação e entre outros. <br>git merge nova-feature</pre><p>Recapitulando, os comandos acima mostra os passos que incorpora as alterações realizadas na branchnova-feature a branchmain.</p><h3>5. Trabalhando com Repositórios Remotos</h3><p>Em projetos colaborativos, normalmente você sincroniza seu trabalho com um repositório remoto.</p><h4>5.1 git push</h4><p>Esse comando envia seus commits locais para o repositório remoto, principalmente na branch main:</p><pre>git push origin main<br><br># Caso você queira enviar os commits para outra branch,<br># saiba que você precisa estar nela primeiro.<br>git push origin feat/login-system<br>git push origin hotfix/cript-hash</pre><p>Há parâmetro com o nome “origin”, ele identifica que você está realizando modificações a partir do nome padrão do repositório.</p><pre>git push origin main</pre><h4>5.2 git pull</h4><p>Para integrar mudanças remotas no seu branch atual:</p><pre>git pull origin main</pre><p>Esse comando combina dois passos: fetch (baixa dados remotos) e merge (integra as alterações).</p><h3>6. Dicas e Boas Práticas</h3><ul><li>Mensagens de commit claras: descreva o que foi feito</li><li>Frequência de commits: commits menores e com frequencia facilitam revisão. Ou seja, não compile 5 ações que você realizou em uma única commit, invés disso crie 5 commits detalhando cada ação para cada commit</li><li>Branches por feature: mantenha um fluxo de trabalho organizado</li><li>Padronização: utilize as convenções para padronizar os commits e nomeações das branches</li></ul><p>Use git status sempre! Esse comando ajuda a evitar erros de staging.</p><p>Antes de realizar git push, verifique se o “git config” esteja com as suas informações corretamente (user.name e user.email).</p><p>Esses hábitos tornam seu uso de Git mais eficiente e legível, especialmente em equipes.</p><h3>Conclusão</h3><p>Git é uma ferramenta poderosa, versátil e essencial no desenvolvimento moderno. Apesar da curva de aprendizado inicial, dominar essa ferramenta para o seu dia a dia profissional como desenvolvedor traz vantagens claras na gestão de projetos, colaboração e manutenção de código. Comandos simples como git init, git add, git commit, git branch, git push e git pull já permitem que você tenha a base para o controle versões e colabore em qualquer projeto com confiança.</p><p>Este guia prático foi estruturado para levar você do zero ao uso eficaz de Git em seus projetos. À medida que ganhar familiaridade, você poderá explorar comandos mais avançados como git rebase, git stash, estratégias de fluxo de trabalho colaborativo e até mesmo envolvendo a criação de arquivos &quot;.yml” dentro do.github/workflow/ que envolve outro assunto chamado de CI/CD (Continuous Integration/Continuous Delivery).</p><p>Espero que tenha gostado e que este artigo tenha ajudado você em seus projetos ou até mesmo na sua vida profissional.</p><h3>Referências</h3><p>Git | Install — <a href="https://git-scm.com/install/">link</a><br>Git | Getting Started — Installing Git — <a href="https://git-scm.com/book/en/v2/Getting-Started-Installing-Git">link</a><br>GitKraken | Git config — <a href="https://www.gitkraken.com/learn/git/git-config">link</a><br>StackOverflow | Difference between global and local — <a href="https://stackoverflow.com/questions/60202175/what-is-the-difference-between-global-and-local-configuration-in-git">link</a><br>Microsoft Learn | Configurar um Repositório Git — <a href="https://learn.microsoft.com/pt-br/devops/develop/git/set-up-a-git-repository">link</a><br>Rewind | GitHub vs. Bitbucket vs. GitLab — <a href="https://rewind.com/blog/github-vs-bitbucket-vs-gitlab-comparison/">link</a><br>W3School | Git Lifecycle — <a href="https://www.w3schools.in/git/lifecycle">link</a><br>GeeksForGeeks | Git — Life Cycle — <a href="https://www.geeksforgeeks.org/git/git-life-cycle/">link</a><br>GeeksForGeeks | Git Tutorial — <a href="https://www.w3schools.com/git/default.asp?remote=github">link</a><br>Github | Git Guide — <a href="https://github.com/git-guides">link</a><br>Conventional | Conventional Commits — <a href="https://www.conventionalcommits.org/en/v1.0.0/">link</a><br>Conventional | Conventional Branch — <a href="https://conventional-branch.github.io/">link</a><br>Medium | Abhay Amim — Naming conventions for Git Branches — <a href="https://medium.com/@abhay.pixolo/naming-conventions-for-git-branches-a-cheatsheet-8549feca2534">link</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=7cdaf1914e1f" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Git: como uma crise no Linux virou o padrão de colaboração do mundo moderno]]></title>
            <link>https://medium.com/@hitoshyamamoto/git-como-uma-crise-no-linux-virou-o-padr%C3%A3o-de-colabora%C3%A7%C3%A3o-do-mundo-moderno-dce02918f884?source=rss-8deacb51dad7------2</link>
            <guid isPermaLink="false">https://medium.com/p/dce02918f884</guid>
            <category><![CDATA[linux]]></category>
            <category><![CDATA[distributed-systems]]></category>
            <category><![CDATA[git]]></category>
            <dc:creator><![CDATA[Hitoshi Yamamoto]]></dc:creator>
            <pubDate>Fri, 02 Jan 2026 20:30:16 GMT</pubDate>
            <atom:updated>2026-01-02T20:30:16.473Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*A6I_R4xooBrK_Ngo.png" /><figcaption>fonte: wallpaperbat — <a href="https://wallpaperbat.com/github-wallpapers">link</a></figcaption></figure><p>Neste artigo, irei escrever sobre o Git em pontos <strong>histórico e teórico</strong>, passando por:</p><ul><li>cenário antes do Git existir;</li><li>por quais motivos o Linux foi parar numa ferramenta proprietária;</li><li>conflitos (e os custos) que aceleraram a criação do Git;</li><li>por quais situações o Git se tornou o padrão dentro da programação moderna.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/650/0*cvGvW0QCMb0qstvK.jpg" /><figcaption>fonte: seof — <a href="https://seof.ir/linus-benedict-torvalds/">link</a></figcaption></figure><h3>Antes do Git: quando “controle de versão” era mandar patches e torcer</h3><p>Durante muitos anos (especialmente entre <strong>1991 e 2002</strong>), o desenvolvimento do kernel Linux acontecia num modelo que hoje parece quase artesanal: patches circulando, arquivos compactados, muita coordenação manual — e um risco real de bagunça quando a escala cresceu.</p><p>Esse detalhe histórico é importante, pois ele explica <strong>a dor original</strong>: não era falta de talento, era falta de uma ferramenta que aguentasse o volume, a velocidade e o formato distribuído de colaboração que o Linux exigia. (<a href="https://git-scm.com/book/pt-br/v2/Come%C3%A7ando-Uma-Breve-Hist%C3%B3ria-do-Git">link</a>)</p><h3>BitKeeper: a escolha que ocorreu polêmica (e, por um tempo, funcional)</h3><p>Em 2002, o projeto do kernel Linux passou a usar o <strong>BitKeeper</strong>, um DVCS (controle de versão distribuído — <em>Distributed Version Control System</em>) <strong>proprietário</strong>. Foi uma decisão controversa, pois o Linux é open source e usar uma ferramenta fechada para manter um dos maiores projetos abertos do mundo era, no mínimo, um “ponto de atrito”.</p><p>Acontece que, no curto prazo, o BitKeeper entregava algo que o Linux precisava: fluxo de trabalho distribuído e performance aceitável para a escala do kernel. (<a href="https://www.infoworld.com/article/2211030/linus-torvalds-bitkeeper-blunder.html">link</a>)</p><h3>O conflito: quando o “acordo” quebra e a engenharia vira sobrevivência</h3><p>O ponto de virada veio quando a relação entre a comunidade e a empresa por trás do BitKeeper entra em um conflito. Um dos episódios mais citados em fóruns e em notícias envolve a alegação de engenharia reversa do protocolo do BitKeeper (associada ao nome de Andrew Tridgell em relatos jornalísticos e discussões técnicas) e isso teria pesado no fim do uso gratuito do BitKeeper no contexto do kernel. (<a href="https://lwn.net/Articles/134404/">link</a>)</p><p>Independente de detalhes de “quem estava certo ou não”, o efeito concretizou: o Linux precisava de uma alternativa <strong>imediata</strong> e, naquela época, as opções livres existentes não satisfaziam as necessidades de performance e integridade que o kernel exigia.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Dqx_6WCeKPA5nf7YKBbbzA.png" /><figcaption>fonte: edrawmax — <a href="https://images.edrawmax.com/what-is/gitflow-diagram/3-git-workflow.png">link</a></figcaption></figure><h3>Começo do Git: “rápido, distribuído e com integridade”</h3><p>O Git aparece em <strong>2005</strong> como resposta direta a esse cenário. Uma ferramenta feita para suportar um projeto enorme, com múltiplas linhas de desenvolvimento e necessidade de integridade de dados.</p><p>O próprio material oficial do Git enfatiza que ele foi pensado para:</p><ul><li>lidar com projetos grandes com eficiência;</li><li>manter histórico de forma econômica;</li><li>priorizar velocidade e integridade.</li></ul><p>É aqui que o Git conquistou <strong>no longo prazo.</strong> Ele não foi desenhado para ser um tutorial simpático, ele foi desenhado para <strong>não quebrar</strong> sob pressão. (<a href="https://git-scm.com/about">link</a>)</p><h3>De ferramenta “nascida na pressa” a padrão global</h3><p>Um detalhe que muita gente esquece, o Git não “termina” em 2005. Ele nasceu de forma rápida e, o mais importante, amadureceu com governança e manutenção consistentes. Um marco simbólico foi o lançamento do <strong>Git 1.0</strong> no fim de <strong>2005</strong>, anunciado por Junio C Hamano (que virou o mantenedor do projeto). (<a href="https://www.linux.com/news/git-10-released/">link</a>)</p><p>E, ao longo dos anos, o Git deixa de ser só “a ferramenta do Linux” e vira a base da programação e do desenvolvimento moderno, potencializado por:</p><ul><li>documentação forte e comunidade;</li><li>ecossistema de hospedagem e colaboração;</li><li>padronização cultural do “workflow Git”.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*zvQv1WWo3VPGx6ly.png" /><figcaption>fonte: Rebellabs</figcaption></figure><h3>Por que ele virou “o idioma comum” da programação?</h3><p>Na prática, o Git sobressaiu após o conflito, pois ele resolve um problema bem específico: <strong>coordenação de mudanças</strong> em escala, mantendo histórico confiável e colaboração paralela.</p><p>E dá para mostrar essa dominância: análises do ecossistema (via dados de pesquisas amplas da comunidade) mostram o Git como padrão majoritário entre devs . Pois, em 2022, por exemplo, o Stack Overflow já apontava Git como o sistema predominante com números na casa de <strong>93% </strong>aproximadamente. (<a href="https://stackoverflow.blog/2023/01/09/beyond-git-the-other-version-control-systems-developers-use">link</a>)</p><h3>Palavras do Autor:</h3><p>Por fim, a história do Git é uma história sobre <strong>restrições</strong>: quando o “plano A” cai (uma ferramenta proprietária num projeto gigante), nasce uma solução que vira padrão global. Em outras palavras, talvez essa seja a parte mais útil de lembrar: tecnologia que dura costuma nascer de problema real, com custo real e com gente real tomando decisões sob pressão.</p><p>Espero que tenha gostado de ler e saber um pouco sobre Git no mundo do desenvolvimento. Espero escrever mais artigos de tecnologia e trazer mais informações para vocês.</p><h3>Referência:</h3><p>GIT | Começando — Uma Breve História do Git — <a href="https://git-scm.com/book/pt-br/v2/Come%C3%A7ando-Uma-Breve-Hist%C3%B3ria-do-Git">link</a><br>InfoWorld | Linus Torvalds’ BitKeeper blunder — <a href="https://www.infoworld.com/article/2211030/linus-torvalds-bitkeeper-blunder.html">link</a><br>LWN.NET | Linus Torvalds’ BitKeeper blunder (InfoWorld)— <a href="https://lwn.net/Articles/134404/">link</a><br>GIT | Sobre o Git — <a href="https://git-scm.com/about">link</a><br>Linux.com | GIT 1.0 released — <a href="https://www.linux.com/news/git-10-released/">link</a><br>GIT | Distributed Git — Contributing to a Project— <a href="https://git-scm.com/book/ms/v2/Distributed-Git-Contributing-to-a-Project">link</a><br>StackOverflow Blog | Beyond Git: The other version control systems developers use— <a href="https://stackoverflow.blog/2023/01/09/beyond-git-the-other-version-control-systems-developers-use">link</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=dce02918f884" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Inteligência Artificial — Introdução]]></title>
            <link>https://medium.com/@hitoshyamamoto/intelig%C3%AAncia-artificial-introdu%C3%A7%C3%A3o-9ec4f3bf7b95?source=rss-8deacb51dad7------2</link>
            <guid isPermaLink="false">https://medium.com/p/9ec4f3bf7b95</guid>
            <category><![CDATA[history-of-technology]]></category>
            <category><![CDATA[artificial-intelligence]]></category>
            <category><![CDATA[neural-networks]]></category>
            <category><![CDATA[python]]></category>
            <category><![CDATA[tensorflow]]></category>
            <dc:creator><![CDATA[Hitoshi Yamamoto]]></dc:creator>
            <pubDate>Sat, 06 Apr 2024 00:10:16 GMT</pubDate>
            <atom:updated>2024-04-06T00:50:54.342Z</atom:updated>
            <content:encoded><![CDATA[<h3>Inteligência Artificial — Introdução</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/721/1*QuNcHDhwdC623dOlZ36ucw.png" /><figcaption>fonte: bibliotecas da Scikit-learn</figcaption></figure><p>A Inteligência Artificial (IA) é um campo de estudo <strong>multidisciplinar</strong> dedicado ao desenvolvimento de sistemas de computador capazes de realizar tarefas que requerem inteligência humana. E essas tarefas incluem: aprendizado, raciocínio, resolução de problemas, percepção de linguagem e interação humana. O objetivo principal da IA é criar soluções e/ou projetos que permita aos computadores e máquinas aprender, adaptar-se e executar tarefas complexas de forma autônoma.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1000/0*jabR0gHJ1LH6pwC3" /><figcaption>Fonte: <a href="https://indiaai.gov.in">https://indiaai.gov.in</a></figcaption></figure><h3>História por trás da Inteligência Artificial</h3><p>Durante a conferência de Dartmouth (localizado nos EUA) em 1956, foi definida formalmente a Inteligência Artificial (IA) no campo acadêmico. Neste evento, oficialmente denominado de “The Dartmouth Summer Research Project on Artificial Intelligence” foi organizado por John McCarthy, Marvin Minsky, Nathaniel Rochester e Claude Shannon.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/640/0*hBpNMau3uGVjV3D6" /><figcaption>fonte: Forbes (<a href="https://www.forbes.com/sites/gilpress/2016/08/28/artificial-intelligence-defined-as-a-new-research-discipline-this-week-in-tech-history/?sh=41c14a166dd1">link</a>)</figcaption></figure><p>A proposta original desse evento, redigida por McCarthy e seus colegas, argumentava que “qualquer aspecto do aprendizado ou outra característica da inteligência pode, em princípio, ser tão precisamente descrito que uma máquina pode ser feita para simulá-lo”. A conferência de Dartmouth é amplamente reconhecida como o nascimento da IA como um campo de pesquisa independente.</p><p>Ademais, o objetivo da conferência era reunir especialistas de diversas áreas, incluindo matemática, psicologia, ciência da computação e engenharia elétrica, para explorar a possibilidade de criar máquinas que pudessem simular aspectos da inteligência humana. Embora os avanços imediatos esperados pela conferência de Dartmouth não tenham se materializado tão rapidamente quanto previsto, o evento estabeleceu as bases para o desenvolvimento futuro da IA, introduzindo conceitos e métodos de pesquisa que continuariam a evoluir nas décadas seguintes.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1000/0*gOcJQwQ4K67KlKQX.jpg" /><figcaption>fonte: Andriy Onufriyenko / Getty</figcaption></figure><h3>Tipos de Inteligência Artificial</h3><p>É fundamental que dentro do campo da Inteligência Artificial a compreensão das capacidades e das limitações dos sistemas de IA, além de orientar o desenvolvimento futuro no campo. Essa distinção é importante não apenas para entender os sistemas de IA atuais e IAs do futuro, como também para antecipar as implicações éticas, sociais e tecnológicas de seu desenvolvimento dentro da sociedade. Assim, irei listar os 2 tipos de Inteligência Artificial:</p><ul><li>Inteligência Artificial Fraca (Weak AI): Projetada para executar tarefas específicas, operando dentro de limitações programadas, sem consciência ou autoconsciência. É amplamente utilizada em tecnologias do dia-a-dia (por exemplo, assistentes virtuais e carros autônomos). Seu foco é em aplicações especializadas e não possui a capacidade de generalizar seu aprendizado para tarefas fora de sua programação específica.</li><li>Inteligência Artificial Forte (Strong AI): É uma meta teórica que visa criar sistemas de IA com inteligência abrangente, capaz de raciocinar, aprender e adaptar-se a qualquer problema como um ser humano faria. Ademais, a Strong AI poderia entender e processar emoções, utilizar senso comum e adaptar-se a novas situações sem necessidade de programação específica.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/903/0*ht5sjB8AJ59ypXPO.png" /><figcaption>Fonte: Teorias da aquisição de conhecimento. Fonte: Adaptado de Messeder, 2020.</figcaption></figure><h3>As 3 vertentes da Inteligência Artificial</h3><p>As vertentes que irei descrever neste artigo refletem abordagens distintas para replicar ou entender a inteligência e o aprendizado humanos na IA.</p><h4><strong>Simbolismo:</strong></h4><p>Se concentra no processamento de regras lógicas e símbolos para simular o pensamento humano, focando na representação do conhecimento e na solução de problemas por meio de raciocínio dedutivo. Assim, as técnicas de IA baseadas em simbolismo são Lógica de Primeira Ordem, Sistemas Baseados em Regras e Redes Semânticas.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/700/0*lhFjXmN2FGQo5VNZ.png" /><figcaption>fonte: Javatpoint</figcaption></figure><p>Além disso, utilizam linguagens como Prolog e Lisp. Prolog é voltada para a programação lógica e resolução de problemas por meio de objetos e suas relações, enquanto Lisp é focada em processamento de dados simbólicos, sendo essenciais para o desenvolvimento de sistemas de IA que executam raciocínio complexo e manipulação de símbolos.</p><h4><strong>Conexionismo (ou redes neurais artificiais):</strong></h4><p>Imita a estrutura neural do cérebro humano, aprendendo a partir de exemplos e experiências, sem a necessidade de programação específica de regras, permitindo o reconhecimento de padrões e a aprendizagem adaptativa. Ademais, as técnicas como redes neurais artificiais são fundamentais. Elas simulam o funcionamento do cérebro humano através de unidades de processamento (neurônios artificiais) interconectadas, aprendendo e tomando decisões baseadas em dados de entrada.</p><p>E, quando se fala de Redes Neurais, é importante mencionar sobre a gama de variedades em estudos relacionados a Topologia e Arquitetura de Redes Neurais (veja na imagem abaixo).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1000/0*QvLcPGr77RcSQg3w.png" /><figcaption>fonte: asimovinstitute.org</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1000/0*QKs8v5RH5qqDhaC5.png" /><figcaption>fonte: Symbl.ai</figcaption></figure><p>Frameworks como TensorFlow e PyTorch são amplamente usados para desenvolver e treinar redes neurais, permitindo a criação de sistemas de IA capazes de reconhecimento de padrões, classificação e aprendizado profundo.</p><p>Para ter o “gostinho” de como é a programação utilizando a linguagem Python com a biblioteca TensorFlow, na imagem a seguir mostro uma estrutura simples de utilização de Redes Neurais com pretexto de resolver <strong>Classificação Binária</strong>.</p><p>Na prática, a Classificação Binária pode resolver certos problemas como:<br>- Classificação de “Spam” e “Ham”. Para aqueles que não sabem, o termo “Ham” é usado para classificar um conteúdo que não é um Spam; (<a href="https://cwiki.apache.org/confluence/display/spamassassin/Ham#:~:text=&quot;Ham&quot;%20is%20e-mail,for%20&quot;non-spam&quot;.">link</a>)<br>- Classificação de Doença, se o paciente “Está Doente” ou “Não está Doente”;<br>- Detecção de Fraude.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*wB5297I5u9uBQc3q6BbMvA.png" /></figure><h4><strong>Behaviorismo:</strong></h4><p>Oferece o enfoque em modelos que aprendem e tomam decisões baseadas em estímulos do ambiente, sem a necessidade de entender os processos internos de pensamento, enfatizando a importância das interações com o ambiente para o desenvolvimento da inteligência. <br>Além disso, o Behaviorismo envolve aprendizado com base na interação com o ambiente, usando técnicas de aprendizado por reforço. Sistemas aprendem e ajustam ações através de recompensas ou punições, melhorando a tomada de decisões.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/640/0*VMWcFTMYHl2jpjyz.png" /><figcaption>fonte: Packt Hub</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/512/0*UFOdSmJNJnfVijlj.png" /><figcaption>fonte: Anyscale</figcaption></figure><p>OpenAI Gym é um exemplo de ferramenta que fornece ambientes simulados para treinar esses agentes, permitindo o desenvolvimento de IA que aprimora seu comportamento por meio de experiências e feedback do ambiente. Ademais, a biblioteca RLlib é outra ferramenta popular para o treinamento de algoritmos de aprendizado por reforço, permitindo a implementação de agentes de IA que aprendem a partir de suas interações com o ambiente.</p><p>Outro detalhe importante quando se menciona o behaviorismo em IA são as técnicas-chave que incluem:<br>- <strong>o aprendizado por reforço</strong> onde agentes aprendem a otimizar suas ações baseados em recompensas ou punições;<br>- <strong>a programação genética</strong> que simula a evolução natural para otimizar soluções de problemas.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/908/0*S-bqBYH_3tnCh6Az.png" /><figcaption>fonte: Aprendizado por Reforço#1 — Introdução — <a href="https://medium.com/u/f09787821377">Enzo Cardeal Neves</a> (<a href="https://medium.com/turing-talks/aprendizado-por-reforço-1-introdução-7382ebb641ab">link</a>)</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/960/0*evOPmacDNkfJNNIx.jpg" /><figcaption>fonte: Universidad del Magdalena — Ing. De Sistemas — Inteligencia Artificial</figcaption></figure><p>Estas técnicas focam no comportamento adaptativo dos sistemas em resposta a estímulos externos, sem a necessidade de modelar explicitamente a cognição interna.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1000/0*GD3gkPFXSM7lu0SL.jpg" /></figure><h3>Palavras do Autor</h3><p>Espero que este artigo ajude e consiga trazer para um conjunto de informações interessantes e que agreguem profissionalmente você.</p><p>Cada artigo leva certo tempo para postar, gosto bastante de juntar as informações e de escrever para estes artigos, pois o objetivo final não é somente te informar com assuntos interessantes relacionadas a Tecnologia e Ciência, como também tornar esse conteúdo como um Folheto de Dicas e de Informações para você e para mim.</p><h3>Referência:</h3><p>Wikipédia — <a href="https://en.wikipedia.org/wiki/Dartmouth_workshop">link</a><br>Dartmouth — <a href="https://home.dartmouth.edu/about/artificial-intelligence-ai-coined-dartmouth">link</a><br>IEEE Spectrum — <a href="https://spectrum.ieee.org/dartmouth-ai-workshop">link</a><br>LifeWire — <a href="https://www.lifewire.com/strong-ai-vs-weak-ai-7508012">link</a><br>builtin — <a href="https://builtin.com/artificial-intelligence/strong-ai-weak-ai">link</a><br>Faculdade de Engenharia Elétrica e Computação da UNICAMP — <a href="https://www.dca.fee.unicamp.br/~gudwin/courses/IA889/2011/IA889-19.pdf">link</a><br>Reaprendentia — <a href="https://www.reaprendentia.org/teorias-de-aprendizagem/">link</a><br>Aprendizado por Reforço #1 — Introdução — <a href="https://medium.com/turing-talks/aprendizado-por-reforço-1-introdução-7382ebb641ab">link</a><br>Curso de IA UNIFEI Softtex 2023 — <a href="https://sites.google.com/unifei.edu.br/introducao-ia-unifei-softex/">link</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9ec4f3bf7b95" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Por que JavaScript e TypeScript?]]></title>
            <link>https://medium.com/@hitoshyamamoto/por-que-javascript-e-typescript-fd21452d75e8?source=rss-8deacb51dad7------2</link>
            <guid isPermaLink="false">https://medium.com/p/fd21452d75e8</guid>
            <category><![CDATA[nodejs]]></category>
            <category><![CDATA[web-development]]></category>
            <category><![CDATA[backend]]></category>
            <category><![CDATA[javascript]]></category>
            <dc:creator><![CDATA[Hitoshi Yamamoto]]></dc:creator>
            <pubDate>Thu, 04 Apr 2024 04:20:53 GMT</pubDate>
            <atom:updated>2024-04-04T04:20:53.195Z</atom:updated>
            <content:encoded><![CDATA[<p>Neste artigo, irei escrever sobre algumas das linguagens de programação e ferramentas muitas vezes solicitadas no mundo do Back-end em soluções e projetos mais modernos, sendo eles:<br>- JavaScript<br>- TypeScript<br>- Node.js</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1000/0*JReM03YBmCGV6ABw.jpg" /></figure><h3>JavaScript: A Linguagem da Web</h3><p>JavaScript é uma linguagem de programação de alto nível, dinâmica, interpretada (ou just-in-time compiled em alguns casos) que é parte fundamental da web. Originalmente, ela foi concebida para tornar as páginas web mais interativas. E, com passar dos anos, seu papel expandiu significativamente ao longo dos anos.</p><p>Características chave do JavaScript incluem:</p><ul><li><strong>Dinâmica:</strong> JavaScript suporta programação orientada a objetos, procedural e funcional. Isso permite aos desenvolvedores escreverem códigos flexíveis e reutilizáveis.</li><li>I<strong>nterpretada:</strong> Códigos JavaScript são executados diretamente no navegador do usuário, o que elimina a necessidade de compilar o código antes da execução.</li><li><strong>Event-Driven:</strong> Permite a criação de conteúdo interativo e responsivo em páginas web, reagindo a eventos como cliques de mouse e toques de tecla.</li></ul><p>Hoje, JavaScript não é apenas usado no desenvolvimento front-end para criar interfaces de usuário dinâmicas, como também no back-end. Assim, com a chegada do Node.js, os desenvolvedores ganharam a capacidade de usar JavaScript também no lado do servidor, ou seja, no back-end.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1000/0*0DpEawmrtSXJ_mr6.jpg" /></figure><h3>Node.js: Expansão do JavaScript para o Back-End</h3><p>Node.js é um ambiente de execução open-source para JavaScript que funciona fora do navegador. Isso significa que você pode escrever código JavaScript que roda no servidor, não limitado à execução em navegadores web.</p><p>Ademais, o Node.js foi construído sobre o motor V8 do Google Chrome que compila o código JavaScript em código de máquina, permitindo uma execução rápida e eficiente. Isso tornou possível usar JavaScript para desenvolver aplicações:<br>- de servidor, incluindo APIs web;<br>- de serviços de back-end, incluindo aplicações móveis, de robôs e sistemas IoT (Internet das Coisas).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1000/0*qbaHIKJ5lnAhsytS.png" /></figure><h3>Características do Node.js que Fortalecem o JavaScript no Back-End</h3><ul><li><strong>I/O Não-Bloqueante e Assíncrono: </strong>O Node.js utiliza um modelo de I/O (entrada/saída) não-bloqueante e assíncrono, permitindo que processos em segundo plano (como leitura de arquivos, acesso a bancos de dados, etc.) sejam executados sem interromper o fluxo principal do programa. Isso é particularmente útil para aplicações que requerem alta escalabilidade e manipulação de múltiplas conexões ou requisições simultâneas, como chats em tempo real, jogos online, ou APIs RESTful.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/797/1*pwb2KE2vS5AwCC7f8oXkyw.png" /><figcaption>Caio Borghi — <a href="https://dev.to/ocodista/profundezas-do-nodejs-explorando-io-assincrono-mim">https://dev.to/ocodista/profundezas-do-nodejs-explorando-io-assincrono-mim</a></figcaption></figure><ul><li><strong>JavaScript Universal:</strong> A possibilidade de usar JavaScript tanto no cliente quanto no servidor simplifica o desenvolvimento de aplicações web. Os desenvolvedores podem reutilizar código, compartilhar lógicas de negócio entre front-end e back-end, e manter uma base de conhecimento unificada, aumentando a eficiência e a coesão do projeto.<br>Se precisar de melhor definição, segue o link abaixo:<br><a href="https://stackoverflow.com/questions/43862782/whats-universal-javascript">https://stackoverflow.com/questions/43862782/whats-universal-javascript</a></li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/575/0*JTtAc4S4-DtZ4Dmb.jpg" /><figcaption>fonte: <a href="https://dri.es/album/blog/universal-javascript">https://dri.es/album/blog/universal-javascript</a></figcaption></figure><ul><li><strong>Ecossistema NPM:</strong> Node.js é acompanhado pelo NPM (Node Package Manager), o maior registro de bibliotecas e ferramentas do mundo. Isso proporciona aos desenvolvedores acesso a uma vasta gama de pacotes e módulos que podem ser facilmente integrados aos seus projetos, acelerando o desenvolvimento e adicionando funcionalidades complexas sem a necessidade de reinventar a roda.</li></ul><h3>Implicações para o Desenvolvimento de Software</h3><p>A capacidade de usar JavaScript no back-end, graças ao Node.js, transformou a maneira como aplicações web são desenvolvidas. As equipes de desenvolvimento podem agora se beneficiar de um ambiente de desenvolvimento mais integrado e uniforme, reduzindo a barreira entre desenvolvedores front-end e back-end, facilitando a colaboração.</p><p>Além disso, a adoção de JavaScript no back-end abriu caminho para o desenvolvimento de aplicações:<br>- MEAN (MongoDB, Express.js, Angular, e Node.js);<br>- MERN (MongoDB, Express.js, React, e Node.js).<br><strong>Eles usam JavaScript em todas as camadas da aplicação!</strong></p><p>Em resumo, o Node.js ampliou o domínio do JavaScript para incluir o desenvolvimento back-end, permitindo o desenvolvimento de aplicações completas em JavaScript. Isso não apenas unificou as stacks de desenvolvimento de software, mas também acelerou inovações e melhorias em termos de performance, escalabilidade e produtividade no desenvolvimento de aplicações modernas.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/626/0*gCzbYVI6x3I6KaiA.jpg" /></figure><h3>Palavras do Autor:</h3><p>Por fim, espero que tenha gostado do artigo. Estou ciente de que não teve trechos de códigos para exemplificar ou mostrar alguns códigos simples ou básicos relacionado ao conteúdo que estive descrevendo durante este artigo. No entanto, a ideia é somente conversar sobre o assunto que vem subindo bastante nesses últimos anos, principalmente quando se trata de soluções originados das startups e de alguns projetos de alto impacto dentro de algumas das grandes empresas.</p><p>Espero que tenha gostado do artigo. :)</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=fd21452d75e8" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Potencializando o Mapeamento do Fluxo de Valor com Inteligência Artificial]]></title>
            <link>https://medium.com/@hitoshyamamoto/potencializando-o-mapeamento-do-fluxo-de-valor-com-intelig%C3%AAncia-artificial-d626aeceffce?source=rss-8deacb51dad7------2</link>
            <guid isPermaLink="false">https://medium.com/p/d626aeceffce</guid>
            <category><![CDATA[vsm]]></category>
            <category><![CDATA[inteligencia-artificial]]></category>
            <category><![CDATA[value-stream-mapping]]></category>
            <category><![CDATA[kaizen]]></category>
            <category><![CDATA[industry]]></category>
            <dc:creator><![CDATA[Hitoshi Yamamoto]]></dc:creator>
            <pubDate>Mon, 23 Oct 2023 00:11:44 GMT</pubDate>
            <atom:updated>2023-10-23T00:11:44.706Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1019/1*1kBBWxuD6d6TjYL8G70SDA.png" /><figcaption>Fonte: Imagem gerada na Microsoft Bing Image Creator</figcaption></figure><p>O Value Stream Mapping (VSM) — em português “Mapeamento do Fluxo de Valor” — é uma técnica amplamente usada no contexto da melhoria contínua de processos, especialmente no Lean Manufacturing. O VSM é uma ferramenta de análise que permite visualizar e entender o fluxo de valor de um processo de produção ou de prestação de serviços em toda a organização. Assim, <strong>o objetivo do VSM é identificar ineficiências, desperdícios e gargalos no processo e propor melhorias para otimizar a eficiência operacional.</strong></p><p>Então, segue abaixo os tópicos que constituem o Mapeamento do Fluxo de Valor (MPV):</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/400/0*8relgPzN4juRgMo2.jpg" /><figcaption>Fonte: citisystems</figcaption></figure><h4>Fluxo de Valor</h4><p>O “fluxo de valor” representa todas as atividades envolvidas na entrega de um produto ou serviço aos clientes, desde a concepção até a entrega final. Essas atividades podem ser divididas em dois tipos: atividades que agregam valor (value-added) e atividades que não agregam valor (non-value-added) do ponto de vista do cliente. O VSM se concentra em reduzir ou eliminar as atividades que não agregam valor.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*2fLnOLObu0qQ9fO8wpRFoQ.png" /><figcaption>Fonte: The McDonald Consulting Club</figcaption></figure><h4>Gargalo (Bottleneck)</h4><p>O gargalo é a etapa do processo que tem a menor capacidade de produção e, portanto, limita a capacidade do sistema como um todo. O VSM ajuda a identificar onde os gargalos ocorrem, permitindo que a organização tome medidas para melhorar o desempenho do processo.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/728/1*23qPD3mGAOaVfzQ8j7ovdg.png" /><figcaption>Fonte: citisystems</figcaption></figure><h4>Mapa de Fluxo de Valor (VSM)</h4><p>O VSM é frequentemente representado por um mapa de fluxo de valor, que é uma representação visual das etapas do processo, desde a demanda do cliente até a entrega do produto ou serviço. O mapa usa símbolos específicos para representar cada etapa, estoques, tempos de ciclo, tempos de espera, transporte e outras informações relevantes.</p><p>Os objetivos do VSM incluem a redução de lead times (tempo de ciclo), a eliminação de desperdícios, a melhoria da eficiência, a redução de custos, o aumento da qualidade e a entrega mais rápida aos clientes.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/898/1*Pl9ZbxoGgL0IHdxBZ5gsYQ.png" /><figcaption>Fonte: Kaizen Institute Blog</figcaption></figure><h4>Kaizen</h4><p>O VSM é uma ferramenta frequentemente associada ao conceito de Kaizen, que significa “melhoria contínua”. O Kaizen envolve a busca constante por melhorias e a eliminação de desperdícios em todos os aspectos da organização, e o VSM é uma ferramenta valiosa para esse processo.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/747/0*Dky2cqFLZRCMuzqU.png" /><figcaption>Fonte: Kissflow — What is Value Stream Mapping (VSM)? Benefits and Steps.</figcaption></figure><h3>A implementação do VSM</h3><p>O processo de implementação do VSM envolve a formação de uma equipe multidisciplinar que inclui membros de diferentes áreas da organização. Essa equipe coleta dados relevantes sobre o processo, cria o mapa de fluxo de valor atual e o compara com um mapa de fluxo de valor futuro, no qual as melhorias são planejadas.</p><p>O VSM é uma ferramenta poderosa que ajuda as organizações a identificar oportunidades de melhoria em seus processos, reduzir custos, aumentar a eficiência e entregar produtos e serviços de maior qualidade aos clientes. Ele fornece uma visão clara e visual do processo, facilitando a identificação de desperdícios e gargalos, e é uma parte essencial da cultura Lean e da busca pela melhoria contínua.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/720/0*EQbU4rjYJB_ukLzp" /><figcaption>Fonte: Ritacheta Das — <a href="https://medium.com/analytics-vidhya?source=post_page-----ecb354967e63--------------------------------">Analytics Vidhya</a></figcaption></figure><h3><strong>E onde a Inteligência Artificial pode ajudar?</strong></h3><p>A Inteligência Artificial (IA) pode desempenhar um papel significativo na melhoria do processo de tomada de decisão em um mapa de fluxo de valor (Value Stream Mapping — VSM). Em seguida, segue os tópicos abaixo que mostra algumas maneiras pelas quais a IA pode ser aplicada para melhorar a tomada de decisão no contexto do VSM:</p><ul><li>Otimização da Cadeia de Produção</li><li>Manutenção Preditiva</li><li>Simulação de Cenários</li><li>Autonomia e Apoio em Tomada de Decisões Estratégica</li><li>Gerenciamento de Mudanças e Inovação Contínua</li><li>Redução de Desperdícios e Custos</li></ul><p>Por fim, a implementação de IA em conjunto com a Indústria consegue transformar o VSM e os processos de produção mais eficientes, ágeis e adaptáveis. Além disso, essa tecnologia oferece uma visão mais precisa e detalhada dos processos, permitindo às empresas otimizar o fluxo de valor de forma dinâmica e orientada por dados, resultando em melhorias significativas na produtividade e na eficiência operacional.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*PU0gR1KI_OLZD4EjPDdTxA.png" /></figure><h3>Palavras do Autor:</h3><p>O estudo deste artigo foi inspirado pela necessidade de pesquisas dentro dos conceitos de Engenharia de Produção e Filosofia Lean. Assim, como minha formação principal é em Engenharia da Computação, não há estudos diretamente relacionados a Lean e à Produção. Então, ao conversar com outros engenheiros da área onde eu trabalho atualmente (MAHLE), percebi que eram necessários mais pesquisas e aprendizados para complementar o conhecimento na área. Além disso, como estou estudando assuntos relacionados à Inteligência Artificial na UNIFEI (Universidade Federal de Itajubá), acho muito interessante complementar o VSM com IA.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=d626aeceffce" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Introdução a Inteligência Artificial: Machine Learning e a sua Taxonomia em Algoritmos…]]></title>
            <link>https://medium.com/@hitoshyamamoto/introdu%C3%A7%C3%A3o-a-intelig%C3%AAncia-artificial-machine-learning-e-a-sua-taxonomia-em-algoritmos-814e162d8246?source=rss-8deacb51dad7------2</link>
            <guid isPermaLink="false">https://medium.com/p/814e162d8246</guid>
            <category><![CDATA[algorithms]]></category>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[engineering]]></category>
            <category><![CDATA[computer-science]]></category>
            <category><![CDATA[inteligencia-artificial]]></category>
            <dc:creator><![CDATA[Hitoshi Yamamoto]]></dc:creator>
            <pubDate>Fri, 20 Oct 2023 05:15:49 GMT</pubDate>
            <atom:updated>2023-10-20T05:18:46.809Z</atom:updated>
            <content:encoded><![CDATA[<h3>Introdução a Inteligência Artificial: Machine Learning e a sua Taxonomia em Algoritmos Supervisionados</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*hAVXukgdmKDoXSe2AQmqEA.png" /><figcaption>Fonte: Panorama Positivo — <a href="https://www.meupositivo.com.br">https://www.meupositivo.com.br</a></figcaption></figure><p>Dentro do campo da Inteligência Artificial, uma das áreas mais importantes é o Aprendizado de Máquina, também conhecido como Machine Learning.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1004/1*UusUuSPY3WUJ2KRx6ft0fQ.png" /><figcaption>Fonte: <a href="https://blogs.nvidia.com">https://blogs.nvidia.com</a></figcaption></figure><p>Dentro dessa disciplina, existe uma taxonomia que classifica os algoritmos em duas categorias principais: Aprendizado Supervisionado e Aprendizado Não Supervisionado.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/768/0*5uxNoPeshP2e3weL.png" /><figcaption>Fonte: <a href="https://neigrando.com/2022/05/04/a-essencia-do-aprendizado-de-maquina/">https://neigrando.com/2022/05/04/a-essencia-do-aprendizado-de-maquina/</a></figcaption></figure><p>No Aprendizado Supervisionado, os algoritmos são treinados utilizando um conjunto de dados rotulados, ou seja, dados que já possuem uma resposta correta associada a eles. O objetivo é que o algoritmo aprenda a fazer previsões ou tomar decisões com base nessas respostas corretas. Exemplos comuns de algoritmos de aprendizado supervisionado incluem regressão linear, árvores de decisão e redes neurais.</p><p>Por outro lado, no Aprendizado Não Supervisionado, os algoritmos são treinados em conjuntos de dados não rotulados. Nesse caso, o objetivo é encontrar padrões ocultos nos dados e agrupá-los em categorias ou clusters. Alguns exemplos populares de algoritmos de aprendizado não supervisionado são k-means clustering e análise de componentes principais (PCA). (Obs: Irei listar os algoritmos do Aprendizado Não-Supervisionado em outro artigo.)</p><p>Essa taxonomia dos algoritmos de aprendizado de máquina é fundamental para entender as diferentes abordagens utilizadas na construção e aplicação dos modelos preditivos e sistemas inteligentes baseados em Machine Learning.</p><p>Compreender essas categorias permite aos profissionais da área escolher a melhor abordagem para resolver problemas específicos e aproveitar ao máximo as capacidades da Inteligência Artificial.</p><h3>Aprendizado Supervisionado de Classificação</h3><p>Segue abaixo uma lista de Top 10 exemplos de tipos de Algoritmos de Machine Learning com Aprendizado Supervisionado para Classificação:</p><ol><li>Regressão Logística:</li></ol><ul><li>Simplicidade e interpretabilidade.</li><li>Eficiente para problemas de classificação binária.</li><li>Pode ser estendida para problemas de classificação multiclasse.</li></ul><p>2. Árvores de Decisão:</p><ul><li>Facilidade de interpretação e visualização.</li><li>Lida com dados categóricos e numéricos.</li><li>Lida bem com interações complexas entre atributos.</li></ul><p>3. Random Forest:</p><ul><li>Reduz o overfitting por meio da combinação de várias árvores.</li><li>Alta precisão e robustez.</li><li>Lida bem com dados desbalanceados.</li></ul><p>4. Máquinas de Vetores de Suporte (SVM):</p><ul><li>Eficiente em espaços de alta dimensão.</li><li>Lida bem com problemas de classificação binária.</li><li>Oferece margens de separação máximas.</li></ul><p>5. K-Vizinhos Mais Próximos (K-NN):</p><ul><li>Simplicidade e fácil implementação.</li><li>Robusto para dados ruidosos e com fronteiras de decisão complexas.</li><li>Pode ser usado para classificação multiclasse.</li></ul><p>6. Naive Bayes:</p><ul><li>Rápido e eficaz para grandes conjuntos de dados.</li><li>Lida bem com atributos categóricos.</li><li>Boa escolha para problemas de processamento de linguagem natural (NLP).</li></ul><p>7. Redes Neurais Artificiais:</p><ul><li>Capacidade de aprender representações complexas dos dados.</li><li>Adequadas para problemas de grande escala e alta dimensão.</li><li>Pode capturar relações não lineares.</li></ul><p>8. Gradient Boosting (por exemplo, XGBoost, LightGBM):</p><ul><li>Alta precisão e eficácia em competições de ciência de dados.</li><li>Lida bem com dados desbalanceados.</li><li>Lida com atributos de diferentes tipos.</li></ul><p>9. AdaBoost:</p><ul><li>Reduz o viés e a variância do modelo.</li><li>Pode ser combinado com qualquer algoritmo de base.</li><li>Lida bem com dados desbalanceados.</li></ul><p>10. Máquinas de Aprendizado Extremo (ELM):</p><ul><li>Treinamento extremamente rápido.</li><li>Pode ser aplicado a problemas de regressão e classificação.</li><li>Eficiente em termos de recursos.</li></ul><p>Detalhes de algumas “expressões” utilizadas na lista:</p><ul><li><strong>Overfitting de dados:</strong><br>Refere-se a uma situação em que um modelo de aprendizado <strong>se ajusta excessivamente aos dados de treinamento</strong>, a ponto de capturar o ruído nos dados, em vez de aprender a verdadeira relação subjacente entre as características e as classes. <br><strong>Sinais de overfitting incluem:</strong> baixo erro de treinamento, mas alto erro de validação ou teste; o modelo se ajusta muito bem aos pontos de dados individuais, criando fronteiras de decisão intricadas e instáveis; os coeficientes ou pesos excessivamente altos para certos atributos.<br><strong>Para lidar com o overfitting</strong>, as estratégias comuns incluem: a regularização que é adicionar termos de penalização à função de custo para reduzir a complexidade do modelo; o cross-validation que é usar validação cruzada para avaliar o desempenho do modelo em vários subconjuntos de dados; o aumento de dados que é aumentar o conjunto de treinamento com dados sintéticos; e reduzir a complexidade do Modelo, ou seja, usar modelos mais simples ou reduzir o número de atributos.</li><li><strong>Dados desbalanceados:</strong><br>Referem-se a uma situação em que as classes de um conjunto de dados para um problema de <strong>classificação que não estão representadas igualmente</strong>. Ou seja, algumas classes têm um número significativamente maior de exemplos, enquanto outras têm muito poucos exemplos.<br>Isso pode ser problemático para algoritmos de aprendizado de máquina, pois eles podem aprender a favorecer as classes majoritárias e ter um desempenho inferior na classificação das classes minoritárias.</li></ul><h3>Aprendizado Supervisionado de Regressão</h3><p>Segue abaixo uma lista de Top 10 exemplos de tipos de Algoritmos de Machine Learning com Aprendizado Supervisionado para Regressão:</p><ol><li>Regressão Linear:</li></ol><ul><li>Simplicidade e interpretabilidade.</li><li>Eficiente para problemas de regressão multivariada ou com única variável.</li><li>Fornece coeficientes que indicam a relação entre as variáveis independentes e dependentes.</li></ul><p>2. Regressão Ridge:</p><ul><li>Reduz o overfitting ao adicionar uma penalização L2 aos coeficientes.</li><li>Lida bem com a multicolinearidade.</li><li>Pode ser usado para seleção automática de recursos.</li></ul><p>3. Regressão Lasso:</p><ul><li>Reduz o overfitting ao adicionar uma penalização L1 aos coeficientes.</li><li>Pode realizar seleção automática de recursos, definindo alguns coeficientes como zero.</li><li>Lida bem com conjuntos de dados com muitos atributos.</li></ul><p>4. Regressão Elastic Net:</p><ul><li>Combina as penalizações L1 e L2 da Regressão Ridge e Lasso.</li><li>Oferece um equilíbrio entre seleção de recursos e redução do overfitting.</li><li>Adequada para conjuntos de dados com multicolinearidade.</li></ul><p>5. Regressão de Árvore de Decisão:</p><ul><li>Lida com relacionamentos não lineares.</li><li>Pode ser interpretável se a árvore for rasa.</li><li>Pode acomodar atributos categóricos sem codificação especial.</li></ul><p>6. Random Forest Regressor:</p><ul><li>Combina várias árvores de decisão para reduzir o overfitting.</li><li>Lida bem com dados ruidosos e atributos irrelevantes.</li><li>Pode ser usado para seleção de recursos.</li></ul><p>7. Máquinas de Vetores de Suporte para Regressão (SVR):</p><ul><li>Eficiente em espaços de alta dimensão.</li><li>Lida bem com relacionamentos não lineares.</li><li>Pode usar diferentes funções de kernel para adaptar-se aos dados.</li></ul><p>8. K-Vizinhos Mais Próximos (K-NN) para Regressão:</p><ul><li>Simplicidade e fácil implementação.</li><li>Robusto para dados ruidosos e relacionamentos não lineares.</li><li>Pode ser usado para regressão multivariada ou com única variável.</li></ul><p>9. Redes Neurais Artificiais para Regressão:</p><ul><li>Capazes de aprender relações complexas e não lineares.</li><li>Adequadas para problemas de grande escala e alta dimensão.</li><li>Podem modelar funções altamente não lineares.</li></ul><p>10. Gradient Boosting para Regressão (por exemplo, XGBoost, LightGBM):</p><ul><li>Alta precisão e eficácia em competições de ciência de dados.</li><li>Lida bem com atributos de diferentes tipos.</li><li>Lida com relacionamentos complexos entre variáveis.</li></ul><p>Detalhes de algumas “expressões” utilizadas na lista:</p><ul><li><strong>Multicolinearidade:</strong><br>É um conceito estatístico que ocorre quando duas ou mais <strong>variáveis independentes em um modelo de regressão estão altamente correlacionadas entre si</strong>. Em outras palavras, isso significa que as <strong>variáveis independentes estão linearmente relacionadas</strong>, o que pode causar problemas em modelos de regressão, incluindo modelos de regressão linear simples ou múltipla.<br><strong>A multicolinearidade pode ser problemática por várias razões:</strong><br>- Dificuldade na interpretação dos coeficientes: Quando as variáveis independentes estão altamente correlacionadas, torna-se difícil atribuir e interpretar os efeitos individuais de cada variável no resultado.<br>- Instabilidade dos coeficientes: Pequenas mudanças nos dados de treinamento podem resultar em grandes variações nos coeficientes estimados, tornando o modelo instável.<br>- Menor precisão das previsões: A multicolinearidade pode resultar em previsões menos precisas, especialmente quando o modelo é aplicado a novos dados.<br>- Aumento na variância dos coeficientes: A multicolinearidade pode levar a coeficientes estimados com alta variância, o que torna mais difícil a determinação da significância estatística das variáveis independentes.<br><strong>Para lidar com a multicolinearidade, as seguintes estratégias podem ser adotadas:<br>- </strong>Análise exploratória de dados: Identificar e compreender a natureza das correlações entre as variáveis independentes.<br>- Redução de dimensões: Eliminar variáveis independentes redundantes ou correlacionadas, mantendo apenas as mais relevantes.<br>- Transformação de variáveis: Transformar as variáveis independentes para reduzir a multicolinearidade, como padronização ou normalização.<br>- Regularização: Utilizar técnicas de regularização, como Regressão Ridge ou Regressão Lasso, que incluem termos de penalização nos coeficientes para reduzir a multicolinearidade.</li></ul><h3><strong>Antes de Encerrar: Vamos para uma Case!</strong></h3><blockquote>Falamos, falamos, falamos, … Okay, mas e o exemplo?</blockquote><p>Sim, por isso que separei um exemplo que possa ser usado com um dos algoritmos listados acima.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*p74srKUlOjqWF6Lo.png" /><figcaption>Fonte: Analysis Yogi</figcaption></figure><p>Uma aplicação interessante das Máquinas de Vetores de Suporte (SVM) é a classificação de texto, particularmente em cenários de processamento de linguagem natural (NLP), onde o SVM pode ser útil para resolver problemas de análise de sentimentos.</p><p><strong>Problema: Classificação de Sentimento de Avaliações de Produtos</strong></p><p>Imagine que você deseja <strong>construir um modelo que possa analisar as avaliações</strong> de produtos online (por exemplo, avaliações de filmes, produtos ou restaurantes) <strong>e classificá-las em categorias</strong> como “positiva”, “negativa” ou “neutra” com base no sentimento expresso nas avaliações.</p><p><strong>Solução com SVM:</strong></p><p>Aqui está um exemplo simplificado de como você pode usar o SVM para classificar sentimentos em avaliações de produtos em Python, usando a biblioteca Scikit-Learn:</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/8696192a40001a0460fb085be3894a50/href">https://medium.com/media/8696192a40001a0460fb085be3894a50/href</a></iframe><p>Neste algoritmo acima, estamos <strong>abordando um problema de classificação de sentimentos em avaliações de produtos</strong>. O objetivo é treinar um modelo de Máquinas de Vetores de Suporte (SVM) para identificar se uma avaliação é positiva, negativa ou neutra com base no texto escrito.</p><p>Para fazer isso, começamos importando bibliotecas de Python que nos permitem construir e treinar um modelo de aprendizado de máquina. Em seguida, definimos nossos dados de exemplo: avaliações de produtos e suas categorias de sentimento, que podem ser “positiva,” “negativa,” ou “neutra.”</p><p>Antes de treinar o modelo, precisamos preparar os dados. Primeiro, usamos um processo chamado “vetorização de texto” para converter as palavras nas avaliações em números, para que o algoritmo SVM possa entendê-las. Isso envolve atribuir valores numéricos com base na frequência das palavras nas avaliações.</p><p>Além disso, mapeamos as categorias de sentimento (positiva, negativa, neutra) em valores numéricos, como 1, -1, e 0, para que o modelo possa usá-los.</p><p>Dividimos nossos dados em dois conjuntos: um conjunto de treinamento para ensinar o modelo e um conjunto de teste para avaliar o quão bem ele funciona. Em seguida, criamos o modelo SVM, escolhendo um kernel linear, que é adequado para lidar com dados de texto.</p><p>Treinamos o modelo SVM usando os dados de treinamento, permitindo que ele aprenda a reconhecer padrões no texto das avaliações que correspondem às categorias de sentimento.</p><p>Depois de treinado, usamos o modelo para fazer previsões sobre as categorias de sentimento das avaliações no conjunto de teste.</p><p>Comparando as previsões do modelo com as categorias reais das avaliações, podemos calcular a acurácia do modelo, que nos diz quão bem ele é capaz de classificar as avaliações em categorias de sentimento com base no texto.</p><p>Em resumo, esse algoritmo de SVM é usado para automatizar a tarefa de classificar avaliações de produtos com base em seu conteúdo de texto, o que é útil em áreas como análise de sentimentos em comentários de clientes e revisões online.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*pGPibTh6Xkj6buTKswNqAg.png" /><figcaption>Fonte: <a href="https://br.pinterest.com/pin/288300813629259532/">https://br.pinterest.com/pin/288300813629259532/</a></figcaption></figure><h3>Palavras do Autor</h3><p>Como vocês puderam ver, em um ramo dentro da Inteligência Artificial, o Machine Learning é uma vertente com muitos conteúdos. Além disso, no próprio Aprendizazem de Máquina (Machine Learning) também é composto mais outras área sendo eles os Algoritmos Supervisionados, Algoritmos Não Supervisionado e, algumas vezes, o híbrido de ambas.</p><p>Não só listei, como também pesquisei em conhecer melhor os pontos fortes de cada algoritmo. Além disso, mostrei um exemplo de uma case que pode ser usado.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*KlWFWW_ReYTDpJAaRN_Qpg.png" /><figcaption>Fonte: <a href="https://jcconcursos.com.br/noticia/concursos/concurso-unifei-edital-105011">https://jcconcursos.com.br/noticia/concursos/concurso-unifei-edital-105011</a></figcaption></figure><p>Por fim, escrevi este artigo, pois estou cursando uma matéria chamada Introdução à Inteligência Artificial pela UNIFEI e organizada pelos Professores do IESTI (Instituto de Engenharia de Sistemas e Tecnologias da Informação), IEPG (INstituto de Engenharia de Produção e Gestão) e IMC (Instituto de Matemática e Computação). E, ao cursar essa matéria, me incentivou a estudar mais por fora sobre o assunto e deixar escrito o que quero repassar do que eu estudei e pesquisei. Espero que tenha gostado.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=814e162d8246" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Ferramentas e Linguagens no Excel]]></title>
            <link>https://medium.com/@hitoshyamamoto/ferramentas-e-linguagens-no-excel-d6e77aa5df3a?source=rss-8deacb51dad7------2</link>
            <guid isPermaLink="false">https://medium.com/p/d6e77aa5df3a</guid>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[etl]]></category>
            <category><![CDATA[excel]]></category>
            <category><![CDATA[macro]]></category>
            <category><![CDATA[vba]]></category>
            <dc:creator><![CDATA[Hitoshi Yamamoto]]></dc:creator>
            <pubDate>Fri, 13 Oct 2023 23:59:49 GMT</pubDate>
            <atom:updated>2023-10-13T23:59:49.197Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*yN53AHWU6AEmhqRrDY4uAA.png" /><figcaption>Image created using the “Bing Image Creator” tool.</figcaption></figure><p>Hoje, irei escrever neste artigo sobre algumas ferramentas e linguagens que estão dentro do Excel como, por exemplo:</p><ul><li><strong>VBA (Visual Basic for Application)</strong> que ajuda o desenvolvedor criar um sistema de módulos de classe, criar formulários, geração de macros, controles ActiveX e integração com APIs do Windows;</li><li><strong>Power Query</strong>, uma ferramenta de ETL(Extração, Transformação e Carga) que usa a linguagem funcional M para transformar dados de várias fontes de maneira declarativa e eficiente, facilitando a preparação de dados para análise. Isso torna o ETL mais acessível a usuários não programadores;</li><li><strong>Solver</strong>, uma ferramenta de otimização que pode ser usada para encontrar soluções ótimas para problemas de modelagem;</li><li><strong>PowerPivot</strong>, uma extensão do Excel que permite trabalhar com conjuntos de dados maiores e complexos, oferecendo recursos de modelagem de dados avançados;</li><li><strong>Funções de DAX (Data Analysis Expressions)</strong>, é uma linguagem usada no PowerPivot e no Power BI para criar fórmulas personalizadas e medidas para análise de dados;</li><li><strong>Macro</strong>, uma função de gravação do Excel para automatizar tarefas.</li></ul><p>Como você percebeu, não mencionei sobre tabela dinâmica, gráficos, filtros e fórmulas, pois o foco deste artigo é referente as ferramentas e linguagens que listei.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*2LqfF3w6716pbU9L_ooInA.png" /><figcaption>Fonte: Microsoft 365 Insider — Blog</figcaption></figure><h3>DAX (Data Analysis Expressions)</h3><p>Data Analysis Expressions é uma linguagem de fórmula introduzida pela Microsoft em 2009 como parte do PowerPivot para o Excel 2010. Foi projetado para fornecer recursos avançados de modelagem e análise de dados diretamente dentro do Excel. Desde então, o DAX se tornou uma parte fundamental das ferramentas de análise de dados da Microsoft, sendo amplamente utilizado em ambientes corporativos para criar modelos de dados, painéis de controle e relatórios interativos. <strong>É uma ferramenta poderosa para análise de dados e modelagem</strong>, permitindo a realização de cálculos e análises complexas em grandes conjuntos de dados.</p><p>Recursos Principais do DAX:</p><ol><li>Medidas (Measures): são cálculos personalizados para resumir dados, úteis na criação de métricas específicas que vão além das fórmulas convencionais do Excel.</li><li>Colunas Calculadas (Calculated Columns): são colunas extras em tabelas com valores calculados usando fórmulas DAX, recalculadas durante a carga ou atualização dos dados.</li><li>Tabelas e Relacionamentos: O DAX opera com tabelas e relações entre elas, permitindo a definição de relações e a criação de consultas complexas que combinam dados de várias tabelas.</li><li>Funções DAX: O DAX oferece uma variedade de funções, abrangendo matemática, estatísticas, datas, texto e mais, possibilitando a realização de cálculos avançados.</li><li>Contextos de Filtro (Filter Context e Row Context): O DAX usa contextos de filtro, fazendo com que os cálculos se adaptem aos filtros aplicados aos dados, resultando em cálculos dinâmicos e contextualizados.</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/681/1*B24aTDLmBHNpZqR9NcQ-bQ.png" /><figcaption>Fonte: Tudo Excel — Como usar a Macro no Microsoft Excel 2007 a 2019</figcaption></figure><h3><strong>MACRO</strong></h3><p>Um macro no Excel é um <strong>conjunto de comandos</strong> gravados que automatizam tarefas.</p><p>Pode ser criado:</p><ul><li>usando a função de gravação de macro, permitindo a execução de ações repetitivas com um único clique;</li><li>escrevendo o código a partir do próprio VBA e declarar sua funcionalidade e o atalho.</li></ul><p>Os macros podem ser personalizados, editados e vinculados a botões, aceleradores de teclado ou eventos específicos, tornando-os uma ferramenta poderosa para simplificar tarefas no Excel. Eles são frequentemente escritos em VBA (Visual Basic for Applications), uma linguagem de programação incorporada no Excel.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*NCJLSdutne9eXjQ0JQUYlA.png" /><figcaption>Fonte: Project Planning HQ — Power Pivot — Build a Data-set and Generate the Reports and Visuals You Need</figcaption></figure><h3>PowerPivot</h3><p>O Power Pivot é uma ferramenta integrada ao Excel que permite a <strong>criação de modelos de dados avançados.</strong> Ele é usado para importar, transformar e analisar grandes conjuntos de dados, facilitando a criação de relatórios interativos e análises complexas.</p><p><strong>O Power Pivot suporta funções DAX</strong> (Data Analysis Expressions) para realizar cálculos personalizados e pode lidar com volumes de dados que excedem as capacidades das planilhas tradicionais do Excel. É uma ferramenta poderosa para profissionais de análise de dados e modelagem.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/630/1*lSbnd58vPJiyI8We9bOFIw.png" /><figcaption>Fonte: WallStreetMojo — Solver in Excel</figcaption></figure><h3>Solver</h3><p>O Solver no Excel é uma <strong>ferramenta de otimização que ajuda a encontrar soluções ideais para problemas complexos</strong>, como maximizar lucros ou minimizar custos, respeitando restrições. Ele ajusta automaticamente os valores das variáveis para encontrar a melhor solução com base em critérios definidos, sendo útil para problemas de planejamento e tomada de decisões.</p><p>Alguns exemplos de uso do Solver incluem a otimização de mix de produtos para maximizar os lucros, a programação de produção para minimizar os custos de fabricação, o planejamento de rotas para minimizar o tempo de viagem e a alocação de recursos limitados de forma eficiente, como orçamento de publicidade.</p><p>Em resumo, o Solver ajusta automaticamente os valores das variáveis para encontrar a melhor solução com base em critérios definidos.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1022/1*7RLDzRm6cG180AtO37Lf_Q.png" /><figcaption>Fonte: UAI Smart — LINGUAGEM M: A LINGUAGEM DA POWER QUERY NO POWER BI</figcaption></figure><h3>Power Query</h3><p>O Power Query é uma ferramenta de ETL (Extração, Transformação e Carga) integrada ao Excel e a outras aplicações da Microsoft. Ela é projetada para importar, transformar e combinar dados de várias fontes em um formato que seja adequado para análise. Aqui estão os principais aspectos dessa relação:</p><ol><li>ETL (Extração, Transformação e Carga): O Power Query é uma ferramenta ETL porque permite extrair dados de diferentes fontes, aplicar transformações, como limpeza e formatação, e carregar os dados resultantes em uma planilha ou modelo de dados para análise.</li><li>Linguagem Funcional: O Power Query utiliza uma linguagem funcional chamada “M” (também conhecida como “M fórmula”) para definir transformações de dados. Essa linguagem funcional permite criar etapas sequenciais de transformação de dados, usando funções como map, filter e merge, o que torna as transformações de dados mais eficientes e flexíveis.</li><li>Linguagem M: Falando especificamente sobre a linguagem M, ela é usada no Power Query para criar expressões que descrevem como os dados devem ser transformados. Ela é uma linguagem de programação funcional e declarativa que oferece uma ampla gama de funções para manipular dados, tais como filtragem, ordenação, união, agregação e cálculos personalizados.</li></ol><p>Explicando com detalhes sobre paradigma funcional na linguagem M, ela se concentra no uso de funções e expressões para transformar e manipular dados. Ela é uma linguagem de programação declarativa, o que significa que <strong>você descreve o que deseja fazer com os dados, em vez de como fazer.</strong> A linguagem M oferece uma ampla gama de funções de alto nível para filtrar, mapear, agregar e transformar dados, tornando-a eficaz na realização de tarefas de transformação de dados em operações mais simples e compreensíveis. Isso ajuda a tornar o código mais legível, reutilizável e eficiente.</p><p>Em resumo, o <strong>Power Query é uma ferramenta poderosa para a realização de tarefas de ETL no Excel</strong> e em outras aplicações da Microsoft. Ele utiliza a linguagem funcional “M” para definir as transformações de dados, tornando mais eficiente e flexível a tarefa de importar, limpar e preparar dados para análise. Isso o torna uma parte crucial da caixa de ferramentas de profissionais que trabalham com análise de dados e modelagem.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*i7Of6bT54tDqMj2MGQAVzA.png" /><figcaption>Fonte: Tecnoblog — O que é VBA e como usa-la no Microsoft Excel</figcaption></figure><h3>VBA (Visual Basic for Application)</h3><p>VBA (Visual Basic for Applications) <strong>é uma linguagem de programação incorporada ao Microsoft Excel (e outros aplicativos do Microsoft Office).</strong></p><blockquote>Palavras do Autor (Hitoshi Yamamoto):<br>“Sim, é possível programar, ou melhor, usar VBA no Power Point e no Word!”</blockquote><p>Permite aos usuários criar macros, procedimentos e automações para controlar e personalizar o Excel. Alguns aspectos importantes do VBA no Excel incluem:</p><ul><li>Automação de tarefas: o VBA permite automatizar tarefas rotineiras no Excel, economizando tempo e reduzindo erros. Você pode criar macros que executam operações específicas, como formatação, cálculos, filtragem e manipulação de dados.</li><li>Personalização: usando o VBA, você pode personalizar a interface do usuário do Excel criando caixas de diálogo, botões e menus personalizados. Isso é útil para criar aplicativos específicos e simplificar as interações com os usuários.</li><li>Manipulação de dados: você pode usar VBA para importar, exportar e manipular dados de várias fontes, como bancos de dados, arquivos de texto e serviços da Web.</li><li>Eventos: o VBA permite responder a eventos específicos no Excel, como abrir uma planilha, selecionar uma célula ou clicar em um botão. Você pode agendar ações com base nesses eventos.</li><li>Linguagem de Programação: O VBA é uma linguagem de programação poderosa e versátil, que inclui estruturas de controle, loops, variáveis e recursos de depuração. Isso possibilita a criação de soluções complexas e personalizadas.</li><li>Integração com Outros Aplicativos: Além do Excel, o VBA pode ser usado em outros aplicativos do Microsoft Office, permitindo a automação e personalização em toda a suíte Office.</li><li>Extensibilidade: Você pode usar o VBA para estender as funcionalidades do Excel com suplementos (add-ins) personalizados.</li></ul><p>VBA é uma ferramenta extremamente valiosa para profissionais que desejam automatizar tarefas, customizar o Excel e criar soluções customizadas. Esta é uma habilidade útil para aumentar a produtividade e a eficiência ao usar o Excel e outros aplicativos da Microsoft.</p><h3>Palavras do Autor:</h3><p>Espero que este artigo consiga te apresentar melhor sobre as ferramentas que estão presentes dentro do Excel. Algumas delas provavelmente nem são conhecidas por muitas pessoas que utilizam o Excel a anos.</p><p>Além disso, este artigo poderá passar por correções e atualizações, caso sejam necessárias.</p><p>Muito obrigado por ter lido até aqui e agradeço pela atenção. 😊</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=d6e77aa5df3a" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Conceitos Lean Manufacturing — 02 — Termos e Conceitos usados no contexto Toyota Production System]]></title>
            <link>https://medium.com/@hitoshyamamoto/conceitos-lean-manufacturing-02-termos-e-conceitos-usados-no-contexto-toyota-production-system-f2809fcde365?source=rss-8deacb51dad7------2</link>
            <guid isPermaLink="false">https://medium.com/p/f2809fcde365</guid>
            <category><![CDATA[lean]]></category>
            <category><![CDATA[manufacturing]]></category>
            <category><![CDATA[engineering]]></category>
            <category><![CDATA[lean-manufacturing]]></category>
            <category><![CDATA[toyota]]></category>
            <dc:creator><![CDATA[Hitoshi Yamamoto]]></dc:creator>
            <pubDate>Mon, 03 Jul 2023 03:33:36 GMT</pubDate>
            <atom:updated>2023-07-03T03:59:42.793Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*-ejT3OuzO8TzC197Je7r6A.jpeg" /></figure><h3>Conceitos Lean Manufacturing — 02 — Termos e Conceitos usados no contexto Toyota Production System</h3><p>Quando li sobre Lean Manufacturing e entendi que ele se originou do modelo do Toyotismo, percebi a presença de várias palavras de origem japonesa no contexto de aplicações técnicas. Foi então que decidi listar algumas dessas palavras e compartilhar outros conteúdos interessantes como: curiosidades, conceitos e histórias por trás de cada uma delas.</p><p>Notei que muitas dessas palavras são bastante específicas (como “kaizen”, “kaikaku” e “yokoten”), enquanto outras são comuns no dia a dia do Japão (como “muda”, “hansei”, “kanban” e “genba”). A fim de criar um espaço para armazenar todo esse conteúdo, escolhi utilizar esta plataforma para anotar e listar todos esses detalhes que desejo compartilhar!</p><p>Então, aqui estão listados os 22 palavras japonesas usadas primariamente na Toyota Production System. Estão inclusos traduções, seu significado e algumas curiosidades.</p><ol><li><strong>Jidoka — </strong>自働化<strong>(Automação com controle humano)</strong><br>Originado pela palavra “自動化”(Jidooka — Automação). Para ser aplicado no TPS, foi modificado somente o kanji do meio tornando “自働化”(Jidooka-combinação de palavra Automação e Autônomo). — <a href="https://www.youtube.com/watch?v=3nrE4SEhBRU">link</a></li><li><strong>Kaizen — </strong>改善<strong>(Melhoria contínua)</strong><br>Significa melhoria ou melhorar de acordo com o dicionário. — <a href="https://dicionario.jp/buscar/改善/2/1">link</a><br>O primeiro elemento, 改 (kai), significa “mudar” ou “alterar”. Esse kanji é formado pela combinação de “己” (ji), que representa o “eu” ou “o indivíduo”, e “攵” (kutsuwamari) que indica ação ou movimento. Juntos, eles simbolizam a ideia de mudança ou alteração.<br>O segundo elemento, 善 (zen) significa “bem” ou “bom”, e está presente em outras palavras e conceitos relacionados à ética, moralidade e virtude no Japão. É formado pelo kanji “口” (kuchi), que representa a boca, e “羊” (hitsuji) que significa ovelha e é frequentemente associada à pureza, docilidade e bondade. Esse kanji tem a conotação de fazer o bem ou praticar o que é bom.</li><li><strong>Heijunka — </strong>平準化<strong>(Nivelamento da produção)</strong><br>Significa nivelamento. — <a href="https://monorevo.jp/basic/tps_principles/">link</a><br>É composto por três elementos: 平 (hei), 準 (jun) e 化 (ka).<br>平 (hei): Esse kanji significa “plano” ou “nivelado”. Ele representa a ideia de algo equilibrado, uniforme e sem irregularidades.<br>準 (jun): Esse kanji significa “padrão” ou “critério”. Ele expressa a ideia de estabelecer referências ou padrões pelos quais algo deve ser avaliado ou comparado.<br>化 (ka): Esse kanji significa “transformação” ou “mudança”. Ele denota a ideia de converter algo em uma forma diferente ou melhor</li><li><strong>Just-in-Time (JIT) (Produção “just-in-time” ou “na hora certa”)</strong><br>O termo é inglês, no entanto pode ser escrita em japonês com Katakanas como “ジャストインタイム”(Jasu in to taimu).</li><li><strong>Kanban — </strong>看板<strong>(Sistema visual de controle de produção)</strong><br>É traduzido como Painel e Painel Publicitário, no entanto é usado no TPS e Lean como um método enxuto para gerenciar e melhorar o trabalho em sistemas humanos por meio de painéis.</li><li><strong>Poka-Yoke — </strong>ポカヨケ<strong>(Prevenção de erros humanos)</strong><br>Como uma curiosidade histórica, inicialmente era usado o “baka-yoke” e modificado por Poka-Yoke vindo de Poka wo Yokeru (ポカを避ける), um termo usado em Shogi que significa “evitar movimentos errados inconscientemente”. — <a href="http://www.shogi.net/shogivocab/vocabhtml.html">link</a> e <a href="https://www.youtube.com/watch?v=-OlFvNZFMCU">link2</a></li><li><strong>Andon — </strong>行灯<strong> (Sistema de sinalização visual para indicar problemas)</strong><br>Era um termo usado por uma lâmpada de papel e madeira usada no período feudal japonês. No sistema TPS, é referente a utilização de sinalizadores para mostrar situação que se encontra as máquinas presentes nas células de trabalho na indústria. — <a href="https://ja.wikipedia.org/wiki/行灯">link</a></li><li><strong>Genchi Genbutsu — </strong>現地現物<strong>(Ir e ver por si mesmo)</strong><br>現地” significa “local real” e “現物” significa “objeto real”.<br>É um termo a qual usado para averiguar o ocorrido ou fato, visitando o local e não averiguar somente o relatório.</li><li><strong>Nemawashi — </strong>根回し<strong>(Obtenção de consenso)</strong><br>“根”(ne) que significa raíz e “回し”(mawashi) que significa “circulação” ou “manipulação”. É um termo que forma “Preparar terreno” ou “Fazer conexões” antes de iniciar uma atividade ou reunião. — <a href="https://skdesu.com/significado/根回し-nemawashi/">link</a></li><li><strong>Muda — </strong>無駄<strong>(Desperdícios)</strong><br>A palavra “muda” significa “desperdício” em japonês. No TPS, refere-se a qualquer atividade ou processo que não agrega valor ao produto final. O objetivo é identificar e eliminar todos os tipos de desperdícios, como transporte desnecessário, estoques excessivos, movimentos desnecessários, processos defeituosos, entre outros.</li><li><strong>5S (Seiri, Seiton, Seiso, Seiketsu, Shitsuke)</strong><br>As 5S representam cinco princípios para a organização e limpeza do ambiente de trabalho. Cada “S” corresponde a uma palavra japonesa:<br>- Seiri (整理): Classificação e eliminação do que é desnecessário.<br>- Seiton (整頓): Organização e arrumação das ferramentas e materiais.<br>- Seiso (清掃): Limpeza do local de trabalho.<br>- Seiketsu (清潔): Padronização e manutenção dos padrões de organização e limpeza.<br>- Shitsuke (躾): Disciplina e hábito de seguir as práticas das 5S.</li><li><strong>Kaikaku — </strong>改革<strong>(Mudança radical ou inovação)<br></strong>改 (kai) significa “mudança” ou “reforma”, ele representa a ideia de fazer alterações ou melhorias em algo existente. Em seguida, o kanji 革 (kaku) significa “couro” ou “pele”, ele simboliza a ideia de algo novo, fresco ou transformado.<br>Assim, quando ambos são combinados, referem-se a mudanças significativas e inovações no processo de produção para melhorar eficiência, qualidade e reduzir desperdícios, envolvendo novas tecnologias, reorganização do fluxo de trabalho e adoção de novos métodos.</li><li><strong>Chaku-Chaku — </strong>着々<strong>(Fluxo contínuo de trabalho)</strong><br>É uma expressão japonesa que pode ser traduzida como “progresso constante” ou “passo a passo”. É o conceito de fluxo contínuo de trabalho, em que cada processo é cuidadosamente planejado e executado de forma sequencial.</li><li><strong>Hyoujun Sagyou — </strong>標準作業<strong>(Trabalho padronizado)</strong><br>Conhecido em inglês como Standard Work. O kanji 標準 (Hyoujun) significa “padrão” ou “norma”, enquanto 作業 (Sagyou) se refere a “trabalho” ou “operação”. Define a implementação de um método de trabalho padronizado para cada tarefa ou processo. Isso envolve a definição clara das etapas a serem seguidas, tempos estimados, sequência de operações e métodos ideais para alcançar a eficiência e a qualidade desejadas.</li><li><strong>Yokoten — </strong>横展<strong>(Compartilhamento horizontal de informações)</strong><br>Os kanjis 横 (Yoko) significa “horizontal” e 展 (Ten) se traduz como “expansão” ou “desdobramento”. A palavra enfatiza a importância de compartilhar informações horizontalmente em uma organização, promovendo a comunicação e a disseminação eficiente de conhecimentos.</li><li><strong>Hansei — </strong>反省<strong>(Reflexão e autorreflexão)</strong><br>Os kanjis 反 (Han) significa “refletir” ou “voltar”, e 省 (Sei) se traduz como “próprio” ou “si mesmo”. Destaca-se a importância da reflexão pessoal e da autorreflexão para identificar os erros, as falhas e as oportunidades de melhoria, promovendo um ambiente de aprendizado contínuo.<br>Curisosidade cultural: O “hansei” é profundamente enraizado na cultura japonesa, influenciando não apenas os processos de melhoria contínua nas organizações, mas também as relações interpessoais. No Japão, é comum que as pessoas sejam encorajadas a refletir sobre suas ações, assumir responsabilidades por seus erros e buscar maneiras de se aprimorar.</li><li><strong>Kanri — </strong>管理<strong>(Gestão)</strong><br>Os kanjis 管 (Kan) significa “gerenciar” ou “controlar”, enquanto 理 (Ri) se refere a “administração” ou “princípios”.</li><li><strong>Kamishibai — </strong>紙芝居<strong>(Sistema visual de auditoria)</strong><br>Os kanjis 紙 (Kami) significa “papel” e 芝居 (Shibai) se traduz como “drama” ou “peça de teatro”. O termo faz referência a uma antiga forma de narrativa japonesa que utilizava ilustrações em cartões de papel. No contexto do TPS, o Kamishibai é um sistema visual de auditoria que utiliza cartões para monitorar e comunicar o desempenho dos processos.</li><li><strong>Hoshin Kanri — </strong>方針管理<strong>(Planejamento estratégico)</strong><br>Os kanjis 方針 (Houshin) significa “diretriz” ou “política”, enquanto 管理 (Kanri) se refere a “gestão”. A curiosidade é que o termo “Hoshin Kanri” destaca a importância de estabelecer diretrizes estratégicas e realizar uma gestão eficiente para alcançar os objetivos organizacionais no TPS.</li><li><strong>Jishuken — </strong>自主研<strong>(Evento de melhoria autodirigido)</strong><br>O kanji “自” (ji) significa “autônomo” ou “próprio”, enquanto “主” (shu) significa “dirigir” ou “comandar”. Juntos, eles formam “自主” (jishu) que pode ser traduzido como “autodirigido” ou “independente”.<br>O kanji “研” (ken) significa “estudo” ou “pesquisa”.<br>No TPS, o “jishuken” refere-se a eventos de melhoria nos quais os próprios funcionários identificam problemas, propõem soluções e implementam melhorias em suas áreas de trabalho. Essa abordagem incentiva o engajamento dos funcionários e promove a cultura de melhoria contínua.</li><li><strong>Yokoten Kaizen — </strong>横展改善<strong>(Melhoria horizontal)</strong><br>Os kanjis “横” (yoko) significa “horizontal” e “展” (ten) significa “expansão” ou “extensão”. Juntos, eles formam “横展” (yokoten) que pode ser traduzido como “horizontal”.<br>Os kanjis “改善” (kaizen) significa “melhoria”.<br>Refere-se ao compartilhamento de boas práticas, conhecimento e soluções entre as diferentes áreas de uma organização. É uma abordagem que busca disseminar e implementar melhorias em várias áreas, promovendo a eficiência e a excelência em toda a empresa.</li><li><strong>Jishu Hozen — </strong>自主保全<strong>(Manutenção autônoma)</strong><br>Os kanjis “自主” (jishu) significa “autônomo” ou “próprio”, enquanto “保全” (hozen) significa “manutenção” ou “preservação”. Refere-se à prática de manutenção autônoma, na qual os operadores e funcionários assumem a responsabilidade pela manutenção e cuidados com os equipamentos e ferramentas utilizados em seu trabalho.</li></ol><h3>Palavras do Autor:</h3><p>No momento em que estou desenvolvendo este artigo, estou estagiando na empresa Mahle, o que foi um dos incentivos. O outro motivo é o desejo de estudar e registrar de forma organizada o conhecimento na área de Lean Manufacturing, com o objetivo de compartilhar esse conhecimento com outros profissionais e também tê-lo como referência pessoal.</p><p>Além disso, este artigo poderá passar por correções e atualizações, caso sejam necessárias.</p><h3>Referência:</h3><p>[Kaizen Base カイゼンベース] : <a href="https://www.youtube.com/@Kaizen-base">link</a></p><p>[ Kaizen Base | ニンベンの付いた自働化とは【トヨタ生産方式 初級編：第３章】] : <a href="https://www.youtube.com/watch?v=3nrE4SEhBRU">link</a><br>Tradução: Automação com a aplicação de habilidades humanas— Capítulo 3: Introdução ao Sistema de Produção Toyota</p><p>[Lean Manufacturing Techniques | ILO, Exports Project e Competitive Industries] : <a href="https://www.ilo.org/wcmsp5/groups/public/---africa/---ro-abidjan/---sro-cairo/documents/publication/wcms_621441.pdf">link</a></p><p>[Lean Manufacturing, Aplicação do Conceito a Células de Trabalho | Cristina Alves dos Santos Pereira | Universidade da Beira Interior] : <a href="https://ubibliorum.ubi.pt/bitstream/10400.6/1921/1/LEAN%20MANUFACTURING.pdf">link</a></p><p>[The Lean Book of Lean | John Earley | Saint Petersburg Electrotechnical University] : <a href="https://etu.ru/assets/files/international/winter-school-iqmai4/02-01_the-lean-book-of-lean.pdf">link</a></p><p>[Dicionario.jp] : <a href="https://dicionario.jp/buscar/改善/2/1">link</a></p><p>[monorevo | トヨタ生産方式(TPS)の基本原理] : <a href="https://monorevo.jp/basic/tps_principles/">link</a><br>Tradução: Princípios fundamentais do Sistema de Produção da Toyota (TPS)</p><p>[Hans Geuns’ Basic Shogi Vocabulary ] : <a href="http://www.shogi.net/shogivocab/vocabhtml.html">link</a></p><p>[トヨタ自動車コーポレート | Toyota Motor Corporation] : <a href="https://www.youtube.com/watch?v=-OlFvNZFMCU">link</a><br>Tradução: 【Sistema de Produção da Toyota】Automação: ‘Pokayoke’ para evitar erros simples</p><p>[Andon | 行灯] : <a href="https://ja.wikipedia.org/wiki/行灯">link</a></p><p>[SKDesu.com | ねまわし] : <a href="https://skdesu.com/significado/根回し-nemawashi/">link</a></p><p>[Playlist Toyota | バーチャル工場見学] : <a href="https://www.youtube.com/watch?v=shKCrIZ84Zs&amp;list=PLOggcfiMB8xwFeE_D4U1e4zrXIjbOwnpo">link</a><br>Tradução: Tour virtual da fábrica</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=f2809fcde365" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Conceitos Lean Manufacturing — 01 — A História]]></title>
            <link>https://medium.com/@hitoshyamamoto/conceitos-lean-manufacturing-01-a-hist%C3%B3ria-7a870c20821e?source=rss-8deacb51dad7------2</link>
            <guid isPermaLink="false">https://medium.com/p/7a870c20821e</guid>
            <category><![CDATA[produção-enxuta]]></category>
            <category><![CDATA[toyota]]></category>
            <category><![CDATA[lean-manufacturing]]></category>
            <category><![CDATA[lean]]></category>
            <category><![CDATA[industry]]></category>
            <dc:creator><![CDATA[Hitoshi Yamamoto]]></dc:creator>
            <pubDate>Thu, 22 Jun 2023 07:10:04 GMT</pubDate>
            <atom:updated>2023-06-28T03:11:36.758Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*loCEjjBcYOOEb3hG_4kDDQ.jpeg" /></figure><h3>Conceitos Lean Manufacturing — 01 — A História</h3><p>Ao longo da história, o sistema de produção evoluiu passando por diferentes estágios e abordagens. Sendo eles:</p><ul><li>Produção Artesanal: A produção era realizada por artesãos individuais que eram responsáveis por todo o processo de fabricação. Esse método era adequado para pequenas quantidades e produtos customizados, no entanto é limitado pela capacidade de produção em grande escala.</li><li>Revolução Industrial: Com a Revolução Industrial que começou no final do século XVIII, houve um avanço significativo na produção. A introdução de máquinas (como a máquina a vapor) permitiu a produção em massa em fábricas, substituindo o trabalho manual. No entanto, as fábricas ainda eram organizadas de maneira desordenada, com falta de padronização e altos níveis de desperdícios.</li><li>Taylorismo e a Administração Científica: No início do século XX, Frederick Taylor desenvolveu o Taylorismo, uma abordagem que enfatizava a divisão do trabalho em tarefas especializadas e a busca pela máxima eficiência. Taylor foi um dos pioneiros da Administração Científica, uma abordagem que visava aplicar métodos científicos para analisar e melhorar os processos de trabalho. Seu trabalho se concentrou em otimizar a produtividade por meio da padronização, do estabelecimento de tempos e movimentos precisos e da seleção e treinamento adequado dos trabalhadores. Esses conceitos ganharam destaque no início do século XX e tiveram um impacto significativo na forma como a produção e a gestão eram abordadas nas indústrias da época.</li><li>Fordismo: No início do século XX, Henry Ford revolucionou a produção em massa com o sistema conhecido como “fordismo”. Ele introduziu a linha de montagem, na qual os trabalhadores se especializavam em tarefas específicas e os produtos passavam por uma sequência de estações de trabalho. Isso permitiu uma produção mais eficiente e redução de custos, tornando os produtos acessíveis a um público mais amplo.</li><li>Toyotismo e Lean Manufacturing: Na década de 1940, a Toyota (montadora japonesa) desenvolveu o sistema conhecido como “toyotismo”(Toyota Production System) e posteriormente , no ocidente, foi difundido e popularizado como “produção enxuta” (Lean Manufacturing). Esse sistema foi influenciado pelos conceitos de eficiência de produção de Ford e também incorporou elementos adicionais, como: a eliminação de desperdícios, o foco na qualidade e a melhoria contínua.</li></ul><h3>Por que Lean Manufacturing é adotado nas empresas?</h3><p>Agora, em <strong>relação ao porquê do Lean Manufacturing</strong>, existem várias razões pelas quais as empresas adotam essa abordagem:</p><ul><li>Eliminação de desperdícios: Busca identificar e eliminar todos os tipos de desperdícios (conhecido como “os 8 desperdícios do Lean Manufacturing”) em um processo de produção, como: Superprodução, Espera, Transporte, Movimentação, Estoque, Processamento excessivo, Defeitos e Habilidades subutilizadas.</li><li>Melhoria da qualidade: Há uma forte ênfase na qualidade em todas as etapas do processo. Ao eliminar desperdícios e melhorar os fluxos de trabalho, há uma redução na ocorrência de defeitos e problemas de qualidade, resultando em produtos ou serviços de maior qualidade e satisfação do cliente.</li><li>Flexibilidade e agilidade: Essa abordagem permite que as empresas sejam mais ágeis e responsivas às demandas do mercado. Através do conceito de produção puxada, em que a produção é baseada nas necessidades dos clientes, é possível evitar o excesso de produção e se adaptar rapidamente às mudanças nas preferências e demandas dos clientes.</li><li>Envolvimento dos funcionários: A abordagem valoriza um ambiente de trabalho colaborativo, onde os funcionários contribuem com ideias, sugerem melhorias e participam de equipes multifuncionais. Esse engajamento fortalece a responsabilidade e promove uma cultura de aprendizado contínuo, resultando em excelência operacional, melhoria contínua e estímulo à inovação.</li></ul><h3>Por que o termo “Lean”?</h3><p>A palavra “lean” em inglês significa “enxuto” ou “magro”. Essa escolha de nome reflete a essência do sistema de produção enxuta que busca eliminar tudo o que não agrega valor ao produto ou serviço, reduzindo desperdícios e maximizando a eficiência.</p><p>Termo “Lean” foi escolhido para descrever o sistema de produção enxuta por sua associação com a ideia de: eficiência, eliminação de desperdícios e foco na criação de valor. <strong>O termo foi cunhado por John Krafcik</strong> em sua tese de doutorado em engenharia do Instituto de Tecnologia de Massachusetts (MIT), em 1988, intitulada “Triumph of the Lean Production System”.</p><blockquote>O termo também faz referência ao conceito de “lean muscle” (músculo magro), que representa uma forma física e saudável com pouca gordura. Da mesma forma, o sistema de produção enxuta busca desenvolver uma organização enxuta e ágil, livre de ineficiências e excessos.</blockquote><p>Ao utilizar o termo “Lean Manufacturing” ou “Lean Production”, <strong>a ideia central é transmitir a mentalidade e os princípios</strong> que são essenciais para alcançar uma produção eficiente, orientada para a qualidade e enxuta em termos de desperdícios.</p><p>Em resumo, o termo “Lean” foi escolhido para descrever o sistema de produção enxuta devido à sua associação com eficiência, eliminação de desperdícios e foco na criação de valor. Reflete a ideia de uma produção magra, livre de excessos e ineficiências, em busca da excelência operacional.</p><h3>A relação entre Toyota Production System e Lean Manufacturing</h3><p>Embora o sistema de produção enxuta tenha se popularizado no Ocidente como “<em>Lean Manufacturing</em>”. Na Toyota, ele é chamado de “<em>Toyota Production System</em>” (TPS) ou Sistema Toyota de Produção em português.</p><p>O TPS foi desenvolvido pela Toyota na década de 1940 e é considerado o precursor do conceito de produção enxuta. A Toyota adotou e refinou os princípios de eficiência da produção em massa introduzidos por Henry Ford e também desenvolveu suas próprias práticas e filosofias, incorporando conceitos como eliminação de desperdícios, melhoria contínua e envolvimento dos funcionários.</p><p>Embora os princípios e a filosofia do TPS sejam amplamente semelhantes ao Lean Manufacturing, é importante destacar que o sistema desenvolvido pela Toyota tem suas próprias características e abordagens específicas. A Toyota enfatiza a busca pela eliminação completa dos desperdícios, aprimoramento constante e o respeito pela mão de obra.</p><p>Embora o termo “Lean Manufacturing” seja amplamente utilizado no contexto ocidental para descrever a abordagem baseada no TPS, é importante reconhecer que o sistema desenvolvido pela Toyota é denominado como Sistema Toyota de Produção ou Toyota Production System.</p><p>No Japão, o TPS também é conhecido como “<em>Just-in-Time Production</em>” (produção Just-in-Time), que enfatiza a produção de acordo com a demanda do cliente, minimizando estoques e permitindo uma maior flexibilidade e agilidade na resposta às mudanças. Embora o <em>Toyota Production System</em> (TPS) e o <em>Just-in-Time</em> (JIT) Production sejam frequentemente usados como termos intercambiáveis, existem diferenças sutis entre eles.</p><h3>A relação entre Toyota Production System e Just-in-Time</h3><p>O TPS é a abordagem abrangente desenvolvida pela Toyota que engloba não apenas o Just-in-Time, como também outros princípios e práticas relacionados à produção enxuta. Além do JIT(<em>Just-in-Time</em>), o TPS inclui conceitos como:</p><ol><li>Jidoka (Automação com controle humano)</li><li>Kaizen (Melhoria contínua)</li><li>Heijunka (Nivelamento da produção)</li><li>Just-in-Time (JIT) (Produção “just-in-time” ou “na hora certa”)</li><li>Kanban (Sistema visual de controle de produção)</li><li>Poka-Yoke (Prevenção de erros humanos)</li><li>Andon (Sistema de sinalização visual para indicar problemas)</li><li>Genchi Genbutsu (Ir e ver por si mesmo)</li></ol><p>Como pode ver na lista com 8 itens acima, Just-in-Time é um dos elementos-chave do TPS e refere-se a uma estratégia de produção em que os produtos são fabricados ou entregues no momento exato em que são necessários. O objetivo do JIT é minimizar estoques e reduzir o desperdício associado ao excesso de inventário. Além disso, visa aprimorar o fluxo de materiais e informações, sincronizando a produção com a demanda real.</p><h3>Palavras do Autor:</h3><p>No momento em que estou desenvolvendo este artigo, estou estagiando na empresa Mahle, o que foi um dos incentivos. O outro motivo é o desejo de estudar e registrar de forma organizada o conhecimento na área de Lean Manufacturing, com o objetivo de compartilhar esse conhecimento com outros profissionais e também tê-lo como referência pessoal.</p><p>Além disso, este artigo poderá passar por correções e atualizações, caso sejam necessárias.</p><h3><strong>Referência:</strong></h3><p>[Kaizen Base カイゼンベース] : <a href="https://www.youtube.com/@Kaizen-base">link</a></p><p>[Pensamento Lean | <a href="https://medium.com/u/49b5281304c3">Angélica Costa</a>] : <a href="https://medium.com/animadigital/pensamento-lean-81f0b783e1cb">link</a></p><p>[Lean Manufacturing é muito mais que simplesmente um punhado de ferramentas | <a href="https://medium.com/u/1ba1c6a4353b">Fernando Maquiaveli</a>] : <a href="https://medium.com/@fernandomaquiaveli/lean-manufacturing-é-muito-mais-que-simplesmente-um-punhado-de-ferramentas-29b39de2c499">link</a></p><p>[Lean Manufacturing Techniques | ILO, Exports Project e Competitive Industries] : <a href="https://www.ilo.org/wcmsp5/groups/public/---africa/---ro-abidjan/---sro-cairo/documents/publication/wcms_621441.pdf">link</a></p><p>[Lean Manufacturing, Aplicação do Conceito a Células de Trabalho | Cristina Alves dos Santos Pereira | Universidade da Beira Interior] : <a href="https://ubibliorum.ubi.pt/bitstream/10400.6/1921/1/LEAN%20MANUFACTURING.pdf">link</a></p><p>[The Lean Book of Lean | John Earley | Saint Petersburg Electrotechnical University] : <a href="https://etu.ru/assets/files/international/winter-school-iqmai4/02-01_the-lean-book-of-lean.pdf">link</a></p><p>[As origens do Lean Manufacturing | Thayc Marinho] : <a href="https://www.linkedin.com/pulse/origens-do-lean-manufacturing-história-por-trás-da-teoria-marinho/?originalSubdomain=pt">link</a></p><p>[A Brief History of Lean | Lean.org] : <a href="https://www.lean.org/explore-lean/a-brief-history-of-lean/">link</a></p><p>[Taylorismo, fordismo e toyotismo | Ribeiro, A. de Freitas | PUC-SP]: <a href="https://revistas.pucsp.br/ls/article/download/26678/pdf/74831">link</a></p><p>[Taylorismo | Voitto] : <a href="https://www.voitto.com.br/blog/artigo/taylorismo">link</a></p><h3>Correções realizadas:</h3><p><strong>[27/06/2023]</strong> : Inclusão do tópico “Taylorismo e Administração Científica” e ocorreu uma reescrita do termo “Artesanato” para “Produção Artesanal”. Para embasar as referências, foram consultados um artigo de Andressa de Freitas Ribeiro (PUC-SP) e uma publicação do Grupo Voitto. O feedback de correção foi reportado pelo Márcio Marcelino, Lean Expert da Mahle e graduado em Engenharia de Produção pela FEPI. Muito obrigado.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=7a870c20821e" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Certificado Digital e Token — Guia]]></title>
            <link>https://medium.com/@hitoshyamamoto/certificado-digital-e-token-guia-9cfbde26d8f3?source=rss-8deacb51dad7------2</link>
            <guid isPermaLink="false">https://medium.com/p/9cfbde26d8f3</guid>
            <category><![CDATA[technology]]></category>
            <category><![CDATA[token]]></category>
            <category><![CDATA[tecnologia]]></category>
            <category><![CDATA[assinatura-digital]]></category>
            <category><![CDATA[certificado-digital]]></category>
            <dc:creator><![CDATA[Hitoshi Yamamoto]]></dc:creator>
            <pubDate>Thu, 03 Mar 2022 19:16:48 GMT</pubDate>
            <atom:updated>2022-03-03T19:16:48.822Z</atom:updated>
            <content:encoded><![CDATA[<h3>Certificado Digital e Token — Guia</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*ysKo4fwL1cWnObGW.png" /></figure><p>Desde que comecei o estágio na DTI, tive primeiro contato com tokens e certificado digital e, em seguida, fui aprendendo o que são essas ferramentas no dia-a-dia dos servidores e de outros profissionais.</p><p>Para ajudar você, organizei esse artigo juntando as informações sobre essas ferramentas e organizando-as, facilitando o entendimento sobre o assunto.</p><p>Assim, nesse artigo, as informações são seguidas da seguinte forma:</p><ul><li>Sobre o Certificado Digital</li><li>Sobre o Token</li><li>Sobre a Cadeia de Certificado</li><li>Sobre os Drivers de Token</li><li>Certificado Digital e suas nomenclaturas (A1 e A3, por exemplo)</li><li>Como testar o Token e seu Certificado Digital?</li><li>Exemplos de onde são utilizadas os tokens</li><li>Softwares que tem a função de Assinar Digitalmente pelo Token</li><li>Exemplo de Problemas Recorrentes em relação ao token e Certificado Digital</li></ul><h3><strong>Sobre o Certificado Digital</strong></h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*D8p6U2vPYv9MQbu8Lkg-BQ.png" /></figure><p>A partir da publicação da Medida Provisória nº2200 em 2001, foi regulamentada e instituída as atividades da ICP-Brasil (Infraestrutura de Chaves Públicas do Brasil), utilizando Certificado Digital.</p><p>Com a evolução da criptografia de dados, a certificação digital surgiu com intuito de garantir a autenticidade, a confidencialidade e a integridade das informações eletrônicas. Ou seja, é um documento digital para identificar pessoas, instituições, órgãos e empresas no mundo virtual, possibilitando transações e assinaturas de forma remota, garantindo agilidade, ganhando tempo e evitando menores gastos em utilização de papéis.</p><p>“O certificado digital não é uma invenção do governo. Ele foi criado com o objetivo de facilitar a rotina das pessoas físicas e empresas, promovendo agilidade, segurança e redução de custos.” — Certisign (<a href="https://blog.certisign.com.br/o-que-e-certificado-digital/">link</a>)</p><p>O Certificado Digital é utilizado comumente para autenticação em:</p><ul><li>sistemas e sites (Comprasnet SIASG, e-CAC e Processo Judicial Eletrônico, por exemplo)</li><li>assinar documentos</li><li>retificar a declaração do imposto de renda (<a href="https://serasa.certificadodigital.com.br/blog/imposto-de-renda/vantagens-de-declarar-o-ir-com-certificado-digital/">link</a>)</li></ul><h3>Sobre o Token</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*jJetAc3WitMfAY49kLgUdQ.png" /></figure><p>O token é um dispositivo eletrônico que armazena o certificado digital.<br>Após a aquisição do certificado digital, as informações do certificado digital são inseridas no token e, em seguida, colocando na porta USB do CPU para serem utilizadas. No entanto, para o funcionamento do token, é necessário instalar o driver do token no CPU.</p><p>“Ele é muito parecido com um pendrive, mas não é um pendrive!” — Portal SEI UFSCar (<a href="https://www.portalsei.ufscar.br/duvidas-frequentes/assinaturas/o-que-e-token#:~:text=O%20Token%20%C3%A9%20um%20dispositivo,mas%20n%C3%A3o%20%C3%A9%20um%20pendrive!&amp;text=Ap%C3%B3s%20a%20inser%C3%A7%C3%A3o%2C%20o%20portador,validada%20por%20meio%20de%20criptografia.">link</a>)</p><h3>Sobre a Cadeia de Certificado</h3><p>Quando se recebe um Certificado Digital de outra entidade, é necessário autenticar essa entidade. Assim, quando é instalado a cadeia de certificados (conhecidos como <strong>caminho de certificação</strong>), as informações da entidade é autenticada numa lista de certificados dessa cadeia, chegando até o término de verificação da cadeia num certificado de CA raiz.</p><p>Em seguida, com a informação do CA raiz (<strong>Certificado de Autoridade de Certificação Raiz</strong>) é sempre assinado pela própria autoridade do CA.</p><p>Ou seja, todas assinaturas de todos os certificados compostos na cadeia de certificação devem ser verificadas até alcançar o fim da cadeia onde encontra-se o CA Raiz.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/525/0*3g-QFCVAKdEzfLXT.gif" /><figcaption>cadeia de certificado — fonte: IBM (<a href="https://www.ibm.com/docs/pt-br/ibm-mq/9.1?topic=certificates-how-certificate-chains-work#q009880___q009880_1">link</a>)</figcaption></figure><p>Para instalar a cadeia de certificados, por favor, acesse esse <a href="https://certificados.serpro.gov.br/arserpro/pages/information/certificate_chain.jsf">link</a>.<br>Nesse link, você irá acessar em um dos sites do SERPRO como pode ser visto na imagem abaixo:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*dhUDHBGa5bPFt5cQU4UG_Q.png" /><figcaption>imagem do site SCDS (Sistema de Certificação Digital da SERPRO)</figcaption></figure><p>Assim, faça o processo de instalação das cadeias que estão no site.<br>Como exemplo, estarei fazendo download destas cadeias de certificação na imagem abaixo:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/839/1*cf938DNp_CfwgcrD2gQjcw.png" /></figure><p>1 | Clique no botão “Instalar Certificado”</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/416/1*BKzp6npN799YPaqOSfiyQw.png" /></figure><p>2 | Clique no botão “Abrir”</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/473/1*45FuYtROJrvZ2KHqx8a3DA.png" /></figure><p>3 | Caso queira instalar somente no usuário do CPU, clique no “Usuário Atual”. No entanto, recomendo que selecione “Máquina Local” para instalar no CPU e que funcione em demais usuários do CPU caso tenha</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/541/1*zFbzZlSds8bJ4b8bN7V6Lw.png" /></figure><p>4 | Selecione no botão “Avançar”</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/538/1*ihA7QGcPyyefWCEgE0LUOw.png" /></figure><p>5 | Selecione no botão “Concluir” e, pronto, a cadeia já foi instalado. Assim, é só repetir os mesmos processos para outras cadeias disponíveis caso tenha necessidade</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/536/1*HHl46YXxmI9gddDBPBdWjA.png" /></figure><h3>Sobre os Drivers de Token</h3><p>Para o funcionamento dos tokens nos equipamentos, eles precisam ser reconhecidos pela entrada de hardware USB (do notebook e do CPU por exemplo). Assim, é necessário que instale os drivers dos tokens, <strong>cada modelo de token tem seu respectivo driver.</strong></p><p>Imagem abaixo mostra-se alguns exemplos de drivers de cada modelo de token (não se tem de todos os modelos).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*vMnBC_tB-QDesG7St31umg.png" /><figcaption>driver de token localizado no site da SERPRO (<a href="https://www.serpro.gov.br/links-fixos-superiores/pss-serpro/drivers_token">link</a>)</figcaption></figure><p>Se você está fazendo o processo de instalação do driver pela primeira vez, recomendo que faça download do Manual fornecido pela SERPRO na última coluna a direita da imagem acima.</p><h3>Certificado Digital e suas nomenclaturas</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*IHKZutAlFrSDdnWL3wQQXw.png" /></figure><p>Os tokens comumente utilizado são os tokens A3, no entanto a nomenclatura do Certificado são dividas em:<br>- Letras A e S<br>- Números de 1 a 4</p><h4><strong>Em relação as Letras:</strong></h4><ul><li><strong>Categoria A:</strong> os Certificados Digitais com as Letras A (por exemplo, A1, A2, A3 e A4) são os certificados que permitem ao usuário assinar digitalmente (utilizando <strong>e-CPF</strong> e <strong>e-CNPJ</strong>) algum documento, processos e memorandos.</li><li><strong>Categoria S:</strong> os Certificados Digitais com as Letras S (por exemplo, S1, S2, S3 e S4) são usados para fins de codificação de mensagens e dados sigilosos.</li></ul><h4><strong>Em relação aos Números:</strong></h4><ul><li><strong>A1 e S1:</strong> São certificados do modelo 1 que tem par de chaves criptografadas (uma pública e outra privada | <a href="https://www.meussl.com.br/o-que-e-chave-publica-e-chave-privada-e-quais-suas-diferencas/">link</a>) geradas por um software. Assim, essas chaves são armazenados em um hardware do usuário como o computador, notebook ou smartphone. Ademais, tem validade de 1 ano.</li><li><strong>A2 e S2:</strong> São certificados do modelo 2 que tem par de chaves criptografadas geradas por um software, mas o armazenamento ocorre em uma mídia própria. Além disso, tem validade de 2 anos.</li><li><strong>A3 e S3:</strong> São certificados do modelo 3, as chaves são geradas e armazenadas em um hardware dedicado para o Certificado (esse Certificado pode ser um chip ou um token). Além do mais, tem validade de 3 anos.</li><li><strong>A4 e S4:</strong> São certificados do modelo 4. Nele, o que difere em relação ao certificado do modelo tipo 3 é o tamanho mínimo das chaves. Sendo para o tipo 3, tem o tamanho mínimo de 1024 bits e, para o tipo 4, tem o tamanho mínimo de 2048 bits.</li></ul><h3>Como testar o Token e seu Certificado Digital?</h3><p>Com intuito de verificar o funcionamento de seu token, há sites que você pode testar e seu certificado, sendo elas:</p><p><strong>CCD Serpro (</strong><a href="https://ccd.serpro.gov.br/testeaqui/"><strong>link</strong></a><strong>)</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*D-Fq8LqJKFUXzDDI8uqqUw.png" /></figure><p><strong>Certisign (</strong><a href="https://www.certisign.com.br/duvidas-suporte/certificado-digital/teste-certificado"><strong>link</strong></a><strong>)</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*sWOudcQ7Uj_RFMkq_6AYoQ.png" /></figure><h3>Exemplos de onde são utilizadas os tokens</h3><p>Irei listar neste artigo, somente os sites e plataformas que tive experiência e que foram utilizadas pelos servidores públicos, sendo eles:</p><ul><li>Portal Único Siscomex (Sistemas de Comércio Exterior)</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*vXPWLriiIfzejPuSHQEPXw.png" /><figcaption>fonte: <a href="https://portalunico.siscomex.gov.br/portal/">link</a></figcaption></figure><ul><li>Para acessar o SIGEPE (Sistema de Gestão de Pessoas do Governo Federal) pelo SIGAC (Sistema de Gestão de Acesso)</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*vOzCKzgXBKuKCG0fhH1eFQ.png" /><figcaption>fonte: <a href="https://sso.gestaodeacesso.planejamento.gov.br/cassso/login?service=https%3A%2F%2Fadmsistema.sigepe.planejamento.gov.br%2Fsigepe-as-web%2Fprivate%2FareaTrabalho%2Findex.jsf%3Bjsessionid%3DN0np3FfOgC7onkT5AelS6-Lf.2">link</a></figcaption></figure><ul><li>Portal e-CAC (Centro Virtual de Atendimento)</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*1r3MAqzqhNVDUM154sbZFA.png" /><figcaption>fonte: <a href="https://cav.receita.fazenda.gov.br/autenticacao/login">link</a></figcaption></figure><ul><li>Acesso ao SIASG(HOD) pela Rede Serpro</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*OgEJPDVBoSwiR6cs-xWMXA.png" /><figcaption>fonte: <a href="https://hod.serpro.gov.br/a83016cv/">link</a></figcaption></figure><ul><li>Portal SIAFI (Sistema Integrado de Administração Financeira do Governo Federal)</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*gOOOrVeCXw-SIxPV1q2aWg.png" /></figure><ul><li>Processo Judicial Eletrônico</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ZsyL4YokQ__j1Xbm-zPBUQ.png" /><figcaption>fonte: <a href="https://pje1g.trf1.jus.br/pje/login.seam">link</a></figcaption></figure><ul><li>Comprasnet</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*J27cLr8Y7U_WChEBDhGaGA.png" /></figure><ul><li>Portal de Imigração Laboral — MigranteWeb</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*293-uem5maTvyteZptdkqg.png" /><figcaption>MigranteWeb Antigo — fonte: <a href="http://migranteweb.mte.gov.br/migranteweb/loginCertificadoDigital.seam">link</a></figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*8jq1TfJQGOSf4DnAvnyHhA.png" /><figcaption>MigranteWeb 2.0 — fonte: <a href="https://migrante.mj.gov.br/login">link</a></figcaption></figure><ul><li>SCDPMG (Sistema de Concessão de Diárias e Passagens)</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*l8m5pfZxe2GboKl_VetMSw.png" /><figcaption>fonte: <a href="https://www.scdp.mg.gov.br/scdp-web/home.xhtml">link</a></figcaption></figure><h3>Softwares que tem a função de Assinar Digitalmente pelo Token</h3><p>Mesmo com token e certificado digital, se você precisa assinar um documento digital, você precisará de softwares que assinem digitalmente estes documentos. Assim, siga abaixo as opções disponíveis:</p><ul><li>Assinador SERPRO</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*3-T1g7nZm_k5pPXgneblqw.png" /><figcaption>site do Serpro na página do Assinador Sepro (<a href="https://www.serpro.gov.br/links-fixos-superiores/assinador-digital/assinador-serpro">link</a>)</figcaption></figure><ul><li>Adobe Reader DC (versão gratuita do Adobe Reader)</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Qrvs2VqCJ0oPgZWWWqEwhg.png" /><figcaption>Em “Ferramentas” e em “Certificados”, clique em “Abrir”</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/957/1*NQYdzAu9VlKL8wAzNu0MCw.png" /><figcaption>Clique em “Assinar Digitalmente”</figcaption></figure><h3>Exemplo de Problemas Recorrentes em relação ao token e Certificado Digital</h3><h4>Quando o navegador que bloqueia o acesso</h4><p>Possíveis soluções:</p><ul><li>Apagar o cache do navegador;</li><li>Em “configurações” do navegador, acesse a aba de segurança e privacidade e, em seguida, acesse aba relacionado a “cookies”. Assim, registre o link do site e de seus terceiros.</li></ul><h4>Antivírus que bloqueia</h4><p>O antivírus pode bloquear pelo acesso ao USB por conta do ataque BadUSB. Assim, as possíveis soluções podem ser desligar ou desinstalar o antivírus para poder dar prosseguimento ao acesso ao token. No entanto, recomendado é configurar corretamente o antivírus para poder utilizar o antivírus com o token.</p><h4>Quando não reconhece o token</h4><p>Se o token não foi reconhecido, pode ser seguintes problemas e soluções:</p><ul><li>Verificar se o driver do token que foi instalado é compatível com o token;</li><li>Se o token for de modelo antigo, há necessidade de instalar cadeias de certificados extras manualmente no site do Serpro (<a href="https://certificados.serpro.gov.br/arserpro/pages/information/certificate_chain.jsf">link</a>);</li><li>Problema pode ser relacionado ao navegador, assim teste em outros navegadores também (por exemplo, Google Chrome, Mozilla Firefox, Opera e Edge)</li><li>Pode ser que o token já tenha vencido, então contate ao usuário;</li><li>Pode ser que o registro do token esteja incorreta, assim contate ao forncedor e usuário.</li></ul><h4>Quando clica no “não” no pop-up de identificação sem querer</h4><p>Caso tenha acontecido ou possivelmente tenha ocorrido, por favor, acesse a página de configurações do navegador e apague o cache do navegador. Assim, o pop-up do navegador aparecerá novamente para poder prosseguir no acesso.</p><h4>Certificado Digital vencido</h4><p>Caso o certificado digital tenha passado de validade, geralmente o usuário será notificado sobre o vencimento. Assim, contate com o fornecedor para poder renovar o certificado digital.</p><h4>Problemas não identificados</h4><p>Caso as propostas acima não tenha conseguido ajudar, a última alternativa possivelmente será formatar o computador ou notebook. Se o seu equipamento esteja usando sistema operacional Windows, por favor, atualize o sistema operacional pelo Windows Update adicionando outros pacotes necessários como, por exemplo, pacotes .NET Framework.</p><h3>Palavras do Autor:</h3><p>Durante o estágio na DTI, percebi que teve não só servidores mas dentre outros profissionais que tiveram problemas referente ao token e certificado digital, então preparei este guia para poder ajudar nesses casos seja informando, seja solucionando e seja direcionando o usuário.</p><p>Espero que tenha ajudado. Caso tenha algo a mais para poder adicionar ou corrigir neste documento, por gentileza, me contate sobre.</p><p>Todas as informações que estudei, testei e pesquisei, algumas delas, coloquei em “Referências” abaixo.</p><h3><strong>Referências:</strong></h3><p>[O que é e quando surgiu certificado digital? | Link Certificação Digital]: <a href="https://linkcertificacao.com.br/o-que-e-quando-surgiu-o-certificado-digital/#:~:text=O%20certificado%20digital%20foi%20institu%C3%ADdo,Brasil)%20e%20as%20suas%20atividades.">link</a></p><p>[O que é Certificado Digital | Certisign]: <a href="https://blog.certisign.com.br/o-que-e-certificado-digital/">link</a></p><p>[Qual o significado das letras e números no certificado digital? | Crypto ID]: <a href="https://cryptoid.com.br/identidade-digital-destaques/a1-a2-a3-e-a4-qual-o-significado-das-letras-e-numeros-no-certificado-digital/#:~:text=S%C3%A3o%20esses%20os%20certificados%20que,e%20o%20e%2DCNPJ).">link</a></p><p>[O que é Token | UFSCar]: <a href="https://www.portalsei.ufscar.br/duvidas-frequentes/assinaturas/o-que-e-token#:~:text=O%20Token%20%C3%A9%20um%20dispositivo,mas%20n%C3%A3o%20%C3%A9%20um%20pendrive!&amp;text=Ap%C3%B3s%20a%20inser%C3%A7%C3%A3o%2C%20o%20portador,validada%20por%20meio%20de%20criptografia.">link</a></p><p>[Como funciona Cadeia de Certificado? | IBM]: <a href="https://www.ibm.com/docs/pt-br/ibm-mq/9.1?topic=certificates-how-certificate-chains-work">link</a></p><p>[Repositório de Cadeia de Certificados | SERPRO]: <a href="https://certificados.serpro.gov.br/arserpro/pages/information/certificate_chain.jsf">link</a></p><p>[Certificação Digital | INTI | Gov.br] : <a href="https://www.gov.br/iti/pt-br/assuntos/noticias/iti-na-midia/certificacao-digital2">link</a></p><p>[Como funciona criptografia de chaves? | Meu SSL] : <a href="https://www.meussl.com.br/o-que-e-chave-publica-e-chave-privada-e-quais-suas-diferencas/">link</a></p><p>[Qual o significado das letras e números no certificado Digital? | Valid]: <a href="https://blog.validcertificadora.com.br/letras-e-numeros-no-certificado-digital/">link</a></p><p>[Assinador Serpro | Serpro] : <a href="https://www.serpro.gov.br/links-fixos-superiores/assinador-digital/assinador-serpro">link</a></p><p>[Assinar Digitalmente com o Certificado pelo Adobe Reader DC | Multicert]: <a href="https://info.multicert.com/hc/pt/articles/4406441865105-Como-assinar-em-Adobe-Reader">link</a></p><p>[Shodo | Processo Judicial Eletrônico | Tribunal Regional do Trabalho]: <a href="https://trt15.jus.br/pje/shodo">link</a></p><p>[Assinador Digital Shomei| Ministério Público do Trabalho]: <a href="https://protocoloadministrativo.mpt.mp.br/arquivos/manualshomei.pdf">link</a></p><p>[PJeOffice | Processo Judicial Eletrônico]: <a href="https://www.pje.jus.br/wiki/index.php/PJeOffice">link</a></p><p>[Endereçador | Correios]: <a href="https://www2.correios.com.br/enderecador/escritorio/instalacao.cfm">link</a></p><p>[Drivers para Tokens | Serpro]: <a href="https://www.serpro.gov.br/links-fixos-superiores/pss-serpro/drivers_token">link</a></p><p>[Drivers para Tokens | CCD Serpro]: <a href="https://certificados.serpro.gov.br/arserpro/pages/information/drivers_token_download.jsf">link</a></p><p>[Drivers para Tokens | Planalto do Governo]: <a href="http://www.planalto.gov.br/acpr/downloads.htm">link</a></p><p>[Drivers para Tokens | Certisign]: <a href="https://www.certisign.com.br/duvidas-suporte/downloads/tokens">link</a></p><p>[Testar o Token | Certisign]: <a href="https://www.certisign.com.br/duvidas-suporte/certificado-digital/teste-certificado?cod_rev=71840">link</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9cfbde26d8f3" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>