Postagens

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...

Pyenv: Gerenciando versões Python

Imagem
Demonstração de como gerenciar versões Python em um mesmo ambiente utilizando Pyenv. Se você trabalha com vários projetos Python sabe como é complicado lidar com as versões do Python para cada projeto. Com intuito de auxilizar os desenvolvedores a gerenciar melhor as versões do Python, surgiu em 2011 uma biblioteca open source chamada pyenv . Com ela a gente consegue criar um virtualenv com uma versão especifica do Python e isso simplifica muito a nossa vida. Instalação em ambiente Linux Primeiramente você precisa instalar os pré-requisitos da biblioteca. Para isso você pode acessar esse link e seguir os passo a passo. Após a instalação dos pré-requisitos iremos instalar a biblioteca. O passo a passo para a instalação você irá encontrar aqui . Instalação em ambiente Windows O passo a passo para a instalação no ambiente windows você irá encontrar nesse link . Conhecendo a biblioteca O primeiro comando e o mais importante é o pyenv . Se a sua instalação foi bem suced...

Redis + Docker Compose: Criando uma instância do Redis com Docker Compose

Imagem
Recentemente fiz uma postagem explicando como criar uma instância do Redis com Docker a partir de comandos digitados diretamento no terminal. Hoje iremos aprender a como criar a mesma instância a partir de um arquivo docker compose. Primeiramente você precisa criar um arquivo chamado docker-compose.yml e salvá-lo em algum diretório do seu computador. Dentro desse arquivo você irá colocar todo o conteúdo como especificado abaixo: Explicando algumas linhas do arquivo - Linha 5: informamos qual a imagem do Docker Hub que iremos baixar assim que rodar o arquivo; - Linha 6: nessa linha temos dois comandos: o primeiro é  --requirepass SUASENHA e serve para setar uma senha de acesso ao banco de dados e o segundo  --appendonly yes serve para falarmos que iremos utilizar volume no Redis; - Linha 8: aqui estamos expondo a porta 6379 para outras aplicações conseguirem se comunicar com o Redis; - Linha 10: essa linha é para especificar onde será salvo os dados do Redis e ...

Redis + Docker: Criando uma instância do Redis com Docker

Imagem
Neste tópico será demonstrado o passo a passo para a criação de um contâiner  Docker  para o banco de dados  Redis . Mas o que é Redis? Redis é uma estrutura de armazenamento em memória, muito utilizado como banco de dados, cache e intermediário de mensagens. Atenção Antes de tudo você deve ter o  Docker  instalado em seu sistema operacional. Criando o contâiner Para criar o contâiner basta você rodar os comandos abaixo em seu terminal: docker run --name redis -d -p 6379:6379 redis:latest O comando acima irá fazer o pull da última imagem docker do Redis e logo em seguida irá criar e iniciar o contâiner em seu computador. Caso você queira especificar uma versão do Redis, basta alterar a palavra  latest  do comando pela versão desejada. Para criar o contâiner com senha, basta adicionar ao final do comando  --requirepass yourpassword Por fim você pode também adicionar um volume ao contâiner, para evitar de perder os dados quando o mesm...

pgAdmin 4: Configurando um server do Postgres

Imagem
Nessa postagem aprenderemos a como conectar o pgAdmin 4 com um banco de dados PostgreSQL. Se você ainda não tem o PostgreSQL ou o pgAdmin instalado, veja nossa postagem:  PostgreSQL + pgAdmin 4 + Docker Compose: Criando ambiente para uso Se você seguiu o nosso passo a passo para configurar o pgAdmin basta você acessar o endereço  http://localhost:15432 para poder acessar o painel de controle. Assim que você acessar será exigido que você digite o email e senha, esses dados é setado assim que você cria o contâiner do pgAdmin no docker. Após o login você irá encontrar uma tela bem parecida com essa: Agora basta clicar com o botão direito do mouse sobre a opção Servers e navegar até a opção Create -> Server No modal que será aberto, na aba  General clique no campo Name e informe um nome qualquer para a sua conexão: Agora clique na aba Connection e informe os dados de conexão do seu banco de dados Postgres: Se campo Host você pode digitar...

PostgreSQL + pgAdmin 4 + Docker Compose: Criando ambiente para uso

Imagem
Recentemente fiz uma postagem de como criar uma instância de PostgreSQL e pgAdmin com Docker. O modo abordado na postagem funciona muito bem mas o problema é que você tem que informar alguns comandos via terminal e isso parece ser bem chato pois temos que decorar todos eles. Portanto existe uma forma bem bacana de criarmos os contâiners docker apartir de um único arquivo e isso é o que veremos nessa postagem. Esse arquivo que simplifica a criação de contâiners docker tem a extenção .yml e normalmente se chama docker-compose . Logo abaixo temos o nosso exemplo: No exemplo acima estamos criando duas instâncias docker. Cada instância você irá encontrar na seção services sendo a primeira  postgres-compose que irá criar o PostgreSQL e a segunda o  pgadmin-compose que irá criar o pgAdmin. Dentro da seção do  postgres-compose  encontramos algumas outras seções: - environment: define as variáveis de ambiente para o contâiner; - ports: expõe a po...