<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Cezar Augusto Mezzalira</title>
    <description>The latest articles on DEV Community by Cezar Augusto Mezzalira (@cezarmezzalira).</description>
    <link>https://dev.to/cezarmezzalira</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F478545%2F2fda38e4-7f0f-4251-9b3f-b4f34dd62bb0.jpeg</url>
      <title>DEV Community: Cezar Augusto Mezzalira</title>
      <link>https://dev.to/cezarmezzalira</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/cezarmezzalira"/>
    <language>en</language>
    <item>
      <title>Instalando o NVM sem privilégios administrativos no Windows (10/11)</title>
      <dc:creator>Cezar Augusto Mezzalira</dc:creator>
      <pubDate>Wed, 15 Nov 2023 23:55:19 +0000</pubDate>
      <link>https://dev.to/cezarmezzalira/instalando-o-nvm-sem-privilegios-administrativos-no-windows-1011-23k7</link>
      <guid>https://dev.to/cezarmezzalira/instalando-o-nvm-sem-privilegios-administrativos-no-windows-1011-23k7</guid>
      <description>&lt;p&gt;Existem alguns cenários onde não é possível instalar ferramentas de desenvolvimento sem ter privilégios administrativos.&lt;br&gt;
Pensando nisso, escrevi esse tutorial para lhe ajudar a instalar NVM (Node Version Manager) nesse cenário.&lt;/p&gt;

&lt;h2&gt;
  
  
  Executando o poweshell
&lt;/h2&gt;

&lt;p&gt;Para esse tutorial, vamos usar o powershell para a maioria das nossas tarefas.&lt;/p&gt;

&lt;p&gt;Por isso, vamos abri-lo clicando no menu iniciar, digitando &lt;code&gt;powershell&lt;/code&gt; e depois clicando nele, conforme mostrado na imagem abaixo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fym9dn4ysl5cl7t8hc7dz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fym9dn4ysl5cl7t8hc7dz.png" alt="Windows Powershell"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Baixando o NVM
&lt;/h2&gt;

&lt;p&gt;Acesse o link abaixo e baixe a versão mais recente (latest) do pacote:&lt;br&gt;
&lt;a href="https://github.com/coreybutler/nvm-windows/releases/latest" rel="noopener noreferrer"&gt;https://github.com/coreybutler/nvm-windows/releases/latest&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para fazer nossa instalação, vamos precisar baixar o NVM para Windows em formato ZIP, conforme a imagem abaixo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdcfwik1sp1qfo2xxo9db.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdcfwik1sp1qfo2xxo9db.png" alt="NVM Windows ZIP"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;u&gt;&lt;strong&gt;PRO TIP: Você também pode usar o powershell para baixar o arquivo direto para sua pasta de Downloads:&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="n"&gt;Start-BitsTransfer&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Source&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'https://github.com/coreybutler/nvm-windows/releases/download/1.1.11/nvm-noinstall.zip'&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Destination&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="bp"&gt;$HOME&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;\Downloads"&lt;/span&gt;&lt;span class="w"&gt;


&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
  
  
  Extraindo arquivo para pasta do usuário
&lt;/h2&gt;

&lt;p&gt;O próximo passo é extrairmos os arquivos do nvm do arquivo &lt;code&gt;nvm-noinstall.zip&lt;/code&gt; para dentro da nossa pasta de usuário.&lt;/p&gt;

&lt;p&gt;Vá até a pasta de Downloads, procure pelo arquivo &lt;code&gt;nvm-noinstall.zip&lt;/code&gt;, clique com o botão direito e em seguida clique em &lt;code&gt;Extrair tudo...&lt;/code&gt;, conforme a imagem abaixo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fddafguk66anvbxduz2ja.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fddafguk66anvbxduz2ja.png" alt="Extraindo arquivos"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Na janela que abriu agora, vamos mudar o caminho de destino deixando algo como &lt;code&gt;C:\Users\Seu Usuário\nvm&lt;/code&gt;, como na imagem abaixo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi8dnyqkna9rj754by2z1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi8dnyqkna9rj754by2z1.png" alt="Utilitário de extração"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;u&gt;&lt;strong&gt;PRO TIP: Você pode usar o powershell para extrair para o local correto:&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="n"&gt;Expand-Archive&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Path&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="bp"&gt;$HOME&lt;/span&gt;&lt;span class="nx"&gt;/Downloads/nvm-noinstall.zip&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-DestinationPath&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$&lt;/span&gt;&lt;span class="nn"&gt;env&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nv"&gt;UserProfile&lt;/span&gt;&lt;span class="nx"&gt;/nvm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Force&lt;/span&gt;&lt;span class="w"&gt;


&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
  
  
  Criando arquivo de configurações do NVM
&lt;/h2&gt;

&lt;p&gt;Agora, vamos criar nosso arquivo de configuração do nvm. Copie o comando abaixo e cole no powershell:&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="n"&gt;notepad.exe&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="bp"&gt;$HOME&lt;/span&gt;&lt;span class="nx"&gt;\nvm\settings.txt&lt;/span&gt;&lt;span class="w"&gt;


&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Em seguida, copie as linhas abaixo e cole no arquivo que foi aberto no notepad:&lt;/p&gt;

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

root: $HOME\nvm
path: $HOME\nvm\nodejs
arch: 64 
proxy: none


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Antes de salvar e fechar, vamos precisar mudar o caminho do root e do path, apontando para nossa pasta de usuário.&lt;/p&gt;

&lt;p&gt;Para evitar problemas com nome da sua pasta de usuário, vamos gerar o caminho dessa pasta no format curto do DOS.&lt;/p&gt;

&lt;p&gt;Com o powershell aberto, digite &lt;code&gt;cmd&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Em seguida, copie e cole o comando abaixo:&lt;/p&gt;

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

for %I in (.) do echo %~sI


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Agora, copie a linha logo acima de onde está o cursor conforme na imagem a seguir:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhzwo8rc8lmhhiraqeoa3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhzwo8rc8lmhhiraqeoa3.png" alt="Caminho curto no formato DOS"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Em seguida, no arquivo &lt;code&gt;settings.txt&lt;/code&gt; aberto no notepad, substitua onde está &lt;code&gt;$HOME&lt;/code&gt; pelo caminho que foi copiado no DOS anteriormente. &lt;/p&gt;

&lt;p&gt;Seu arquivo deve ficar parecido com isso:&lt;/p&gt;

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

root: C:\Users\CEZARM~1\nvm
path: C:\Users\CEZARM~1\nvm\nodejs
arch: 64 
proxy: none


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;IMPORTANTE: Para continuar, digite o comando &lt;code&gt;exit&lt;/code&gt; para voltar para o PowerShell.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Finalizando a configuração com as variáveis de ambiente
&lt;/h2&gt;

&lt;p&gt;Com os arquivos necessários no lugar, vamos criar as variáveis de ambiente para apontar para onde estão os arquivos do NVM.&lt;/p&gt;

&lt;h3&gt;
  
  
  Removendo as variáveis existentes
&lt;/h3&gt;

&lt;p&gt;Para evitar problemas, vamos remover as variáveis de ambiente executando linha a linha abaixo:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;Environment&lt;/span&gt;&lt;span class="p"&gt;]::&lt;/span&gt;&lt;span class="n"&gt;SetEnvironmentVariable&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"NVM_HOME"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="bp"&gt;$null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;"User"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;Environment&lt;/span&gt;&lt;span class="p"&gt;]::&lt;/span&gt;&lt;span class="n"&gt;SetEnvironmentVariable&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"NVM_SYMLINK"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="bp"&gt;$null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;"User"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;


&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  Adicionando as variáveis atualizadas
&lt;/h3&gt;

&lt;p&gt;Em seguida, vamos adicionar &lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;Environment&lt;/span&gt;&lt;span class="p"&gt;]::&lt;/span&gt;&lt;span class="n"&gt;SetEnvironmentVariable&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"NVM_HOME"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="bp"&gt;$HOME&lt;/span&gt;&lt;span class="s2"&gt;\nvm"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;"User"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;Environment&lt;/span&gt;&lt;span class="p"&gt;]::&lt;/span&gt;&lt;span class="n"&gt;SetEnvironmentVariable&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"NVM_SYMLINK"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="bp"&gt;$HOME&lt;/span&gt;&lt;span class="s2"&gt;\nvm\nodejs"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;"User"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;


&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  Adicionando ao Path do usuário as variáveis
&lt;/h3&gt;

&lt;p&gt;Por fim, vamos adicionar ao path do nosso usuário as novas variáveis de ambiente, executando linha a linha abaixo no powershell:&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="nv"&gt;$user_path&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;System.Environment&lt;/span&gt;&lt;span class="p"&gt;]::&lt;/span&gt;&lt;span class="n"&gt;GetEnvironmentVariable&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"PATH"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;"USER"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nv"&gt;$user_path&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$user_path&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="s2"&gt;"%NVM_HOME%;%NVM_SYMLINK%;"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;System.Environment&lt;/span&gt;&lt;span class="p"&gt;]::&lt;/span&gt;&lt;span class="n"&gt;SetEnvironmentVariable&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"PATH"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nv"&gt;$user_path&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;"USER"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;


&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
  
  
  Testando a instalação do NVM
&lt;/h2&gt;

&lt;p&gt;Se tudo deu certo, feche o powershell e abra novamente.&lt;/p&gt;

&lt;p&gt;Em seguida, digite o comando &lt;code&gt;nvm -v&lt;/code&gt;. Se tudo correu bem, a saída deverá ser conforme a imagem abaixo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3b0bhi0alc4314n67e4p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3b0bhi0alc4314n67e4p.png" alt="NVM version"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Instalando o Node.js e ativando localmente
&lt;/h2&gt;

&lt;p&gt;A última etapa será executar &lt;code&gt;nvm install node 20.9.0&lt;/code&gt;, que vai instalar a versão mais recente do Node.js 20. Se tudo deu certo, sua saída deverá ser parecida com essa:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fomcj3h5j31smpdbeajhy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fomcj3h5j31smpdbeajhy.png" alt="Node 20 Install"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Em seguida, precisamos criar o link simbolico, para quando chamarmos o comando &lt;code&gt;node&lt;/code&gt; seja buscado de dentro da pasta do nvm na pasta da versão 20.9.0 que instalamos anteriormente.&lt;/p&gt;

&lt;p&gt;Para isso, vamos executar o seguinte comando:&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="n"&gt;cmd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/C&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;mklink&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/j&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$home&lt;/span&gt;&lt;span class="nx"&gt;\nvm\nodejs&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$home&lt;/span&gt;&lt;span class="nx"&gt;\nvm\v20.9.0&lt;/span&gt;&lt;span class="w"&gt;


&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Para finalizar, vamos executar o comando &lt;code&gt;node -v&lt;/code&gt; e a saída deverá ser como a abaixo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs5oscamm7mivu6j7b63e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs5oscamm7mivu6j7b63e.png" alt="Node Version"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Importante: Após criar o link, faça logoff ou reinicie a máquina para todas as aplicações carregarem o mesmo.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;E assim finalizamos a instalação!&lt;/p&gt;

&lt;p&gt;Precisa de ajuda sobre o tutorial acima? Esse tutorial foi útil para você? &lt;br&gt;
Deixe seu comentário abaixo e compartilhe para ajudar outras pessoas :)&lt;/p&gt;

&lt;p&gt;Bons códigos!&lt;/p&gt;

&lt;p&gt;Esse artigo foi baseado nesse artigo do Allen Kim no Medium: &lt;a href="https://medium.com/allenhwkim/windows-10-install-nvm-without-admin-rights-b51418edc480" rel="noopener noreferrer"&gt;https://medium.com/allenhwkim/windows-10-install-nvm-without-admin-rights-b51418edc480&lt;/a&gt;&lt;/p&gt;

</description>
      <category>node</category>
      <category>javascript</category>
      <category>windows</category>
      <category>powershell</category>
    </item>
    <item>
      <title>Instalando WSL 2, Ubuntu 22.04 e Docker - Windows 11</title>
      <dc:creator>Cezar Augusto Mezzalira</dc:creator>
      <pubDate>Mon, 06 Nov 2023 01:00:08 +0000</pubDate>
      <link>https://dev.to/cezarmezzalira/instalando-wsl-2-ubuntu-2204-e-docker-windows-11-ei3</link>
      <guid>https://dev.to/cezarmezzalira/instalando-wsl-2-ubuntu-2204-e-docker-windows-11-ei3</guid>
      <description>&lt;h2&gt;
  
  
  1- Configurando o WSL 2 e instalando o Ubuntu 22.04
&lt;/h2&gt;

&lt;p&gt;1.1 - Habilite a execução de scripts remotos na máquina&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;Set-ExecutionPolicy&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-ExecutionPolicy&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;RemoteSigned&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Scope&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;LocalMachine&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;1.2 - Abra o iniciar e digite powershell, clique com o botão direito sobre e clique em executar como administrador.&lt;/p&gt;

&lt;p&gt;1.3 - Em seguida, vamos criar o arquivo de configuração do WSL para que ele use poucos recursos da sua máquina. Vamos criar um arquivo na pasta do nosso usuário com o comando abaixo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;code&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$home&lt;/span&gt;&lt;span class="nx"&gt;/.wslconfig&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;1.4 - Agora, copie o código abaixo e cole dentro do arquivo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight toml"&gt;&lt;code&gt;&lt;span class="nn"&gt;[wsl2]&lt;/span&gt;
&lt;span class="py"&gt;memory&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1024&lt;/span&gt;&lt;span class="err"&gt;MB&lt;/span&gt;
&lt;span class="py"&gt;processors&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="py"&gt;swap&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2048&lt;/span&gt;&lt;span class="err"&gt;MB&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;1.5 - Agora, ainda dentro do powershell execute os comandos abaixo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;dism.exe&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/online&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/enable-feature&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/featurename:VirtualMachinePlatform&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/all&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/norestart&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="n"&gt;dism.exe&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/online&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/enable-feature&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/featurename:Microsoft-Windows-Subsystem-Linux&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/all&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/norestart&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;1.6 - Ainda no terminal, execute o comando abaixo para reiniciar sua máquina. Antes de reiniciar, certifique-se de salvar e fechar qualquer arquivo importante.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;shutdown&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-r&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-f&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-t&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;0&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;1.7 - Após o computador reiniciar, vamos instalar o Ubuntu 22.04 como nosso Linux. Execute os comandos abaixo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;wsl&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;--update&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="n"&gt;wsl&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;--install&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Ubuntu-22.04&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  2- Configurações dentro do Linux
&lt;/h2&gt;

&lt;p&gt;2.1 - Ao terminar a instalação, você precisará informar o nome de usuário e a senha. minha sugestão é que usar o seu primeiro nome e a senha ser uma senha que você lembre depois, pois, vamos usa-la dentro da nossa máquina Linux. &lt;/p&gt;

&lt;p&gt;Se tudo correr bem, a saída do terminal deverá ficar parecida com essa:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;Ubuntu&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;22.04&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;LTS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;is&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;already&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;installed.&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;Launching&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Ubuntu&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;22.04&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;LTS...&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;Installing&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;this&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;may&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;take&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;few&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;minutes...&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;Please&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;create&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;default&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;UNIX&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;account.&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;The&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;username&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;does&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;not&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;need&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;to&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;match&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;your&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Windows&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;username.&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="kr"&gt;For&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;more&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;information&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;visit:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;https://aka.ms/wslusers&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;Enter&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;UNIX&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;username:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;cezar&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;New&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;password:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;Retype&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;password:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;passwd:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;password&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;updated&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;successfully&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;The&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;operation&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;completed&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;successfully.&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;Installation&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;successful&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="n"&gt;To&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;run&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;command&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;as&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;administrator&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"root"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;use&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"sudo &amp;lt;command&amp;gt;"&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;See&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"man sudo_root"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;details.&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="n"&gt;Welcome&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;to&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Ubuntu&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;22.04.2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;LTS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;GNU/Linux&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;5.15.90.1-microsoft-standard-WSL2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;x86_64&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;

 &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Documentation:&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nx"&gt;https://help.ubuntu.com&lt;/span&gt;&lt;span class="w"&gt;
 &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Management:&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="nx"&gt;https://landscape.canonical.com&lt;/span&gt;&lt;span class="w"&gt;
 &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Support:&lt;/span&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nx"&gt;https://ubuntu.com/advantage&lt;/span&gt;&lt;span class="w"&gt;


&lt;/span&gt;&lt;span class="n"&gt;This&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;is&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;shown&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;once&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;day.&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;To&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;disable&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;it&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;please&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;create&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;the&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;/home/cezar/.hushlogin&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;file.&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;cezar&lt;/span&gt;&lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="nx"&gt;DESKTOP-4BPE94H:~&lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;cezar&lt;/span&gt;&lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="nx"&gt;DESKTOP-4BPE94H:~&lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;2.2 - Agora que estamos dentro da nossa máquina Linux, vamos atualizar todos os pacotes para não termos problemas ao instalar o docker. Execute os comandos abaixo e aguarde a instalação (vamos p):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt update &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;sudo &lt;/span&gt;apt full-upgrade &lt;span class="nt"&gt;-y&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  3 - Instalando e configurando o docker
&lt;/h2&gt;

&lt;p&gt;O docker será usado em nossas aulas para podermos executar nosso banco de dados sem ter que ficar instalando ferramentas extras em nossa máquina.&lt;/p&gt;

&lt;p&gt;3.1 - Para instalar o docker dentro do nosso Linux, vamos executar um script que já faz todo o trabalho para nós. Execute os comandos abaixo e aguarde a conclusão:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://get.docker.com &lt;span class="nt"&gt;-o&lt;/span&gt; get-docker.sh
&lt;span class="nb"&gt;sudo &lt;/span&gt;sh get-docker.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;3.2 - Para facilitar nosso desenvolvimento, vamos desabilitar a execução do docker com sudo dentro do nosso Linux, através do comando abaixo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;usermod &lt;span class="nt"&gt;-aG&lt;/span&gt; docker &lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;USER&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;3.4 - Para aplicar as configurações do docker, vamos sair da nossa máquina com o comando &lt;code&gt;exit&lt;/code&gt;. Não feche o terminal.&lt;/p&gt;

&lt;p&gt;3.5 - Agora, vamos acessar nossa máquina Linux para concluir nosso setup. Dentro do mesmo terminal, digite o comando &lt;code&gt;wsl&lt;/code&gt;. Esse comando vai nos colocar dentro da máquina Linux dentro do terminal do powershell. Louco né?&lt;/p&gt;

&lt;p&gt;3.6 - Dentro do Linux, vamos testar nosso docker, executando o comando abaixo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker run hello-world
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A saída deverá ser parecida com a abaixo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cezar@DESKTOP-4BPE94H:/mnt/c/Users/Cezar Mezzalira&lt;span class="nv"&gt;$ &lt;/span&gt;docker run hello-world

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the &lt;span class="s2"&gt;"hello-world"&lt;/span&gt; image from the Docker Hub.
    &lt;span class="o"&gt;(&lt;/span&gt;amd64&lt;span class="o"&gt;)&lt;/span&gt;
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 &lt;span class="nv"&gt;$ &lt;/span&gt;docker run &lt;span class="nt"&gt;-it&lt;/span&gt; ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

cezar@DESKTOP-4BPE94H:/mnt/c/Users/Cezar Mezzalira&lt;span class="err"&gt;$&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;3.7 - Parabéns, agora temos o Linux e o Docker instalados com sucesso na sua máquina :)&lt;/p&gt;

</description>
      <category>wsl</category>
      <category>windows11</category>
      <category>ubuntu</category>
      <category>docker</category>
    </item>
    <item>
      <title>Instalando o Visual Studio Code para programar em Java no Windows</title>
      <dc:creator>Cezar Augusto Mezzalira</dc:creator>
      <pubDate>Mon, 13 Feb 2023 03:20:16 +0000</pubDate>
      <link>https://dev.to/cezarmezzalira/instalando-o-visual-studio-code-para-programar-em-java-no-windows-5a0i</link>
      <guid>https://dev.to/cezarmezzalira/instalando-o-visual-studio-code-para-programar-em-java-no-windows-5a0i</guid>
      <description>&lt;p&gt;Antes de começarmos, certifique-se de ter instalado o JDK (Java Development Kit). &lt;/p&gt;

&lt;p&gt;Você pode seguir meu tutorial &lt;a href="https://dev.to/cezarmzz/instalando-o-jdk-17-no-windows-11-11ln"&gt;aqui&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Com o JDK instalado, vamos instalar e configurar nosso Visual Studio Code ou também chamado de VSCode.&lt;/p&gt;

&lt;p&gt;Baixe o instalador do VSCode, acesse:&lt;br&gt;
&lt;a href="https://code.visualstudio.com/Download" rel="noopener noreferrer"&gt;https://code.visualstudio.com/Download&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Em seguida, clique no botão Windows, conforme a imagem abaixo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2bey5pstihbcqei4bk7x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2bey5pstihbcqei4bk7x.png" alt=" " width="800" height="391"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalando o Visual Studio Code
&lt;/h2&gt;

&lt;p&gt;Agora, abra o programa de instalação. Você vai chegar nessa tela:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2tvn5dm6m7ve3yef7jyi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2tvn5dm6m7ve3yef7jyi.png" alt=" " width="609" height="471"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Marque o opção &lt;strong&gt;Eu aceito o acordo&lt;/strong&gt; e clique em próximo.&lt;/p&gt;

&lt;p&gt;Na tela &lt;strong&gt;Selecione o Local de Destino&lt;/strong&gt;, clique em próximo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F96536bi8z5cbi2jpq0rt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F96536bi8z5cbi2jpq0rt.png" alt=" " width="608" height="471"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Na tela &lt;strong&gt;Selecionar a Pasta do Menu Iniciar&lt;/strong&gt;, clique em próximo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjy761wioo5d9y92vlawz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjy761wioo5d9y92vlawz.png" alt=" " width="608" height="477"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora, na tela &lt;strong&gt;Selecionar Tarefas Adicionais&lt;/strong&gt;, marque as opções conforme a imagem abaixo e em seguida clique em próximo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq0ywsn34e6nbzn3ms2nc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq0ywsn34e6nbzn3ms2nc.png" alt=" " width="612" height="476"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora, clique em &lt;strong&gt;Instalar&lt;/strong&gt; e aguarde a conclusão.&lt;/p&gt;

&lt;p&gt;Ao concluir a instalação, deixe marcada a opção &lt;strong&gt;Iniciar o Visual Studio Code&lt;/strong&gt; e clique em &lt;strong&gt;Concluir&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcphneu0hk7ohppdf9wso.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcphneu0hk7ohppdf9wso.png" alt=" " width="612" height="481"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Se o seu sistema estiver em Português Brasil, o VSCode vai pedir para instalar o pacote de idiomas automaticamente.&lt;/p&gt;

&lt;p&gt;Para isso, ao iniciar o VSCode pela primeira vez, será apresentada uma notificação no canto inferior direito, com um botão &lt;strong&gt;Instalar e Reiniciar (Install and Restart)&lt;/strong&gt;, conforme a imagem abaixo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fweub060zastcu7d3sj0z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fweub060zastcu7d3sj0z.png" alt=" " width="800" height="599"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ao clicar no botão, aguarde até o VSCode reiniciar e retornar para a tela principal.&lt;/p&gt;

&lt;p&gt;Ao retornar, vamos configurar o VSCode com algumas configurações que recomendo como padrão para serem usadas em qualquer linguagem.&lt;/p&gt;

&lt;h2&gt;
  
  
  Configurações sugeridas
&lt;/h2&gt;

&lt;p&gt;Pressione as teclas &lt;code&gt;Ctrl + Shift + P&lt;/code&gt; e em seguida digite `&lt;code&gt;pref json&lt;/code&gt; na caixinha que aparecer e pressione Enter.&lt;/p&gt;

&lt;p&gt;O arquivo que acabamos de abrir é onde ficam escritas todas as configurações do nosso editor, porém ele está vazio.&lt;/p&gt;

&lt;p&gt;Agora, acesse o esse &lt;a href="https://gist.githubusercontent.com/cezarmezzalira/caa9f0e203e252f35e1b36a0aaeba4a2/raw/54c025c156dc6d82baeb373e70fbde304b2d83ae/settings.json" rel="noopener noreferrer"&gt;link&lt;/a&gt; e copie o conteúdo apresentado na tela. Dica: Pressione Ctrl + A e depois Ctrl + C para copiar todo o conteúdo.&lt;/p&gt;

&lt;p&gt;Em seguida, dentro do arquivo que acabamos de abrir, pressione as teclas Ctrl + A e Ctrl + V. Agora, pressione as teclas Ctrl + S para salvar.&lt;/p&gt;

&lt;p&gt;O VSCode vai pedir para reiniciar. Clique em reiniciar conforme a imagem abaixo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq4gw3mz48cazaiyuohd6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq4gw3mz48cazaiyuohd6.png" alt=" " width="695" height="313"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para finalizar, feche todos os arquivos abertos clicando no x ao lado do nome do arquivo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Adicionando suporte ao Java
&lt;/h2&gt;

&lt;p&gt;Vamos precisar instalar uma extensão que irá configurar todas as demais extensões que precisamos.&lt;/p&gt;

&lt;p&gt;Para instalar, clicamos no icone com quadradinhos no lado esquerdo.&lt;/p&gt;

&lt;p&gt;Agora, na parte superior da barra de extensões, digite &lt;code&gt;Extension Pack for Java&lt;/code&gt;, clique em instalar e aguarde:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faqu2ycc6ovb68cqzhnbj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faqu2ycc6ovb68cqzhnbj.png" alt=" " width="800" height="321"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;O processo de instalação pode levar alguns minutos, dependendo da velocidade da sua rede.&lt;/p&gt;

&lt;p&gt;Ao final da instalação, a seguinte tela é exibida:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F46gz7vk2s59j31tf0crw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F46gz7vk2s59j31tf0crw.png" alt=" " width="800" height="426"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Como já temos o JDK instalado, podemos fechar essa tela.&lt;/p&gt;

&lt;h2&gt;
  
  
  Criando um projeto de testes
&lt;/h2&gt;

&lt;p&gt;Para validarmos que nossa instalação está funcionando, vamos criar um projeto simples usando o próprio VSCode.&lt;/p&gt;

&lt;p&gt;Clicando no ícone do Explorador (primeiro ícone abaixo do menu arquivo), temos um botão chamado &lt;strong&gt;Create Java Project&lt;/strong&gt;, clique nele.&lt;/p&gt;

&lt;p&gt;Agora, são mostradas os tipos de projetos que podemos criar. Clique na primeira opção &lt;strong&gt;No buld tools&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa9z12hdslf7x64slkxwx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa9z12hdslf7x64slkxwx.png" alt=" " width="800" height="429"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Na sequência, escolha a pasta onde será criado seu projeto. No meu caso vou escolher a pasta Área de Trabalho e em seguida clico em &lt;strong&gt;Select the project location&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv5r7hzd6d3szmr5auunj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv5r7hzd6d3szmr5auunj.png" alt=" " width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora, preciso informar o nome do meu projeto. Nesse caso, vou colocar &lt;code&gt;teste-jdk&lt;/code&gt; e pressiono Enter para concluir a criação:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuh0t0l6ll8770f2qhsif.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuh0t0l6ll8770f2qhsif.png" alt=" " width="800" height="287"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Se você abrir o Windows Explorer na Área de Trabalho, verá que uma pasta com nome &lt;code&gt;teste-sdk&lt;/code&gt; foi criada. Ela irá guardar os arquivos do seu projeto.&lt;/p&gt;

&lt;p&gt;Agora, vamos abrir o arquivo App.java que está dentro da pasta &lt;code&gt;src&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fav6xoyp7jx58mqyqbb5v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fav6xoyp7jx58mqyqbb5v.png" alt=" " width="800" height="557"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para executar, basta clicar no botão play que fica no menu superior do lado direito ou no texto Run dentro do código:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4deyn0mnnchlwt3v7p3o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4deyn0mnnchlwt3v7p3o.png" alt=" " width="800" height="205"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ao executar o projeto, o Windows vai pedir uma liberação do Firewall para o JDK. Marque as opções conforme a tela abaixo e clique em permitir acesso:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2tzn9rjaenrm0irq7vjr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2tzn9rjaenrm0irq7vjr.png" alt=" " width="541" height="389"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Após liberar o acesso do firewall, uma aba do terminal será aberta dentro do VSCode e a saída deverá ser como essa:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1v1d5fxjgr38kno86a8u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1v1d5fxjgr38kno86a8u.png" alt=" " width="800" height="557"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Se o texto &lt;code&gt;Hello, World!&lt;/code&gt; foi impresso, você concluiu com sucesso a instalação.&lt;/p&gt;

&lt;p&gt;Caso tenha algum problema ou até mesmo uma dúvida, deixe nos comentários.&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Instalando o JDK 17, 21 ou 25 no Windows 11</title>
      <dc:creator>Cezar Augusto Mezzalira</dc:creator>
      <pubDate>Mon, 13 Feb 2023 02:04:08 +0000</pubDate>
      <link>https://dev.to/cezarmezzalira/instalando-o-jdk-17-no-windows-11-11ln</link>
      <guid>https://dev.to/cezarmezzalira/instalando-o-jdk-17-no-windows-11-11ln</guid>
      <description>&lt;p&gt;Update: 03/04/2024: O último LTS é a versão 21. Estou atualizando o post, pois, o processo de instalação será o mesmo tanto para a versão 17 LTS quanto para a versão 21 LTS.&lt;/p&gt;

&lt;p&gt;Update 2: 09/03/2026: O último LTS é a versão 25.&lt;/p&gt;

&lt;p&gt;Para começar, vamos baixar o pacote MSI para Windows. &lt;/p&gt;

&lt;p&gt;Acesse o link para baixar a versão que você precisa:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://adoptium.net/temurin/releases/?os=windows&amp;amp;arch=x64&amp;amp;package=jdk&amp;amp;version=17" rel="noopener noreferrer"&gt;Download JDK 17 LTS&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://adoptium.net/temurin/releases/?os=windows&amp;amp;arch=x64&amp;amp;package=jdk&amp;amp;version=21" rel="noopener noreferrer"&gt;Download JDK 21 LTS &lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://adoptium.net/temurin/releases/?os=windows&amp;amp;arch=x64&amp;amp;package=jdk&amp;amp;version=25" rel="noopener noreferrer"&gt;Download JDK 25 LTS &lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Em seguida, execute o programa de instalação. A tela abaixo deverá aparecer e então clique em next:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fme9la5zo25sg0faazhr7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fme9la5zo25sg0faazhr7.png" alt=" " width="503" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Em seguida, precisamos habilitar duas configurações. A primeira, irá adicionar a variável JAVA_HOME automaticamente ao PATH do Windows. &lt;/p&gt;

&lt;p&gt;Para isso, clique em &lt;strong&gt;Set JAVA_HOME variable&lt;/strong&gt; e selecione a opção &lt;strong&gt;Will be installed on local hard drive&lt;/strong&gt;, conforme a imagem abaixo: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm8zm0nvn994ddettmm0n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm8zm0nvn994ddettmm0n.png" alt=" " width="506" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A próxima configuração adicionará ao registro do Windows a localização do local de instalação do JDK. Clique em &lt;strong&gt;JavaSoft (Oracle) registry keys&lt;/strong&gt; e selecione a opção &lt;strong&gt;Will be installed on local hard drive&lt;/strong&gt;, conforme a imagem abaixo: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftkk5raovoxp3rw9ob4ad.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftkk5raovoxp3rw9ob4ad.png" alt=" " width="504" height="391"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Clique em next.&lt;/p&gt;

&lt;p&gt;Na próxima tela, clique em Install, lembrando de aceitar que as alterações sejam feitas no computador.&lt;/p&gt;

&lt;p&gt;No final, a seguinte tela irá aparecer:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy9v31eemhmwlsvnuknjt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy9v31eemhmwlsvnuknjt.png" alt=" " width="506" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ao clicar em &lt;strong&gt;Finish&lt;/strong&gt;, você já estará pronto para usar seu JDK.&lt;/p&gt;

&lt;p&gt;O próximo passo que sugiro é instalar o Visual Studio Code para ser seu editor de código e configura-lo para trabalhar com Java.&lt;/p&gt;

&lt;p&gt;Para isso, fiz um tutorial completo para lhe ajudar, basta clicar &lt;a href="https://dev.to/cezarmezzalira/instalando-o-visual-studio-code-para-programar-em-java-no-windows-5a0i"&gt;aqui&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Se esse post te ajudou, deixe um like ou comente aqui embaixo se você estiver tendo algum problema.&lt;/p&gt;

</description>
      <category>java</category>
      <category>jdk</category>
    </item>
    <item>
      <title>Instalando o JDK (Java Development Kit) no Windows 11</title>
      <dc:creator>Cezar Augusto Mezzalira</dc:creator>
      <pubDate>Mon, 13 Feb 2023 01:59:34 +0000</pubDate>
      <link>https://dev.to/cezarmezzalira/instalando-o-visual-studio-code-no-windows-11-56hm</link>
      <guid>https://dev.to/cezarmezzalira/instalando-o-visual-studio-code-no-windows-11-56hm</guid>
      <description>&lt;p&gt;Para começar, vamos baixar o último LTS do JDK, que no momento do post está na versão 17.&lt;/p&gt;

&lt;p&gt;Acesse o link e clique no botão &lt;strong&gt;Latest LTS Release&lt;/strong&gt;, conforme imagem abaixo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc1wlg241ljtbtl7dkwcx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc1wlg241ljtbtl7dkwcx.png" alt="Image description" width="800" height="573"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Em seguida, execute o programa de instalação. A tela abaixo deverá aparecer e então clique em next:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fme9la5zo25sg0faazhr7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fme9la5zo25sg0faazhr7.png" alt="Image description" width="503" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Em seguida, precisamos habilitar duas configurações. A primeira, irá adicionar a variável JAVA_HOME automaticamente ao PATH do Windows. &lt;/p&gt;

&lt;p&gt;Para isso, clique em &lt;strong&gt;Set JAVA_HOME variable&lt;/strong&gt; e selecione a opção &lt;strong&gt;Will be installed on local hard drive&lt;/strong&gt;, conforme a imagem abaixo: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm8zm0nvn994ddettmm0n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm8zm0nvn994ddettmm0n.png" alt="Image description" width="506" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A próxima configuração adicionará ao registro do Windows a localização do local de instalação do JDK. Clique em &lt;strong&gt;JavaSoft (Oracle) registry keys&lt;/strong&gt; e selecione a opção &lt;strong&gt;Will be installed on local hard drive&lt;/strong&gt;, conforme a imagem abaixo: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftkk5raovoxp3rw9ob4ad.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftkk5raovoxp3rw9ob4ad.png" alt="Image description" width="504" height="391"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Clique em next.&lt;/p&gt;

&lt;p&gt;Na próxima tela, clique em Install, lembrando de aceitar que as alterações sejam feitas no computador.&lt;/p&gt;

&lt;p&gt;No final, a seguinte tela irá aparecer:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy9v31eemhmwlsvnuknjt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy9v31eemhmwlsvnuknjt.png" alt="Image description" width="506" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ao clicar em &lt;strong&gt;Finish&lt;/strong&gt;, você já estará pronto para usar seu JDK.&lt;/p&gt;

</description>
      <category>discuss</category>
    </item>
    <item>
      <title>Instalando o Git no Windows 11</title>
      <dc:creator>Cezar Augusto Mezzalira</dc:creator>
      <pubDate>Mon, 13 Feb 2023 01:01:46 +0000</pubDate>
      <link>https://dev.to/cezarmezzalira/instalando-o-git-no-windows-11-1g2g</link>
      <guid>https://dev.to/cezarmezzalira/instalando-o-git-no-windows-11-1g2g</guid>
      <description>&lt;p&gt;Download git para Windows:&lt;br&gt;
&lt;a href="https://git-scm.com/download/win" rel="noopener noreferrer"&gt;https://git-scm.com/download/win&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Clique em 64-bit &lt;strong&gt;Git for Windows Setup&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fazy2pnzdwp37sf6ferf7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fazy2pnzdwp37sf6ferf7.png" alt="Image description" width="800" height="470"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Após concluir o download, abra ao arquivo e na primeira tela, clique em next:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fizvipchgd06jfns31ura.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fizvipchgd06jfns31ura.png" alt="Image description" width="508" height="401"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Na tela &lt;strong&gt;Select Destination Location&lt;/strong&gt;, clique em next:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8xlc7dmpcm914st7zm0e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8xlc7dmpcm914st7zm0e.png" alt="Image description" width="507" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Em seguida, na tela &lt;strong&gt;Select Components&lt;/strong&gt;, marque as opção abaixo em vermelho e clique em next:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0pgftixj5py4wx60g5hf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0pgftixj5py4wx60g5hf.png" alt="Image description" width="508" height="401"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Na tela &lt;strong&gt;Select Start Menu Folder&lt;/strong&gt;, clique em next:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frrxfj0mas1x10c4uf02v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frrxfj0mas1x10c4uf02v.png" alt="Image description" width="510" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora, na tela &lt;strong&gt;Chosing the default editor used by Git&lt;/strong&gt;, na caixa de seleção, esolha &lt;strong&gt;Use Visual Studio Code as Git's default editor&lt;/strong&gt; e clique em next:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcwhatvskcnrw8zuiv1sc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcwhatvskcnrw8zuiv1sc.png" alt="Image description" width="508" height="401"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Na tela &lt;strong&gt;Adjusting the name of the initial branch in new repositories&lt;/strong&gt;, selecione a opção &lt;strong&gt;OVerride the default branch name for new repositories&lt;/strong&gt; e clique em next:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feur0fiauwebjwr0td5vs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feur0fiauwebjwr0td5vs.png" alt="Image description" width="506" height="399"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Em seguida, na tela &lt;strong&gt;Adjusting your PATH environment&lt;/strong&gt;, deixe marcada a seleção padrão &lt;strong&gt;Git from the command line and also from 3rd-party software&lt;/strong&gt; e clique em next:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foxjxub7khgkm0rkfqkdx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foxjxub7khgkm0rkfqkdx.png" alt="Image description" width="507" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Na tela &lt;strong&gt;Choosing the SSH executable&lt;/strong&gt;, deixe marcada a opção padrão &lt;strong&gt;Use bundled OpenSSH&lt;/strong&gt; e clique em next:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F67nyoy2nqy618exmz9zy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F67nyoy2nqy618exmz9zy.png" alt="Image description" width="509" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Já na tela ** Choosing HTTPS transport backend*&lt;em&gt;, deixe marcada a opção padrão  **Use the OpenSSL library&lt;/em&gt;* e clique em next:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fma3wbd76m79bmy72putg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fma3wbd76m79bmy72putg.png" alt="Image description" width="510" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora, na tela &lt;strong&gt;Configuring the line ending conversions&lt;/strong&gt;, deixe marcada a opção padrão &lt;strong&gt;Checkout Windows-style, commit Unix-style line endings&lt;/strong&gt; e clique em next:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb9glc738d5kqulixrw2l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb9glc738d5kqulixrw2l.png" alt="Image description" width="506" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Na tela &lt;strong&gt;Configuring the terminal emulator to use with Git Bash&lt;/strong&gt;, deixe marcada a opção padrão &lt;strong&gt;Use MinTTY (the default terminal od MSYS2)&lt;/strong&gt; e clique em next:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj7pnn9l6eqgy6r433e2b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj7pnn9l6eqgy6r433e2b.png" alt="Image description" width="508" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Na tela &lt;strong&gt;Choose the default behavior of &lt;code&gt;git pull&lt;/code&gt;&lt;/strong&gt;. deixe marcada a opção padrão &lt;strong&gt;Default (fast-forward or merge)&lt;/strong&gt; e clique em next:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbt2i2jrbfp2rhscddcpl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbt2i2jrbfp2rhscddcpl.png" alt="Image description" width="512" height="404"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Na tela &lt;strong&gt;Choose a credential helper&lt;/strong&gt;, deixe marcada a opção padrão &lt;strong&gt;Git Credential Manager&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5z4iq6tiqwvx009610i5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5z4iq6tiqwvx009610i5.png" alt="Image description" width="509" height="402"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Na tela &lt;strong&gt;Configuring extra options&lt;/strong&gt;, deixe marcado apenas conforme a imagem abaixo e clique em next:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7b3jq3w4x33b4tepn915.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7b3jq3w4x33b4tepn915.png" alt="Image description" width="509" height="399"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora, na tela &lt;strong&gt;Configuring experimental options&lt;/strong&gt;, não marque nenhuma das opções e clique em &lt;strong&gt;Install&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F75y1g0ee1zj999ckrs5b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F75y1g0ee1zj999ckrs5b.png" alt="Image description" width="504" height="399"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ao final da instalação, na tela &lt;strong&gt;Completing the Git Setup Wizard&lt;/strong&gt;, marque a opçãop &lt;strong&gt;Launch Git Bash&lt;/strong&gt; e desmarque a opção &lt;strong&gt;View Release Notes&lt;/strong&gt;. Em seguida clique em Finish:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjlxsg2quui1oixybxuk5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjlxsg2quui1oixybxuk5.png" alt="Image description" width="511" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora, a seguinte tela de terminal deve ter aparecido:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbvcpfclz2zmwmv782lzg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbvcpfclz2zmwmv782lzg.png" alt="Image description" width="595" height="390"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Esse terminal é chamado MINGW64 e é  um terminal que emula um terminal Unix dentro do Windows.&lt;/p&gt;

&lt;p&gt;Para finalizar, dentro do terminal MINGW64 vamos configurar o nome do usuário e o email que serão usados pelo Git a cada commit.&lt;/p&gt;

&lt;p&gt;Copie e execute uma linha de configuração por vez, substituindo os dados do comando pelos seus dados:&lt;/p&gt;

&lt;p&gt;Comando para configurar o nome do usuário:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git config &lt;span class="nt"&gt;--global&lt;/span&gt; user.name &lt;span class="s2"&gt;"Seu Nome"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Exemplo de como deve ficar o comando no seu terminal:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F93xsr6dujvhoe6pw6oov.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F93xsr6dujvhoe6pw6oov.png" alt="Image description" width="800" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Pressione &lt;strong&gt;Enter&lt;/strong&gt; e o seu nome de usuário será configurado.&lt;/p&gt;

&lt;p&gt;E agora, copie o comando abaixo e cole dentro do terminal, lembrando de alterar o email de exemplo pelo seu próprio email:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git config &lt;span class="nt"&gt;--global&lt;/span&gt; user.email email@example.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Exemplo de como deve ficar o comando no seu terminal:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcf1ny4gggsbk1wg3bafp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcf1ny4gggsbk1wg3bafp.png" alt="Image description" width="800" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Pressione &lt;strong&gt;Enter&lt;/strong&gt; para salvar o seu email.&lt;/p&gt;

&lt;p&gt;Para confirmar que as configurações estão corretas, basta executar o seguinte comando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git config &lt;span class="nt"&gt;--list&lt;/span&gt; | &lt;span class="nb"&gt;grep &lt;/span&gt;user
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ao pressionar enter, sua saída deverá ser parecida com a imagem abaixo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ldntjx4603ps9zskch4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ldntjx4603ps9zskch4.png" alt="Image description" width="800" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Caso algum dos dois valores esteja incorreto, basta copiar o comando mostrado anteriormente, alterar e aplicar novamente.&lt;/p&gt;

&lt;p&gt;Pronto! Você já pode começar a usar o Git dentro do Windows 11.&lt;/p&gt;

&lt;p&gt;Se tiver dúvidas, por favor, comente abaixo e não esqueça de reagir a essa publicação.&lt;/p&gt;

</description>
      <category>bug</category>
      <category>debugging</category>
      <category>productivity</category>
    </item>
    <item>
      <title>POV - Why Angular or React to web applications?</title>
      <dc:creator>Cezar Augusto Mezzalira</dc:creator>
      <pubDate>Thu, 30 Jun 2022 18:28:16 +0000</pubDate>
      <link>https://dev.to/cezarmezzalira/pov-why-angular-or-react-to-web-applications-3mam</link>
      <guid>https://dev.to/cezarmezzalira/pov-why-angular-or-react-to-web-applications-3mam</guid>
      <description>&lt;p&gt;Hey folks, how are you going?&lt;/p&gt;

&lt;p&gt;It's me again.&lt;/p&gt;

&lt;p&gt;In my adventures on web development world, I have a lot of frustrating experiences, which makes me to avoid for a few years to create or update my knowledge about hot technologies in this market.&lt;/p&gt;

&lt;p&gt;It happens between middle of 2016 until middle of 2019, after I get a graduate degree of Java Specialist.&lt;/p&gt;

&lt;p&gt;At those days, I'm using Spring technologies to make CRUD stuff and to "frontend" I'm using Java Server Faces (JSF) with Primefaces lib.&lt;/p&gt;

&lt;p&gt;I insisted on this project about 2 years, because, I decided to go forward from my college final project, making some improvements.&lt;/p&gt;

&lt;p&gt;After that, I got sick of software development, whatever technology it was. Java is a great language, with a lot of things consolidated, but, that experience with Primefaces, maked my head to run away from Java.&lt;/p&gt;

&lt;p&gt;At that time, I get into my head a secret desire: learn AngularJS. It make sense, because Java and AngularJS they're most used technologies to backend and frontend. But, it remained in my head only.&lt;/p&gt;

&lt;p&gt;The years are gone and around middle of 2019 I'm introduced to a new world: the Omnistack. That stack includes JavaScript which core language to create backend services with REST API joined with React and React native to create frontend web and mobile respectively.&lt;/p&gt;

&lt;p&gt;I'm fallen in love again for development, because, I was't believe it's true: One language only to create everything I need.&lt;/p&gt;

&lt;p&gt;Since then, I studied more and more about JavaScript and TypeScript too, thanks to Rocketseat. With this knowledge, I created some interesting applications, learned a lot of other things like how to put in production an API REST and a web app in React, how to use AWS services like S3, Amplify, SES and other stuff.&lt;/p&gt;

&lt;p&gt;So okay, where Angular returns into my life? Well, in 2021, I assumed a new challenge: maintain an abandoned project that uses Ionic Framework with Angular.&lt;/p&gt;

&lt;p&gt;As I always said: needs make the opportunity. In this case, more than that.&lt;/p&gt;

&lt;p&gt;When I look that project, I think first: where I going through&lt;/p&gt;

&lt;p&gt;Work with React, as libs to create applications, gave me a freedom to make a lot of decisions, like, which libraries I use to make HTTP requests, or to routing, or to style.&lt;/p&gt;

&lt;p&gt;Angular is a framework, based almost in modules and libraries included into it. To make HTTP calls? Use http module. styles? choose at project creation between SCCS, SASS or CSS.&lt;/p&gt;

&lt;p&gt;Basically, two sides in a bigger world of libraries and frameworks to frontend web applications.&lt;/p&gt;

&lt;p&gt;After a year in this scenario, you wondering: what technology is your favorite?&lt;/p&gt;

&lt;p&gt;And I answer you: the technology that solves my problem. I don't care if I need to use only what is inside the framework. If I can develop faster and I get my apps working faster, with easy maintenance, great, I go with Angular. If I need to get free and decide to use only libraries I want, in small projects, I don't think twice: my choice is React.&lt;/p&gt;

&lt;p&gt;This is my last choice? Nope. Why? Because every day a new framework, a new library or a new tech born, and, at the end of day, only one thing cares: the problem has been solved.&lt;/p&gt;

&lt;p&gt;If you got until here, thanks for your time.&lt;br&gt;
Please, let me know in the comments your experience with development and technologies that came or got out in your career.&lt;/p&gt;

&lt;p&gt;Til the next one!&lt;/p&gt;

</description>
      <category>angular</category>
      <category>react</category>
      <category>javascript</category>
      <category>typescript</category>
    </item>
    <item>
      <title>Why you should favour named functions in place of anonymous functions at callback</title>
      <dc:creator>Cezar Augusto Mezzalira</dc:creator>
      <pubDate>Thu, 03 Mar 2022 14:05:22 +0000</pubDate>
      <link>https://dev.to/cezarmezzalira/why-you-should-favour-named-functions-in-place-of-anonymous-functions-at-callback-2lga</link>
      <guid>https://dev.to/cezarmezzalira/why-you-should-favour-named-functions-in-place-of-anonymous-functions-at-callback-2lga</guid>
      <description>&lt;p&gt;Hello there! It's your cap again!&lt;/p&gt;

&lt;p&gt;Recently, when I learn more about functions in JavScript, I found something who get my attention. In this blog &lt;a href="https://dmitripavlutin.com/6-ways-to-declare-javascript-functions/"&gt;post&lt;/a&gt; from Dmitri Pavlutin, he explain why favour name function expressions in place of anonyumous functions at callbacks.&lt;/p&gt;

&lt;p&gt;At first, it's a simple thing I said. But, I make a small experiment to test this behavior.&lt;/p&gt;

&lt;p&gt;I created two functions, with same behavior: make a division by an undefined variable.&lt;/p&gt;

&lt;p&gt;Let's check the first scenario, using anonymous function:&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd8e774cn5cgyniv86tzz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd8e774cn5cgyniv86tzz.png" alt="Anonymous function declaration" width="800" height="431"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here, I create an arrow function on map callback. When the function test has been executed, we can see an error stack with various :&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3vwzjt12ff2o2bputk4j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3vwzjt12ff2o2bputk4j.png" alt="Anonymous function error stack" width="800" height="552"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It's a little bit hard to understand what happen.&lt;/p&gt;

&lt;p&gt;So let's check the second scenario. We can watch the map callback function is named function expression declared as &lt;code&gt;divide&lt;/code&gt;.&lt;/p&gt;

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

&lt;p&gt;When the function has been executed, we can see after reference error the name of function has triggered the error:&lt;/p&gt;

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

&lt;p&gt;So, which scenario is easier to debug?&lt;/p&gt;

&lt;p&gt;Imagine you have have this function called inside one, two, three levels of functions. Which one it's easier now?&lt;/p&gt;

&lt;p&gt;My point here, after all of it: use wisely the named expression functions. It's a debug time saver and maintain your code cleaner.&lt;/p&gt;

</description>
      <category>node</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Migrei do VS Code para o VIM</title>
      <dc:creator>Cezar Augusto Mezzalira</dc:creator>
      <pubDate>Sun, 23 May 2021 02:04:29 +0000</pubDate>
      <link>https://dev.to/cezarmezzalira/migrei-do-vs-code-para-o-vim-4o0p</link>
      <guid>https://dev.to/cezarmezzalira/migrei-do-vs-code-para-o-vim-4o0p</guid>
      <description>&lt;h1&gt;
  
  
  Uma mudança gradativa...
&lt;/h1&gt;

&lt;p&gt;Pois é, hoje temos como padrão de editor de código para várias e várias linguagens, é Visual Studio Code, VS Code.&lt;br&gt;
É um ótimo editor de texto, muito mais produtivo e mais simples de se utilizar do que IDE's como Eclipse, IntelliJ (e sua família que inclui o pesadíssimo Android Studio), ou até o NetBeans (eu sou velho, mas conheço quem use ainda kkkk).&lt;br&gt;
Porém, desde o início deste ano, me propus ao desafio de entender, configurar e então usar de forma produtiva o VIM, como meu editor de código/IDE para desenvolver minhas aplicações com TypeScript.&lt;/p&gt;

&lt;h1&gt;
  
  
  VIM não é para todos
&lt;/h1&gt;

&lt;p&gt;Se você não tem paciência e muito menos vontade de aprender coisas novas, o VIM não é feito para você.Não é uma crítica, mas uma verdade.&lt;/p&gt;

&lt;h1&gt;
  
  
  Básico do básico
&lt;/h1&gt;

&lt;h3&gt;
  
  
  DISCLAIMER: ISSO NÃO É UM TUTORIAL, SÓ UMA EXPLICAÇÃO BÁSICA DE COMO USAR O VIM PARA GRAVAR UM ARQUIVO.
&lt;/h3&gt;

&lt;p&gt;A primeira coisa que você vai precisar aprender para usar o VIM é entender que tudo se baseia em uso de teclado e seu fluxo de trabalho é diferente, pois, não é simplesmente abrir e sair escrevendo código.&lt;br&gt;
Supondo que você já tenha instalado VIM na sua máquina, basta abrir um terminal e digitar o comando vim.&lt;br&gt;
Ao abrir um arquivo, por padrão você vai estar no modo &lt;code&gt;NORMAL&lt;/code&gt;.Para editar, pressionando a tecla i você vai entrar no modo INSERT. &lt;br&gt;
Ai então, você vai conseguir inserir um texto ou seu código.Para salvar esse arquivo, você vai pressionar a tecla &lt;code&gt;ESC&lt;/code&gt;, para retornar ao modo NORMAL e em seguida pressione a combinação de teclas &lt;code&gt;:w nomedoarquivo.ts&lt;/code&gt;. O comando &lt;code&gt;:w&lt;/code&gt; vai salvar o arquivo. Para sair do VIM, só pressionar a combinação &lt;code&gt;:q&lt;/code&gt;. &lt;br&gt;
Pronto. Você criou um arquivo, salvou e saiu do vim.&lt;/p&gt;

&lt;h1&gt;
  
  
  Cenário do Caos
&lt;/h1&gt;

&lt;p&gt;Eu usei muito o VSCode, as vezes 3, 4 projetos abertos em janelas diferentes. Quem usa o VSCode sabe que ele não é tão leve assim.&lt;br&gt;
O cenário do caos: notebook i5 8th gen, com 8GB, rodando a distro Linux Pop! OS sem SWAP de memória, somando um Chrome cheio de abas abertas, docker rodando com bancos de dados e aplicações padrões do sistema. Resultado: Sistema travando por completo e desligamento forçado.&lt;br&gt;
Ai inseri um SWAP. Não travou mais, mas as coisas ficaram lentas, bemmmm lentas.&lt;br&gt;
Fui pra solução mais obvia: upgrade para 20GB de memória.Ai fiquei tranquilo, já podia abrir meu cenário do caos sem ser um caos.&lt;br&gt;
Mas ai migrei para um PC de mesa e entreguei o note para minha esposa.&lt;br&gt;
O PC com Ryzen 5 2600 OC @3.9GHz, 16GB 3200MHz, SSD NVME 512GB e uma GTX 760 2GB agora só meu, rodando também POP! OS, ainda sofrendo com o mesmo cenário do caos.&lt;br&gt;
Mas e ai, qual a boa pra ter mudado?&lt;/p&gt;

&lt;p&gt;Usar a máquina sempre no talo, sem nenhuma folguinha me deixa incomodado, porque as vezes pode acontecer de ter que abrir um projeto a mais, mais uma outra instancia do docker rodando um banco de dados pesado, ai tem que ficar fechando coisas para poder abrir outras, não dá né.&lt;br&gt;
Um projeto, 16 processos, quase 1GB de memória alocada:&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvwav06927mra22k7y8dh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvwav06927mra22k7y8dh.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
É muito memória bicho!&lt;/p&gt;

&lt;p&gt;Pesquisei outras alternativas: Atom, Sublime e outras que nem lembro o nome, mas que eram pesadas ou tão mais pesadas quanto o VSCode.&lt;br&gt;
Relutei sobre o fato de aprender do zero sobre VIM, tentei várias vezes, mas não conseguia me acostumar com o básico.&lt;br&gt;
Em fevereiro, decidi acompanhar um curso muito top do Waldemar Neto chamado "DO ZERO A PRODUÇÃO: APRENDA A CONSTRUIR UMA API NODE.JS COM TYPESCRIPT ", onde ele utilizava só VIM para desenvolver.&lt;/p&gt;

&lt;p&gt;MOMENTO JABA GRÁTIS: Se você quiser saber mais sobre o curso, que é de grátis, acesse esse &lt;a href="https://www.youtube.com/playlist?list=PLz_YTBuxtxt6_Zf1h-qzNsvVt46H8ziKh" rel="noopener noreferrer"&gt;link&lt;/a&gt; da playlist no YouTube. O Waldemar trabalha na Atlassian, que desenvolve o Jira, o Trello e o BitBucket.&lt;/p&gt;

&lt;p&gt;Foi então que tomei coragem e pulei de cabeça pra dentro do VIM. Comecei entendendo sobre os modos. Depois usei o próprio VIM para configura-lo através do arquivo de sistema .vimrc, onde ficam todas as configurações de plugins, temas, atalhos e tudo mais.&lt;br&gt;
Desenvolvi toda a aplicação do curso usando o VIM, me adaptando ao seu fluxo de trabalho e digo pra quem quiser: VIM é top!&lt;/p&gt;

&lt;p&gt;O uso de memória é muitoo menor, da uma olhada no mesmo projeto que mostrei antes, agora no VIM:&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fus3ocf9if1ecgbj9if1c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fus3ocf9if1ecgbj9if1c.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
Somando os dois plugins, menos de 300mb, muito menos né?&lt;/p&gt;

&lt;h1&gt;
  
  
  ABANDONEI O VSCODE PRA SEMPRE?
&lt;/h1&gt;

&lt;p&gt;Sim e não. Sim porque agora que passou a fase de adaptação com fluxo de trabalho, consigo fazer tudo que eu fazia normalmente no VSCode, usando apenas atalhos e comandos via teclado.&lt;br&gt;
Não, porque eu as vezes sinto uma falsa impressão que o VSCode ainda é melhor, principalmente para pesquisar arquivos e tudo mais. Mas o VIM tem plugins incríveis para tudo o que você imaginar, sério.&lt;/p&gt;

&lt;h1&gt;
  
  
  VERIDICTUM
&lt;/h1&gt;

&lt;p&gt;Precisei de muita disciplina, força de vontade, pesquisas no Google e paciência para chegar até aqui. Foram muitas horas gastas para aprender o básico, ficar mexendo nas configurações para deixar o mais funcional e prático possível.&lt;br&gt;
Se compararmos ao VSCode, não pesa praticamente nada ter uma pasta aberta no VIM, fora que eu não preciso sair do terminal pra rodar testes ou outros comandos em uma segunda aba.&lt;br&gt;
Por fim, digo mais uma vez: se estiver disposto a passar pela curva de aprendizado, é uma mudança sem volta.&lt;br&gt;
Abraço e até o próximo post.&lt;/p&gt;

&lt;p&gt;Se gostou Compartilhe! Também deixa um comentário caso encontrou algum erro ou queria mais detalhes de como fiz essa mudança :)&lt;/p&gt;

</description>
      <category>vim</category>
      <category>vscode</category>
      <category>javascript</category>
      <category>typescript</category>
    </item>
    <item>
      <title>First steps here...</title>
      <dc:creator>Cezar Augusto Mezzalira</dc:creator>
      <pubDate>Thu, 01 Oct 2020 04:28:30 +0000</pubDate>
      <link>https://dev.to/cezarmezzalira/first-steps-here-3406</link>
      <guid>https://dev.to/cezarmezzalira/first-steps-here-3406</guid>
      <description>&lt;p&gt;So well!&lt;/p&gt;

&lt;p&gt;If you reading this, I'm getting courage to start wrote something about development.&lt;/p&gt;

&lt;p&gt;My plan is to wrote some experiments about my day life on development of react apps with typescript in vscode or maybe, I'm not totaly sure about to use vim.&lt;/p&gt;

&lt;p&gt;So, here's the thing!&lt;/p&gt;

&lt;p&gt;I hope you enjoy this, because I honor if you came to here.&lt;/p&gt;

</description>
      <category>vscode</category>
      <category>vim</category>
      <category>react</category>
      <category>typescript</category>
    </item>
  </channel>
</rss>
