Jekyll2023-10-23T14:11:06+00:00https://luizsouza.com/feed.xmlLuiz SouzaDevSecOps SpecialistLuiz Pereira de Souza FilhoShell script: Formatando saída de API em tabela usando jq e csvlook2023-07-17T15:40:00+00:002023-10-19T20:29:00+00:00https://luizsouza.com/2023/07/17/shell-script-formatando-saida-de-api-em-tabela-usando-jq-e-csvlook<p>Estava fazendo uns acessos a API usando apenas shell script (<code class="language-plaintext highlighter-rouge">curl</code>) e <code class="language-plaintext highlighter-rouge">jq</code> para formatar a saída em JSON quando pensei: “poxa, bem que eu poderia ter uma saída em formato tabela né?” e comecei a pesquisar uma forma legal de fazer isso e encontrei esse tal <code class="language-plaintext highlighter-rouge">csvlook</code> (aplicação do pacote <code class="language-plaintext highlighter-rouge">csvkit</code>). Então resolvi compartilhar essa ideia.</p>
<p>Começando do começo: o que é e pra que serve o <code class="language-plaintext highlighter-rouge">curl</code>, <code class="language-plaintext highlighter-rouge">jq</code> e o <code class="language-plaintext highlighter-rouge">csvlook</code>?</p>
<p>O comando <code class="language-plaintext highlighter-rouge">curl</code> é uma ferramenta de linha de comando que permite que você faça solicitações HTTP para um servidor. Em outras palavras, ele permite que você obtenha informações de um site ou API, como dados, arquivos ou páginas da web. Esse comando é amplamente utilizado por desenvolvedores e administradores de sistema para automatizar tarefas e transferir dados entre servidores.</p>
<p>O comando <code class="language-plaintext highlighter-rouge">jq</code> é uma ferramenta que permite manipular e extrair informações de dados no formato JSON. Com ele, você pode filtrar, selecionar e transformar dados JSON de maneira fácil e eficiente. É como um “mestre dos dados” que entende a estrutura JSON e permite que você faça consultas e extraia apenas as informações relevantes que você precisa. Com o <code class="language-plaintext highlighter-rouge">jq</code>, você pode realizar tarefas complexas de análise de dados JSON com apenas alguns comandos simples.</p>
<p>E por fim, o comando <code class="language-plaintext highlighter-rouge">csvlook</code> que é uma ferramenta útil para visualizar e formatar dados armazenados em arquivos CSV. Ele permite que você visualize facilmente os dados em uma tabela legível, similar a uma planilha. Com o <code class="language-plaintext highlighter-rouge">csvlook</code>, você pode abrir arquivos CSV e obter uma visão clara das informações contidas neles, facilitando a identificação de padrões, tendências ou discrepâncias. É como um “tradutor” que transforma dados CSV em uma apresentação visual organizada, tornando mais fácil para qualquer pessoa entender e analisar os dados sem a necessidade de conhecimento especializado em programação ou planilhas complexas.</p>
<p>Tá bom, falei que o <code class="language-plaintext highlighter-rouge">jq</code> é para manipular JSON e que o <code class="language-plaintext highlighter-rouge">csvlook</code> manipula os resultados em CSV e transforma em um resultado em uma tabela organizada, mas o que JSON e CSV tem em comum pra isso acontecer? Bom, uma manipulação do <code class="language-plaintext highlighter-rouge">jq</code> ajusta exatamente a saída em formato CSV, sacou onde a mágica acontece? Aqui um exemplo pegando dados da SWAPI (Star Wars API):</p>
<p><a href="https://asciinema.org/a/9AzN9fY1oNHO1b8xaEYKOhUA4"><img src="https://asciinema.org/a/9AzN9fY1oNHO1b8xaEYKOhUA4.svg" alt="asciicast" /></a></p>
<p>E é assim que a mágica acontece! Com a combinação do <strong><code class="language-plaintext highlighter-rouge">curl</code></strong>, <strong><code class="language-plaintext highlighter-rouge">jq</code></strong> e <strong><code class="language-plaintext highlighter-rouge">csvlook</code></strong>, você pode obter resultados incríveis ao acessar APIs e manipular dados. De um simples script shell, você pode transformar informações em JSON em tabelas organizadas e legíveis. Então, da próxima vez que precisar visualizar ou analisar dados, lembre-se dessas ferramentas poderosas. Agora é com você, desvende os segredos dos dados com o seu novo arsenal de comandos e deixe a criatividade fluir. Que a força esteja com você, no mundo dos shells e além! 😉</p>Luiz Pereira de Souza FilhoEstava fazendo uns acessos a API usando apenas shell script (curl) e jq para formatar a saída em JSON quando pensei: “poxa, bem que eu poderia ter uma saída em formato tabela né?” e comecei a pesquisar uma forma legal de fazer isso e encontrei esse tal csvlook (aplicação do pacote csvkit). Então resolvi compartilhar essa ideia.8 comandos úteis para programadores em Linux2023-03-27T00:19:00+00:002023-10-15T04:01:20+00:00https://luizsouza.com/2023/03/27/8-comandos-uteis-para-programadores-em-linux<p>Esses dias a minha colega da Umbler, a Dani, me fez uma pergunta inusitada: “<em>tu pode me passar quais são os comandos (mesmo que básicos) que mais tu usa no dia a dia?</em>” Eu achei a pergunta muito boa, tanto que resolvi transformar a resposta neste post! Então bora lá!</p>
<p>Eu uso diversos comandos / programas para me auxiliar no dia a dia, então puxei da memória os 8 comandos que mais usei de forma básica (na realidade dei um <code class="language-plaintext highlighter-rouge">history</code> e olhei meus últimos 1000 comandos e separei 8 que mais se repetiam). 😅 Segue eles abaixo:</p>
<h3 id="mc">mc</h3>
<p><code class="language-plaintext highlighter-rouge">mc</code> é um gerenciador de arquivos visual para Linux. Ele é executado em um terminal e oferece uma interface semelhante ao explorador de arquivos do Windows, permitindo que o usuário visualize e manipule arquivos e diretórios. O <code class="language-plaintext highlighter-rouge">mc</code> também possui vários recursos avançados, como edição de texto integrada e suporte a arquivos ZIP e FTP.</p>
<p><strong>Por que eu uso?</strong> Facilitar meu uso do prompt de comando e porque não usar algo que me permite olhar arquivos compactados (como fazemos normalmente nas interfaces gráficas) ou simplesmente acessando arquivos remotos usando FTP? Uso essa ferramenta desde meu início com Linux e simplesmente adoro a praticidade dela!</p>
<p><img src="https://luizsouza.com/assets/mc-command.png" alt="Este é o comando `mc` mostrando na esquerda meu diretório `/` e a direita a conexão ao site da minha esposa via FTP." /></p>
<p>Este é o comando <code class="language-plaintext highlighter-rouge">mc</code> mostrando na esquerda meu diretório <code class="language-plaintext highlighter-rouge">/</code> e a direita a conexão ao site da minha esposa via FTP.</p>
<h3 id="htop">htop</h3>
<p><code class="language-plaintext highlighter-rouge">htop</code> é um comando de sistema Linux que exibe informações detalhadas sobre o uso de recursos do sistema, incluindo o uso da CPU, memória e swap. Ele é executado em um terminal e oferece uma interface interativa e colorida que permite aos usuários monitorar facilmente o desempenho do sistema. O <code class="language-plaintext highlighter-rouge">htop</code> também permite que os usuários gerenciem processos em execução, incluindo a capacidade de matar processos individuais ou grupos de processos. Ele é uma alternativa mais avançada ao comando padrão <code class="language-plaintext highlighter-rouge">top</code> do Linux.</p>
<p><strong>Por que eu uso?</strong> Vai de encontro com o mesmo princípio que uso o <code class="language-plaintext highlighter-rouge">mc</code>: é muito prático visualizar de forma “gráfica” informações do computador. Entender se o que estou rodando em testes o que afeta no uso do computador e ainda tenho o controle de inclusive matar alguma aplicação, em caso de algo que tenha travado no computador!</p>
<p><img src="https://luizsouza.com/assets/htop-command.png" alt="Muito mais prático entender como o computador está funcionando em tempo real com o comando `htop`." /></p>
<p>Muito mais prático entender como o computador está funcionando em tempo real com o comando <code class="language-plaintext highlighter-rouge">htop</code>.</p>
<h3 id="curl">curl</h3>
<p><code class="language-plaintext highlighter-rouge">curl</code> é um comando de linha de terminal que permite fazer solicitações HTTP para servidores web. Ele pode ser usado para obter e enviar informações de e para servidores, incluindo downloads de arquivos, envio de formulários e autenticação de usuários. Ele também suporta autenticação com senhas e tokens de acesso, além de permitir a configuração de cabeçalhos personalizados para solicitações HTTP.</p>
<p><strong>Por que eu uso?</strong> Esse é um dos comandos mais usados por mim, desde coisa simples como download de arquivos a testes de chamadas a APIs e chegando a uso com diversos scripts para algumas automações!</p>
<p><img src="https://luizsouza.com/assets/curl-command.png" alt="Comando `curl` obtendo informações da SWAPI." /></p>
<p>Comando <code class="language-plaintext highlighter-rouge">curl</code> obtendo informações da SWAPI.</p>
<h3 id="jq">jq</h3>
<p><code class="language-plaintext highlighter-rouge">jq</code> é uma ferramenta de linha de comando para análise e manipulação de dados JSON. Ele é executado em um terminal e permite que os usuários extraiam e transformem dados JSON de uma variedade de fontes. O <code class="language-plaintext highlighter-rouge">jq</code> suporta várias operações, como filtragem, mapeamento e redução, além de permitir que os usuários definam funções personalizadas para manipulação de dados. Ele é uma ferramenta poderosa para trabalhar com dados JSON em um ambiente de linha de comando do Linux.</p>
<p><strong>Por que eu uso?</strong> Esse comando é parceiro direto do comando anterior, o <code class="language-plaintext highlighter-rouge">curl</code>, isso porque como ele faz o parser do JSON para o terminal, uso direto para fazer alguma automação ou obter o resultado para um teste. É simplesmente lindo!</p>
<p><img src="https://luizsouza.com/assets/jq-command.png" alt="Comparando com a tela anterior (do `curl`), olha como ficou mais simples de obter uma informação do JSON de resposta com o uso do `jq`." /></p>
<p>Comparando com a tela anterior (do <code class="language-plaintext highlighter-rouge">curl</code>), olha como ficou mais simples de obter uma informação do JSON de resposta com o uso do <code class="language-plaintext highlighter-rouge">jq</code>.</p>
<h3 id="git">git</h3>
<p>O <code class="language-plaintext highlighter-rouge">git</code> é um sistema de controle de versão distribuído usado para rastrear alterações em arquivos de código-fonte durante o desenvolvimento de software. Ele permite que vários desenvolvedores trabalhem em um projeto simultaneamente sem causar conflitos em seus arquivos. O <code class="language-plaintext highlighter-rouge">git</code> é executado no terminal e utiliza comandos como <code class="language-plaintext highlighter-rouge">commit</code>, <code class="language-plaintext highlighter-rouge">push</code> e <code class="language-plaintext highlighter-rouge">pull</code> para gerenciar as alterações nos arquivos. Além disso, o <code class="language-plaintext highlighter-rouge">git</code> oferece recursos como ramificação e mesclagem, que permitem que os desenvolvedores trabalhem em diferentes versões do código-fonte ao mesmo tempo e combinem essas versões em uma versão final. O <code class="language-plaintext highlighter-rouge">git</code> é amplamente utilizado em projetos de desenvolvimento de software e é uma ferramenta essencial para gerenciar alterações de código-fonte de forma colaborativa.</p>
<p><strong>Por que eu uso?</strong> Bom, este é um comando que não tem por que não usar. Vai desde o fato de ter um código em versões quando estamos trabalhando em equipe. Na real eu acredito ser fundamental conhecer e usar o <code class="language-plaintext highlighter-rouge">git</code> em equipe. Mas não uso somente em time, mas pessoal com meus projetos tanto offline quanto para ter um backup deste código fora do meu computador.</p>
<h3 id="npm">npm</h3>
<p><code class="language-plaintext highlighter-rouge">npm</code> é o gerenciador de pacotes padrão para o Node.js. Ele permite que os usuários instalem e gerenciem facilmente pacotes de código-fonte do Node.js em seus projetos, bem como publiquem seus próprios pacotes para outros usuários usarem. O <code class="language-plaintext highlighter-rouge">npm</code> é executado no terminal e oferece comandos como <code class="language-plaintext highlighter-rouge">install</code>, <code class="language-plaintext highlighter-rouge">uninstall</code>, <code class="language-plaintext highlighter-rouge">update</code> e <code class="language-plaintext highlighter-rouge">publish</code> para gerenciar pacotes. Além disso, o <code class="language-plaintext highlighter-rouge">npm</code> permite que os usuários definam dependências e devDependencies em seus projetos para garantir que todas as bibliotecas necessárias estejam instaladas corretamente. É uma ferramenta essencial para o desenvolvimento de aplicativos Node.js e é amplamente utilizada na comunidade de desenvolvimento de software JavaScript.</p>
<p><strong>Por que eu uso?</strong> Embora a resposta que vocês possam esperar seja “porque eu desenvolvo em NodeJS”, a ideia vai um pouco mais além. Eu uso muito o <code class="language-plaintext highlighter-rouge">npm</code> para instalar pacotes globais de outros comandos úteis, como por exemplo o <code class="language-plaintext highlighter-rouge">http-server</code> que me permite levantar rapidamente um servidor web em qualquer diretório que eu esteja usando. Vale a pena dar uma conhecida no repositório do <code class="language-plaintext highlighter-rouge">npm</code> mesmo que você não programe em NodeJS!</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
<span class="c"># Exemplo da instalação global do comando http-server</span>
npm <span class="nt">-g</span> <span class="nb">install </span>http-server
</code></pre></div></div>
<h3 id="nano">nano</h3>
<p>O <code class="language-plaintext highlighter-rouge">nano</code> é um editor de texto simples e fácil de usar no terminal do Linux. Ele é projetado para ser fácil de aprender e usar, permitindo que os usuários editem arquivos de texto diretamente no terminal. O <code class="language-plaintext highlighter-rouge">nano</code> oferece recursos como realce de sintaxe, pesquisa e substituição, bem como a capacidade de abrir e editar vários arquivos ao mesmo tempo. Ele também oferece uma ampla gama de atalhos de teclado para facilitar a edição de texto. O <code class="language-plaintext highlighter-rouge">nano</code> é uma ótima opção para usuários que precisam de um editor de texto simples e rápido para tarefas básicas de edição de texto.</p>
<p><strong>Por que eu uso?</strong> Agora começa a polêmica (ou não). Digo isso mais porque vocês vão ouvir falar muito de outro editor famoso que é o <code class="language-plaintext highlighter-rouge">vim</code>. Sinceramente eu concordo que entre <code class="language-plaintext highlighter-rouge">nano</code> e <code class="language-plaintext highlighter-rouge">vim</code> o segundo é bem mais poderoso (plugins, configurações, etc.), mas o <code class="language-plaintext highlighter-rouge">nano</code> não perde no quesito “fácil e funcional”. Por que digo isso? Porque quando preciso de um editor para rapidamente olhar ou modificar um arquivo, ele, sem plugins ou configurações especiais, entrega uma interface clean, mas completamente funcional para qualquer usuário que queira usar. Deixemos a briga de lado, tem editor em terminal para todos os gostos! 😅</p>
<p><img src="https://luizsouza.com/assets/nano-command.png" alt="Reparem que se compararmos com o `vim`, o `nano` possui uma interface mais amigável e fácil de entender (e caso não tenha entendido de primeira, o `^` é a abreviação da tecla `Ctrl`)." /></p>
<p>Reparem que se compararmos com o <code class="language-plaintext highlighter-rouge">vim</code>, o <code class="language-plaintext highlighter-rouge">nano</code> possui uma interface mais amigável e fácil de entender (e caso não tenha entendido de primeira, o <code class="language-plaintext highlighter-rouge">^</code> é a abreviação da tecla <code class="language-plaintext highlighter-rouge">Ctrl</code>).</p>
<h3 id="tmux">tmux</h3>
<p><code class="language-plaintext highlighter-rouge">tmux</code> é um terminal multiplexador que permite que os usuários criem sessões de terminal e gerenciem várias janelas e painéis dentro dessas sessões. Ele é executado no terminal e permite que os usuários dividam a tela em vários painéis e alternem entre esses painéis facilmente. O <code class="language-plaintext highlighter-rouge">tmux</code> também oferece recursos avançados, como a capacidade de anexar e desanexar sessões de terminal, permitindo que os usuários retomem o trabalho anterior facilmente. Ele é uma ferramenta poderosa para gerenciamento de sessões de terminal e pode ajudar os usuários a aumentar sua produtividade.</p>
<p><strong>Por que eu uso?</strong> Esse é o meu melhor amigo quando preciso trabalhar com uma tela de terminal e preciso ser multi tarefa. Facilmente podemos inclusive configurar o uso do mouse para termos coisas como menu suspenso com o botão direito ou rolagem com o scroll do mouse. Simplesmente muito prático!</p>
<p><img src="https://luizsouza.com/assets/tmux-command.png" alt="Aqui temos o `tmux` rodando com duas telas (rodando o `htop` de um lado e o `mc` do outro." /></p>
<p>Aqui temos o <code class="language-plaintext highlighter-rouge">tmux</code> rodando com duas telas (rodando o <code class="language-plaintext highlighter-rouge">htop</code> de um lado e o <code class="language-plaintext highlighter-rouge">mc</code> do outro.</p>
<p>E esses são os 8 comandos que mais uso no meu dia a dia como programador Linux! Claro que existem muitos outros, mas esses são aqueles que me ajudam a ser mais produtivo e eficiente no meu trabalho. Espero que vocês tenham gostado dessa lista e que possam aproveitar essas ferramentas da mesma forma que eu aproveito! Até a próxima!</p>Luiz Pereira de Souza FilhoEsses dias a minha colega da Umbler, a Dani, me fez uma pergunta inusitada: “tu pode me passar quais são os comandos (mesmo que básicos) que mais tu usa no dia a dia?” Eu achei a pergunta muito boa, tanto que resolvi transformar a resposta neste post! Então bora lá!Sobre planejamentos… Já é dezembro novamente?2022-12-03T11:03:00+00:002023-10-15T04:01:20+00:00https://luizsouza.com/2022/12/03/sobre-planejamentos-ja-e-dezembro-novamente<p>Sabe aquele momento que você acorda e nota que o ano já basicamente acabou? Então deixa te contar que esse é o meu momento! Chegamos ao final de 2022, particularmente em meio a um turbilhão de coisas, e como para a maioria das pessoas é um momento de reflexão de como foi o ano e como podemos entrar no próximo com o “pé direito”, então vamos lá!</p>
<p>Notei que 2022 foi um ano um tanto <a href="https://www.dicio.com.br/sabatico/">sabático</a> para mim no quesito de atividades extras na minha vida, acabei pegando para focar bastante no trabalho mesmo, com o crescimento da empresa onde trabalho. Mesmo assim senti falta de um crescimento pessoal maior, mas no fundo acho que era para ser assim mesmo. Para quem me conhece, sabe que tenho como profissões a principal que é na área da TI (DevSecOps) e uma secundária que adoro que é ser professor e que eu me desliguei da escola onde dava aula do técnico no ano passado.</p>
<p>Se eu analisar o meu ano acredito que passei batido por algumas conquistas que queria ter alcançado, vide por exemplo:</p>
<ul>
<li>
<p>Queria ter dado mais atenção ao meu blog (escrever mais);</p>
</li>
<li>
<p>Começado a fazer vídeos (para o YouTube) com tutoriais e dicas na área de TI;</p>
</li>
<li>
<p>Focar em fazer alguns cursos e certificações.</p>
</li>
</ul>
<p>Mas claro que se analisar no geral o meu ano foi bom, obtive conquistas principalmente pessoais muito legais e tive acredito que um tempo considerável para estar mais com a família e com os amigos, e isso é muito bom também. Acho que se posso colocar o meu ano como produtivo, posso dizer que foi no sentido pessoal. Mas sabe quando mesmo “tudo dando certo” tu ainda poderias ter feito mais?</p>
<p>Pois bem, esse post nasceu de um pensamento nada haver que me levou a toda essa análise, acredita? É que acordei hoje pensando: “Poxa, será que eu preciso de um planner? Vejo um monte de gente falando que ajuda a se organizar melhor e ser mais produtivo. Tá? mas o que é um planner? 😅” E aí que começou tudo. Na minha cabeça o planner era algo supercomplexo e sofisticado, onde poderia de repente adicionar na minha assistente digital inteligente (como chamo a entidade que cuida de algumas automações e hack digital life que criei, a A.D.I.A.). Mas no final vi que a ideia é que um planner nada mais é que um caderno de agenda com algumas coisas a mais como tarefas diárias, anotações, planejamentos financeiros ou afins e isso lincando ou não com datas, sejam próximas (o que fazer hoje, ou essa semana) como mais distantes (este mês, este ano).</p>
<p>Talvez essa não seja a definição mais exata, mas foi por aí que eu entendi e como bonus acabei vendo dois vídeos bem legais mostrando como fazer isso usando o Google Agenda (ou Google Calendar). Como sou usuário de carteirinha do Google e “agendoholic”, compreendi que na real eu já faço um planner, mas que posso melhorar e muito mudando alguns hábitos no uso dele. Ah sim, quais vídeos que vi? O primeiro foi este da Rafaela Veloci com título “<a href="https://www.youtube.com/watch?v=9Vo5UWippkE">COMO USAR O GOOGLE CALENDAR (planner gratuito online)</a>” e o outro foi da Gabriela Charbe com o título “<a href="https://www.youtube.com/watch?v=CKHO5ejVT7A">ORGANIZAÇÃO COM FERRAMENTAS GOOGLE - Google Agenda, Google Tarefas e Google Keep</a>”, ambos muito bons para ter inspirações e ampliar os conhecimentos de como usar o Google Agenda.</p>
<p>Mas para fazer esse tal de planner é só com Google? Mas é claro… que não! 😄 Eu não pesquisei muito afundo “as várias opções”, mas posso comentar de uma que quase usei para substituir o Google Agenda: Microsoft Outlook! O programa que instala no Windows? Também, mas me referia ao online (<a href="https://outlook.live.com/">https://outlook.live.com/</a>). Em ambos tu podes ter a agenda, tarefas, anotações e com a vantagem do Outlook porque ele se integra muito bem com o Windows, logo adicionando notificações mesmo com o Windows com a tela bloqueada! Mas não migrei porque tenho muita coisa vinculada com o Google e mudar ia requerer ter coisas em um lado e coisas no outro e então perde o sentido da produtividade da coisa.</p>
<p>Bom, e é isso para o momento! Vamos começa então o planejamento de 2023! 🤘🏼</p>Luiz Pereira de Souza FilhoSabe aquele momento que você acorda e nota que o ano já basicamente acabou? Então deixa te contar que esse é o meu momento! Chegamos ao final de 2022, particularmente em meio a um turbilhão de coisas, e como para a maioria das pessoas é um momento de reflexão de como foi o ano e como podemos entrar no próximo com o “pé direito”, então vamos lá!Quando a Microsoft salvou minha “vida estranha”2022-06-20T02:45:00+00:002023-10-15T04:01:20+00:00https://luizsouza.com/2022/06/20/quando-a-microsoft-salvou-minha-vida-estranha<p>Eis que hoje a Microsoft salvou literalmente minha “vida estranha”, ou para ser mais exato, os saves do meu jogo <a href="https://store.steampowered.com/app/936790/Life_is_Strange_True_Colors/">Life is Strange: True Colors</a>! E depois da trabalheira, resolvi contar aqui no meu blog essa história e trazer uma dica superimportante para quem usa o OneDrive (e para quem não usa entender a diferença que isso fez na minha vida aqui) 😅</p>
<p>Vamos lá, do início: Eu estava jogando então este game chamado <a href="https://store.steampowered.com/app/936790/Life_is_Strange_True_Colors/">Life is Strange: True Colors</a>, e semana passada eu consegui terminar ele todo (não que seja um jogo longo ou difícil). Como havia comprado a versão deluxe dele, após terminar ele abre um “novo jogo”, uma história paralela a qual resolvi iniciar, o Wavelength! Quando iniciei ele eu escolhi uma opção inicial errada e quando percebi isso, eu resolvi reiniciar o game para isso. Até aí tudo bem né? Recomeço, gravo por cima e tudo azul (ou seria multicolor? Entendedores entenderão), mas descobri que não é assim. Realmente ele reiniciou e comecei a jogar. Cansei de jogar, e pensei: Continuo depois, vai, e isso foi da semana passada para hoje.</p>
<p>Hoje fui dar uma jogadinha e para minha surpresa a tela título não trazia mais a opção de continuar o game! Tá, neste momento quem aqui estiver lendo e for fã de games, deve estar compreendendo que meio que meu coração parou: Teria eu perdido toda a minha campanha? Todas as decisões e sentimentos que esse game proporcionou esse tempo todo?!?? E agora? O que fazer? No mesmo momento eu pensei: Pera, esse game é salvo na nuvem da Steam, é só eu restaurar o save! Feito! Bom, foi o que eu pensei, pois depois de acessar <a href="https://store.steampowered.com/account/remotestorage">meus saves na página da Steam</a>, descobri que esse problema havia sincronizado com a nuvem deles! Aí não preciso dizer que a frustração me tomou, quis desinstalar o game e nunca mais querer jogar ele na vida!</p>
<p>Depois de uns minutos “na fossa” devido a isso, me ocorreu uma nova ideia: os saves que sincronizam na nuvem ficam fisicamente salvos no computador, e normalmente ficam na pasta “Meus Documentos\My Games\” e por um acaso eu sincronizo a pasta “Meus Documentos” com o <a href="https://www.microsoft.com/pt-br/microsoft-365/onedrive/online-cloud-storage">OneDrive</a>, que para quem não conhece / usa, é uma solução de sincronia dos arquivos do computador com a nuvem. Tá, mas como falei, sincroniza, então ele fez a mesma coisa que a Steam: salvou por cima os arquivos!</p>
<p>Sim, parece que andei até aqui para nada não? Pois não foi não, o OneDrive tem duas opções de recuperação de arquivos alterados ou deletados bem legais:</p>
<ul>
<li>
<p><a href="https://support.microsoft.com/pt-br/office/restaurar-uma-vers%c3%a3o-anterior-de-um-arquivo-armazenado-no-onedrive-159cad6d-d76e-4981-88ef-de6e96c93893?ui=pt-br&rs=pt-br&ad=br">Versionamento do arquivo</a>: ele faz um backup das versões anteriores dos arquivos, conforme são alterados</p>
</li>
<li>
<p><a href="https://support.microsoft.com/pt-br/office/restaurar-arquivos-ou-pastas-exclu%C3%ADdos-no-onedrive-949ada80-0026-4db3-a953-c99083e6a84f">Lixeira</a>: Sim, qualquer arquivo na nuvem do OneDrive deletado fica por um tempo em uma lixeira.</p>
</li>
</ul>
<p>E graças a essas duas opções consegui não apenas achar o arquivo que havia sido substituído e gerado isso, mas voltar a uma versão onde apenas havia terminado a campanha principal e nunca iniciado a história adicional!</p>
<p>Entendem por que essa história mereceu um post? Não apenas para contar que recuperei um save, mas para lembrar a quem usa já esse tipo de backup das formas de restaurar um dado dele, mas principalmente para quem não faz backup das suas pastas, da importância de uma solução deste tipo! O que posso dizer é que a Microsoft ganhou vários pontinhos comigo depois desta! 😅</p>Luiz Pereira de Souza FilhoEis que hoje a Microsoft salvou literalmente minha “vida estranha”, ou para ser mais exato, os saves do meu jogo Life is Strange: True Colors! E depois da trabalheira, resolvi contar aqui no meu blog essa história e trazer uma dica superimportante para quem usa o OneDrive (e para quem não usa entender a diferença que isso fez na minha vida aqui) 😅Usando o Notion como gerenciador de conteúdo em Jekyll2022-05-27T02:28:00+00:002023-10-15T04:01:20+00:00https://luizsouza.com/2022/05/27/usando-o-notion-como-gerenciador-de-conteudo-em-jekyll<p>Desde o momento que <a href="https://luizsouza.com/2018/10/11/larguei-o-wordpress/">migrei meu blog do Wordpress para Jekyll</a>, eu vi a beleza que era poder ter um blog muito mais leve, pois o Jekyll usa o conceito de páginas estáticas, geradas por um servidor antes de colocar no ar, ou trocando em miúdos, o visitante acessa uma página estática, imutável, sem o pré-processamento do PHP ou queries sendo rodadas em um MySQL da vida.</p>
<p>Mas ao mesmo tempo que vi esta beleza, eu sabia dos desafios, pois a página se resume a um <a href="https://github.com/lpsouza/lpsouza.github.io/tree/main/_posts">repositório no GitHub e com um monte de arquivos em formato markdown</a> que tem a vantagem de ser um “arquivo texto” que se transforma em HTML graças ao poder do Jekyll. Isto quer dizer que não tenho um bom editor WYSIWYG (What You See Is What You Get, ou O que você vê é o que você tem), ou para leigos, o editor que o Wordpress te fornece.</p>
<p><img src="https://luizsouza.com/assets/wordpress-editor.png" alt="Editor WYSIWYG clássico do Wordpress." /></p>
<p><span class="caption">Editor WYSIWYG clássico do Wordpress.</span></p>
<p>No início a falta deste tipo de editor não me fez falta alguma. Ao contrário, eu me sentia mais livre escrevendo sem ele. Mas com o tempo comecei a sentir falta de facilidades simples, como um corretor ortográfico, ou simplesmente a liberdade de escrever e criar um link ou mudar a formatação de maneira mais visual. Então começou o caminho quase inverso: Buscar uma forma de escrever em markdown mas com facilidades que os editores WYSIWYG poderiam me proporcionar. Agora, se alguém que conhece o Wordpress estiver lendo isso vai rir e pensar “mas como assim? o Wordpress já tem o suporte de permitir a escrita em markdown nativa a algumas versões já”. E sim, quem pensou isso está absolutamente correto! Mas não foi este o motivo principal da minha troca, isso eu explico <a href="https://luizsouza.com/2018/10/11/larguei-o-wordpress/">no meu post sobre porque larguei o Wordpress</a>, mas resumindo? Performance.</p>
<p>Então nesta busca por algum editor WYSIWYG para meu blog escrito em markdown com Jekyll eu passei por <a href="https://luizsouza.com/2020/07/12/criando-posts-para-jekyll-usando-o-prose-io/">algumas ideias chegando no tal do Prose.io</a>, ideia bem promissora e que até que funciona! Mas tem um probleminha: Em um navegador é muito bom, mas quando penso em escrever ou editar em outros dispositivos (celular?) o negócio fica complicado! Fora que outra coisa que com o tempo eu fui verificando a falta era de coisas simples como uma agenda para marcar e publicar um post agendado (coisas que no Wordpress é mágico).</p>
<p>E eis que conversando com colegas de trabalho eu conheci o Notion, um organizador de ideias, planner e etc. Aí tive uma ideia onde no início pareceu muito boa, mas que no andamento acabou se tornando mais complicada do que imaginei: Escrever e organizar os posts no Notion e depois “copiar e colar” no <a href="http://Prose.io">Prose.io</a> (ou ainda direto no repositório em markdown). Com isso conseguia ter uma agenda de publicação e uma forma visual de escrever os posts. Tá, mas porque isso se tornou complicado, você se pergunta?!?? Imagina que, mesmo exportando o post do Notion para um arquivo formato markdown, havia muitos pontos que eu precisava adequar para a tal da compatibilidade entre o Jekyll e o Notion. A pior delas era o FrontMatter, um trecho no início do arquivo markdown que o Jekyll usa como uma espécie de metadado, dando informações para que ele gere a página corretamente. Como seria bom se eu pudesse unir esses dois mundos… pois bem, eu uni! 😉</p>
<p>Tudo começou quando em minhas pesquisas eu encontrei <a href="https://github.com/jamie-lord/NotionToJekyll">esse projeto</a> do usuário do Github <a href="https://github.com/jamie-lord">Jamie Lord</a>, onde ele usando .NET ele criou um programa que fazia esse meio de campo entre o Notion e o Jekyll. Exatamente o que eu queria… tá, não exatamente, senão usaria este projeto. Mas foi a inspiração, e com minhas particularidades eu criei o projeto <a href="https://github.com/lpsouza/jekyll-notion-sync">jekyll-notion-sync</a> em NodeJS (escrito em TypeScript), que basicamente sincroniza posts novos no Jekyll (repositórios do Github apenas) e um banco de dados do Notion!</p>
<p>Este projeto tem a premissa de:</p>
<ul>
<li>
<p>Pegar os posts no Jekyll e criar eles no Notion</p>
</li>
<li>
<p>Pegar os posts no Notion e criar ou atualizar ele no Jekyll</p>
</li>
</ul>
<p><img src="https://luizsouza.com/assets/jekyll-notion-sync.png" alt="Projeto jekyll-notion-sync rodando em modo de desenvoldimento." /></p>
<p><span class="caption">Projeto jekyll-notion-sync rodando em modo de desenvolvimento.</span></p>
<p>Simples não? Bem, mais ou menos! Além disso temos os dois mundos para fazer conversar, isto é um texto em RichText (como o Notion usa para ser WYSIWYG) precisa converter e virar um arquivo markdown no repositório do Jekyll e vice e versa! Outra questão era o FrontMatter do Jekyll, que precisaria ser atualizado entre ele e o Notion! Quanto a primeira questão foi um trabalhão, mas nada que muito estudo e paciência (famoso tentativas e erros) não ajudem. Fora que tanto a <a href="https://docs.github.com/en/rest">API do Github</a>, quanto a <a href="https://developers.notion.com/">API do Notion</a> são super bem documentadas e possuem client para NodeJS! A segunda questão foi uma questão de analisar a ideia do Notion sobre o que seriam as propriedades do banco de dados e fazer isso ser os valores do FrontMatter!</p>
<p><img src="https://luizsouza.com/assets/propriedades-notion.png" alt="Exemplo das propriedades no meu Notion que se transformam no FrontMatter no Jekyll." /></p>
<p><span class="caption">Exemplo das propriedades no meu Notion que se transformam no FrontMatter no Jekyll.</span></p>
<p>Mais uma coisa deste projeto que eu queria que ele fizesse era ser <a href="https://hub.docker.com/r/lpsouza/jekyll-notion-sync">uma imagem no Docker</a> para uso em automações. E aí está! Inclusive inaugurado com este post! Se você gosta de conteúdos em Jekyll, vale a pena conhecer (e porque não contribuir) com esse projeto!</p>Luiz Pereira de Souza FilhoDesde o momento que migrei meu blog do Wordpress para Jekyll, eu vi a beleza que era poder ter um blog muito mais leve, pois o Jekyll usa o conceito de páginas estáticas, geradas por um servidor antes de colocar no ar, ou trocando em miúdos, o visitante acessa uma página estática, imutável, sem o pré-processamento do PHP ou queries sendo rodadas em um MySQL da vida.Atualizando para Windows 112021-11-15T14:26:00+00:002023-10-15T04:01:20+00:00https://luizsouza.com/2021/11/15/atualizando-para-windows-11<p>E lá vamos nós para mais uma atualização do Windows… Possuo um Dell G7 que veio com Windows 10 Professional de fábrica instalado e por tanto, com todos os suportes por parte da fabricante, para que mantenha o pleno funcionamento. Outra questão a salientar no inicio deste post é que sou técnico na área de informática e posso dar um spoiler violento aqui dizendo que, como sempre, o processo de upgrade da Microsoft é sempre um processo sofrido!</p>
<p>Disclaimer: Olha só, queria deixar claro que não defendo o upgrade do Windows 11 para hardwares não compatíveis, logo, todo este post está usando um hardware 100% compatível (incluindo o chip TPM 2.0 ativo). Não estou aqui para julgar as decisões da Microsoft e se eu não tivesse o hardware compatível eu nem começaria este processo, ok?</p>
<h3 id="método-1-upgrade-do-windows-10-pelo-processo-de-atualização-do-windows">Método 1: Upgrade do Windows 10 pelo processo de atualização do Windows</h3>
<p>Sim, tentei seguir o caminho que a maioria deve estar pensando que funciona, usar o Windows Update quando ele permitir o upgrade. Funcionou? Spoiler: Não! Porque não funcionou? Então, ele fez o upgrade com sucesso, mas diversos aplicativos começaram a apresentar problemas “bizarros”, desde visualmente apresentar algum glitch, quanto ao ponto de nem siquer abrir o aplicativo. Querem um exemplo? A tela de boas vindas do Windows 11 dava um erro e fechava do nada! Eu acredito que alguns aqui vão ler e já largar a máxima: “Essa microsoft lança essas porcarias tudo bugadas!” E olha, vou aplicar a culpa na Microsoft em 50% apenas. Porque? Simples: Eu tenho um Windows 10 com customizações, diversos softwares (uns instalados nos caminhos padrão e outros em caminhos customizados) e por aí vai… Como pode a Microsoft conhecer EXATAMENTE todos os tipos de personalização que existe?!?? Ser vidente não faz parte das premissas de um desenvolvedor!</p>
<p>Ok, mas alguns podem ainda querer “jogar querosene na fogueira” e soltar um: “Mas no meu MAC (ou Linux) já fiz atualizações de versão e tudo funcionou!” e neste ponto eu tenho que concordar com esse pensamento (até porque já fui usuário de um sabor de Linux por alguns anos), mas precisamos entender o mais importante: nem todo o SO é igual! O Windows tem uma arquitetura muito diferente do Linux ou ainda do MAC (que é uma herança de um primo do Linux, o BSD, e por isso as semelhanças). A arquitetura do Windows é uma herança direta do MS-DOS, um sistema que começou não possuindo uma divisão perfeita entre o ambiente da administração (quem instala/desinstala programas, administra recursos de hardware, etc.) do ambiente de usuário (aquele que consome os softwares instalados e gera o conteúdo). Devido a essa pequena diferença (Linux e MAC possuem uma separação muito bem definida de administrador e usuário) é que temos upgrades tão conturbados.</p>
<p>Mas aí vem a pergunta: Se tu tem todo esse conhecimento de como funciona os sistemas operacionais, tu ainda tentou esse método logo de cara? Pois é, sim… Mas tenho minhas razões: desde o Windows XP, a evolução no quesito ambiente administrador e ambiente usuário evoluiu monstruosamente! Logo, desde o Windows Vista que eu tento esse método e vou continuar até ver isso funcionando extremamente bem! 😅</p>
<h3 id="método-2-formatar-completamente-o-notebook-e-instalar-o-windows-11-do-zero">Método 2: Formatar completamente o notebook e instalar o Windows 11 do zero</h3>
<p>Este sim é um método que muitos tentam nem começar, pois envolve perder tudo que está no computador. Então envolve desde backup a até lembrar de todos os programas que tu tinha instalado no computador. Existe um lado bom nisso: Podemos ter diversos programas mais nos atrapalhando do que sendo útil, e isso serve como uma “faxina pesada”. Pô, agora sim a coisa funcionou né? Novamente… Não! Ué? Porque não deu certo? Spoiler: Lembram quando disse que o Windows 10 veio de fábrica? Isso não quer dizer que ele vem instalado pra uso apenas, quer dizer que a Dell fez todas a personalizações para que o hardware funcione em perfeitas condições e pensando que o modelo do meu é um notebook da linha Gaming, ele possui algumas customizações da Dell. Logo, instalar um Windows 11 do zero acarreta em não ter essas personalizações e por sua vez o inicio de uma batalha: Deixar o Windows 11 compatível com as customizações da fabricante do hardware.</p>
<p>Passei basicamente uma semana tentando configurar tudo o que o Windows precisava, mas sempre tinha um driver ou um componente que se apresentava como “incompatível”. Até existem “soluções milagrosas” que uma vez instalado prometem varrer o computador e dar exatamente todos os drivers para instalar. Olha, pode ser que essas soluções sejam boas, mas a ideia de instalar um programa na maquina (que por sua vez as vezes podem instalar mais do que apenas o programa) que vai ser usado uma vez na vida, não me parece uma boa abordagem. Então ficamos com a porta de número 3, digo.. Metodo 3!</p>
<h3 id="método-3-reinstalar-o-windows-10-de-fábrica-dell-recovery-os-e-atualizar-para-o-windows-11">Método 3: Reinstalar o Windows 10 de fábrica (Dell Recovery OS) e atualizar para o Windows 11</h3>
<p>E então chegamos na opção mais radical de todas (radical porque se analisar, esse que vos escreve está realmente querendo usar o Windows 11, não? 😅) que é um processo longo de algumas horas (principalmente dependendo do computador e internet contratada). A ideia é recuperar o Windows 10 com todos os drivers e aplicações customizados, ir para a última versão de updates do Windows 10 e por fim subir a versão para o Windows 11. E provavelmente a pergunta que paira no ar: Funcionou? E minha resposta: Até o momento sim!</p>
<p>Esta opção é uma mescla dos dois métodos anteriores, pois temos o Windows 10 de fábrica sendo atualizado para o Windows 11, mas sem a variável “usuário deu uma zoada na versão atual”, hehehe. E sendo assim, o Windows 10 veio todo configurado como se recem tivesse retirado da caixa o notebook e assim ele foi atualizado para o Windows 11 (como se tivesse saído da caixa)!</p>
<h3 id="tá-mas-depois-de-tudo-isso-vale-a-pena">Tá, mas depois de tudo isso, vale a pena?</h3>
<p>Como já comentei anteriormente, não sou eu que vou ditar o teu gosto, mas posso dar a minha singela opinião sobre o Windows 11: Um sistema operacional que pensou em arredondar as bordas de tudo (o que achei bem bonito), integrou muito melhor o Windows Terminal e o WSL (coisas que uso no meu dia a dia), a barra de tarefas centralizada realmente fica muito bom quando usamos uma tela grande (no meu caso uma ultrawide) e ainda tenho que rever como ficou a parte gaming da coisa, pois até o final deste post não havia instalado nenhum jogo para testar, mas o que posso dizer é que no método 2 eu tinha instalado alguns jogos e estava com sérios problemas com a comunicação bluetooth (uso controle de Xbox One sem fio e fones de ouvido sem fio) quando estava em jogo (basicamente ficava “surdo” do nada ou ficava sem o controle por alguns instantes).</p>
<p>Mas novamente, essas são minhas opiniões e impressões de atualizar o Windows 10 para o novo Windows 11. Alguem teve uma experiência “menos traumatica” quando a minha? Comentem aí!</p>Luiz Pereira de Souza FilhoE lá vamos nós para mais uma atualização do Windows… Possuo um Dell G7 que veio com Windows 10 Professional de fábrica instalado e por tanto, com todos os suportes por parte da fabricante, para que mantenha o pleno funcionamento. Outra questão a salientar no inicio deste post é que sou técnico na área de informática e posso dar um spoiler violento aqui dizendo que, como sempre, o processo de upgrade da Microsoft é sempre um processo sofrido!Sobre cloud gaming no Brasil em 2021 (XCloud vs Geforce Now)2021-10-19T20:30:00+00:002023-10-15T04:01:20+00:00https://luizsouza.com/2021/10/19/sobre-cloud-gaming-no-brasil-em-2021-xcloud-vs-geforce-now<p>No dia 30 de setembro <a href="https://www.tecmundo.com.br/voxel/225871-xcloud-chega-oficialmente-brasil-30-100-jogos.htm" title="xCloud chega oficialmente ao Brasil hoje (30) com mais de 100 jogos">a Microsoft anunciou a chegada oficial do serviço de games na nuvem (conhecido como XCloud ou como XBox Gaming Cloud)</a> e agora mais recente, a NVidia anuncia em 14 de outubro <a href="https://www.techtudo.com.br/noticias/2021/10/geforce-now-chega-ao-brasil-veja-jogos-requisitos-e-precos-do-servico.ghtml" title="GeForce Now chega ao Brasil: veja jogos, requisitos e preços do serviço">a chegada do GeForce Now, seu também serviço de games na nuvem</a>. Eu testei os dois serviços e como um gamer casual (jogo em média duas vezes por semana apenas) que sempre correu atras de jogar seus jogos com placas de vídeo mais modestas (só hoje que posso dizer que tenho um notebook com placa de vídeo “ok” pra jogos), resolvi trazer minhas opiniões sobre os serviços.</p>
<p>Disclaimer: Antes que venham dizer que “isso ou aquilo” sobre os serviços, gostaria de lembrar que este é um post de opinião, logo, pode ser que você tenha outra opinião sobre o assunto, logo, seja bem vindo a dar suas contribuições nos comentários! 😁</p>
<p>Vamos lá, do princípio… Deixa colocar aqui as propostas de cada serviço, pois elas embora tenham a mesma entrega final (jogar onde quiser, sem se preocupar com o poder do dispositivo para rodar jogos), eles tem pequenas diferenças que pode fazer você adorar o serviço ou já sair torcendo o nariz.</p>
<ul>
<li>
<p><strong>XCloud</strong>: Este serviço da Microsoft promete que a partir da assinatura do XBox Game Pass Ultimate, você tenha um catalogo de jogos disponíveis para jogar, sem serviços ou configurações adicionais. Apenas ter o cliente deles ou rodar pelo navegador e já tens acesso aos mais de 100 jogos do catálogo! Imaginem uma assinatura do Netflix, só que de jogos. Isto quer dizer que pode e deve ocorrer revezamento de jogos no catálogo, isto é, podem sair títulos enquanto outros entram! Quem nunca queria ver um filme que estava no catálogo da Netflix e do nada ele não estava mais lá? Ou descobrir que um filme apareceu novamente? A ideia é essa!</p>
</li>
<li>
<p><strong>GeForce Now</strong>: Este serviço da NVidia tem uma proposta diferente do XCloud, neles tu pode assinar o serviço (que pode começar de graça) e este de dá o direito de jogar remotamente nos servidores de jogos licenciados pela NVidia. Tu não tem jogos neste plano, apenas o direito de uso dos servidores. Para jogar, é necessário o jogador ter um conta na Steam (e outros como Epic Games, UPlay, etc.) que o catalogo de jogos comprados fica disponível para jogar nos servidores licenciados pela NVidia. Confuso? Imagina que alem de pagar pela Netflix, tu terias que também desembolsar grana para os filmes que tu quer ver lá.</p>
</li>
</ul>
<p>Ok, devidamente explicada as propostas, vou agora dar um “zoom” em cada uma delas e comentar minhas impressões e o que achei de pró e contra em cada plataforma.</p>
<h3 id="xcloud">XCloud</h3>
<p>Aproveitei que o primeiro mês do XBox Game Pass custava R$ 5,00 (depois ele custa R$ 44,90 por mês) e assinei o serviço para ver se valia ou não a pena começar a usar este tipo de serviço e também se ele se mantinha funcional em diversos dispositivos e para minha surpresa, por mais que estejamos falando de um produto dito como “em beta”, o serviço me surpreendeu!</p>
<p>Meu primeiro teste foi usando um Chromebook com processador Celerom, 4GB de memória, 32GB de disco e placa de vídeo integrada. Rodei o jogo Need for Speed Heat e com performance igual ao meu note (Dell G7 com processador Core i7 (8th gen), 16GB de memória, disco SSD de 250GB e SATA de 2TB e placa de vídeo GeForce GTX 1050ti).</p>
<p><img src="/assets/IMG_20211019_131330436.jpg" alt="XCloud rodando em um chromebook" /></p>
<p>O segundo teste foi usando meu celular (Samsung S21+) usando o aplicativo do Game Pass em dois modos, o primeiro via celular mesmo, com meu controle de XBox One pareado com ele e o segundo usando ele plugado na minha TV, com o Samsung DeX e com o mesmo controle de XBox One pareado.</p>
<p><img src="/assets/IMG_20211019_131632256.jpg" alt="XCloud rodando em um celular Samsung S21+" /></p>
<p><img src="/assets/IMG_20211019_132202332.jpg" alt="XCloud rodando em uma TV conectada a um celular Samsung S21+" /></p>
<p>Em todas as opções a performance foi muito boa para um serviço em beta e tive raros momentos onde meu input do controle foi perdido ou teve atraso na resposta e na resposta da tela, mas nada que para mim atrapalhasse completamente minha jogatina. Vamos aos meus prós e contras:</p>
<h3 id="-prós"># Prós</h3>
<ul>
<li>
<p>Estabilidade do serviço (levando em conta que é beta);</p>
</li>
<li>
<p>Facilidade em qualquer dispositivo;</p>
</li>
<li>
<p>Possibilidade de substituir a compra de um console ou um “PC gamer”.</p>
</li>
</ul>
<h3 id="-contras"># Contras</h3>
<ul>
<li>
<p>Rotatividade de títulos (uma hora tu não terá mais o jogo que você quer);</p>
</li>
<li>
<p>Para os mais críticos de gráficos e performance vão sentir diferenças;</p>
</li>
<li>
<p>Filas para jogar (meu tempo máximo em filas foi em média 10 minutos).</p>
</li>
</ul>
<h3 id="geforce-now">GeForce Now</h3>
<p>Agora vamos para os meus testes com o GeForce Now e esse será rápido, pois na realidade não consegui testar no celular por erros no aplicativo (desde erros no login, quanto erros ao tentar vincular minha conta da Steam e tentar jogar alguma coisa). Resolvi então esquecer o fato que eles pretender ser multidispositivo e apostei no clássico “no PC a NVidia tem conhecimento de causa, deve rodar”… Será?</p>
<p>Resolvi instalar o cliente no meu Dell G7 (o que descrevi acima) e então nada seria problema para rodar, pensei eu. Vamos a realidade: Testei primeiro usando o a conta gratuita, onde de cara vi que as sessões seriam de 30 minutos e que haveria fila e até aí ok. Desta vez consegui vincular a conta da Steam e da Epic no cliente e começou a primeira decepção, dos meus quase 400 jogos, apenas 71 seriam disponíveis via GeForce Now! Me caiu os butiás do bolso, mas ok, vamos continuar os testes, se funcionar bem tá valendo (pensei eu novamente)! Escolhi o jogo Life is Strange 2, pois já tinha terminado (testar se meu save era importado para a rodar na nuvem) e porque é um jogo relativamente leve até no meu note local, logo teria parametros para comparar. Uma vez iniciado, entrei em fila que até que foi rápida (levou mais ou menos o mesmo tempo que no XCloud), mas quando consegui jogar, começou o choque de realidade. Recebi o aviso que minha sessão tinha iniciado e para a minha surpresa, mesmo tendo já vinculado a conta da Steam no site, ele pediu para autenticar a aplicação da Steam. Como minhas senhas são grandes (24 digitos no mínimo) e são complexas, tenho elas guardadas em um cofre de senhas. Peguei a senha, copiar e…. não cola no campo senha dentro do GeForce Now. Vamos digitar na mão então, depois segundo fator de autenticação, depois tela inicial, escolha do capítulo e cutscene… Que começa a travar e perder frame, coisa que nem meu note acontece. Até eu ter o controle para jogar e contanto tudo que passei, deu seus 20 minutos, fui jogar e o game travando todo, perdendo o controle e novamente perdendo fps as ganhas! E aos 25 minutos o aviso: Somente mais 5 minutos e sua sessão terminará!</p>
<p>Não preciso dizer depois deste paragrafo acima que foi a pior experiência que pude ter num sistema de streaming, né? Ok, vamos assinar o serviço, pois deve ser problemas da versão gratuita né? Fui alterar o meu plano e para minha surpresa…</p>
<p><img src="/assets/Screenshot 2021-10-19 140946.png" alt="Planos esgotados na GeForce Now em menos de 1 semana?!??" /></p>
<p>Isso mesmo, não tem como assinar mais porque “esgotou”. Sim, “esgotou” um sistema de planos de streaming… Como se a Netflix avisasse que os planos dela estivessem “esgotados”! É pra rir e chorar ao mesmo tempo! 😂</p>
<p>Com isso vamos aos prós (se é que tem) e os contras:</p>
<h3 id="-prós-1"># Prós</h3>
<ul>
<li>Proposta interessante já que jogadores de PC normalmente em contas na Steam e possuem diversos jogos. Para novos nessa área não sei se isso seria um item de vantagem.</li>
</ul>
<h3 id="-contras-1"># Contras</h3>
<ul>
<li>
<p>Nitidamente não foi um serviço planejado para entrar no mercado;</p>
</li>
<li>
<p>Para vender a ideia que sua biblioteca da Steam pode ser acessível e liberarem cerca de 25% dela foi de matar;</p>
</li>
<li>
<p>Instabilidade total do serviço desde o uso com multiplos dispositivos a no PC (que deveria ser o domínio da empresa).</p>
</li>
</ul>
<h3 id="conclusões">Conclusões</h3>
<p>Já se fala de jogos por streaming de diversas formas e propostas, desde o quase falecido Stadia ao sumido do PS Now e passando pelos XCloud e GeForce Now que finalmente apostaram no mercado brasileiro. Nitidamente a Microsoft se saiu muito bem nessa e se estruturou de forma exemplar! Muito se deve, acredito eu, a eles terem literalmente a faca e o queijo na mão, isto é, eles tem a infraestrutura (Microsoft Azure, um dos maiores serviços de nuvem do planeta) e o console (sim, por de baixo dos panos você está rodando um jogo no XBox Series S/X). Embora a NVidia tenha também know-how sobre jogos, eles erraram valendo em montar uma estrutura que não foi pensada no mercado que eles querem atender, alias posso dizer que o mesmo erro operacional que o Google fez ao trazer o Stadia a público!</p>
<p>E era isso! Novamente, essas são minhas opiniões e impressões até o momento sobre os serviços de Cloud Gaming que sairam recentemente aqui no Brasil! Tô quase tendido a assinar de vez o Game Pass Ultimate e seguir nesse novo mundo do XBox na nuvem! 😅 E você?</p>Luiz Pereira de Souza FilhoNo dia 30 de setembro a Microsoft anunciou a chegada oficial do serviço de games na nuvem (conhecido como XCloud ou como XBox Gaming Cloud) e agora mais recente, a NVidia anuncia em 14 de outubro a chegada do GeForce Now, seu também serviço de games na nuvem. Eu testei os dois serviços e como um gamer casual (jogo em média duas vezes por semana apenas) que sempre correu atras de jogar seus jogos com placas de vídeo mais modestas (só hoje que posso dizer que tenho um notebook com placa de vídeo “ok” pra jogos), resolvi trazer minhas opiniões sobre os serviços.Fim do autobuild gratuito do Docker Hub?!?? E agora?? [For Github users]2021-10-08T13:13:00+00:002023-10-15T04:01:20+00:00https://luizsouza.com/2021/10/08/fim-do-autobuild-gratuito-do-docker-hub-e-agora-for-github-users<p>Então o pessoal do Docker <a href="https://www.docker.com/blog/changes-to-docker-hub-autobuilds/" title="Changes to Docker Hub Autobuilds">encerrou o autobuild do Docker Hub para contas gratuitas depois do dia 18 de junho agora (de 2021)</a> e eu que tinha uns três projetos buildando lá e no caso só me toquei hoje, quase 4 meses depois. 🙄</p>
<p>Depois da frustração de ter subido meu quarto projeto de imagem lá e só aí ter percebido que todos os meus projetos estavam sem builds recentes, comecei a analisar como resolver esse problema, e claro, achei a solução usando o <a href="https://docs.github.com/pt/actions" title="GitHub Actions">Github Actions</a>! E para isso foi mais simples do que pensei e o legal é que me aprofundei mais no mundo do CI/CD do Github. Então sem mais delongas, vamos colocar um projeto de imagem para o Docker Hub pra funcionar automagicamente com Github Actions!</p>
<h2 id="receita-de-bolo">Receita de bolo</h2>
<p>Vamos lá, primeiramente precisamos no nosso projeto de um arquivo que podemos chamar de <code class="language-plaintext highlighter-rouge">main.yaml</code> (mas podemos colocar o nome que quisermos) e colocar ele numa pasta específica, isto é, na <code class="language-plaintext highlighter-rouge">.github/workflows/</code> do teu projeto. Blza, mas vamos ao conteúdo deste arquivo, antes de subir ele para o Github:</p>
<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
<span class="na">name</span><span class="pi">:</span> <span class="s">Publish Docker image</span>
<span class="na">on</span><span class="pi">:</span>
<span class="na">push</span><span class="pi">:</span>
<span class="na">branches</span><span class="pi">:</span> <span class="pi">[</span> <span class="nv">main</span> <span class="pi">]</span>
<span class="na">pull_request</span><span class="pi">:</span>
<span class="na">branches</span><span class="pi">:</span> <span class="pi">[</span> <span class="nv">main</span> <span class="pi">]</span>
<span class="na">jobs</span><span class="pi">:</span>
<span class="na">push_to_registry</span><span class="pi">:</span>
<span class="na">name</span><span class="pi">:</span> <span class="s">Push Docker image to Docker Hub</span>
<span class="na">runs-on</span><span class="pi">:</span> <span class="s">ubuntu-latest</span>
<span class="na">steps</span><span class="pi">:</span>
<span class="pi">-</span> <span class="na">name</span><span class="pi">:</span> <span class="s">Check out the repo</span>
<span class="na">uses</span><span class="pi">:</span> <span class="s">actions/checkout@v2</span>
<span class="pi">-</span> <span class="na">name</span><span class="pi">:</span> <span class="s">Log in to Docker Hub</span>
<span class="na">uses</span><span class="pi">:</span> <span class="s">docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9</span>
<span class="na">with</span><span class="pi">:</span>
<span class="na">username</span><span class="pi">:</span> <span class="s">${{ secrets.DOCKER_USERNAME }}</span>
<span class="na">password</span><span class="pi">:</span> <span class="s">${{ secrets.DOCKER_PASSWORD }}</span>
<span class="pi">-</span> <span class="na">name</span><span class="pi">:</span> <span class="s">Build and push Docker image</span>
<span class="na">uses</span><span class="pi">:</span> <span class="s">docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc</span>
<span class="na">with</span><span class="pi">:</span>
<span class="na">context</span><span class="pi">:</span> <span class="s">.</span>
<span class="na">push</span><span class="pi">:</span> <span class="no">true</span>
<span class="na">tags</span><span class="pi">:</span> <span class="s1">'</span><span class="s"><docker-username>/<image-name>:latest'</span>
</code></pre></div></div>
<p>Lembrando umas questões importantes aqui:</p>
<ol>
<li>
<p>Tanto a variável <strong>${{ secrets.DOCKER_USERNAME }}</strong> quanto a variável <strong>${{ secrets.DOCKER_PASSWORD }}</strong> pegam essas informações da <a href="https://docs.github.com/pt/actions/security-guides/encrypted-secrets" title="Segredos criptografados">área de secrets do teu repositório</a>.</p>
</li>
<li>
<p>Na chave <strong>tags</strong> onde aparece <code class="language-plaintext highlighter-rouge"><docker-username></code> devemos alterar pelo usuário do Docker Hub e na <code class="language-plaintext highlighter-rouge"><image-name></code> colocar o nome da nossa imagem.</p>
</li>
</ol>
<p>Fazendo estes ajustes é só subir este novo arquivo para o repositório do Github e sair para o abraço!</p>Luiz Pereira de Souza FilhoEntão o pessoal do Docker encerrou o autobuild do Docker Hub para contas gratuitas depois do dia 18 de junho agora (de 2021) e eu que tinha uns três projetos buildando lá e no caso só me toquei hoje, quase 4 meses depois. 🙄Novo tema para o site!2021-03-11T00:49:00+00:002023-10-15T04:01:20+00:00https://luizsouza.com/2021/03/11/novo-tema-para-o-site<p>E então uma coisa me incomodava quando pensava no meu site: o tema! Embora tenha usado um tema até que bem legal, o <a href="https://github.com/thelehhman/plainwhite-jekyll">thelehhman/plainwhite-jekyll</a>, sempre me apertava quando queria fazer personalizações um pouco mais avançadas. Isso porque quando usamos um tema, abrimos um pouco a mão da liberdade de criar como queremos, em prol de facilitar a administração do site. Inicialmente eu achava essa troca até que justa, até que me vi com uma ideia em mente: Queria o tema do meu site em “dark mode”. Isso porque eu gosto destes tipos de temas, acho muito melhor para a leitura (embora sei que terei vários que vão me criticar quanto a isso).</p>
<p>Mas vamos lá, quando lemos um livro (físico ou no kindle), estamos acostumados com a leitura “preto no branco”, e por isso quando resolvemos inverter, isto é “branco no preto”, muita gente acaba achando isso “errado”. Mas vou dar minha opinião do porque esse tipo de tema é bom para leitura. Diferente de um livro, ou a tela de um Kindle (que foi projetado para tentar trazer a experiencia de leitura), um site fica exibido em uma tela onde a claridade é um problema constante. Com isso, em computadores, celulares ou tablets, telas criadas para um propósito geral (multimídia), a leitura “branco no preto” chega a trazer um descanso aos olhos. Claro que podemos mexer no brilho da tela, mas sério: não é a mesma coisa.</p>
<p>Com isso apresento o meu novo tema, criado por mim e então até o momento sem nome ainda. Aceito sugestões! 😅 Este tema pensou em basicamente três coisas:</p>
<ol>
<li>
<p>Ser fácil de eu administrar</p>
</li>
<li>
<p>Ser em “dark mode”</p>
</li>
<li>
<p>Ser “gostoso de ler” em qualquer dispositivo</p>
</li>
</ol>
<p>Com isso as escolhas foram usar o <a href="https://getbootstrap.com/">Bootstrap</a> e um CSS personalizado para criar o “dark mode” (na realidade um SCSS). Todos os códigos são visiveis no meu projeto do GitHub, o <a href="https://github.com/lpsouza/lpsouza.github.io">lpsouza.github.io</a>.</p>
<p>Era isso, um post pequeno e rápido para apresentar meu novo tema aqui no site! E aí, o que achou?</p>Luiz Pereira de Souza FilhoE então uma coisa me incomodava quando pensava no meu site: o tema! Embora tenha usado um tema até que bem legal, o thelehhman/plainwhite-jekyll, sempre me apertava quando queria fazer personalizações um pouco mais avançadas. Isso porque quando usamos um tema, abrimos um pouco a mão da liberdade de criar como queremos, em prol de facilitar a administração do site. Inicialmente eu achava essa troca até que justa, até que me vi com uma ideia em mente: Queria o tema do meu site em “dark mode”. Isso porque eu gosto destes tipos de temas, acho muito melhor para a leitura (embora sei que terei vários que vão me criticar quanto a isso).Reflexões de 20202020-10-17T15:05:00+00:002022-12-19T20:49:00+00:00https://luizsouza.com/2020/10/17/reflexoes-de-2020<p>Este é um post mais pessoal e reflexivo, não estou abordando nada técnico, apenas um momento de autoavaliação… Então, não preciso dizer que o ano de 2020 foi um “break point” na vida da humanidade como um todo. Uma doença que conseguiu tirar todos de suas zonas de conforto e começar a repensar a vida. Bom, neste ano eu já estava pensando que pessoalmente seria um ano de análise da minha vida devido a chegada dos 40 anos. Sim, 40 aninhos agora mês que vem! Agora com essa situação que a humanidade está passando ainda, a análise passou a ser um tanto mais ampla na minha vida:</p>
<h3 id="trabalho-remoto">Trabalho remoto</h3>
<p>Embora eu já tivesse em mente que trabalho remoto fosse algo que eu devia estar preparado e em grande parte eu já estivesse (tinha um escritório preparado para as minhas atividades), atualmente meus dois empregos passaram suas atividades para ser 100% remotas e mesmo “preparado”, vi que a dificuldade era grande. Vou dizer que onde estava mais despreparado era na questão psicológica. Trabalhando 100% remoto em um mundo onde tu precisa se isolar trás momentos de stress mental, como o <a href="https://drauziovarella.uol.com.br/doencas-e-sintomas/sindrome-de-burnout-esgotamento-profissional/">efeito burnout</a> por exemplo. Não que eu tenha chegado neste estado, mas foi uma luta estar preparado para as adversidades de trabalhar sem pessoas ao teu lado (para validar, apoiar, suportar) ou uma cobrança sem “feedbacks em tempo real” que temos quando estamos em um escritório.</p>
<h3 id="administração-do-tempo">Administração do tempo</h3>
<p>Para que precisamos administrar o tempo? No meu caso administrar meu tempo é algo que tento constantemente vencer (inutilmente) o relógio, pois em um dia eu preciso ter tempo para: trabalhar (diúrno na Umbler e noturno na IENH); estudar (pós, cursos, certificações, crescimento no geral, etc.); momentos como este, escrever no blog ou montar uma aula / palestra (webinar); lazer e momento com a minha esposa e familiáres. Parece pouco, mas lembrando que temos que tirar um tempo para as coisas pessoais (comer, dormir, etc), se analisar o tempo é curto. Ou eu que não aprendi a administrar de forma plena ainda!</p>
<h3 id="ikigai">Ikigai</h3>
<p><img src="/assets/ikigai.png" alt="Ikigai" width="500px" /></p>
<p><a href="https://en.wikipedia.org/wiki/Ikigai">Ikigai (生き甲斐)</a> é uma palavra de origem Japonesa que em uma tradução livre quer dizer “uma razão para viver” e uma vez minha amiga e esposa me comentou que ela, em uma análise “de fora”, dizia que eu era um exemplo de uma pessoa que atingiu o ikigai. Entendendo a profundidade do que quer dizer “atingir o ikigai” eu penso hoje eu esteja “ainda no caminho” dessa plenitude. Eu ainda verifico que posso dar mais ao mundo do que já o faço. Hoje faço parte de uma empresa que tem uma proposta muito legal de levar as empresas e pessoas o acesso a realizar seus negócios online com uma experiência incrível, a <a href="https://lpsouza.com/umbler/">Umbler</a>. Outra forma de “dar mais ao mundo” é dando aulas no curso Técnico em Informática na <a href="https://ienh.com.br/">IENH</a> e ainda tenho este site, onde sempre que possível estou publicando coisas da minha vida (como este post) e principalmente minhas experiências na TI (o foco da ideia do ikigai). Mas será que é o suficiênte?</p>
<h3 id="review-pessoal">Review pessoal</h3>
<p>Claro! Como disse, estou na casa dos 40… Se analisarmos que a <a href="https://g1.globo.com/bemestar/noticia/2019/11/28/expectativa-de-vida-do-brasileiro-ao-nascer-foi-de-763-anos-em-2018-diz-ibge.ghtml">média de vida de uma pessoa aqui no Brasil é de 76 anos mais ou menos</a>, estou na metade da minha vida mais ou menos, logo, tenho que rever se como estou vivendo hoje é ainda algo válido para o resto da minha vida. E verificando isso eu comecei a reparar que uma coisa que andei negligenciando em boa parte deste 40 anos (vamos dizer aí quase metade disso, 1/4 do meu tempo de vida) foi a minha saúde. Por sorte que essa falta de cuidados não deu nada de muito grave nesta jornada, mas pensando do jeito que estou e pra onde quero ir, algo está errado e errado ao muito tempo! Pra “complicar” um pouco a coisa, fui diagnosticado como diabético recentemente (calma, nada grave, foi mais susto do que outra coisa) a partir de um tratamento dentário. O mais engraçado é que eu sempre comentáva na época dos meus 20 anos aquela frase em latim “mens sana in corpore sano” (mente sâ em um corpo são) e hoje descubro que eu me traí neste pensamento a muito tempo. Será que não esta na hora de retomar esse assunto a muito perdido?</p>
<h3 id="pensamento-final">Pensamento final</h3>
<p>Está se fechando um ciclo grande em minha vida, e em um ano realmente agitado para conseguir um tempo para analisar e responder questões. O que posso dizer é que para os próximos anos teremos mudanças, ou retorno as origens em alguns pensamentos! Era isso! Pensamentos em palavras! 😅</p>Luiz Pereira de Souza FilhoEste é um post mais pessoal e reflexivo, não estou abordando nada técnico, apenas um momento de autoavaliação… Então, não preciso dizer que o ano de 2020 foi um “break point” na vida da humanidade como um todo. Uma doença que conseguiu tirar todos de suas zonas de conforto e começar a repensar a vida. Bom, neste ano eu já estava pensando que pessoalmente seria um ano de análise da minha vida devido a chegada dos 40 anos. Sim, 40 aninhos agora mês que vem! Agora com essa situação que a humanidade está passando ainda, a análise passou a ser um tanto mais ampla na minha vida: