Postagens

MongoDB + Docker: Criando uma instância do Mongo 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 MongoDB. Mas o que é MongoDB? É um banco de dados opensource, de alta performance e flexível, sendo considerado o principal banco de dados NoSQL. Os banco de dados NoSQL apresentam algumas vantagens sobre os outros tipos, principalmente quando precisamos de escalabilidade, flexibilidade, bom desempenho e facilidade para consultas. 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 o comando abaixo em seu terminal: docker run --name mongo -d -p 27017:27017 -p 28017:28017 -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=mypass mongo:latest O comando acima irá fazer o pull da última imagem docker do MongoDB e logo em seguida irá criar e iniciar o contâiner em seu computador. Caso você queira especificar uma versão do Mongo, basta alterar a palavra  latest  do comando ...

Gvm: Gerenciando versões de GoLang

Imagem
Se você trabalha com vários projetos Go, já percebeu como é complicado quando os projetos requerem versões diferentes da linguagem. A fim de resolver esse problema surgiu o projeto chamado GVM (Go Version Manager) , onde você pode ter várias versões do Go instalado em sua máquina e quando precisar rodar um projeto em uma versão especifica basta fazer a troca pelo terminal. Instalação em ambiente Linux O processo de instalação é bem simples e você pode conferir na documentação oficial . Resumidamente o comando de instalação é esse: bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer) Se você estiver usando zsh apenas mude de bash para zsh. Após a instalação No meu caso foi precisa instalar mais um pacote no Ubuntu: sudo apt-get install bison Pronto, agora feche seu terminal, abra novamente e execute o seguinte comando para verificar se o GVM foi instalado corretamente: gvm version Conhecendo a ferramenta O primeiro comando e o mais ...

Nvm: Gerenciando versões de NodeJs

Imagem
Se você trabalha com vários projetos Node, já percebeu como é complicado quando os projetos requerem versões diferentes. Bom, para resolver esse problema existe um projeto chamado NVM (Node Version Manager) , onde você pode ter várias versões do NodeJs instalado em sua máquina e quando precisar rodar um projeto em uma versão especifica basta fazer a troca pelo terminal. Instalação em ambiente Linux e MacOS O processo de instalação é bem simples e você pode conferir na documentação oficial . Resumidamente o comando de instalação é esse: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | $SHELL Ou via wget: wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | $SHELL Obs.: Sempre é bom instalar a última versão da ferramenta. Perceba que no link acima está sendo informado a versão 0.39.5, mas você pode conferir aqui qual a última versão do projeto e alterar o comando de instalação. Se você utiliza o ZSH será necessário adicionar o seguinte c...

Git: Renomear, desfazer, mesclar, editar ou excluir commits

Imagem
Se você sempre quis saber ou se já sabe mais nunca lembra os comandos de como renomear, desfazer, excluir, editar ou mesclar um ou mais commits você chegou no lugar certo. ;) Antes de tudo precisamos saber que com o comando abaixo conseguimos visualizar a hash, mensagem e a ordem que os commits foram feitos: git log --oneline - Renomeando um commit Para mudar a mensagem do último commit, você pode utilizar o --amend: git commit -m "Nova mensagem que vai substituir a anterior" --amend Para mudar a mensagem de um commit específico, você pode usar o rebase interativo: git rebase -i f0b5417~1 Repare no ~1 , isso indica que irá buscar o commit da hash indicada e todos os demais commits a partir dela. Se você não colocar o ~1 o commit da hash pesquisa não irá ser mostrado no editor de texto a ser aberto, apenas os commits a partir dela. Caso você queira buscar os 3 últimos commits: git rebase -i HEAD~3 Seu editor de texto irá iniciar. Troque no texto a palavra ...

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