Postagens

Oh My Zsh: Melhorando a produtividade do seu terminal

Imagem
Oh My Zsh é uma estrutura agradável, de código aberto e orientada pela comunidade para gerenciar sua configuração do Zsh (terminal feito para uso iterativo). Ele vem com milhares de funções úteis, ajudantes, plugins, temas e algumas coisas que fazem você gritar...  "Oh My ZSH!" São mais de 250 plugins opcionais para melhorar a usabilidade do terminal e mais de 125 temas. Instalando o ZSH A primeira coisa a se fazer é instalar o ZSH , um framework para o seu terminal que irá deixá-lo mais interativo. Como existem várias formas de instalação dependendo do sistema operacional que você está, leia esse guia de instalação: https://github.com/robbyrussell/oh-my-zsh/wiki/Installing-ZSH Após a instalação do ZSH, você conseguirá ver a sua versão no terminal: zsh --version Instalando o Oh my Zsh Para instalar o Oh My Zsh você precisa executar o comando abaixo: Utilizando o curl sh -c “$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.s...

CopyQ - Gerenciador de área de transferência

Imagem
Muitos de nós já passamos pela situação onde copiamos algo (CTRL + C) e depois perdemos o que copiamos e isso é bem frustante em alguns casos. Para nossa alegria existe ferramentas que salva tudo o que copiamos para assim recuperarmos quando precisarmos. Hoje irei apresentar o CopyQ um cliente disponível para Linux, Windows e Mac. O CopyQ monitora a área de transferência do sistema e salva seu conteúdo em guias personalizadas. A área de transferência salva pode ser posteriormente copiada e colada diretamente em qualquer aplicativo. A sua instalação é bem fácil e os passos a passos você pode ver no site oficial da ferramenta. Após a instalação basta executar a ferramenta e ela passará a salvar tudo o que você copiar. Eu sugiro que você marque a opção auto start , que está nas configurações da ferramenta, para assim sempre que o seu computador ligar a ferramenta já ser executada automaticamente. Outra dica é aumentar a quantidade de items que ela irá salvar. Nas co...

Docker: Gerenciar o Docker como um usuário não raiz

Imagem
Se você utiliza o Docker em seu Linux e toda vez tem que ficar digitando a senha do super usuário (sudo), hoje vou mostrar como executá-lo sem precisar do sudo. O que iremos fazer é criar um grupo Unix com o nome de docker e adicionar os usuários que terão acesso ao docker sem precisar utilizar o sudo . Para maiores detalhes sobre esse passo a passo, você pode conferir o original na documentação do Docker . 1- Crie o grupo Unix: sudo groupadd docker 2- Adicione os usuários ao grupo: sudo usermod -aG docker $USER Por padrão $USER é o usuário da sua sessão mas se preferir adicionar outro usuário bata subistitui-lo pelo nome do usuário. Para visualizar os usuários do seu sistema, basta digitar users no terminal. 3- Faça logoff ou reinicie seu computador para as configurações serem aplicadas. 4- Para ver se tudo está funcionando corretamente, execute o comando: docker run hello-world Se tudo estiver ocorrido bem, você verá algo parecido com a imagem abaixo:

HTTPie: Uma alternativa amigável ao curl

Imagem
HTTPie é um cliente HTTP de linha de comando com uma interface de usuário intuitiva, suporte a JSON, destaque de sintaxe, downloads semelhantes a wget, plug-ins e muito mais. Seu objetivo é tornar a interação da CLI com os serviços da Web o mais amigável possível. Ele fornece um comando http simples que permite o envio de solicitações HTTP arbitrárias usando uma sintaxe simples e natural e exibe saída colorida. O HTTPie pode ser usado para teste, depuração e interação geral com servidores HTTP. O HTTPie consiste em um único comando http projetado para depuração indolor e interação com servidores HTTP, APIs RESTful e serviços da Web, que ele realiza por: - Padrões sensíveis - Sintaxe de comando expressiva e intuitiva - Saída de terminal colorida e formatada - Suporte JSON incorporado - Sessões persistentes - Upload de formulários e arquivos - Suporte a HTTPS, proxies e autenticação - Suporte para dados de solicitação e cabeçalhos arbitrários - Downloads semelhantes ao W...

Gtop: Um painel de monitoramento do sistema para terminal

Imagem
Ferramentas de linha de comando como "top" dificultam a visualização do uso da CPU em aplicativos de vários processos (como Apache e Chrome), picos ao longo do tempo e uso de memória. Afim de facilitar esse processo, existem diversas ferramentas como o vtop , htop e o gtop. Mas o que é o Gtop? O gtop é uma ferramenta que lê informações sobre processos e o estado do sistema no modo dinâmico. Está escrito em node.js e pode ser facilmente estendido. Para verificar seu código fonte basta acessar o github . Qual a diferença entre o vtop e o gtop? Com o VTOP você consegue monitorar apenas o CPU, Memória e os PID. Já com o GTOP você consegue monitorar CPU, Memória, SWAP, PID, Network e o Disco. Outra diferença entre os dois é que com o VTOP você consegue matar um determinado PID, setar um intervalo em que o monitorar irá atualizar os dados mostrados na tela, consegue também mudar o tema do monitor, desativar interação com o mouse e definir um tempo para o monitor ser ...

Vtop: Um monitor de atividade do sistema para terminal

Imagem
Ferramentas de linha de comando como "top" dificultam a visualização do uso da CPU em aplicativos de vários processos (como Apache e Chrome), picos ao longo do tempo e uso de memória. Afim de facilitar esse processo, existem diversas ferramentas como o vtop, htop e o gtop . Mas o que é o Vtop? O Vtop é um monitor de atividades de código aberto e gratuito para a linha de comando. Está escrito em node.js e pode ser facilmente estendido. Por que não verificar o código fonte ? Qual a diferença entre o vtop e o gtop? Com o VTOP você consegue monitorar apenas o CPU, Memória e os PID. Já com o GTOP você consegue monitorar CPU, Memória, SWAP, PID, Network e o Disco. Outra diferença entre os dois é que com o VTOP você consegue matar um determinado PID, setar um intervalo em que o monitorar irá atualizar os dados mostrados na tela, consegue também mudar o tema do monitor, desativar interação com o mouse e definir um tempo para o monitor ser fechado automaticamente. Já com ...

G Cloud: Gerando chave de autenticação para o Google Cloud

Imagem
Para integrar uma aplicação com os serviços disponibilizados pelo Google Cloud, será nescessário gerar uma chave de autenticação para que a sua aplicação possa ter permissão de comunicar com os serviços da Google. Se você é marinheiro de primeira viagem, conseguir essa chave acessando o painel do google cloud é um puco tanto complexo. Logo abaixo está o passo a passo de como obter as chaves de autenticação. Para maiores informações você pode acessar a documentação oficial, clicando aqui . 1-  Já na página inicial do console do G Cloud, acesse as opções: APIs e serviços -> Credenciais 2 - No botão "Gerar Credenciais" teremos algumas opções. 2.1- Chave de API Será criada uma chave de API Simples que poderá ser usada em alguns serviços como exemplo o Google Maps, onde você pode passá-la pela URL da API. 2.2- Id do cliente do OAuth Essa opção serve para sua aplicação poder ter uma opção de login ou sincronização dos dados com o Google. 2.3- Conta de...

Python: Conhecendo a declaração With

Imagem
A declaração a "with" foi inserida ao Python na PEP 343  em 2005. Com ela conseguimos tornar o código mais limpo, legível e seguro. Resumidamente ela é um gerenciador de contexto reponsável por garantir que determinados recursos sejam liberados independente se o código deu sucesso ou erro. O exemplo mais comum e de melhor entendimento é o de leitura de arquivos. Suponha que um arquivo é aberto. Quem irá garantir que o mesmo será fechado? Por mais que você coloque no código de forma explícita que ele deve ser fechado, se ocorrer uma exceção, sairá do escopo sem executar o restante do código pulando o fechamento. Para esse caso normalmente usaríamos o try/finally, pois o finally iria garantir que o arquivo seria fechado. Mais lembre-se que o with alem de garantir segurança ele visa um código mais limpo e menos complexo. Mas afinal, como é um código que utiliza o "with"? Veja abaixo: Na linha 1 utilizamos o "with ",  logo em seguida chamamos a fun...

asdf: Gerenciador de versão extensível com suporte a várias linguagens e ferramentas de desenvolvimento

Imagem
Nos dias de hoje é muito comum você ter que lidar com diversas versões de diversas linguagens ao mesmo tempo. Pense comigo, suponha que tenhamos alguns projetos que utilizam as linguagens de programação python, nodejs e golang. Agora suponha que dentre esses projetos eles utilizam versões diferentes para cada linguagem, como exemplo python 3.7.2, python 3.9.0, go 1.15.6, go 1.14.3, node 14.16.0 e node 15.12.0. Já imaginou como seria difícil ter que instalar cada versão da linguagem em seu computador? Com o asdf você vai perceber como isso se torna muito fácil de se gerenciar e o melhor é que ele tem diversos plugins. Com ele você consegue não só instalar linguagens de programação mas também ferramentas de desenvolvimento. Veja alguns exemplo: node.js, python, r, go, ruby, clojure, erlang, dart, java, php, deno, elixir, flutter, dotnet-core, mysql, postgres, mongodb, redis, rabbitmq, elasticsearch, docker-slim, yarn e muitos outros . Instalação A instalação dele é muito simples...

Python: Duas formas de criar um Switch Case

Imagem
Todos nós que trabalhamos na área de desenvolvimento sabemos que nas linguagens mais populares temos como opção utilizar a condicional switch/case, mas para quem trabalha com Python sabe-se que isso não existe na linguagem. Como forma de contornar o problema irei demonstrar duas formas para você poder implementar em seu código. Atenção: Na versão 3.10 do Python foi implementado o  Pattern Matching que tem como objetivo ser igual ou melhor que o switch case. 1- Utilizando dicionário (object literals) O que iremos fazer nesse procedimento é criar uma variável do tipo dicionário e utilizando a função get iremos capturar um valor do dicionário. Segue o exemplo: Vamos entender o que está escrito nesse código? Nas linhas 1, 4 e 7 estamos apenas criando funções que iram dar um print na tela assim que elas forem chamadas. Na linha 11 criamos uma variável do tipo dicionário e nela definimos a key como sendo a nossa condicional do case e o valor sendo as funções criadas an...